یک VPS جدید با آدرس IP عمومی ظرف چند دقیقه شروع به دریافت تلاشهای ورود خودکار میکند. هیچکدام شخصی نیست؛ رباتها بهسادگی همه آدرسها را اسکن میکنند. چند گام ساده تقریباً همه آنها را متوقف میکند. این چکلیست یک سرور تازه Ubuntu 24.04 یا Debian 12/13 را فرض میکند و حدود پانزده دقیقه طول میکشد.
1. اول همهچیز را بهروز کنید
apt update && apt full-upgrade -y
reboot
پس از ریبوت دوباره وارد شوید. همیشه از یک سیستم کاملاً وصلهشده شروع کنید.
2. یک کاربر غیر root بسازید
کار دائمی با root هر اشتباه تایپی را خطرناک میکند. یک کاربر عادی با دسترسی sudo بسازید:
adduser deploy
usermod -aG sudo deploy
3. کلیدهای SSH را راهاندازی کنید
روی کامپیوتر خودتان، اگر جفت کلید ندارید بسازید و نیمه عمومی را به سرور کپی کنید:
ssh-keygen -t ed25519 -C "my-vps"
ssh-copy-id deploy@YOUR_SERVER_IP
یک ترمینال دوم باز کنید و پیش از ادامه تأیید کنید میتوانید با کلید بهعنوان deploy وارد شوید. تا آن موقع نشست اصلی خود را نبندید.
4. ورود با رمز و ورود root را خاموش کنید
پیکربندی دیمون SSH را ویرایش کنید:
sudo nano /etc/ssh/sshd_config.d/99-hardening.conf
این خطها را در فایل قرار دهید:
PermitRootLogin no
PasswordAuthentication no
KbdInteractiveAuthentication no
PubkeyAuthentication yes
MaxAuthTries 3
نحو را بررسی کنید و بارگذاری مجدد کنید:
sudo sshd -t && sudo systemctl reload ssh
5. فایروال را فعال کنید
UFW سادهترین گزینه است. اول SSH را مجاز کنید، سپس فایروال را روشن کنید:
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw allow 80,443/tcp # only if you run a web server
sudo ufw enable
sudo ufw status verbose
فقط برای سرویسهایی که واقعاً اجرا میکنید پورت باز کنید. بقیهچیز بهطور پیشفرض بسته میماند.
6. fail2ban را اضافه کنید
Fail2ban لاگها را زیر نظر دارد و آدرسهایی را که مدام ورود ناموفق دارند موقتاً مسدود میکند.
sudo apt install -y fail2ban
sudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd
پیشفرضها برای SSH مناسباند. چون قبلاً رمزها را غیرفعال کردهاید، این بیشتر نویز لاگ و مصرف بیهوده CPU را کم میکند.
7. بهروزرسانیهای امنیتی خودکار را روشن کنید
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades
این وصلههای امنیتی را خودکار نصب میکند. گاهی برای بهروزرسانی کرنل ریبوت کنید یا بگذارید ابزار در ساعتی آرام این کار را بکند.
8. بررسی کنید چه چیزی گوش میدهد
sudo ss -tulpn
هر چیزی که روی 0.0.0.0 گوش میدهد و انتظارش را نداشتید ارزش بررسی دارد. سرویسهایی که فقط برای استفاده محلیاند (پایگاههای داده، کشها، پنلهای مدیریت) باید روی 127.0.0.1 گوش دهند.
9. پایش و پشتیبانگیری پایه
- لاگها را ببینید با
journalctl -u ssh --since today، هر از گاهی. - منابع را بررسی کنید با
htopوdf -hتا دیسک پر یا پردازش سرکش شما را غافلگیر نکند. - پشتیبان بگیرید. پیش از تغییرات بزرگ از سرور اسنپشات بگیرید و از هر چیزی که نمیتوانید بازسازی کنید یک نسخه خارج از سرور نگه دارید.
کار بعدی
اکنون سروری دارید که نفوذ به آن بسیار سختتر از حالت پیشفرض است. از اینجا، نرمافزار را بهروز نگه دارید، هر سرویس را با کاربر بدون امتیاز خودش اجرا کنید و فقط آنچه لازم دارید در معرض دید بگذارید. اگر تونل خصوصی به سرور میخواهید، راهنمای ما درباره راهاندازی WireGuard گام بعدی خوبی است.
پرسشهای متداول
روی VPS جدید اول چه کاری انجام دهم؟
بستهها را بهروز کنید، یک کاربر غیر root بسازید، به کلیدهای SSH بروید، ورود با رمز عبور را غیرفعال کنید و فایروال را فعال کنید.
آیا باید پورت SSH را عوض کنم؟
نویز لاگ را کم میکند اما امنیت واقعی نیست. کلیدها و فایروال بسیار مهمترند.