- 论坛徽章:
- 0
|
[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 |
|