filter表包含以下3条链:
INPUT链:过滤所有目标地址是本机的数据包,
forward链:过滤所有路过本机的数据包,也就是目的地址和源地址都不是本机的数据包,
OUTPUT链:过滤所有由本机产生的数据包,也就是源地址是本机的数据包,
nat表
nat表用于网络地址转换,iptables可以进行以下的nat转发:
DNAT:主要用于改变数据包的目的地址,以使数据包能重新路由到某台主机,
SNAT:主要用于改变数据包的源地址,以帮助内部网络能连接到internet,
MASQUERADE和SNAT完全一样,只是MASQUERADE会查找可用的ip地址,而不像SNAT要有一个固定的ip,所以MASQUERADE一般用于adsl/ppp等拔号共享上网的方式
,
nat表包含以下3条链:
PREROUTING 链:可以在数据包到达防火墙的时候改变包的目标地址,
postrouting链:在数据包就要离开防火墙的时候改变数据包的源地址
OUTPUT链:可以改变本地产生的数据包的目标地址,
使用nat表 实现端口转发
cat /proc/sys/net/ipv4/ip_forward 1 表示生效 0 标识不生效
vi /etc/sysctl.conf 修改net.ipv4.ip_forward为1
使修改生效
sysctl -p
例:将对IP192.168.169.112端口 8080的访问转发到192.168.169.111的80端口
112机器上执行
iptables -t nat -A PREROUTING --dst 192.168.169.112 -p tcp --dport 8080 -j DNAT --to-destination 192.168.169.111:80
iptables -t nat -A POSTROUTING --dst 192.168.169.111 -p tcp --dport 80 -j SNAT --to-source 192.168.169.112
对来自192.168.169.101的icmp请求丢弃
iptables 语法:
iptables -t filter -A INPUT -p icmp -s 192.168.169.101 -j DROP
禁止icmp
iptables -t filter -A INPUT -p icmp -j DROP
-A INPUT
-p icmp
-p Protocol(协议)
匹配某个特定协议封包,
语法:-p icmp ,-p tcp ,-p udp -p all
-s 192.168.1.10
-s address[/mask] 源地址
-d address[/mask] 目的地址
-j 目标处理规则
常见的处理规则
ACCEPT 允许通过
DROP 将封包丢弃调,这种处理方式将导致来源端误以为封包丢失,而不断重新发送封包,这个动作将持续到连接Timeout为止
REJECT 将封包丢弃掉,并回送一个DestinationUnreachable的ICMP封包给发送端,发送端的应用程序收到这个错误信息封包之后,会终止连接的动作
限制192.168.169.94 对本机的80端口进行访问
iptables -t filter -A INPUT -p tcp -s 192.168.169.94 --dport 80 -j DROP
允许端口80访问
iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT
清除filter表规则
iptables -F
清除nat 表规则
iptables -t nat -F
根据规则行号删除规则
iptables -nvL --line-number
删除行号为2的规则
iptables -D INPUT 2
分享文章:iptables配置
新闻来源:
http://cqcxhl.com/article/gdpsdo.html