هدف کار و ترتیب انجام مراحل
مدیران باید با کلید و حساب شخصی خود وارد شوند و در صورت نیاز از sudo استفاده کنند، زیرا با این کار سابقهای از اینکه چه کسی چه کاری انجام داده باقی میماند و تلاش برای حدسزدن گذرواژه محدود میشود. ترتیب کار مهم است: ابتدا روش دسترسی جدید را راه بیندازید، آن را بیازمایید و محدودکردن root را به آخرین مرحله موکول کنید. برای مواقع بروز مشکل، دسترسی به کنسول ارائهدهنده را آماده نگه دارید.
ساخت حساب کاربری و نصب کلید آن
حساب را بسازید، کلید عمومی آن را اضافه کنید و مجوزها را سختگیرانه تنظیم کنید، زیرا sshd فایلهای کلیدی را که دیگران میتوانند در آنها بنویسند نادیده میگیرد. هرگز کلید خصوصی را روی سرور کپی نکنید. در سیستمهای خانوادهٔ Red Hat بهجای گروه sudo از گروه wheel استفاده کنید.
sudo adduser admin1
sudo usermod -aG sudo admin1
sudo install -d -m 700 -o admin1 -g admin1 /home/admin1/.ssh
sudo install -m 600 -o admin1 -g admin1 ~/admin1.pub /home/admin1/.ssh/authorized_keysآزمایش از پنجرهٔ دوم
نشست فعلی را باز نگه دارید و ورود جدید را از ترمینالی دیگر آزمایش کنید. عضویت در یک گروه بهتنهایی ثابت نمیکند که sudo کار میکند، زیرا این را قواعد sudoers تعیین میکنند. با sudo -l آن را تأیید کنید.
ssh -o IdentitiesOnly=yes -i ~/.ssh/id_ed25519 admin1@server.example
sudo -l
sudo -vمحدودکردن ورود root
PermitRootLogin prohibit-password ورود root را فقط با کلید مجاز میکند و no دسترسی root از طریق SSH را کاملاً مسدود میکند. تغییر را در فایلی مستقل در این مسیر قرار دهید: /etc/ssh/sshd_config.d. برای بیشتر گزینهها، sshd اولین مقداری را که پیدا کند به کار میبرد؛ بنابراین ممکن است فایلی که زودتر خوانده میشود اولویت داشته باشد. به همین دلیل، بهجای صرفاً خواندن فایلها، مقدار مؤثر را با sshd -T بررسی کنید. پیش از بستن نشست قدیمی، ورود جدیدی را بیازمایید.
echo 'PermitRootLogin no' | sudo tee /etc/ssh/sshd_config.d/50-root.conf
sudo sshd -t
sudo systemctl reload ssh
sudo sshd -T | grep -iE '^(permitrootlogin|passwordauthentication) 'ورود با گذرواژه و کارهایی که باید از آنها پرهیز کرد
PasswordAuthentication را تنها زمانی غیرفعال کنید که همهٔ حسابهای موردنیازتان کلیدی آزمایششده داشته باشند. یک حساب را بین چند نفر مشترک نکنید، زیرا در این صورت نمیتوانید دسترسی یک نفر را بدون تأثیر بر دیگران لغو کنید. فعالبودن sudo بدون گذرواژه برای کل یک حساب نیز به این معناست که سرقت کلید بهتنهایی کنترل کامل را در اختیار مهاجم میگذارد.
حسابها در CH-J Server Manager
ماژول Users حسابها، گروهها، کلیدهای SSH و دسترسی SSH را از طریق یک نشست فعال SSH مدیریت میکند. هرگز sudoers را تغییر نمیدهد یا NOPASSWD را تنظیم نمیکند و وضعیت واقعی sudo را بر اساس sudo -l گزارش میدهد. حساب root را نمیتوان حذف کرد و مجازکردن ورود root با گذرواژه به تأیید اضافی نیاز دارد؛ گزینهٔ پیشنهادی Key only است. تغییر دسترسی SSH با sshd -T و یک ورود جدید SSH بررسی میشود و اگر بررسی شکست بخورد یا تغییر باعث ازدسترفتن دسترسی شما شود، پیکربندی قبلی بهطور خودکار بازمیگردد. بدون sudo، این ماژول فقط خواندنی است.