免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2990 | 回复: 3
打印 上一主题 下一主题

[iptables] 想各位给我一些意见,看看有什么地方需要更改. [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-08-14 18:41 |只看该作者 |倒序浏览
网络环境:\r\n [Internat]------eth1[ Server01 ]eth0----------[ Server02 ]\r\n                     |\r\n                     |\r\n                  [ Client X ]\r\n\r\nServer 02 是Web , FTP, MAIL 伺服器.\r\nClient用透明代理上网的.\r\n\r\n\r\n我在Server01上用iptables内容如下:\r\n#!/bin/bash\r\n\r\nEXT_IF=eth1\r\nINT_IF=eth0\r\n\r\n############### ICMP NO ###################\r\nAICMP=\"0 3 3/4 4 11 12 14 16 18\"\r\n############### SERVER ####################\r\nSERVER_WEB=192.168.1.3\r\nSERVER_FTP=192.168.1.3\r\nSERVER_MAIL=192.168.1.3\r\n\r\n############### FUNTION ###################\r\nnetinfo (){\r\n        unset IF\r\n        unset IP\r\n        unset NET\r\n        unset MASK\r\n        for IF in $1; do\r\n                IP=$(ifconfig | grep \"$IF\" -A 1| awk \'/inet/{print $2}\' | sed -e s/addr\\:// )\r\n                if [ -z \"$IP\" ]; then\r\n                        echo\r\n                        echo \"$(basename $0): there is no IP found on $IF,\"\r\n                        echo\r\n                        exit 2\r\n                fi\r\n                MASK=$(ifconfig | grep \"$IF\" -A 1 | awk \'/inet/{print $4}\' | sed -e s/Mask\\:// )\r\n        getnet (){\r\n                for i in $(echo $IP | sed -e \'s/\\./\\ /g\'); do\r\n                        let N=\"$i & $1\"\r\n                        NET=\"$NET.$N\"\r\n                done\r\n        }\r\n        getnet $(echo $MASK | sed -e \'s/\\./\\ /g\')\r\n        done\r\n}\r\n\r\n################ NET INFO #################\r\nnetinfo $EXT_IF\r\n        EXT_IP=$IP\r\n        EXT_NET=${NET#.}/$MASK\r\nnetinfo $INT_IF\r\n        INT_IP=$IP\r\n        INT_NET=${NET#.}/$MASK\r\n\r\n################ IMPORT MODULES ############\r\necho \" [ IMOPRT MODULES ] \"\r\nmodprode ip_nat_ftp\r\nmodprode ip_nat_irc\r\nmodprode ip_conntrack_ftp\r\nmodprode ip_conntrack_irc\r\n\r\n################ FLUSHING ##################\r\necho \" [ FLUSHING ] \"\r\niptables -F -t filter\r\niptables -X -t filter\r\niptables -Z -t filter\r\niptables -F -t nat\r\niptables -X -t nat\r\niptables -Z -t nat\r\n\r\n################ POLICY ####################\r\necho \" [ POLICY ] \"\r\niptables -P INPUT ACCEPT\r\niptables -P OUTPUT ACCEPT\r\niptables -P FORWARD ACCEPT\r\niptables -t ant -P PREROUTING ACCEPT\r\niptables -t ant -P POSTROUTING ACCEPT\r\niptables -t ant -P OUTPUT ACCEPT\r\n\r\n################ OPEN IP FORWARD ############\r\necho \" [ OPEN IP FORWARD ] \"\r\necho \"1\" >; /proc/sys/net/ipv4/ip_forward\r\n\r\n################ ICMP #####################\r\necho \" [ ICMP ] \"\r\nfor ICMPTYPE in $AICMP; do\r\niptables -A INPUT -i $EXP_IF -p icmp --icmp-type $ICMPTYPE -j ACCEPT\r\ndone\r\n\r\n################ ANIT - SPOOFING ############\r\necho \" [ ANIT - SPOOFING ] \"\r\nfor file in /proc/sys/net/ipv4/conf/*/rp_filter; do\r\n        echo \"1\" >; $file\r\ndone\r\n\r\n################ ENABLE LOG ###############\r\necho \" [ ENABLE LOG ] \"\r\nfor file in /proc/sys/net/ipv4/conf/*/log_martians; do\r\n        echo \"1\" >; $file\r\ndone\r\n\r\n################# ANIT - TCP SYN COOKIE #########\r\necho \" [ ANIT - TCP SYN COOKIE ] \"\r\necho \"1\" >; /proc/sys/net/ipv4/tcp_syncookies\r\n\r\n################# DISABLE ICMP REDIRECT #########\r\necho \" [ DISABLE ICMP REDIRECT ] \"\r\nfor file in /proc/sys/net/ipv4/conf/*/accept_redirects; do\r\n        echo \"0\" >; $file\r\ndone\r\n\r\n################# NO PING #########\r\necho \" [ NO PING ] \"\r\necho \"1\" >; /proc/sys/net/ipv4/icmp_echo_ignore_all\r\n\r\n################# NO BROADCAST #########\r\necho \" [ NO BROADCAST ] \"\r\necho \"1\" >; /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts\r\n\r\n################ INT to EXT #################\r\necho \" [ INT to EXT ] \"\r\niptables -A INPUT -i lo -j ACCEPT\r\niptables -A INPUT -i $INT_IF -j ACCEPT\r\niptables -t nat -A POSTROUTING -o $EXT_IF -j SNAT --to-source $EXT_IP\r\n\r\n################ HTTPD ####################\r\necho \" [ HTTPD ] \"\r\niptables -t nat -A PREROUTING -p tcp -d $EXT_IP --dport 80 -j DNAT --to $SERVER_WEB\r\niptables -t nat -A PREROUTING -p tcp -d $EXT_IP --dport 443 -j DNAT --to $SERVER_WEB\r\niptables -t nat -A POSTROUTING -s $INT_NET -d $SERVER_WEB -p tcp --dport 80 -j SNAT --to $INT_IP\r\niptables -t nat -A POSTROUTING -s $INT_NET -d $SERVER_WEB -p tcp --dport 443 -j SNAT --to $INT_IP\r\n\r\n################ FTPD #####################\r\necho \" [ FTPD ] \"\r\niptables -t nat -A PREROUTING -p tcp -d $EXT_IP --dport 21 -j DNAT --to $SERVER_FTP\r\niptables -t nat -A POSTROUTING -s $INT_NET -d $SERVER_FTP -p tcp --dport 21 -j SNAT --to $INT_IP\r\n\r\n################ SENDMAIL ##################\r\necho \" [ SENDMAIL ] \"\r\niptables -t nat -A PREROUTING -p tcp -d $EXT_IP --dport 25 -j DNAT --to $SERVER_MAIL\r\niptables -t nat -A PREROUTING -p tcp -d $EXT_IP --dport 110 -j DNAT --to $SERVER_MAIL\r\niptables -t nat -A POSTROUTING -s $INT_NET -d $SERVER_MAIL -p tcp --dport 25 -j SNAT --to $INT_IP\r\niptables -t nat -A POSTROUTING -s $INT_NET -d $SERVER_MAIL -p tcp --dport 110 -j SNAT --to $INT_IP\r\n\r\n################ PROXY ###################\r\necho \" [ PROXY ] \"\r\niptables -t nat -A PREROUTING -d $INT_NET -i $INT_IF -p tcp -m tcp --dport 80 -j ACCEPT\r\niptables -t nat -A POSTROUTING -i $INT_IF -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128\r\n\r\n################ DENY ALL #################\r\necho \" [ DENY ALL ] \"\r\niptables -A INPUT -m state --state NEW,INVALID -j DROP\r\n\r\n\r\n想各位给我一些意见,看看有什么地方需要更改.\r\n谢谢^^

论坛徽章:
0
2 [报告]
发表于 2003-08-14 18:47 |只看该作者

[iptables] 想各位给我一些意见,看看有什么地方需要更改.

加上这一段会不会好一些呢?\r\n\r\n########### STOP PORT SCAN #################\r\niptables -A INPUT -i $EXT_IF -p tcp --tcp-flags ALL FIN,URS,PSH -j DROP\r\niptables -A INPUT -i $EXT_IF -p tcp --tcp-flags ALL ALL -j DROP\r\niptables -A INPUT -i $EXT_IF -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP\r\niptables -A INPUT -i $EXT_IF -p tcp --tcp-flags ALL NONE -j DROP\r\niptables -A INPUT -i $EXT_IF -p tcp --tcp-flags SYN,RST SYN,RST -j DROP\r\niptables -A INPUT -i $EXT_IF -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP

论坛徽章:
0
3 [报告]
发表于 2003-08-15 00:06 |只看该作者

[iptables] 想各位给我一些意见,看看有什么地方需要更改.

这个是更新后的结果, 请给一些意见 !\r\n之前的 netinfo的function好像有问题.\r\n所以不用function了, 直接给NET INFO.\r\n另外, 因为FORWARD 忘记写数句, 所以NAT中电脑是出不到INTERNET的.\r\n\r\n#!/bin/bash\r\n\r\n################ NET INFO #######################\r\nEXT_IF=eth1\r\nEXT_IP=192.168.2.1\r\nEXT_NET=192.168.2.0/255.255.255.0\r\nEXT_BCAST=192.168.2.255\r\n############### INT INFO ########################\r\nINT_IF=eth0\r\nINT_IP=192.168.1.1\r\nINT_NET=192.168.1.0/255.255.255.0\r\nINT_BCAST=192.168.1.255\r\n############### LO INFO ########################\r\nLO_IF=\"lo\"\r\nLO_IP=127.0.0.1\r\n############### ICMP NO ########################\r\nAICMP=\"0 3 3/4 4 11 12 14 16 18\"\r\n############### SERVER ########################\r\nSERVER_WEB=192.168.1.3\r\nSERVER_FTP=192.168.1.3\r\nSERVER_MAIL=192.168.1.3\r\n\r\n################ IMPORT MODULES ###############\r\necho \" [ IMOPRT MODULES ] \"\r\nmodprobe ip_nat_ftp\r\nmodprobe ip_nat_irc\r\nmodprobe ip_conntrack_ftp\r\nmodprobe ip_conntrack_irc\r\n\r\n################ FLUSHING #####################\r\necho \" [ FLUSHING ] \"\r\niptables -F -t filter\r\niptables -X -t filter\r\niptables -Z -t filter\r\niptables -F -t nat\r\niptables -X -t nat\r\niptables -Z -t nat\r\n\r\n################ POLICY ########################\r\necho \" [ POLICY ] \"\r\niptables -P INPUT DROP\r\niptables -P OUTPUT DROP\r\niptables -P FORWARD DROP\r\niptables -t ant -P PREROUTING ACCEPT\r\niptables -t ant -P POSTROUTING ACCEPT\r\niptables -t ant -P OUTPUT ACCEPT\r\n\r\n################ OPEN IP FORWARD ##############\r\necho \" [ OPEN IP FORWARD ] \"\r\necho \"1\" >; /proc/sys/net/ipv4/ip_forward\r\n\r\n################ ANIT - SPOOFING ################\r\necho \" [ ANIT - SPOOFING ] \"\r\nfor file in /proc/sys/net/ipv4/conf/*/rp_filter; do\r\n        echo \"1\" >; $file\r\ndone\r\niptables -t nat -A PREROUTING -i $EXT_IF -s 192.168.0.0/16 -j DROP\r\niptables -t nat -A PREROUTING -i $EXT_IF -s 10.0.0.0/8 -j DROP\r\niptables -t nat -A PREROUTING -i $EXT_IF -s 172.16.0.0/12 -j DROP\r\n\r\n################ ENABLE LOG ###################\r\necho \" [ ENABLE LOG ] \"\r\nfor file in /proc/sys/net/ipv4/conf/*/log_martians; do\r\n        echo \"1\" >; $file\r\ndone\r\n\r\n################# ANIT - TCP SYN COOKIE #########\r\necho \" [ ANIT - TCP SYN COOKIE ] \"\r\necho \"1\" >; /proc/sys/net/ipv4/tcp_syncookies\r\n\r\n################# DISABLE ICMP REDIRECT #########\r\necho \" [ DISABLE ICMP REDIRECT ] \"\r\nfor file in /proc/sys/net/ipv4/conf/*/accept_redirects; do\r\n        echo \"0\" >; $file\r\ndone\r\n\r\n################# NO PING #########\r\necho \" [ NO PING ] \"\r\necho \"1\" >; /proc/sys/net/ipv4/icmp_echo_ignore_all\r\n\r\n################# NO BROADCAST #########\r\necho \" [ NO BROADCAST ] \"\r\necho \"1\" >; /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts\r\n\r\n################ INT to EXT ######################\r\necho \" [ INT to EXT ] \"\r\niptables -t nat -A POSTROUTING -o $EXT_IF -j SNAT --to-source $EXT_IP\r\n\r\n################ PORT FORWARD ################\r\n################ HTTPD ########################\r\necho \" [ HTTPD ] \"\r\niptables -t nat -A PREROUTING -p tcp -d $EXT_IP --dport 80 -j DNAT --to $SERVER_WEB\r\niptables -t nat -A PREROUTING -p tcp -d $EXT_IP --dport 443 -j DNAT --to $SERVER_WEB\r\niptables -t nat -A POSTROUTING -s $INT_NET -d $SERVER_WEB -p tcp --dport 80 -j SNAT --to $INT_IP\r\niptables -t nat -A POSTROUTING -s $INT_NET -d $SERVER_WEB -p tcp --dport 443 -j SNAT --to $INT_IP\r\n\r\n################ FTPD #########################\r\necho \" [ FTPD ] \"\r\niptables -t nat -A PREROUTING -p tcp -d $EXT_IP --dport 21 -j DNAT --to $SERVER_FTP\r\niptables -t nat -A POSTROUTING -s $INT_NET -d $SERVER_FTP -p tcp --dport 21 -j SNAT --to $INT_IP\r\n\r\n################ SENDMAIL #####################\r\necho \" [ SENDMAIL ] \"\r\niptables -t nat -A PREROUTING -p tcp -d $EXT_IP --dport 25 -j DNAT --to $SERVER_MAIL\r\niptables -t nat -A PREROUTING -p tcp -d $EXT_IP --dport 110 -j DNAT --to $SERVER_MAIL\r\niptables -t nat -A POSTROUTING -s $INT_NET -d $SERVER_MAIL -p tcp --dport 25 -j SNAT --to $INT_IP\r\niptables -t nat -A POSTROUTING -s $INT_NET -d $SERVER_MAIL -p tcp --dport 110 -j SNAT --to $INT_IP\r\n\r\n###############################################\r\n################ PROXY ########################\r\necho \" [ PROXY ] \"\r\niptables -t nat -A PREROUTING -d $INT_NET -i $INT_IF -p tcp -m tcp --dport 80 -j ACCEPT\r\niptables -t nat -A PREROUTING -i $INT_IF -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128\r\n\r\n##############################################\r\n################ TCP_PACKETS #################\r\necho \" [ TCP_PACKETS ] \"\r\niptables -N tcp_packets\r\n\r\niptables -A tcp_packets -p tcp --tcp-flags ALL FIN,URG,PSH -j LOG --log-prefix \"ORT SCAN : \"\r\niptables -A tcp_packets -p tcp --tcp-flags ALL ALL -j LOG --log-prefix \"ORT SCAN : \"\r\niptables -A tcp_packets -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j LOG --log-prefix \"ORT SCAN : \"\r\niptables -A tcp_packets -p tcp --tcp-flags ALL NONE -j LOG --log-prefix \"ORT SCAN : \"\r\niptables -A tcp_packets -p tcp --tcp-flags SYN,RST SYN,RST -j LOG --log-prefix \"ORT SCAN : \"\r\niptables -A tcp_packets -p tcp --tcp-flags SYN,FIN SYN,FIN -j LOG --log-prefix \"ORT SCAN : \"\r\n\r\niptables -A tcp_packets -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP \r\niptables -A tcp_packets -p tcp --tcp-flags ALL ALL -j DROP \r\niptables -A tcp_packets -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP \r\niptables -A tcp_packets -p tcp --tcp-flags ALL NONE -j DROP \r\niptables -A tcp_packets -p tcp --tcp-flags SYN,RST SYN,RST -j DROP \r\niptables -A tcp_packets -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP\r\n###############################################\r\n############### ALLOWED_CHAN #################\r\necho \" [ ALLOWED_CHAN ] \"\r\niptables -N ALLOWED\r\niptables -A ALLOWED -p tcp --syn -j ACCEPT\r\niptables -A ALLOWED -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT\r\niptables -A ALLOWED -p tcp -j DROP\r\n###############################################\r\n################ HTTPS #########################\r\niptables -A tcp_packets -p tcp -s 0/0 --dport 443 -j ALLOWED\r\n################ HTTP ##########################\r\niptables -A tcp_packets -p tcp -s 0/0 --dport 80 -j ALLOWED\r\n################ FTP ###########################\r\niptables -A tcp_packets -p tcp -s 0/0 --dport 21 -j ALLOWED\r\niptables -A tcp_packets -p tcp -s 0/0 --dport 20 -j ALLOWED\r\n################ SMTP ##########################\r\niptables -A tcp_packets -p tcp -s 0/0 --dport 110 -j ALLOWED\r\n################ POP3 ##########################\r\niptables -A tcp_packets -p tcp -s 0/0 --dport 21 -j ALLOWED\r\n################ DNS ###########################\r\niptables -A tcp_packets -p tcp -s 0/0 --dport 25 -j ALLOWED\r\n################ CVS ###########################\r\niptables -A tcp_packets -p tcp -s 0/0 --dport 2401 -j ALLOWED\r\n###############################################\r\n###############################################\r\n\r\n\r\n###############################################\r\n################ ICMP_PACKETS #################\r\necho \" [ ICMP_PACKETS ] \"\r\niptables -N icmp_packets\r\n\r\nfor ICMPTYPE in $AICMP; do\r\niptables -A icmp_packets -p icmp -s 0/0 --icmp-type $ICMPTYPE -j ACCEPT\r\ndone\r\n###############################################\r\n###############################################\r\n\r\n\r\n###############################################\r\n################ udp_packets ####################\r\necho \" [ UDP_PACKETS ] \"\r\niptables -N udp_packets\r\n\r\niptables -A udp_packets -p udp -s 0/0 --sport 53 -j ACCEPT\r\niptables -A udp_packets -p udp -s $EXT_NET -j ACCEPT\r\n###############################################\r\n###############################################\r\n\r\n################ FORWARD CHAIN ################\r\necho \" [ FORWARD CHAIN ] \"\r\niptables -A FORWARD -p tcp -j tcp_packets\r\niptables -A FORWARD -i $INT_IF -j ACCEPT\r\niptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT\r\n\r\n################ INPUT CHAIN ###################\r\necho \" [ INPUT CHAIN ] \"\r\niptables -A INPUT -p icmp -i $EXT_IF -j icmp_packets\r\niptables -A INPUT -p tcp -i $EXT_IF -j tcp_packets\r\niptables -A INPUT -p udp -i $EXT_IF -j udp_packets\r\n\r\niptables -A INPUT -p ALL -i $INT_IF -d $INT_BCAST -j ACCEPT\r\niptables -A INPUT -p ALL -i $LO_IF -s $LO_IP -j ACCEPT\r\niptables -A INPUT -p ALL -i $INT_IF -s $INT_NET -j ACCEPT\r\niptables -A INPUT -p ALL -d $EXT_IP -m state --state ESTABLISHED,RELATED -j ACCEPT\r\n\r\n################ OUT CHAIN ####################\r\necho \" [ OUT CHAIN ] \"\r\n#iptables -A OUTPUT -p tcp -j tcp_packets\r\niptables -A OUTPUT -p ALL -s $LO_IP -j ACCEPT\r\niptables -A OUTPUT -p ALL -s $INT_IP -j ACCEPT\r\niptables -A OUTPUT -p ALL -s $EXT_IP -j ACCEPT

论坛徽章:
0
4 [报告]
发表于 2003-08-15 09:02 |只看该作者

[iptables] 想各位给我一些意见,看看有什么地方需要更改.

这是在LINUX下用的吧。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP