- 论坛徽章:
- 0
|
iptables 代码写出来。请参考。。
#! /bin/bash
# PORTS
HTTP="80"
HTTPS="443"
FTP="21"
FTP_DATA="20"
SMTP="25"
POP3="110"
IMAP="143"
SSH="22"
TELNET="23"
MYSQL="3306"
DNS="53"
# WAN_wangtong
INT_wangtong_IP="222.*。2。*"
INT_wangtong="eth0"
# LAN-ETCS
LAN_IP="172.16.200.10"
LAN_IP_RANGE="172.16.200.10 255.255.0.0"
LAN_IFACE="eth1"
# Loopback IP
LO_IFACE="lo"
LO_IP="127.0.0.1"
# IPTABLES
IPTABLES="/sbin/iptables"
###########################################################################
/sbin/depmod -a
# MODULES
/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_mangle
/sbin/modprobe iptable_nat
/sbin/modprobe ipt_LOG
/sbin/modprobe ipt_limit
/sbin/modprobe ipt_state
#/sbin/modprobe ppp_mppe.o
/sbin/modprobe ip_conntrack_proto_gre
/sbin/modprobe ip_conntrack_pptp
/sbin/modprobe ip_nat_proto_gre
/sbin/modprobe ip_nat_pptp
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_ftp
###########################################################################
# Forward
echo "1" > /proc/sys/net/ipv4/ip_forward
###########################################################################
# RULES
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -t nat -P PREROUTING ACCEPT
$IPTABLES -t nat -P POSTROUTING ACCEPT
$IPTABLES -t nat -P OUTPUT ACCEPT
$IPTABLES -t mangle -P PREROUTING ACCEPT
$IPTABLES -t mangle -P OUTPUT ACCEPT
$IPTABLES -F
$IPTABLES -t nat -F
$IPTABLES -t mangle -F
$IPTABLES -X
$IPTABLES -t nat -X
$IPTABLES -t mangle -X
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -N bad_tcp_packets
$IPTABLES -N allowed
$IPTABLES -N icmp_packets
$IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j LOG --log-level INFO --log-prefix "New not syn:"
$IPTABLES -A bad_tcp_packets -p TCP ! --syn -m state --state NEW -j DROP
$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
$IPTABLES -t nat -A POSTROUTING -o $INT_wangtong -j MASQUERADE
# ICMP rules
$IPTABLES -A INPUT -p icmp -j ACCEPT
$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 8 -j ACCEPT
$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT
# INPUT chain
$IPTABLES -A INPUT -m state --state INVALID -j DROP
$IPTABLES -A INPUT -p tcp -m multiport --dports $POP3,$HTTP,$SMTP,$SSH,$FTP,$MYSQL -j ACCEPT
$IPTABLES -A INPUT -p tcp -j bad_tcp_packets
$IPTABLES -A INPUT -p ICMP -i $INT_wangtong -j icmp_packets
$IPTABLES -A INPUT -p ALL -i $LAN_IFACE -d $LAN_IP -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LO_IP -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LAN_IP -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $INT_wangtong_IP -j ACCEPT
$IPTABLES -A INPUT -p ALL -d $INT_wangtong_IP -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level INFO --log-prefix "IPT INPUT packet died: "
#=========================dns=========================================
$IPTABLES -A INPUT -s 0/0 -p udp --dport $DNS -j ACCEPT
# FORWARD chain
$IPTABLES -A FORWARD -p TCP -j bad_tcp_packets
$IPTABLES -A FORWARD -i $LAN_IFACE -o $INT_wangtong -j ACCEPT
$IPTABLES -A FORWARD -i $INT_wangtong -o $LAN_IFACE -m state --state ESTABLISHED,RELATED -j ACCEPT
#=================================================================================================
$IPTABLES -A INPUT -p tcp --dport 0:1023 -j DROP
$IPTABLES -A INPUT -p udp --dport 0:1023 -j DROP
实际的含义有些代码我也不太懂。。可能有错误的地方,还有代码顺序错误 还请指点指点。。
[ 本帖最后由 jzh5188 于 2008-11-2 22:02 编辑 ] |
|