۱۰ راه ساده برای امنکردن لینوکس
با این راهنما، لینوکست را در ۱۰ قدم ساده امنتر کن
– مقدمه:
این ۱۰ قدم، ساده و عملی نوشته شده تا هر تازهکاری بتواند لینوکس را امنتر کند.
– همیشه آپدیت باش:
چرا: چون حفرههای امنیتی با آپدیت بسته میشن. اگر سیستم یا پکیجها بهروز نباشن، هکرها میتونن از باگهای شناختهشده سوءاستفاده کنن.
چهکار کنیم:
# 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 استفاده کن.