| کانال امنیت و شبکه |: post #128 — TG.ME

🛡 راه‌اندازی فایروال عملی با iptables روی لینوکس

یکی از ساده‌ترین و در عین حال قدرتمندترین کارها برای بالا بردن امنیت سرور لینوکسی، تنظیم درست iptables است. روی خیلی از VPSها، پیش‌فرض تقریباً همه پورت‌ها باز است و همین یعنی یک سطح حمله خیلی بزرگ.

توی این پست، بر اساس داکیومنت رسمی کرنل لینوکس و راهنمای Arch & Debian، یک سناریوی واقعی رو می‌ریم جلو: سروری که فقط SSH و وب (HTTP/HTTPS) باید براش باز باشه و بقیه پورت‌ها Drop بشن.

🔥 ایده‌ی اصلی

تصور کن یک سرور Ubuntu/Debian داری که روی اینترنت پابلیکه:

• فقط پورت ۲۲ برای SSH
• پورت ۸۰ برای HTTP
• پورت ۴۴۳ برای HTTPS

بقیه‌ی ترافیک ورودی باید رد بشه، ولی اتصال‌های جاری (مثل SSH در حال استفاده) نباید قطع بشن. این دقیقاً کاریه که با iptables و stateful firewall انجام می‌دیم.

🔧 چند نکته قبل از شروع

• این کار نیاز به دسترسی root یا sudo داره.
• قبل از تغییرات جدی، بهتره یک جلسه SSH دوم باز نگه داری تا اگر اشتباهی همه چیز رو بستی، بتونی برگردونی.
• برای جزئیات بیشتر، از راهنمای iptables استفاده کن:
https://www.netfilter.org/documentation/index.html

📌 مثال واقعی: پالیسی امن پایه

کد زیر یک ست قانون ساده و کاربردیه:

sudo iptables -F
sudo iptables -X

# اجازه به ترافیک لوکال
sudo iptables -A INPUT -i lo -j ACCEPT

# اجازه به کانکشن‌های جاری و مرتبط
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

# اجازه به SSH روی پورت 22
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# اجازه به HTTP
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT

# اجازه به HTTPS
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

# Drop کردن بقیه ترافیک ورودی
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT


💡 این قوانین چه کار می‌کنند؟

• با ESTABLISHED,RELATED، فقط ترافیک مربوط به کانکشن‌های مجاز قبلی اجازه عبور می‌گیرند؛ این هم امن است، هم باعث نمی‌شود اتصال‌های فعلی‌ات قطع شوند.
lo را باز می‌گذاریم تا سرویس‌هایی که با خود سیستم حرف می‌زنند (مثل دیتابیس لوکال) از کار نیفتند.
• با DROP کردن پالیسی INPUT و FORWARD، عملاً فقط پورت‌هایی که صراحتاً Allow شده‌اند باز می‌مانند.

📝 چند نکته‌ی ریز ولی مهم

• بعد از تنظیم، با این دستور لیست قوانین را ببین:
sudo iptables -L -n -v


• برای دائمی نگه داشتن قوانین روی Debian/Ubuntu می‌توان از iptables-persistent استفاده کرد:
sudo apt-get install iptables-persistent
sudo netfilter-persistent save


• روی سیستم‌های جدیدتر، ممکن است nftables پیشنهاد شود، ولی هنوز خیلی از سرورها از iptables استفاده می‌کنند و دانستنش برای دیباگ و امنیت حیاتی است.

در یک سرور تست یا لابراتوار کوچک این تنظیم‌ها را امتحان کن، لاگ‌ها را چک کن و کم‌کم قوانین دقیق‌تر برای سرویس‌های خودت بساز. امنیت شبکه دقیقاً از همین قدم‌های کوچک و درست شروع می‌شود

🔖 #Security #امنیت #Linux #iptables #Firewall #Network_Security #Server_Hardening

👤 Developix

💎 Channel: @DevelopixNetwork
👍4❤3
March 24, 2026 1.4K 17