نکات و دستورات iptables

در این مقاله به معرفی يكي از ابزارهاي قدرتمند تصفيه كننده بسته ها به نام IPtables مي پردازيم. IPtables به عنوان نسل چهارم پياده سازي شده از ابزارهاي تصفيه كننده سيستم عامل لينوكس معرفي مي شود.نکاتی که در این مقاله آورده شده بر اساس تجربیات شخصی جمع آوری شده به همین سبب بیشتر از مطالب تئوریک کتابها میتواند مفید فایده واقع شود ضمن آنکه میتوان از آن به عنوان یک هندبوک ساده استفاده کرد.


نکته۱:

بعد از استفاده از دستورات iptables بدین صورت آنها را save می کنیم:

 

# iptables-save

 # service iptables save

بستن PING:

 

 # iptables -A OUTPUT -p icmp - j REJECT

# iptables -A INPUT -p icmp - j REJECT

و برای حذف این دستور چنین عمل می کنیم:

# iptables -D OUTPUT -p icmp -j REJECT

فعال کردن IP Forwarding:

 # echo "1" > /proc/sys/net/ipv4/ip_forward

برای Drop کردن درخواست IP خاص یا پورت خاص چنین عمل می کنیم:

.بستن پورت 23برای همه ip ها:

 # iptables -t nat -A POSTROUTING -o eth1 -p tcp -m tcp --dport 23 -j DROP

..بستن پورت های 22 و 23 برای همه ip ها:

 # iptables -t nat -A POSTROUTING -o eth1 -p tcp -m tcp --dport 22:23 -j DROP

...بستن پورت 22و 23 برای یک ip خاص:

 # iptables -t nat -A POSTROUTING -s 192.168.0.88 -o eth1 -p tcp -m tcp --dport 22:23 -j DROP

....برای drop کردن تمامی Packet های یک IP خاص:

 # iptables -A INPUT -s 217.61.158.248 -j DROP

..... برای Drop کردن SSH packetهای یک Ip خاص:

 # iptables -A INPUT -s 217.61.158.248 -p tcp --dport 22 -j DROP

فعال کردن LOG در قوانین فایروال

برای اینکه مدیریت کامل تری به شبکه خود داشته باشیم و بتوانیم منابعی که در حال اسکن کردن سیستم ما هستند بیابیم و یا در هر حال گزارشی از عملکرد صحیح فایر وال داشته باشیم می توانیم به طرق ذیل Log فایل ها را برای موارد دلخواهمان فعال کنیم:

.فعال کردن Log برای دیدن بسته های ICMP:

  # iptables -A OUTPUT -p icmp -j LOG --log-prefix "PING:> "

# iptables -A INPUT -p icmp -j LOG --log-prefix "PING:> "

برای دیدن این log ها به این مسیر بروید:

/var/log/messages

و خط هایی را که با

 PING:>

شروع شده اند بررسی نمایید.( البته راه ساده تر آن استفاده از دستور فیلتر کننده grep و مختص کردن به log های فایروال می باشد)

. فعال کردن Log برای دیدن Ftp:

 # iptables -A OUTPUT -p tcp -s 0/0 --dport 21 -j LOG --log-prefix "FTP:> "

# iptables -A INPUT -p tcp -s 0/0 --dport 21 -j LOG --log-prefix "FTP:> "

که در لاگ فایل ها دنبال عبارت انتخابی

FTP:>

می گردیم.

. فعال کردن Log برای یک ip خاص:

 # iptables -t  nat POSTROUTING -s 192.168.0.88 -o eth1 -j LOG --log-prefix " "

که در لاگ فایل ها دنبال عبارت انتخابی

می گردیم.

redirect کردن پورت های مختلف

در این بخش redirect کردن پورت های مختلف را با هم بررسی می کنیم:

1-Transparent کردنSquid

 # iptables -t nat -A PREROUTING -p tcp --dport 80  -j REDIRECT --to-ports 3128

2-برای redirect کردن گروهی از پورتها:

 # iptables -t nat -A PREROUTING -p tcp -d 203.145.184.246 --dport 20:23 -j DNAT --to 192.168.0.88:20-23

# iptables -A FORWARD -p tcp -d 192.168.0.88 --dport 20:23 -j ACCEPT

# iptables -t nat -A PREROUTING -p udp -d 203.145.184.246 --dport 20:23 -j DNAT --to 192.168.0.88:20-23

# iptables -A FORWARD -p udp -d 192.168.0.88 --dport 20:23 -j ACCEPT

3- برای redirect کردن تمامی درخواست های SMTP از اینترفیسeth0 به یک کامپیوتر دیگه داخل شبکه( LAN):

 # iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 25 -j DNAT --to 192.168.0.88:25

# iptables -A FORWARD -p tcp -d 192.168.0.88 --dport 25 -j ACCEPT

 

Share کردن اینترنت

در این بخش با استفاده از سیاست MASQUERADE اینترنت را در شبکه به اشتراک می گزاریم:

A) با استفاده از دو کارت شبکه که یکی به اینترنت و دیگری به شبکه داخلی متصل است:

 # iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

(توضیح اینکه در اینجا eth1 اینترفیسی است که به اینترنت متصل است.)

B) با استفاده از مودم ( به صورت Dialup) و یک کارت شبکه:

 # iptables -t  nat  -A POSTROUTING -o ppp0 -j MASQUERADE

( توضیح اینکه لازم است که IP forwarding نیز فعال شده باشد

برای دیدن قوانینی که اعمال کرده ایم :

 # iptables -L

# iptables -nL

وبرای حذف کردن تمامی قوانین Iptables چنین عمل می کنیم:شذث

 # iptables -F

# iptables -X

# iptables -Z