فصل ۵: امنیت شبکه
مدل OSI، انواع فایروال (packet، stateful، NGFW، WAF)، IDS/IPS با Snort و Suricata، VPN (IPsec، OpenVPN، WireGuard)، DMZ، VLAN، DDoS، امنیت DNS و پیکربندی UFW.
مدل OSI و محل وقوع حملات
مدل مرجع OSI (Open Systems Interconnection) هفت لایه دارد. شناخت این لایهها به این دلیل اهمیت دارد که هر حمله در لایهای مشخص رخ میدهد و دفاع آن لایه متفاوت است.
| لایه | نام | مثال داده | نمونه حمله |
|---|---|---|---|
| ۷ | Application | HTTP, DNS, SMTP | SQL Injection, XSS |
| ۶ | Presentation | TLS, JPEG | Downgrade attack |
| ۵ | Session | NetBIOS, RPC | Session Hijacking |
| ۴ | Transport | TCP, UDP | SYN Flood, Port Scan |
| ۳ | Network | IP, ICMP | IP Spoofing, Smurf |
| ۲ | Data Link | Ethernet, ARP | ARP Spoofing, MAC Flood |
| ۱ | Physical | کابل، Wi-Fi | Tap کابل، Jamming |
بیش از ۷۰ درصد حملات در لایهٔ ۷ رخ میدهد، اما نفوذگر برای رسیدن به آن معمولاً باید از لایههای پایینتر عبور کند.
فایروالها
فایروال اولین خط دفاعی در مرز شبکه است. چهار نسل اصلی:
۱. Packet Filtering
هر بسته را مستقل بررسی میکند (IP، پورت، پروتکل). سریع اما محدود؛ نمیتواند state ارتباط را ببیند. مثال: iptables اولیه.
۲. Stateful Inspection
جدول وضعیت اتصالها را نگه میدارد؛ میداند که بستهٔ فعلی بخش از کدام جلسه است. اکثر فایروالهای امروزی حداقل stateful هستند. مثال: nftables، UFW.
۳. Next-Generation Firewall (NGFW)
ترکیب stateful با DPI (Deep Packet Inspection)، IPS و awareness اپلیکیشن. میتواند بگوید «این ترافیک Telegram است حتی اگر روی پورت ۴۴۳ باشد». مثال: Palo Alto، Fortinet، Check Point.
۴. Web Application Firewall (WAF)
لایهٔ ۷ تخصصی برای HTTP. الگوهای حمله مانند SQLi، XSS و bot را شناسایی میکند. مثال: Cloudflare، ModSecurity، AWS WAF.
عمق دفاعی (Defense in Depth)
هرگز فقط به یک لایه فایروال تکیه نکنید. ترکیب NGFW در مرز + WAF مقابل اپلیکیشن + host firewall روی سرور، اصل «عمق دفاعی» را پیاده میکند. اگر مهاجم یک لایه را شکست دهد، لایهٔ بعدی هنوز فریاد میزند.
IDS و IPS
- IDS (Intrusion Detection System): ترافیک را passively مانیتور میکند و هشدار میدهد.
- IPS (Intrusion Prevention System): ترافیک را inline مانیتور میکند و میتواند بستهٔ مخرب را رد کند.
ابزارهای شناختهشده
| ابزار | نوع | ویژگی |
|---|---|---|
| Snort | IDS/IPS | قوانین مبتنی بر signature، قدیمی و پایدار |
| Suricata | IDS/IPS | چندنخی، سریع، پشتیبانی از protocol parsing |
| Zeek (Bro) | IDS | تحلیلگر ترافیک، لاگنویسی دقیق، مناسب تحقیقات |
نمونه قانون Snort برای تشخیص brute-force روی SSH:
alert tcp any any -> $HOME_NET 22 (msg:"SSH brute force attempt"; \
detection_filter:track by_src, count 5, seconds 60; \
sid:1000001; rev:1;)VPN — دسترسی امن از راه دور
VPN تونل رمزگذاریشدهای بین دو نقطه ایجاد میکند. سه پروتکل اصلی:
IPsec
استاندارد IETF، پشتیبانی همهجانبه از روترها و فایروالها. دو حالت اصلی:
- Transport: فقط payload رمز میشود.
- Tunnel: کل بسته IP درون یک بستهٔ جدید رمز میشود.
پیچیده در پیکربندی اما سنگینمحور و پایدار برای site-to-site.
OpenVPN
مبتنی بر OpenSSL/TLS، پورت ۱۱۹۴ UDP یا TCP. قابلانعطاف، عبور از NAT، اما کمی کندتر.
WireGuard
نسل جدید: کد پایهٔ بسیار کوچک (حدود ۴۰۰۰ خط)، رمزنگاری Curve25519 + ChaCha20 + Poly1305، و سرعت بالاتر از IPsec و OpenVPN. در کرنل لینوکس از ۵.۶ ادغام شده.
# نصب WireGuard روی Ubuntu
sudo apt install wireguard
# تولید کلید خصوصی و عمومی
wg genkey | tee privatekey | wg pubkey > publickey
# پیکربندی سمت کلاینت /etc/wireguard/wg0.conf
[Interface]
PrivateKey = CLIENT_PRIVATE_KEY
Address = 10.0.0.2/24
DNS = 1.1.1.1
[Peer]
PublicKey = SERVER_PUBLIC_KEY
Endpoint = vpn.example.com:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25
# بالا آوردن تونل
sudo wg-quick up wg0
sudo wg showWireGuard و IP ثابت
WireGuard بهطور پیشفرض بیصدا است؛ یعنی تا بستهای از کلاینت نیاید، سرور پاسخی نمیدهد. این ویژگی برای شناساییپذیری عالی است اما برای troubleshooting چالشبرانگیز. PersistentKeepalive = 25 هر ۲۵ ثانیه یک keepalive میفرستد تا NAT mapping زنده بماند.
معماری DMZ
DMZ (Demilitarized Zone) یک زیرشبکهٔ ایزوله است که سرویسهای رو به اینترنت (مانند وبسرور، ایمیل) در آن قرار میگیرند. اگر مهاجم وبسرور را نفوذ دهد، هنوز فایروال داخلی بین DMZ و شبکهٔ داخلی وجود دارد.
[اینترنت]
|
[فایروال خارجی]
|
[DMZ: web, mail, DNS]
|
[فایروال داخلی]
|
[شبکه داخلی: دیتابیس, ERP, HR]تجزیهبندی شبکه و VLAN
VLAN (Virtual LAN) یک شبکهٔ فیزیکی را به چند شبکهٔ منطقی تقسیم میکند. اصل کمینهدسترسیِ شبکهای میگوید: «اگر دو سیستم نیازی به صحبت با هم ندارند، باید در VLAN جدا باشند.»
VLANهای رایج سازمانی:
- VLAN 10: کاربران
- VLAN 20: سرورها
- VLAN 30: مدیریت (iLO, IPMI)
- VLAN 40: مهمانان
- VLAN 99: ترافیک صوتی (VoIP)
برای مسیریابی بین VLANها از L3 switch یا فایروال استفاده کنید تا کنترل دقیق ACL اعمال شود.
حملات DDoS و کاهش
DDoS (Distributed Denial of Service) هدف آن فلج کردن سرویس با ارسال حجم عظیم ترافیک از منابع توزیعشده است. سه دستهٔ اصلی:
- Volumetric: اشباع پهنای باند (UDP flood, amplification).
- Protocol: سوءاستفاده از handshake پروتکل (SYN flood, Smurf).
- Application Layer: شبیهسازی ترافیک واقعی (HTTP flood, Slowloris).
راههای کاهش
- CDN و Anycast: Cloudflare، Akamai، AWS Shield ترافیک را در نقاط جهانی پخش میکنند.
- Rate Limiting: محدودیت درخواست از هر IP.
- SYN Cookies: دفاع کرنل در برابر SYN flood.
- Blackhole Routing: مسیریابی ترافیک مهاجم به null.
امنیت DNS
DNS بهطور پیشفرض روی پورت ۵۳ UDP و بهصورت متنی است؛ یعنی شنودگر میتواند سوال و پاسخ را ببیند و جعل کند. سه گسترش امنیتی:
- DNSSEC: امضای دیجیتال روی رکوردها با زنجیرهٔ اعتماد از root. جلوگیری از DNS spoofing.
- DoH (DNS over HTTPS): سوال DNS روی HTTPS رمزگذاری میشود. پورت ۴۴۳.
- DoT (DNS over TLS): سوال DNS روی TLS. پورت ۸۵۳.
DNS در ایران
در شبکههای داخلی ایران، فیلترینگ DNS و پاسخهای جعلی میتواند باعث redirect به صفحات ثبتی شود. استفاده از DoH با ارائهدهندهٔ معتبر (مانند Cloudflare 1.1.1.1 یا Quad9) هم امنیت و هم دسترسی بهتر را فراهم میکند.
تمرین عملی: پیکربندی UFW
UFW (Uncomplicated Firewall) رابط سادهای برای iptables/nftables در اوبونتو و دبیان است. سناریو: سرور وب با SSH، HTTP و HTTPS.
# تنظیم پیشفرض
sudo ufw default deny incoming
sudo ufw default allow outgoing
# اجازه SSH (اگر روی پورت پیشفرض است)
sudo ufw allow 22/tcp
# اگر SSH را روی پورت غیراستاندارد گذاشتهاید
sudo ufw allow 2222/tcp
# اجازه HTTP و HTTPS
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# محدود کردن SSH به یک IP خاص (امنتر)
sudo ufw allow from 192.168.1.0/24 to any port 22 proto tcp
# فعالسازی
sudo ufw enable
# Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
# مشاهدهٔ وضعیت با شماره قانونها
sudo ufw status verbose
sudo ufw status numbered
# حذف یک قانون با شماره
sudo ufw delete 3قفلکردن خودتان بیرون
قبل از فعالسازی فایروال روی سرور راه دور، حتماً قانون SSH را اضافه کنید. اگر SSH را مسدود کنید، دسترسی خود را به سرور از دست میدهید و باید بهصورت فیزیکی یا از کنسول کلاد وارد شوید. یک ترفند: cron job بگذارید که فایروال را بعد از ۵ دقیقه غیرفعال کند تا اگر اشتباه کردید، دسترسی برگردد.
پورتهای رایج و پیامد امنیتی
| پورت | سرویس | توصیه |
|---|---|---|
| ۲۲ | SSH | فقط با کلید، غیرفعالکردن root login، تغییر پورت اختیاری |
| ۲۳ | Telnet | هرگز استفاده نشود؛ رمزگذاری ندارد |
| ۲۵ | SMTP | محدود به سرور ایمیل؛ DKIM/SPF فعال |
| ۵۳ | DNS | DNSSEC و rate limiting |
| ۸۰ | HTTP | redirect به HTTPS |
| ۴۴۳ | HTTPS | TLS 1.3، HSTS |
| ۳۳۸۹ | RDP | هرگز روی اینترنت باز نشود؛ VPN + MFA |
| ۳۳۰۶ | MySQL | فقط روی شبکهٔ داخلی |
خلاصه و گام بعدی
در این فصل با مدل OSI، انواع فایروال، IDS/IPS، VPN، DMZ، VLAN، DDoS و امنیت DNS آشنا شدید. ترکیب این کنترلها یک دفاع لایهلایه میسازد که مهاجم باید هر لایه را شکست دهد. بهخاطر داشته باشید که بهترین فایروالها هم اگر پیکربندی نشوند، بیفایدهاند؛ اصل کمینهدسترسی را همیشه اعمال کنید.
در فصل بعد با OWASP Top 10 آشنا میشوید؛ فهرست ده آسیبپذیری بحرانی در اپلیکیشنهای وب.
این صفحه در تاریخ ۸ تیر ۱۴۰۵ بهروزرسانی شده است.