## 🔥 آموزش راهاندازی فایروال در لینوکس با iptables – گام به گام
`iptables` یکی از قویترین ابزارهای خط فرمان برای **ایجاد و مدیریت فایروال در لینوکس** است. در این راهنما، از اصول پایه تا پیکربندی عملی یک فایروال ایمن را با هم طی خواهیم کرد.
---
## 🧱 مرحله ۱: آشنایی با مفاهیم اولیه
قبل از راهاندازی، باید با چند اصطلاح مهم آشنا شوید:
### زنجیرههای اصلی (Chains):
| زنجیره | توضیح |
| --------- | ------------------------------------------------- |
| `INPUT` | بستههایی که به سیستم وارد میشوند |
| `OUTPUT` | بستههایی که از سیستم خارج میشوند |
| `FORWARD` | بستههایی که از سیستم عبور میکنند (در حالت روتر) |
### سیاستها (Policies):
سیاست پیشفرض هر زنجیره میتواند یکی از موارد زیر باشد:
* `ACCEPT`: قبول همه
* `DROP`: رد همه
* `REJECT`: رد با پیام بازگشتی
---
## ⚙️ مرحله ۲: پاکسازی قوانین پیشین
برای اطمینان از شروع از پایه:
```bash
sudo iptables -F
sudo iptables -X
sudo iptables -t nat -F
sudo iptables -t nat -X
```
---
## 🚧 مرحله ۳: تعیین سیاستهای پیشفرض
```bash
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT
```
توضیح:
* تمام ورودیها و فوروادها را مسدود میکنیم.
* خروجیها مجاز هستند (برای نصب بستهها، آپدیت، و غیره).
---
## ✅ مرحله ۴: اجازهدادن به ترافیک مجاز
### اجازه به ارتباطات موجود و مرتبط:
```bash
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
```
### اجازه به پورت لوکال (localhost):
```bash
sudo iptables -A INPUT -i lo -j ACCEPT
```
### اجازه به SSH (مدیریت از راه دور):
```bash
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
```
### اجازه به HTTP و HTTPS:
```bash
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
```
---
## 🧪 مرحله ۵: مشاهده و بررسی قوانین
```bash
sudo iptables -L -v --line-numbers
```
---
## 💾 مرحله ۶: ذخیرهسازی پیکربندی
### در Debian/Ubuntu:
```bash
sudo apt install iptables-persistent
sudo netfilter-persistent save
```
### در CentOS/RHEL:
```bash
sudo yum install iptables-services
sudo service iptables save
```
یا:
```bash
sudo iptables-save > /etc/sysconfig/iptables
```
---
## 🔁 مرحله ۷: بازنشانی خودکار در بوت
### Debian/Ubuntu:
```bash
sudo systemctl enable netfilter-persistent
```
### CentOS/RHEL:
```bash
sudo systemctl enable iptables
```
---
## 🧱 مثال: راهاندازی فایروال ایمن فقط با دسترسی SSH و وب
```bash
sudo iptables -F
sudo iptables -P INPUT DROP
sudo iptables -P OUTPUT ACCEPT
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
```
---
## 🎯 نتیجهگیری
با راهاندازی صحیح `iptables`، میتوانید امنیت سیستم لینوکسی خود را به طور چشمگیری افزایش دهید. این ابزار دقیق، انعطافپذیر و قدرتمند است؛ اما باید با دقت پیکربندی شود تا دسترسیهای حیاتی مثل SSH از بین نرود.