12-02-2005, 13:12
|
|
|
חבר מתאריך: 02.11.04
הודעות: 186
|
|
עזרה בפיירוול של לינוקס
שלום.
יש לי בבית 3 מחשבים, שני תחנות עבודה ואחד שהתקנתי כראוטר ופיירוול.
הראוטר שלי מריץ לינוקס אשר תפקידו להריץ כמה שרתים (כגון mysql), לעשות פיירוולינג לאינטרנט ולהעביר אותו על ידי NAT לשאר המחשבים בבית.
במקום להשתמש בפיירוול מוכן, כתבתי סקריפט תוך שימוש ב- iptables שישמש לי כפיירוול.
הסקריפט הוא:
קוד:
#! /bin/sh -f
IFACE="br0"
OUTFACE="ppp0"
# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
# * * Flush all the old rules of any firewall * *
# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
iptables --flush INPUT
iptables --flush OUTPUT
iptables --flush FORWARD
iptables --flush -t nat
iptables --delete-chain
# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
# * * Connections from the router to itself * *
# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
iptables -A INPUT -i lo --source 127.0.0.1 --destination 127.0.0.1 -j ACCEPT
iptables -A INPUT -m state --state "ESTABLISHED,RELATED" -j ACCEPT
iptables -A INPUT -p icmp --icmp-type destination-unreachable -j ACCEPT
iptables -A INPUT -p icmp --icmp-type time-exceeded -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT
# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
# * * Default policy for all the types of connecions * *
# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
# * * Connections from internal network to the router * *
# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
# FTP SERVER
iptables -A INPUT -i $IFACE -s 192.168.0.22 -d 192.168.0.1 -p tcp --dport 21 -j ACCEPT
# SSH SERVER
iptables -A INPUT -i $IFACE -s 192.168.0.22 -d 192.168.0.1 -p tcp --dport 22 -j ACCEPT
# APACHE SERVER
iptables -A INPUT -i $IFACE -s 192.168.0.22 -d 192.168.0.1 -p tcp --dport 80 -j ACCEPT
# MYSQL SERVER
iptables -A INPUT -i $IFACE -s 192.168.0.22 -d 192.168.0.1 -p tcp --dport 3306 -j ACCEPT
# SSH SERVER
iptables -A INPUT -i $IFACE -s 192.168.0.55 -d 192.168.0.1 -p tcp --dport 22 -j ACCEPT
# APACHE SERVER
iptables -A INPUT -i $IFACE -s 192.168.0.55 -d 192.168.0.1 -p tcp --dport 80 -j ACCEPT
# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
# * * Connections from the internet to the router * *
# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
iptables -A INPUT -i $OUTFACE -s 0/0 -d 192.168.0.1 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -i $OUTFACE -s 0/0 -d 192.168.0.1 -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -i $OUTFACE -s 0/0 -d 192.168.0.1 -p tcp --dport 1723 -j ACCEPT
# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
# * * Connections from the router to the internal network * *
# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
iptables -A OUTPUT -o $IFACE -s 192.168.0.1 -d 192.168.0.22 -j ACCEPT
iptables -A OUTPUT -o $IFACE -s 192.168.0.1 -d 192.168.0.55 -j ACCEPT
# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
# * * Connections from the router to the internet * *
# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
iptables -A OUTPUT -o $OUTFACE -s 192.168.0.1 -d 0/0 -j ACCEPT
# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
# * * Connections from the internet to the internal network * *
# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
# AMERICAS ARMY
iptables -A FORWARD -i $OUTFACE -o $IFACE -s 0/0 -d 192.168.0.22 -p udp --dport 1716:1718 -j ACCEPT
iptables -A FORWARD -i $OUTFACE -o $IFACE -s 0/0 -d 192.168.0.22 -p udp --dport 8777 -j ACCEPT
iptables -A FORWARD -i $OUTFACE -o $IFACE -s 0/0 -d 192.168.0.22 -p udp --dport 27900 -j ACCEPT
iptables -A FORWARD -i $OUTFACE -o $IFACE -s 0/0 -d 192.168.0.22 -p tcp --dport 14200 -j ACCEPT
iptables -A FORWARD -i $OUTFACE -o $IFACE -s 0/0 -d 192.168.0.22 -p tcp --dport 20045 -j ACCEPT
# GIMP
iptables -A FORWARD -i $OUTFACE -o $IFACE -s 0/0 -d 192.168.0.22 -p tcp --dport 2040:2048 -j ACCEPT
# EMULE
iptables -A FORWARD -i $OUTFACE -o $IFACE -s 0/0 -d 192.168.0.22 -p tcp --dport 5662 -j ACCEPT
iptables -A FORWARD -i $OUTFACE -o $IFACE -s 0/0 -d 192.168.0.22 -p udp --dport 5672 -j ACCEPT
# BITTORRENT
iptables -A FORWARD -i $OUTFACE -o $IFACE -s 0/0 -d 192.168.0.22 -p tcp --dport 6881:6889 -j ACCEPT
# GIMP
iptables -A FORWARD -i $OUTFACE -o $IFACE -s 0/0 -d 192.168.0.55 -p tcp --dport 2040:2048 -j ACCEPT
iptables -A FORWARD -i $OUTFACE -o $IFACE -s 0/0 -m state --state "ESTABLISHED,RELATED" -j ACCEPT
# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
# * * Connections from the internal network to the internet * *
# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
iptables -A FORWARD -i $IFACE -o $OUTFACE -s 192.168.0.22 -d 0/0 -j ACCEPT
iptables -A FORWARD -i $IFACE -o $OUTFACE -s 192.168.0.55 -d 0/0 -j ACCEPT
# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
# * * Apply the policy to all the other packages * *
# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
iptables -A INPUT -j DROP
iptables -A OUTPUT -j ACCEPT
iptables -A FORWARD -j DROP
# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
# * * Masquerade the public ip address * *
# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
iptables -t nat -A POSTROUTING -o $OUTFACE -j MASQUERADE
# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
# * * Enable kernel mode connection forwarding * *
# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
if [ -e /proc/sys/net/ipv4/tcp_syncookies ]; then echo "1" > /proc/sys/net/ipv4/tcp_syncookies; fi
if [ -e /proc/sys/net/ipv4/conf/all/rp_filter ]; then echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter; fi
if [ -e /proc/sys/net/ipv4/ip_forward ]; then echo "1" > /proc/sys/net/ipv4/ip_forward; fi
exit 0
כפי שאתם רואים, פתחתי את הפורטים של האימיול TCP 5662 ו- UDP 5672 (כמו שמוגדר אצלי באימיול) למחשב שהאייפי שלו הוא 192.168.0.22 (המחשב שלי).
הבעיה שלי היא שהאימיול עדיין אומר שהפורטים האלה סגורים ויש לי בגלל זה lowid.
מישהו יכול לעזור לי בבקשה ?
תודה מראש!
_____________________________________
בברכה, אלכסנדר.
"The object of war is not to die for your country but to make the other bastard die for his" - General George S Patton
|