بعد از ساخت یک سرور جدید با اوبونتو، اولین و مهمترین کار، ایمنسازی پایهای سیستم است. سه اقدام اصلی که باید بلافاصله انجام شوند:
-
ساخت یک کاربر غیر روت با دسترسی sudo
-
فعالسازی احراز هویت SSH با کلید (بهجای پسورد)
این سه مرحله، پایه امنیت سرور شما را تشکیل میدهند و جلوی حملاتی مثل brute-force و دسترسی غیرمجاز را میگیرند.
نصب پیشفرض Ubuntu معمولاً دسترسی مستقیم روت دارد که از نظر امنیتی بسیار پرریسک است. سرورهای تازه نصبشده، هدف اصلی رباتهایی هستند که اینترنت را برای تنظیمات پیشفرض و پسوردهای ضعیف اسکن میکنند. خوشبختانه کل این تنظیمات فقط حدود ۱۰ تا ۱۵ دقیقه زمان میبرد اما سطح حمله را بهشدت کاهش میدهد.
پیشنیازها
قبل از شروع، مطمئن شوید که موارد زیر را دارید:
-
یک سرور Ubuntu 20.04 یا بالاتر
-
آیپی عمومی سرور
-
دسترسی SSH (پسورد روت یا کلید خصوصی SSH)
-
یک ترمینال روی سیستم خودتان
⚠️ تا زمانی که ورود کاربر جدید و sudo را تست نکردهاید، سشن روت را نبندید.
| مرحله | هدف |
|---|---|
| ۱. ورود با کاربر root | اتصال اولیه به سرور تازه ساختهشده |
| ۲. ساخت کاربر جدید | جلوگیری از استفادهی مداوم از root |
| ۳. دادن دسترسی sudo | اجازهی اجرای دستورات مدیریتی به کاربر جدید |
| ۴. فعالسازی فایروال UFW | محدود کردن دسترسی شبکهای به سرور |
| ۵. فعالسازی SSH برای کاربر جدید | امکان اتصال امن بدون نیاز به root |
| ۶. امنسازی بیشتر SSH | کاهش سطح حمله روی سرویس SSH |
| ۷. امنیت بیشتر سرور | آپدیت خودکار، تایمزون و Fail2Ban |
مرحله ۱ — ورود به سرور با کاربر root
ssh root@IP_SERVERاگر اولین بار است وصل میشوید، پیام هشدار fingerprint طبیعی است. yes بزنید.
کاربر root بالاترین سطح دسترسی را دارد و هر اشتباه تایپی میتواند فاجعه ایجاد کند. به همین دلیل برای استفاده روزمره مناسب نیست.
مرحله ۲ — ساخت کاربر جدید
adduser usernameیک پسورد قوی انتخاب کنید. اطلاعات اضافی اختیاری هستند.
بررسی ایجاد کاربر:
id usernameمرحله ۳ — دادن دسترسی sudo
usermod -aG sudo usernameاکنون کاربر جدید میتواند با sudo دستورات مدیریتی اجرا کند.
تست:
su - username
sudo whoamiخروجی باید root باشد.
مرحله ۴ — فعالسازی فایروال (UFW)
نمایش اپلیکیشنهای شناختهشده:
ufw app listاجازه دادن به SSH:
ufw allow OpenSSHفعال کردن فایروال:
ufw enableبررسی وضعیت:
ufw statusبرای سرور وب:
ufw allow 80/tcp
ufw allow 443/tcpمرحله ۵ — فعالسازی دسترسی SSH برای کاربر جدید
اگر ورود روت با پسورد بوده:
فقط این دستور کافی است:
ssh username@IP_SERVERاگر ورود روت با کلید SSH بوده:
کپی کلیدها:
rsync --archive --chown=username:username ~/.ssh /home/usernameبررسی:
ls -la /home/username/.ssh/مرحله ۶ — امنسازی بیشتر SSH (اختیاری ولی توصیهشده)
ویرایش فایل:
sudo nano /etc/ssh/sshd_configتغییرات:
PasswordAuthentication no
PermitRootLogin noبررسی خطا:
sudo sshd -tریاستارت SSH:
sudo systemctl restart sshdمرحله ۷ — امنیت بیشتر سرور
فعالسازی آپدیت خودکار امنیتی
sudo apt update
sudo apt install unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgradesتنظیم تایمزون
sudo timedatectl set-timezone Asia/Tehranنصب Fail2Ban
sudo apt install fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2banنکات مهم امنیتی
-
از روت برای کارهای روزمره استفاده نکنید
-
همیشه SSH Key را جایگزین پسورد کنید
-
قبل از فعال کردن فایروال، SSH را Allow کنید
-
روی سرورهای واقعی، ورود روت را کامل ببندید
اگر از سرور قفل شدید
از کنسول ریکاوری هاستینگ وارد شوید و موارد زیر را چک کنید:
ufw status
systemctl status sshd
sshd -tجمعبندی
بعد از انجام این مراحل، سرور شما:
-
کاربر امن غیرروت دارد
-
فایروال فعال دارد
-
SSH امن شده
-
آپدیت امنیتی خودکار دارد
این تنظیمات پایه، سرور را در برابر رایجترین حملات ایمن میکند و بهترین نقطه شروع برای هر سرور جدید است.
