免费注册 查看新帖 |

Chinaunix

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

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

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-08-15 00:08 |只看该作者 |倒序浏览
网络环境:
[Internat]------eth1[ Server01 ]eth0----------[ Server02 ]
                     |
                     |
                  [ Client X ]

Server 02 是Web , FTP, MAIL 伺服器.
Client用透明代理上网的.


我在Server01上用iptables内容如下:

#!/bin/bash

################ NET INFO #######################
EXT_IF=eth1
EXT_IP=192.168.2.1
EXT_NET=192.168.2.0/255.255.255.0
EXT_BCAST=192.168.2.255
############### INT INFO ########################
INT_IF=eth0
INT_IP=192.168.1.1
INT_NET=192.168.1.0/255.255.255.0
INT_BCAST=192.168.1.255
############### LO INFO ########################
LO_IF="lo"
LO_IP=127.0.0.1
############### ICMP NO ########################
AICMP="0 3 3/4 4 11 12 14 16 18"
############### SERVER ########################
SERVER_WEB=192.168.1.3
SERVER_FTP=192.168.1.3
SERVER_MAIL=192.168.1.3

################ IMPORT MODULES ###############
echo " [ IMOPRT MODULES ] "
modprobe ip_nat_ftp
modprobe ip_nat_irc
modprobe ip_conntrack_ftp
modprobe ip_conntrack_irc

################ FLUSHING #####################
echo " [ FLUSHING ] "
iptables -F -t filter
iptables -X -t filter
iptables -Z -t filter
iptables -F -t nat
iptables -X -t nat
iptables -Z -t nat

################ POLICY ########################
echo " [ POLICY ] "
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
iptables -t ant -P PREROUTING ACCEPT
iptables -t ant -P POSTROUTING ACCEPT
iptables -t ant -P OUTPUT ACCEPT

################ OPEN IP FORWARD ##############
echo " [ OPEN IP FORWARD ] "
echo "1" >; /proc/sys/net/ipv4/ip_forward

################ ANIT - SPOOFING ################
echo " [ ANIT - SPOOFING ] "
for file in /proc/sys/net/ipv4/conf/*/rp_filter; do
echo "1" >; $file
done
iptables -t nat -A PREROUTING -i $EXT_IF -s 192.168.0.0/16 -j DROP
iptables -t nat -A PREROUTING -i $EXT_IF -s 10.0.0.0/8 -j DROP
iptables -t nat -A PREROUTING -i $EXT_IF -s 172.16.0.0/12 -j DROP

################ ENABLE LOG ###################
echo " [ ENABLE LOG ] "
for file in /proc/sys/net/ipv4/conf/*/log_martians; do
echo "1" >; $file
done

################# ANIT - TCP SYN COOKIE #########
echo " [ ANIT - TCP SYN COOKIE ] "
echo "1" >; /proc/sys/net/ipv4/tcp_syncookies

