## 🔐 ۲۵ نکتهی امنیتی برای افزایش امنیت سرور لینوکس
مدیریت سرور لینوکس تنها محدود به نصب سرویسها نیست، بلکه محافظت از سرور در برابر تهدیدات داخلی و خارجی نیز اهمیت بالایی دارد. در ادامه ۲۵ توصیه امنیتی برای افزایش امنیت سرور لینوکس را بررسی میکنیم.
---
### 🔒 ۱. بروزرسانی مداوم سیستم
همیشه سیستم عامل و پکیجها را بروزرسانی کنید:
```bash
sudo apt update && sudo apt upgrade # Debian/Ubuntu
sudo dnf update # RHEL/CentOS 8+
```
---
### 🧑💻 ۲. غیرفعالکردن ورود روت (Root Login)
فایل `/etc/ssh/sshd_config` را ویرایش کرده و مقدار زیر را تغییر دهید:
```bash
PermitRootLogin no
```
---
### 📛 ۳. استفاده از SSH Key به جای رمز عبور
از کلیدهای عمومی/خصوصی برای ورود امن استفاده کنید.
```bash
ssh-keygen
ssh-copy-id user@server
```
---
### 🔢 ۴. تغییر پورت پیشفرض SSH
در `/etc/ssh/sshd_config` مقدار `Port` را تغییر دهید:
```bash
Port 2222
```
---
### 🚫 ۵. محدودسازی دسترسی SSH با `AllowUsers`
```bash
AllowUsers user1 user2
```
---
### 🔐 ۶. نصب و پیکربندی فایروال (UFW یا Firewalld)
مثال برای UFW:
```bash
sudo ufw default deny incoming
sudo ufw allow 22/tcp
sudo ufw enable
```
---
### 🚫 ۷. غیرفعالسازی سرویسهای غیرضروری
```bash
sudo systemctl stop service
sudo systemctl disable service
```
---
### 🕵️ ۸. بررسی پورتهای باز با `netstat` یا `ss`
```bash
sudo ss -tuln
```
---
### 👁 ۹. مانیتورینگ لاگها با ابزارهایی مثل `logwatch`, `logrotate` یا `journalctl`
---
### 🧱 ۱۰. استفاده از ابزار امنیتی `fail2ban`
برای جلوگیری از حملات brute-force:
```bash
sudo apt install fail2ban
```
---
### 🔒 ۱۱. استفاده از SELinux یا AppArmor
برای محدود کردن سطح دسترسی فرآیندها:
```bash
getenforce # وضعیت SELinux
```
---
### 🔍 ۱۲. نصب و پیکربندی ابزارهای مانیتورینگ (مانند Zabbix، Nagios)
---
### 🧹 ۱۳. حذف کاربران و گروههای غیرضروری
```bash
sudo deluser username
sudo delgroup groupname
```
---
### 📄 ۱۴. اعمال مجوزهای فایل مناسب
```bash
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
```
---
### 👤 ۱۵. استفاده از حسابهای غیر روت برای اجرای سرویسها
---
### 🧑🔬 ۱۶. فعال کردن auditing (بررسی فعالیتهای کاربر)
```bash
sudo apt install auditd
sudo systemctl enable auditd
```
---
### 💡 ۱۷. پشتیبانگیری منظم از تنظیمات و دادهها
---
### 📦 ۱۸. بررسی صحت فایلها با `AIDE` یا `Tripwire`
```bash
sudo apt install aide
sudo aideinit
```
---
### 🛑 ۱۹. تنظیم محدودیتهای کاربر در `/etc/security/limits.conf`
---
### 🧭 ۲۰. استفاده از NTP امن برای زمان سیستم
```bash
sudo timedatectl set-ntp true
```
---
### 🔍 ۲۱. بررسی تغییرات در فایلهای سیستمی با `inotify` یا ابزار مشابه
---
### 🔐 ۲۲. رمزنگاری پارتیشنها و دادهها با `LUKS`
---
### 📦 ۲۳. غیرفعال کردن USB در سرورهای فیزیکی
```bash
echo "blacklist usb-storage" > /etc/modprobe.d/usbblock.conf
```
---
### 🔑 ۲۴. تنظیم رمز عبور قوی و expiration policy
```bash
chage -l username
```
---
### 🚫 ۲۵. محدودسازی sudo برای کاربران خاص
در فایل `/etc/sudoers`:
```bash
user1 ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx
```