感谢支持
我们一直在努力

Linux的iptables脚本说明

#开启DHCP上网


#dhcpd eth0


#加载相关的内核模块


/sbin/modprobe ip_tables


/sbin/modprobe ip_nat_ftp


/sbin/modprobe ip_conntrack_ftp


# 清除预设表 filter 中,所有规则链中的规则


/sbin/iptables -F


# 清除nat表中,所有规则链中的规则  


/sbin/iptables -F -t nat


# 清除预设表 filter 中,使用者自订链中的规则


/sbin/iptables -X


#将封包计数器归零。封包计数器是用来计算同一封包出现次数,是过滤阻断式攻击不可或缺的工具


/sbin/iptables -Z


# 清除mangle表中,所有规则链中的规则


#iptables -F -t mangle


# 清除mangle表中,使用者自订链中的规则


#iptables -t mangle -X


# 清除nat表中,使用者自订链中的规则


#iptables -t nat -X


#定义链的规则(设定预设规则)


/sbin/iptables -P INPUT ACCEPT


/sbin/iptables -P FORWARD DROP


/sbin/iptables -P OUTPUT ACCEPT


# 打开 forward 功能 (或在/etc/sysconfig/network 中添加 FORWARD_IPV4=yes 打开转发功能,实现各网段互访)


echo “1”> /proc/sys/net/ipv4/ip_forward


# IP转发


#echo “1”>/proc/sys/net/ipv4/ip_forward


#echo “1”>/proc/sys/net/ipv4/icmp_echo_ignore_all


#echo “8184000”>/proc/sys/net/ipv4/ip_conntrack_max


#echo “1024”>/proc/sys/net/ipv4/neigh/default/gc_thresh1


#echo “2048”>/proc/sys/net/ipv4/neigh/default/gc_thresh2


#echo “4096”>/proc/sys/net/ipv4/neigh/default/gc_thresh3


#将返回给CERNET DNS客户数据包的源端口(53端口)伪装成53端口,只要正确的改这里,下面的机器可以改成任意的dns。


iptables -t nat -A PREROUTING -p udp -d 0.0.0.0/0 –dport 53 -j DNAT –to 218.30.19.40:53


#iptables -t nat -A PREROUTING -p udp -d 192.168.1.1 –dport 53 -j DNAT –to 61.134.1.9:53


#IP 伪装(SNAT应用)


#使内网的封包经过伪装之后,使用对外的 eth0 网卡当作代理号,对外连线,进行IP地址伪装,使得内部的主机的数据包能通过服务器与外界联系!


/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE


/sbin/iptables -A FORWARD -s 0/0 -d 0/0 -j ACCEPT


#禁止ping


#ping


#iptables -A INPUT -p icmp –icmp-type 8 -s 0/0 -j DROP


#iptables -A INPUT -p icmp –icmp-type 0 -s 0/0 -j ACCEPT

# 设置icmp阔值 ,并对攻击者记录在案,小型的防火墙!


iptables -A INPUT -p icmp -m limit –limit 3/s -j LOG –log-level INFO –log-prefix “ICMP packet IN: “


iptables -A INPUT -p icmp -m limit –limit 6/m -j ACCEPT


iptables -A INPUT -p icmp -j DROP


# 打开 syncookie (轻量级预防 DOS 攻击)


sysctl -w net.ipv4.tcp_syncookies=1 &>/dev/null


# 设置默认 TCP 连接痴呆时长为 3800 秒(此选项可以大大降低连接数)


sysctl -w net.ipv4.netfilter.ip_conntrack_tcp_timeout_established=3800 &>/dev/null


# 设置支持最大连接树为 30W(这个根据内存和 iptables 版本来,每个 connection 需要 300 多个字节)


#sysctl -w net.ipv4.ip_conntrack_max=300000 &>/dev/null


# 允许要转向的包


iptables -A FORWARD -p tcp –syn -m limit –limit 1/s -j ACCEPT


iptables -A FORWARD -p tcp –tcp-flags SYN,ACK,FIN,RST RST -m limit –limit 1/s -j ACCEPT


iptables -A FORWARD -p icmp –icmp-type echo-request -m limit –limit 1/s -j ACCEPT