################# DISABLE ICMP REDIRECT #########
echo " [ DISABLE ICMP REDIRECT ] "
for file in /proc/sys/net/ipv4/conf/*/accept_redirects; do
echo "0" >; $file
done

################# NO PING #########
echo " [ NO PING ] "
echo "1" >; /proc/sys/net/ipv4/icmp_echo_ignore_all

################# NO BROADCAST #########
echo " [ NO BROADCAST ] "
echo "1" >; /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

################ INT to EXT ######################
echo " [ INT to EXT ] "
iptables -t nat -A POSTROUTING -o $EXT_IF -j SNAT --to-source $EXT_IP

################ PORT FORWARD ################
################ HTTPD ########################
echo " [ HTTPD ] "
iptables -t nat -A PREROUTING -p tcp -d $EXT_IP --dport 80 -j DNAT --to $SERVER_WEB
iptables -t nat -A PREROUTING -p tcp -d $EXT_IP --dport 443 -j DNAT --to $SERVER_WEB
iptables -t nat -A POSTROUTING -s $INT_NET -d $SERVER_WEB -p tcp --dport 80 -j SNAT --to $INT_IP
iptables -t nat -A POSTROUTING -s $INT_NET -d $SERVER_WEB -p tcp --dport 443 -j SNAT --to $INT_IP

################ FTPD #########################
echo " [ FTPD ] "
iptables -t nat -A PREROUTING -p tcp -d $EXT_IP --dport 21 -j DNAT --to $SERVER_FTP
iptables -t nat -A POSTROUTING -s $INT_NET -d $SERVER_FTP -p tcp --dport 21 -j SNAT --to $INT_IP

################ SENDMAIL #####################
echo " [ SENDMAIL ] "
iptables -t nat -A PREROUTING -p tcp -d $EXT_IP --dport 25 -j DNAT --to $SERVER_MAIL
iptables -t nat -A PREROUTING -p tcp -d $EXT_IP --dport 110 -j DNAT --to $SERVER_MAIL
iptables -t nat -A POSTROUTING -s $INT_NET -d $SERVER_MAIL -p tcp --dport 25 -j SNAT --to $INT_IP
iptables -t nat -A POSTROUTING -s $INT_NET -d $SERVER_MAIL -p tcp --dport 110 -j SNAT --to $INT_IP

###############################################
################ PROXY ########################
echo " [ PROXY ] "
iptables -t nat -A PREROUTING -d $INT_NET -i $INT_IF -p tcp -m tcp --dport 80 -j ACCEPT
iptables -t nat -A PREROUTING -i $INT_IF -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128

##############################################
################ TCP_PACKETS #################
echo " [ TCP_PACKETS ] "
iptables -N tcp_packets

iptables -A tcp_packets -p tcp --tcp-flags ALL FIN,URG,PSH -j LOG --log-prefix "ORT SCAN : "
iptables -A tcp_packets -p tcp --tcp-flags ALL ALL -j LOG --log-prefix "ORT SCAN : "
iptables -A tcp_packets -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j LOG --log-prefix "ORT SCAN : "
iptables -A tcp_packets -p tcp --tcp-flags ALL NONE -j LOG --log-prefix "ORT SCAN : "
iptables -A tcp_packets -p tcp --tcp-flags SYN,RST SYN,RST -j LOG --log-prefix "ORT SCAN : "
iptables -A tcp_packets -p tcp --tcp-flags SYN,FIN SYN,FIN -j LOG --log-prefix "ORT SCAN : "

iptables -A tcp_packets -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
iptables -A tcp_packets -p tcp --tcp-flags ALL ALL -j DROP
iptables -A tcp_packets -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP
iptables -A tcp_packets -p tcp --tcp-flags ALL NONE -j DROP
iptables -A tcp_packets -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
iptables -A tcp_packets -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
###############################################
############### ALLOWED_CHAN #################
echo " [ ALLOWED_CHAN ] "
iptables -N ALLOWED
iptables -A ALLOWED -p tcp --syn -j ACCEPT
iptables -A ALLOWED -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A ALLOWED -p tcp -j DROP
###############################################
################ HTTPS #########################
iptables -A tcp_packets -p tcp -s 0/0 --dport 443 -j ALLOWED
################ HTTP ##########################
iptables -A tcp_packets -p tcp -s 0/0 --dport 80 -j ALLOWED
################ FTP ###########################
iptables -A tcp_packets -p tcp -s 0/0 --dport 21 -j ALLOWED
iptables -A tcp_packets -p tcp -s 0/0 --dport 20 -j ALLOWED
################ SMTP ##########################
iptables -A tcp_packets -p tcp -s 0/0 --dport 110 -j ALLOWED
################ POP3 ##########################
iptables -A tcp_packets -p tcp -s 0/0 --dport 21 -j ALLOWED
################ DNS ###########################
iptables -A tcp_packets -p tcp -s 0/0 --dport 25 -j ALLOWED
################ CVS ###########################
iptables -A tcp_packets -p tcp -s 0/0 --dport 2401 -j ALLOWED
###############################################
###############################################


###############################################
################ ICMP_PACKETS #################
echo " [ ICMP_PACKETS ] "
iptables -N icmp_packets

for ICMPTYPE in $AICMP; do
iptables -A icmp_packets -p icmp -s 0/0 --icmp-type $ICMPTYPE -j ACCEPT
done
###############################################
###############################################


###############################################
################ udp_packets ####################
echo " [ UDP_PACKETS ] "
iptables -N udp_packets

iptables -A udp_packets -p udp -s 0/0 --sport 53 -j ACCEPT
iptables -A udp_packets -p udp -s $EXT_NET -j ACCEPT
###############################################
###############################################

################ FORWARD CHAIN ################
echo " [ FORWARD CHAIN ] "
iptables -A FORWARD -p tcp -j tcp_packets
iptables -A FORWARD -i $INT_IF -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

################ INPUT CHAIN ###################
echo " [ INPUT CHAIN ] "
iptables -A INPUT -p icmp -i $EXT_IF -j icmp_packets
iptables -A INPUT -p tcp -i $EXT_IF -j tcp_packets
iptables -A INPUT -p udp -i $EXT_IF -j udp_packets

iptables -A INPUT -p ALL -i $INT_IF -d $INT_BCAST -j ACCEPT
iptables -A INPUT -p ALL -i $LO_IF -s $LO_IP -j ACCEPT
iptables -A INPUT -p ALL -i $INT_IF -s $INT_NET -j ACCEPT
iptables -A INPUT -p ALL -d $EXT_IP -m state --state ESTABLISHED,RELATED -j ACCEPT

################ OUT CHAIN ####################
echo " [ OUT CHAIN ] "
#iptables -A OUTPUT -p tcp -j tcp_packets
iptables -A OUTPUT -p ALL -s $LO_IP -j ACCEPT
iptables -A OUTPUT -p ALL -s $INT_IP -j ACCEPT
iptables -A OUTPUT -p ALL -s $EXT_IP -j ACCEPT

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

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

这不是工作的环境来的. 只是自己给自己的功课来.
用来考验一下在书中学来的东东,吸收了多少.

希望大家可以指出不足之处.
没有解决方法也可以的.

请多多指教
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP