امنیت

۱۰ قدم حیاتی امنیت سرور لینوکس — درست بعد از تحویل سرور

هر سروری که آی‌پی عمومی دارد، از همان دقیقه‌ی اول زیر رگبار ربات‌هایی است که رمز حدس می‌زنند و پورت می‌کاوند. خبر خوب: با ده قدمِ زیر — که اجرای همه‌شان یک بعدازظهر هم نمی‌گیرد — سرورتان از هدفی آسان به دژی خسته‌کننده برای مهاجم تبدیل می‌شود.

۱) سیستم را به‌روز کنید — همین اول

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۵ دقیقه
کاربر sudoadduser۲ دقیقه
کلید SSH + بستن رمزssh-keygen, sshd_config۱۰ دقیقه
پورت جدید SSHsshd_config۲ دقیقه
فایروالUFW۵ دقیقه
ضد حدس رمزFail2ban۵ دقیقه
حذف سرویس اضافهss, systemctl۱۰ دقیقه
بکاپافزودنی بکاپ / cron۱۰ دقیقه
لاگ‌خوانیjournalctlمستمر
مانیتورینگپنل + سرویس آپتایم۵ دقیقه

سخن آخر

امنیت مقصد نیست، عادت است — اما همین ده قدم، شما را از «هدف آسانِ اسکریپت‌های خودکار» خارج می‌کند؛ و این یعنی حذف بخش عمده‌ی ریسک واقعی. سرور بعدی‌تان را که ساختید، این صفحه را باز کنید و از بالا تا پایین تیک بزنید. قدم بعدی؟ وب‌سایت‌تان را با Nginx و HTTPS بالا بیاورید.

آموزش‌های مرتبط

آماده‌ی تمرین عملی هستی؟

سرور ابری ساعتی مهران هاست در ۶۰ ثانیه تحویل می‌شود — تمرین کن، و فقط بابت همان ساعت‌ها پرداخت کن.