## ✅ مقدمه
`FirewallD` یک ابزار قدرتمند مدیریت فایروال در لینوکس است که بهصورت **داینامیک** عمل کرده و به شما این امکان را میدهد که بدون ریاستارت فایروال، قوانین را اعمال یا حذف کنید. در این مقاله، مجموعهای از **دستورات و قوانین مهم، پرکاربرد و مفید** برای مدیریت امنیت سرور را ارائه میدهیم.
---
## 🧰 بررسی وضعیت و اطلاعات اولیه
```bash
sudo firewall-cmd --state # بررسی فعال بودن فایروال
sudo firewall-cmd --get-default-zone # نمایش zone پیشفرض
sudo firewall-cmd --list-all # نمایش سرویسها و قوانین فعال در zone فعلی
sudo firewall-cmd --list-all-zones # لیست همه zoneها و تنظیمات آنها
```
---
## 🌐 قوانین پایه برای مدیریت دسترسی
### 1. **اجازه به پورت یا سرویس خاص**
```bash
sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --reload
```
### 2. **حذف دسترسی به پورت یا سرویس**
```bash
sudo firewall-cmd --permanent --remove-port=8080/tcp
sudo firewall-cmd --permanent --remove-service=http
sudo firewall-cmd --reload
```
---
## 🧱 نمونههای مهم سرویسها
| سرویس | توضیح |
| -------------- | ----------------------------- |
| `ssh` | برای اتصال امن از راه دور |
| `http` | پورت 80 – برای وب سرور |
| `https` | پورت 443 – برای ارتباط امن وب |
| `dns` | برای سرویس نام دامنه |
| `smtp` | ارسال ایمیل |
| `pop3`, `imap` | دریافت ایمیل |
---
## 🧠 قوانین پیشرفته (Rich Rules)
### 3. **محدود کردن دسترسی SSH فقط از IP خاص**
```bash
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.0.100" service name="ssh" accept'
```
### 4. **رد کردن تمام ترافیک از یک IP مشکوک**
```bash
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="203.0.113.45" drop'
```
### 5. **بستن دسترسی به یک پورت خاص برای کل اینترنت**
```bash
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" port port="3306" protocol="tcp" reject'
```
---
## 🔁 تغییر zone ها
### 6. **تغییر zone پیشفرض**
```bash
sudo firewall-cmd --set-default-zone=home
```
### 7. **تعیین zone برای یک رابط شبکه (interface)**
```bash
sudo firewall-cmd --permanent --zone=trusted --change-interface=eth1
sudo firewall-cmd --reload
```
---
## 🔐 بلاک کردن همه چیز و فقط اجازه دادن به موارد خاص
```bash
sudo firewall-cmd --permanent --set-default-zone=drop
sudo firewall-cmd --permanent --add-rich-rule='rule family=ipv4 service name=ssh accept'
sudo firewall-cmd --reload
```
---
## 🧪 تست سریع دستورات (بدون دائمیسازی)
```bash
sudo firewall-cmd --add-service=http # فقط تا ریاستارت بعدی
sudo firewall-cmd --runtime-to-permanent # اعمال قوانین فعلی به صورت دائمی
```
---
## 🧼 حذف قوانین اضافی
```bash
sudo firewall-cmd --permanent --remove-service=ftp
sudo firewall-cmd --permanent --remove-port=9000/tcp
sudo firewall-cmd --reload
```
---
## 🎯 نتیجهگیری
با استفاده از قوانین معرفیشده در این مقاله میتوانید بهصورت کامل و حرفهای امنیت سیستم لینوکسی خود را مدیریت و کنترل کنید. ترکیب **سرویسها، پورتها، rich rules و zoneها** یک ساختار قدرتمند و قابل تنظیم برای کنترل ترافیک ورودی و خروجی فراهم میکند.