我想下面的脚本很容易看懂!当然如果没看懂提出来,我很乐意解答!当然,也很希望你们可以指出错误!很感谢大家的指导,特别是platinum!
环境:redhat9加载了stringtime等模块,加载方法参照http://bbs.chinaunix.net/forum/viewtopic.php?t=525493
etho接外网──ppp0
eth1接内网──192.168.0.0/24
#!/bin/sh
#
modprobeipt_MASQUERADE
modprobeip_conntrack_ftp
modprobeip_nat_ftp
iptables-F
iptables-tnat-F
iptables-X
iptables-tnat-X
###########################INPUT键###################################
iptables-PINPUTDROP
iptables-AINPUT-mstate--stateESTABLISHED,RELATED-jACCEPT
iptables-AINPUT-ptcp-mmultiport--dports110,80,25-jACCEPT
iptables-AINPUT-ptcp-s192.168.0.0/24--dport139-jACCEPT
#允许内网samba,smtp,pop3,连接
iptables-AINPUT-ieth1-pudp-mmultiport--dports53-jACCEPT
#允许dns连接
iptables-AINPUT-ptcp--dport1723-jACCEPT
iptables-AINPUT-pgre-jACCEPT
#允许外网vpn连接
iptables-AINPUT-s192.186.0.0/24-ptcp-mstate--stateESTABLISHED,RELATED-jACCEPT
iptables-AINPUT-ippp0-ptcp--syn-mconnlimit--connlimit-above15-jDROP
#为了防止DOS太多连接进来,那么可以允许最多15个初始连接,超过的丢弃
iptables-AINPUT-s192.186.0.0/24-ptcp--syn-mconnlimit--connlimit-above15-jDROP
#为了防止DOS太多连接进来,那么可以允许最多15个初始连接,超过的丢弃
iptables-AINPUT-picmp-mlimit--limit3/s-jLOG--log-levelINFO--log-prefix"ICMPpacketIN:"
iptables-AINPUT-picmp-jDROP
#禁止icmp通信-ping不通
iptables-tnat-APOSTROUTING-oppp0-s192.168.0.0/24-jMASQUERADE
#内网转发
iptables-Nsyn-flood
iptables-AINPUT-ptcp--syn-jsyn-flood
iptables-Isyn-flood-ptcp-mlimit--limit3/s--limit-burst6-jRETURN
iptables-Asyn-flood-jREJECT
#防止SYN攻击轻量
#######################FORWARD链###########################
iptables-PFORWARDDROP
iptables-AFORWARD-ptcp-s192.168.0.0/24-mmultiport--dports80,110,21,25,1723-jACCEPT
iptables-AFORWARD-pudp-s192.168.0.0/24--dport53-jACCEPT
iptables-AFORWARD-pgre-s192.168.0.0/24-jACCEPT
iptables-AFORWARD-picmp-s192.168.0.0/24-jACCEPT
#允许vpn客户走vpn网络连接外网
iptables-AFORWARD-mstate--stateESTABLISHED,RELATED-jACCEPT
iptables-IFORWARD-pudp--dport53-mstring--string"tencent"-mtime--timestart8:15--timestop12:30--daysMon,Tue,Wed,Thu,Fri,Sat-jDROP
#星期一到星期六的8:00-12:30禁止qq通信
iptables-IFORWARD-pudp--dport53-mstring--string"TENCENT"-mtime--timestart8:15--timestop12:30--daysMon,Tue,Wed,Thu,Fri,Sat-jDROP
#星期一到星期六的8:00-12:30禁止qq通信
iptables-IFORWARD-pudp--dport53-mstring--string"tencent"-mtime--timestart13:30--timestop20:30--daysMon,Tue,Wed,Thu,Fri,Sat-jDROP
iptables-IFORWARD-pudp--dport53-mstring--string"TENCENT"-mtime--timestart13:30--timestop20:30--daysMon,Tue,Wed,Thu,Fri,Sat-jDROP
#星期一到星期六的13:30-20:30禁止QQ通信
iptables-IFORWARD-s192.168.0.0/24-mstring--string"qq.com"-mtime--timestart8:15--timestop12:30--daysMon,Tue,Wed,Thu,Fri,Sat-jDROP
#星期一到星期六的8:00-12:30禁止qq网页
iptables-IFORWARD-s192.168.0.0/24-mstring--string"qq.com"-mtime--timestart13:00--timestop20:30--daysMon,Tue,Wed,Thu,Fri,Sat-jDROP
#星期一到星期六的13:30-20:30禁止QQ网页
iptables-IFORWARD-s192.168.0.0/24-mstring--string"ay2000.net"-jDROP
iptables-IFORWARD-d192.168.0.0/24-mstring--string"宽频影院"-jDROP
iptables-IFORWARD-s192.168.0.0/24-mstring--string"色情"-jDROP
iptables-IFORWARD-ptcp--sport80-mstring--string"广告"-jDROP
#禁止ay2000.net,宽频影院,色情,广告网页连接!但中文不是很理想
iptables-AFORWARD-mipp2p--edk--kazaa--bit-jDROP
iptables-AFORWARD-ptcp-mipp2p--ares-jDROP
iptables-AFORWARD-pudp-mipp2p--kazaa-jDROP
#禁止BT连接
iptables-AFORWARD-ptcp--syn--dport80-mconnlimit--connlimit-above15--connlimit-mask24-jDROP
#只允许每组ip同时15个80端口转发
#######################################################################
sysctl-wnet.ipv4.ip_forward=1&>;/dev/null
#打开转发
#######################################################################
sysctl-wnet.ipv4.tcp_syncookies=1&>;/dev/null
#打开syncookie(轻量级预防DOS攻击)
sysctl-wnet.ipv4.netfilter.ip_conntrack_tcp_timeout_established=3800&>;/dev/null
#设置默认TCP连接痴呆时长为3800秒(此选项可以大大降低连接数)
sysctl-wnet.ipv4.ip_conntrack_max=300000&>;/dev/null
#设置支持最大连接树为30W(这个根据你的内存和iptables版本来,每个connection需要300多个字节)
#######################################################################
iptables-IINPUT-s192.168.0.50-jACCEPT
iptables-IFORWARD-s192.168.0.50-jACCEPT
#192.168.0.50是我的机子,全部放行!
############################完#########################################