#!/bin/bash
#@允许进出的端口
PORT=(80 3306 22)
#iptables -A INPUT -s 192.168.0.3 -p tcp --dport 22 -j ACCEPT
#ping 配
iptables -A INPUT -p icmp -j ACCEPT
iptables -A OUTPUT -p icmp -j ACCEPT
#dns 配置loopback
iptables -A INPUT -i lo -p all -j ACCEPT
iptables -A OUTPUT -o lo -p all -j ACCEPT
for((i=0;i<${#PORT[@]};i++));do
iptables -A INPUT -p tcp --dport ${PORT[i]} -j ACCEPT
iptables -A OUTPUT -p tcp --sport ${PORT[i]} -j ACCEPT
done
#转发
#iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
#iptables -A FORWARD -i eth1 -o eh0 -j ACCEPT、
#限制速率
#iptables -A FORWARD -f -m limit --limit 100/s --limit-burst 100 -j ACCEPT
#设置ICMP包过滤,允许每秒1个包,限制触发条件是10个包.
#iptables -A FORWARD -p icmp -m limit --limit 1/s --limit-burst 10 -j ACCEPT
#禁止内网ip 欺骗
# iptables -F -t nat
# iptables -X -t nat
# iptables -Z -t nat
# 如果我们想,比如阻止MSN,QQ,BT等的话,需要找到它们所用的端口或者IP,(个人认为没有太大必要)
#禁止与211.101.46.253的所有连接
# iptables -t nat -A PREROUTING -d 211.101.46.253 -j DROP禁用FTP(21)端口
# iptables -t nat -A PREROUTING -p tcp --dport 21 -j DROP
#这样写范围太大了,我们可以更精确的定义.
# iptables -t nat -A PREROUTING -p tcp --dport 21 -d 211.101.46.253 -j DROP
#这样只禁用211.101.46.253地址的FTP连接,其他连接还可以.如web(80端口)连接.
#按照我写的,你只要找到QQ,MSN等其他软件的IP地址,和端口,以及基于什么协议,只要照着写就行了.
#nat 转发
#将防火墙改为转发模式
#echo 1 > /proc/sys/net/ipv4/ip_forward
#iptables -F
#iptables -t nat -F
#iptables -t mangle -F
#iptables -X
#iptables -t nat -X
#iptables -t mangle -X
#iptables -A INPUT -i lo -j ACCEPT
#iptables -A OUTPUT -o lo -j ACCEPT
#iptables -P INPUT ACCEPT
#iptables -P OUTPUT ACCEPT
#iptables -P FORWARD ACCEPT
#用户请求202.202.202.1 转发到内网192.168.0.101
#iptables -t nat -A PREROUTING -d 202.202.202.1 -j DNAT --to-destination 192.168.0.101
#内网192.168.0.101响应出去 192.168.0.1
#iptables -t nat -A POSTROUTING -d 192.168.0.101 -j SNAT --to 192.168.0.1
/etc/rc.d/init.d/iptables save
iptables规则详解
最新推荐文章于 2025-04-12 10:13:12 发布