هر سروری که آیپی عمومی دارد، از همان دقیقهی اول زیر رگبار رباتهایی است که رمز حدس میزنند و پورت میکاوند. خبر خوب: با ده قدمِ زیر — که اجرای همهشان یک بعدازظهر هم نمیگیرد — سرورتان از هدفی آسان به دژی خستهکننده برای مهاجم تبدیل میشود.
۱) سیستم را بهروز کنید — همین اول
apt update && apt upgrade -y
بیشتر نفوذها از آسیبپذیریهایی رخ میدهد که ماهها قبل وصله شدهاند اما کسی بهروزرسانی را نصب نکرده. برای وصلههای امنیتی خودکار:
apt install unattended-upgrades -y
dpkg-reconfigure -plow unattended-upgrades
۲) کاربر غیر root بسازید
کار روزمره با root مثل جوشکاری بدون عینک است. یک کاربر با دسترسی sudo بسازید:
adduser admin
usermod -aG sudo admin
۳) ورود با کلید، نه رمز
اگر هنوز کلید SSH نساختهاید، اول راهنمای SSH را ببینید. بعد از اطمینان از ورود موفق با کلید، ورود با رمز را ببندید. در /etc/ssh/sshd_config:
PasswordAuthentication no
PermitRootLogin prohibit-password
و سرویس را ریاستارت کنید: systemctl restart ssh
۴) پورت SSH را جابهجا کنید
تغییر پورت ۲۲ به عددی مثل ۲۲۲۲ امنیت واقعی نمیسازد، اما ۹۹٪ اسکنهای خودکار را از لاگهایتان حذف میکند و خواندن لاگ را دوباره معنادار میکند. در همان sshd_config مقدار Port را عوض کنید — و یادتان باشد پورت جدید را در فایروال باز کنید، بعد ریاستارت.
۵) فایروال UFW را روشن کنید
apt install ufw -y
ufw allow 2222/tcp # پورت SSH خودتان
ufw allow 80,443/tcp # وب
ufw enable
قانون طلایی: هر چیزی که آگاهانه باز نکردهاید، بسته باشد. با ufw status numbered هر لحظه وضعیت را ببینید.
۶) Fail2ban نصب کنید
هرکس چند بار پشتسرهم رمز اشتباه بزند، آیپیاش موقتاً مسدود میشود:
apt install fail2ban -y
systemctl enable --now fail2ban
پیکربندی پیشفرض برای شروع کافی است؛ با fail2ban-client status sshd ببینید چند مهاجم به دام افتادهاند — عدد معمولاً غافلگیرتان میکند.
۷) سرویسهای اضافه را خاموش کنید
ss -tulpn
هر پورتِ در حالِ گوشدادن، یک درِ بالقوه است. هر سرویسی را که نمیشناسید یا لازم ندارید (FTP قدیمی، دیتابیسی که فقط لوکال لازم است اما روی همهی اینترفیسها گوش میدهد و…) حذف یا محدود به 127.0.0.1 کنید.
۸) از دادهها بکاپ بگیرید
امنیت بدون بکاپ، نصفه است: بدترین سناریو همیشه «داده از دست رفت» است، نه «سرور هک شد». افزودنی بکاپ خودکار را موقع ساخت سرور فعال کنید یا دستکم با یک اسکریپت ساده و cron، از پوشههای حیاتی نسخهی شبانه به جای دیگری بفرستید.
۹) لاگها را بخوانید
journalctl -u ssh --since today
last -20
هفتهای ده دقیقه لاگخوانی، حملههای در جریان را قبل از موفقشدن لو میدهد: ورودهای ناموفق سریالی، کاربرانی که نمیشناسید، ریاستارتهای بیدلیل سرویسها.
۱۰) پایش بیرونی داشته باشید
مانیتورینگ آپتایم (حتی یک سرویس رایگان) به شما زودتر از کاربرانتان میگوید سایت پایین است؛ و نمودارهای مصرف پنل مهران هاست الگوی غیرعادی CPU یا ترافیک — نشانهی کلاسیک ماینر یا بات — را همان روز اول آشکار میکند.
چکلیست جمعوجور
| قدم | ابزار | زمان |
|---|---|---|
| بهروزرسانی + وصله خودکار | apt, unattended-upgrades | ۵ دقیقه |
| کاربر sudo | adduser | ۲ دقیقه |
| کلید SSH + بستن رمز | ssh-keygen, sshd_config | ۱۰ دقیقه |
| پورت جدید SSH | sshd_config | ۲ دقیقه |
| فایروال | UFW | ۵ دقیقه |
| ضد حدس رمز | Fail2ban | ۵ دقیقه |
| حذف سرویس اضافه | ss, systemctl | ۱۰ دقیقه |
| بکاپ | افزودنی بکاپ / cron | ۱۰ دقیقه |
| لاگخوانی | journalctl | مستمر |
| مانیتورینگ | پنل + سرویس آپتایم | ۵ دقیقه |
سخن آخر
امنیت مقصد نیست، عادت است — اما همین ده قدم، شما را از «هدف آسانِ اسکریپتهای خودکار» خارج میکند؛ و این یعنی حذف بخش عمدهی ریسک واقعی. سرور بعدیتان را که ساختید، این صفحه را باز کنید و از بالا تا پایین تیک بزنید. قدم بعدی؟ وبسایتتان را با Nginx و HTTPS بالا بیاورید.