افزایش امنیت سرور لینوکسی

آموزش افزایش امنیت سرور لینوکسی (چک‌لیست کامل و گام‌به‌گام)

آموزش گام‌به‌گام افزایش امنیت سرور لینوکسی

هر سروری که به اینترنت متصله، هدف دائمی رباتها و اسکنرهای خودکاره که دنبال پورت‌های باز و رمزهای ضعیف می‌گردن. خبر خوب اینه که با چند تنظیم اصولی می‌تونید بخش بزرگی از این ریسک رو از بین ببرید. در این مقاله یک چک‌لیست عملی و گام‌به‌گام برای افزایش امنیت سرور لینوکسی (Ubuntu/CentOS/Debian) رو با هم مرور می‌کنیم.

۱. غیرفعال کردن ورود مستقیم root

اجازه ندید کسی مستقیم با کاربر root وارد سرور بشه. یک کاربر عادی با دسترسی sudo بسازید:

adduser myuser
usermod -aG sudo myuser

سپس فایل تنظیمات SSH رو باز کنید و ورود root رو غیرفعال کنید:

sudo nano /etc/ssh/sshd_config
# این خط رو پیدا و ویرایش کنید:
PermitRootLogin no

۲. استفاده از کلید SSH به‌جای رمز عبور

ورود با کلید (Key-based Authentication) به‌مراتب امن‌تر از رمز عبوره چون در برابر حملات Brute-force عملاً غیرقابل نفوذه.

# روی کامپیوتر خودتون (نه سرور):
ssh-keygen -t ed25519

# انتقال کلید عمومی به سرور:
ssh-copy-id myuser@server-ip

بعد از تست موفق ورود با کلید، ورود با رمز عبور رو کاملاً غیرفعال کنید:

sudo nano /etc/ssh/sshd_config
PasswordAuthentication no

تنظیم ورود امن به سرور لینوکسی با کلید SSH

۳. تغییر پورت پیش‌فرض SSH

بیشتر ربات‌های اسکنر فقط پورت ۲۲ رو چک می‌کنن. تغییر پورت به یک عدد دلخواه (مثلاً ۲۲۲۲) باعث کاهش چشمگیر تلاش‌های خودکار می‌شه (این کار جایگزین امنیت واقعی نیست، ولی نویز حملات رو کم می‌کنه):

sudo nano /etc/ssh/sshd_config
Port 2222

sudo systemctl restart sshd

⚠️ قبل از قطع اتصال فعلی، حتماً با یک ترمینال جدید و پورت جدید تست کنید که وصل می‌شید، وگرنه ممکنه از سرور قفل بشید.

۴. فعال‌سازی فایروال

فقط پورت‌هایی که واقعاً لازمشون دارید (SSH, HTTP, HTTPS) رو باز بذارید. برای Ubuntu/Debian از UFW استفاده کنید:

sudo ufw allow 2222/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
sudo ufw status

برای CentOS/RHEL از firewalld:

sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

۵. نصب Fail2Ban برای مسدودسازی خودکار IPهای مشکوک

Fail2Ban به‌صورت خودکار IPهایی که چندبار تلاش ناموفق برای ورود داشتن رو برای مدتی مسدود می‌کنه:

sudo apt install fail2ban -y   # یا: sudo yum install fail2ban -y
sudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd

مسدودسازی خودکار حملات با نصب Fail2Ban روی سرور

۶. به‌روزرسانی منظم سیستم

بسیاری از حملات موفق از آسیب‌پذیری‌های شناخته‌شده‌ای استفاده می‌کنن که وصله امنیتی‌شون از قبل منتشر شده. به‌روزرسانی خودکار رو فعال کنید:

# Ubuntu/Debian
sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure unattended-upgrades

# CentOS/RHEL/Rocky/Alma
sudo dnf install dnf-automatic -y
sudo systemctl enable --now dnf-automatic.timer

۷. محدود کردن دسترسی دیتابیس

اگه سرویس دیتابیسی مثل MySQL/MariaDB دارید، مطمئن بشید فقط از localhost یا IPهای مشخص قابل دسترسیه، نه از کل اینترنت:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
bind-address = 127.0.0.1

۸. مانیتورینگ و بکاپ منظم

  • از ابزارهایی مثل Netdata یا Grafana برای مانیتور کردن مصرف منابع و فعالیت‌های غیرعادی استفاده کنید.
  • بکاپ خودکار و منظم (روزانه/هفتگی) از دیتابیس و فایل‌های مهم بگیرید و در محلی جدا از سرور اصلی نگه دارید.
  • لاگ‌های سرور (/var/log/auth.log یا /var/log/secure) رو هر از گاهی بررسی کنید.

مانیتورینگ منابع سرور و بکاپ‌گیری منظم برای امنیت بیشتر

جمع‌بندی

امنیت سرور یک اقدام یک‌باره نیست، بلکه یک فرآیند مداومه. با پیاده‌سازی این ۸ مورد — از غیرفعال کردن ورود root و استفاده از کلید SSH گرفته تا فایروال، Fail2Ban، به‌روزرسانی خودکار و بکاپ منظم — سطح امنیت سرور شما به‌طور چشمگیری بالا می‌ره و ریسک نفوذ و از دست رفتن اطلاعات به حداقل می‌رسه.

اگه نیاز به سرور امن و پایدار یا مشاوره تخصصی برای سخت‌سازی (Hardening) زیرساخت سرورتون دارید، همین حالا با تیم پشتیبانی ما در تماس باشید.