۱۰ راه ساده برای امن‌کردن لینوکس

با این راهنما، لینوکست را در ۱۰ قدم ساده امن‌تر کن

– مقدمه:

این ۱۰ قدم، ساده و عملی نوشته شده تا هر تازه‌کاری بتواند لینوکس را امن‌تر کند. 

– همیشه آپدیت باش:

چرا: چون حفره‌های امنیتی با آپدیت بسته می‌شن. اگر سیستم یا پکیج‌ها به‌روز نباشن، هکرها می‌تونن از باگ‌های شناخته‌شده سوءاستفاده کنن. 


چه‌کار کنیم:

# Ubuntu/Debian:

sudo apt update && sudo apt upgrade -y

sudo apt install unattended-upgrades -y

# RHEL/Fedora:

 

sudo dnf upgrade -y

پیشنهاد: سرویس «unattended-upgrades» رو فعال کن تا آپدیت‌های امنیتی به‌صورت خودکار نصب بشن.

– همیشه با کاربر عادی کار کن (نه root)

 چرا: اجرای دستورات اشتباه با کاربر root می‌تونه کل سیستم رو نابود کنه.

کاربر معمولی سطح دسترسی محدودی داره و امن‌تره.


چه‌کار کنیم:

# Ubuntu/Debian:

sudo adduser myuser

sudo usermod -aG sudo myuser

 

# RHEL/Fedora:

sudo adduser myuser

sudo passwd myuser

sudo usermod -aG wheel myuser

 

سپس با su - myuser وارد شو و کارهات رو با sudo انجام بده.

– SSH فقط با کلید، نه پسورد

چرا: پسورد راحت حدس زده می‌شن؛ کلیدهای SSH غیرقابل حدس هستن و با رمز خصوصی در سیستم خودت محافظت می‌شن.

چه‌کار کنیم:

# کلاینت:

ssh-keygen -t ed25519

ssh-copy-id myuser@SERVER_IP

# سرور:

sudo nano /etc/ssh/sshd_config

 

Just do these settings #

 PermitRootLogin no

PasswordAuthentication no

PubkeyAuthentication yes

 

sudo systemctl restart ssh or sshd

 

نکته: قبل از غیرفعال‌کردن پسورد، مطمئن شو که ورود با کلید واقعاً کار می‌کنه.

– فایروال را روشن کن

چرا: فقط پورت‌هایی که واقعاً نیاز داری باز می‌مونن.

چه‌کار کنیم:

# Ubuntu/Debian:

sudo apt install ufw -y

sudo ufw default deny incoming

sudo ufw default allow outgoing

sudo ufw allow OpenSSH

sudo ufw allow 80,443/tcp

sudo ufw enable

 

# RHEL/Fedora:

sudo systemctl enable –now firewalld

sudo firewall-cmd –permanent –add-service=ssh

sudo firewall-cmd –permanent –add-service=http –add-service=https

sudo firewall-cmd –reload

 

– نصب Fail2ban

چرا: بعد از چند تلاش لاگین اشتباه، IP مهاجم بلاک می‌شه.


چه‌کار کنیم:

# Ubuntu/Debian:

sudo apt install fail2ban -y

sudo systemctl enable –now fail2ban

sudo fail2ban-client status

 

# RHEL/Fedora:

sudo dnf install fail2ban -y

sudo systemctl enable –now fail2ban

 

پیشنهاد: می‌تونی فایل /etc/fail2ban/jail.local رو ویرایش کنی تا تعداد تلاش‌ها و زمان بلاک رو تنظیم کنی.

– سرویس‌های اضافی را ببند

چرا: هر سرویسِ غیرضروری، دروازه‌ای باز برای حمله‌ست.


چه‌کار کنیم:

sudo ss -tulpen

systemctl –type=service –state=running

sudo systemctl disable –now servicename

sudo apt purge packagename -y

or

sudo dnf remove packagename -y

 

پیشنهاد: همیشه سرویس‌هایی مثل FTP، Telnet، یا NFS رو اگر استفاده نمی‌کنی، حذف کن.

– مجوز فایل‌ها را اصلاح کن

چرا: فایل‌های حساس (مثل کلید SSH یا پیکربندی‌های امنیتی) نباید برای بقیه قابل‌دسترسی باشن.

چه‌کار کنیم:

chmod 700 ~/.ssh

chmod 600 ~/.ssh/authorized_keys

sudo chown root:root /etc/ssh/sshd_config

sudo chmod 600 /etc/ssh/sshd_config

 

بررسی فایل‌های ناامن:

sudo find / -xdev -type f -perm -0002 -ls 2>/dev/null

 

– AppArmor یا SELinux را فعال نگه دار

چرا: این‌ها سیستم‌های امنیتی اجباری هستن که جلوی دسترسی‌های غیرمجاز حتی در سطح root رو می‌گیرن.


چه‌کار کنیم:

# Ubuntu/Debian:

sudo aa-status

 

# RHEL/Fedora:

getenforce

sudo setenforce 1

sudo sed -i ‘s/^SELINUX=.*/SELINUX=enforcing/’ /etc/selinux/config

 

پیشنهاد: اگر نرم‌افزاری به خاطر SELinux ارور می‌ده، اون رو درست کانفیگ کن، نه اینکه SELinux رو خاموش کنی.

– لاگ‌ها را چک کن

چرا: لاگ‌ها اولین منبع هشدار در حمله یا خطا هستن.
چه‌کار کنیم:

sudo journalctl -xe

sudo tail -f /var/log/auth.log   # Ubuntu/Debian

sudo tail -f /var/log/secure     # RHEL/Fedora

 

گزارش روزانهٔ ساده:

sudo apt install logwatch -y

or

sudo dnf install logwatch -y

sudo logwatch –output stdout –range today

 

پیشنهاد: خروجی Logwatch را به ایمیل روزانه ارسال کن.

– بکاپ بگیر و بازیابی را تست کن

چرا: بکاپی که تست نشده، بکاپ نیست!


چه‌کار کنیم:

sudo rsync -aAXHv –delete /etc /home /var/www /backups/$(date +%F)/

 

زمان‌بندی با cron:

sudo crontab -e

۳۰ ۲ * * * rsync -aAXHv –delete /etc /home /var/www /backups/$(date +\%F)/

 

پیشنهاد: حداقل هفته‌ای یک بار بازیابی بکاپ را روی محیط تست امتحان کن.

– چک‌لیست فوق‌سریع

sudo apt update && sudo apt upgrade -y

sudo adduser myuser && sudo usermod -aG sudo myuser

ssh-keygen -t ed25519 && ssh-copy-id myuser@SERVER_IP

sudo ufw enable && sudo ufw allow OpenSSH && sudo ufw allow 80,443/tcp

sudo apt install fail2ban -y && sudo systemctl enable –now fail2ban

sudo ss -tulpen

chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys

sudo aa-status  # یا getenforce

sudo rsync -aAXHv –delete /etc /home /var/www /backups/$(date +%F)/

 

– نکات خیلی مهم

  • قبل از بستن ورود پسوردی SSH، ورود با کلید رو تست کن.

  • همیشه بعد از تغییر پورت SSH، فایروال رو هم تنظیم کن.

  • فقط چیزهایی که نیاز داری نصب کن.

  • HTTPS (با Let’s Encrypt) برای هر سایت الزامی‌ست.

  • برای سرورهای حساس، از احراز هویت دومرحله‌ای (۲FA) برای SSH استفاده کن.

دیدگاه‌ خود را بنویسید

پیمایش به بالا