در این مقاله به معرفی يكي از ابزارهاي قدرتمند تصفيه كننده بسته ها به نام 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