iptables -A FORWARD -i eth0 -j ACCEPT


iptables -A FORWARD -m state –state ESTABLISHED,RELATED -j ACCEPT


# 防止SYN攻击 轻量


iptables -N syn-flood


iptables -A INPUT -p tcp –syn -j syn-flood


iptables -A syn-flood -p tcp -m limit –limit 3/s –limit-burst 6 -j RETURN


iptables -A syn-flood -j REJECT


# 对于不管来自哪里的ip碎片都进行控制,允许每秒通过100个碎片


iptables -A FORWARD -f -m limit –limit 100/s –limit-burst 100 -j ACCEPT


# icmp包通过的控制,防止icmp黑客攻击


iptables -A FORWARD -p icmp -m limit –limit 1/s –limit-burst 10 -j ACCEPT


# 丢弃坏的TCP包


iptables -A FORWARD -p TCP ! –syn -m state –state NEW -j LOG –log-prefix “New not syn:”


iptables -A FORWARD -p TCP ! –syn -m state –state NEW -j DROP


#drop pp poco(禁止PP POCO)


iptables -I FORWARD -p tcp -s 0/0 –dport 2881 -j DROP


iptables -I FORWARD -p tcp -s 0/0 –dport 5354 -j DROP


iptables -I FORWARD -p tcp -s 0/0 –dport 9099 -j DROP


iptables -I FORWARD -p udp -s 0/0 –dport 8094 -j DROP


iptables -I OUTPUT -d 61.145.118.224 -j REJECT


iptables -I OUTPUT -d 210.192.122.147 -j REJECT


iptables -I OUTPUT -d 207.46.196.108 -j REJECT


#drop QQLive(禁止QQLive)


iptables -I FORWARD -p udp –dport 13000:14000 -j DROP


#drop www(禁止网页)


#iptables -I FORWARD -d www.baidu.com -j DROP


# dorp mac(通过禁止mac禁止上网)


#iptables -t nat -I PREROUTING -m mac –mac-source 00:14:78:30:3E:DE -j DROP


#drop ip(通过禁止ip禁止上网)


#iptables -I FORWARD -s 192.168.1.35 -j DROP


#accept all(允许某个ip上网)


#iptables -I INPUT -s 192.168.1.6 -j ACCEPT


#iptables -I FORWARD -s 192.168.1.6 -j ACCEPT


#端口映射


#movie


iptables -t nat -A PREROUTING -d 124.114.130.178 -p tcp -m tcp –dport 25001 -j DNAT –to-destination 192.168.100.3:3389


iptables -t nat -A POSTROUTING -d 192.168.100.3 -p tcp -m tcp –dport 3389 -j SNAT –to-source 192.168.100.1


#game


iptables -t nat -A PREROUTING -d 124.114.130.178 -p tcp -m tcp –dport 25002 -j DNAT –to-destination 192.168.100.252:3389


iptables -t nat -A POSTROUTING -d 192.168.100.252 -p tcp -m tcp –dport 3389 -j SNAT –to-source 192.168.100.1


#ftp


iptables -t nat -A PREROUTING -d 124.114.130.178 -p tcp -m tcp –dport 1021 -j DNAT –to-destination 192.168.100.3:21


iptables -t nat -A POSTROUTING -d 192.168.100.3 -p tcp -m tcp –dport 21 -j SNAT –to-source 192.168.100.1


iptables -t nat -A PREROUTING -d 124.114.130.178 -p tcp -m tcp –dport 1022 -j DNAT –to-destination 192.168.100.252:21


iptables -t nat -A POSTROUTING -d 192.168.100.252 -p tcp -m tcp –dport 21 -j SNAT –to-source 192.168.100.1


#flim


#iptables -t nat -A PREROUTING -d 124.114.130.178 -p tcp -m tcp –dport 8088 -j DNAT –to-destination 192.168.1.251:80


#iptables -t nat -A POSTROUTING -d 192.168.1.251 -p tcp -m tcp –dport 80 -j SNAT –to-source 192.168.100.1

赞(0) 打赏
转载请注明出处:服务器评测 » Linux的iptables脚本说明
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