#security_time
🔥 فایروال لینوکس — قسمت ۳/۳
رسیدیم به
firewalld.اگر با:
Rocky Linux
RHEL
Fedora
CentOS
کار کرده باشی، احتمالاً
firewalld را زیاد دیدهای.اینجا هم مستقیم میریم سراغ دستورها 👇
━━━━━━━━━━━━━━━━━━
🔥 وضعیت Firewall:
sudo firewall-cmd --state
🔎 Zoneهای فعال:
sudo firewall-cmd --get-active-zones
🔎 Zone پیشفرض:
sudo firewall-cmd --get-default-zone
🔎 همه تنظیمات Zone:
sudo firewall-cmd --list-all
━━━━━━━━━━━━━━━━━━
🟢 فعال کردن:
sudo systemctl enable --now firewalld
🔴 متوقف کردن:
sudo systemctl disable --now firewalld
━━━━━━━━━━━━━━━━━━
➕ باز کردن پورت:
sudo firewall-cmd \
--add-port=80/tcp \
--permanent
بعد:
sudo firewall-cmd --reload
➕ باز کردن SSH:
sudo firewall-cmd \
--add-service=ssh \
--permanent
sudo firewall-cmd --reload
🔎 سرویسهای موجود:
sudo firewall-cmd --get-services
━━━━━━━━━━━━━━━━━━
❌ حذف پورت:
sudo firewall-cmd \
--remove-port=80/tcp \
--permanent
sudo firewall-cmd --reload
❌ حذف Service:
sudo firewall-cmd \
--remove-service=http \
--permanent
━━━━━━━━━━━━━━━━━━
🔎 دیدن Ruleهای فعلی:
sudo firewall-cmd --list-all
🔎 دیدن پورتها:
sudo firewall-cmd --list-ports
🔎 دیدن Serviceها:
sudo firewall-cmd --list-services
━━━━━━━━━━━━━━━━━━
🔥 حالا قسمت جذاب:
RICH RULE
فرض کنیم Node Exporter روی پورت
9100 اجرا شده.میخواهیم فقط Prometheus با IP زیر بتواند به آن دسترسی داشته باشد:
172.25.3.56
Rule:
sudo firewall-cmd --permanent \
--add-rich-rule='rule family="ipv4" \
source address="172.25.3.56" \
port port="9100" protocol="tcp" accept'
بعد:
sudo firewall-cmd --reload
🔎 بررسی:
sudo firewall-cmd --list-rich-rules
━━━━━━━━━━━━━━━━━━
❌ حالا میتوانیم سایر دسترسیها را Drop کنیم:
sudo firewall-cmd --permanent \
--add-rich-rule='rule family="ipv4" \
port port="9100" protocol="tcp" drop'
sudo firewall-cmd --reload
یعنی:
172.25.3.56 ───────► :9100 ✅
Other IPs ─────────► :9100 ❌
━━━━━━━━━━━━━━━━━━
❌ حذف Rich Rule:
اول Ruleها را ببین:
sudo firewall-cmd --list-rich-rules
بعد همان Rule را با
--remove-rich-rule حذف کن:sudo firewall-cmd --permanent \
--remove-rich-rule='rule family="ipv4" \
source address="172.25.3.56" \
port port="9100" protocol="tcp" accept'
و:
sudo firewall-cmd --reload
━━━━━━━━━━━━━━━━━━
🧠 جمعبندی:
Ubuntu / Debian:
UFW
↓
iptables / nftables
Rocky / RHEL / Fedora:
firewalld
↓
nftables
و برای کنترل مستقیمتر:
nftables
و برای یادگیری و کار با سیستمهای قدیمیتر:
iptables
📌 قانون طلایی:
❌ همزمان UFW و firewalld را مدیریت نکن.
❌ روی یک سرور، بدون اینکه دقیقاً بدانی چه اتفاقی میافتد، Ruleهای دستی
iptables را با UFW/firewalld قاطی نکن.🔥 Firewall خوب یعنی:
«فقط چیزی که لازم است باز باشد.»
نه اینکه:
«همهچیز را باز کنیم و امیدوار باشیم کسی پیدایش نکند.»
@things_to_know_channel