یک نمونه اسکریپت iptables (قسمت بیست و یکم)

اکنون اطلاعات کافی برای ایجاد یک اسکریپت iptables ساده را دارید که محافظت اصلی از یک سیستم متصل به اینترنت را فراهم می کند. اسکریپت زیر ، یک عمل فیلتر کردن جداول IP را ارائه می کند تا یک شبکه محلی و یک سایت وب را از حملات خارجی حفظ نماید و یک فایروال ساده برای یک شبکه خصوصی ، پیکربندی می کند ( برای مثال قسمت HOWTO در iptables را بررسی نمایید ). اگر یک شبکه محلی دارید ، می توانید این اسکریپت را طبق آن وفق دهید. در این پیکربندی ، تمام دسترسی های راه دور که از خارج برقرار می شود ،

مسدود گشته است ، اما ارتباط دو طرفه برای تماسهایی که کاربران شبکه با سیستم های خارجی برقرار می کنند که آدرس شبکه آن 192.168.0.0 می باشد ( شکل 1 را ببینید ). آدرس اینترنت در مورد این مثال 10.0.0.1 است. سیستم دارای دو دستگاه اترنت است : یکی برای شبکه خصوصی ( eth1 ) و دیگری برای اینترنت ( eth0 ) ، سیستم فایروال دروازه ، همچنین یک سرویس دهنده وب در آدرس 10.0.02 را پشتیبانی می کند. گزینه هایی که در این مثال ، در یک خط جا نمی شده اند، در خط بعدی با یک بک اسلش توضیحی آمده اند. 

 

قوانین اصلی که به قسمتهای مختلف شبکه اعمال می شوند ، در شکل 2 نشان داده شده است. 

myfilter 
# Firewall Gateway system IP address is 10.0.0.1 using Ethernet device eth0 
# Firewall network address is 192.168.0.0 using Ethernet device eth1
# Web site address is 10.0.03 
# turn off IP forwarding 
echo 0 > /proc/sys/net/ipv4/ip_forward
# Flush chain rules 
iptables -F INPUT 
iptables -F OUTPUT 
iptables -F FORWARD 
# Set default (policy) rules
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
 
# IP spoofing, deny any packets on the internal network that have an external source address. 
iptables -A INPUT -j LOG -i eth1 \! -s 192.168.0.0/24 
iptables -A INPUT -j DROP -i eth1 \! -s 192.168.0.0/24 
iptables -A FORWARD -j DROP -i eth1 \! -s 192.168.0.0/24 
 
# IP spoofing, deny any outside packets (any not on eth1) that have the source address of the internal network. 
iptables -A INPUT -j DROP \! -i eth1  -s 192.168.0.0/24 
iptables -A FORWARD -j DROP \! -i eth1  -s 192.168.0.0/24 
# IP spoofing, deny any outside packets with localhost address
# (packets not on the lo interface (any i=on eth0 or eth1) that have the aource address of localhost)
iptables -A INPUT -j DROP -i /! lo -s 127.0.0.1/255.0.0.0 
iptables -A FORWARD -j DROP -i /! lo -s 127.0.0.1/255.0.0.0
 
# allow all incoming messages for users on your firewall system 
iptables -A INPUT -j ACCEPT -i lo 
 
# allow communication to the Web server (address 10.0.02), port www 
iptables -A INPUT -j ACCEPT -p tcp -i eth0 --dport www -s 10.0.0.2 
#allow established connections from Web server to internal network
iptables -A INPUT -m state --state ESTABLISHED,RELATED -i eth0 -p tcp --sport www -s 10.0.02 -d 192.168.0.0/24 -j ACCEPT
# Prevent new connection from web server to internal network 
iptables -A OUTPUT -m state --state NEW -o eth0 -p --sport www -d 192.168.0.0/24 -j DROP 
 
# allow established and related outside communication to your system
#allow outside communication to the firewall, expect for ICMP packets 
iptables -A INPUT -m state --state ESTABLISHED,RELATED -i eth0 -p \! icmp -j ACCEPT 
# prevent outside initiated connections 
iptables _A INPUT -m state --state NEW -i eth0 -j DROP 
iptables -A FORWARD -m state --state NEW -i eth0 -j DROP 
# allow all local communication to the from firewall on eth1 from the local network 
iptables -A INPUT -j ACCEPT-p all -i eth1 -s 192.168.0.0./24 
# Set up masquerading to allow internal machine access to outside network
iptables -t nat -h POSTROUTING -o eth0 -j MASQUERAED 
# Accept ICMP Ping (0 and 8) and Destination unreachable  (3) messages 
# Others will be rejected by INPUT and OUTPUT DROP policy
iptables -A INPUT -j ACCEPT -p icmp -i eth0 --icmp-type echo-reply -d 10.0.0.1 
iptables -A INPUT -j ACCEPT -p icmp -i eth0 --icmp-type echo-request -d 10.0.0.1 
iptables -A INPUT -j ACCEPT -p icmp -i eth0 --icmp-type destination-unreachable  -d 10.0.0.1 
# Turn on IP Forwarding 
echo 1 > /proc/sys/net/ipv4/ip_forward 

ابتدا در اسکریپت، iptable های فعلی را با سوئیچ پاک کردن ( -F ) حذف می کنید و سپس خط مشی ها (هدفهای پیش فرض)برایقوانین غیر تعریف شده توسط کاربر را تنظیم می کنید. انتقال IP نیز باید هنگام تنظیم قوانین زنجیر، خاموش باشد : 

echo 0 > /proc/sys/net/ipv4/ip_foreard 
 
بازدید 3310 بار

نوشتن دیدگاه


تصویر امنیتی
تصویر امنیتی جدید

"«قیمتی که در هنگام سفارش مشتري در پیش‌فاکتور منظور گرديده است، معتبر مي‌باشد»."