iptables学习笔记

2019-06-28 11:43:12 浏览数 (1)

 一 三个表

1 filter

    1) INPUT

    2) OUTPUT

    3) FORWARD

2 nat 

    1) PREROUTING

    2) POSTROUTING 

    3) OUTPUT

3 mangle

二 iptables 语法

iptables -AI 链 INPUT|OUTPUT|FORWARD|LOG -io 网络接口 -p 协议 -s 来源ip/网段 --sport 端口范围

         -d 目标ip/网段 --dport 端口范围-j ACCEPT|DROP

    -AI A 新增 I 插入

    -io 网络接口 i 进入的接口 需要和INPUT链配合 o 传出的接口 需要和OUTPUT链配合

    -p 协议 tcp udp icmp all

    -s -d 主机 192.168.0.100 网段192.168.0.0/24,192.168.0.0/255.255.255.0 加上!表示不包含

    --dport --sport 连续端口1024:2048 不连续端口 024,1026

iptables 状态

iptables -A INPUT -m state --state 状态

    -m iptables模块 state: 状态模块 mac: 

    --state: 数据包的状态 INVALID: 无效 ESTABLISHED: 已经成功连接 NEW: 想要新建立连接 RELATED: 表示数据包与发出去的数据包有关

三 常见配置

1)允许所有的本机发出去的相关请求的相关数据包可以进入

iptables -A INPUT -i lo -j ACCEPT 

iptables -A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT

针对mac开放

iptables -A INPUT -m mac --mac--source aa:bb:cc:dd:ee:ff -j ACCEPT

2)nat 设置

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

snat

如果有多个ip断,可以如下设置

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j SNAT --to 61.61.61.61

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to 61.61.61.62

如果只是简单的内网外网,可以如下设置

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE

dnat

外部80端口到内部192.168.1.100的端口转换

iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 80 -j DNAT --to 192.168.1.100:80

将本机的80端口重定向到8080端口

iptables -t nat -A PREROUTING -p tcp  --dport 80 -j REDIRECT --to-ports 8080

ip对ip的转换

iptables -A FORWARD -s 192.168.1.1 -j ACCEPT

iptables -A FORWARD -d 192.168.1.1 -j ACCEPT

iptables -t nat -P PREROUTING  ACCEPT

iptables -t nat -P POSTROUTING ACCEPT

iptables -t nat -P OUTPUT      ACCEPT

iptables -t nat -A PREROUTING -d 1.1.1.2 -j DNAT --to-destination 192.168.1.1

iptables -t nat -A POSTROUTING -s 192.168.1.1 -j SNAT --to-source 61.61.61.63

0 人点赞