iptables

==============
Table:
filter:一般的过滤功能,包含input,forward,output。默认选项
nat:用于地址转换、映射、端口映射等,包含prerouting,postrouting
mangle:用于对特定数据包的修改,包含prerouting,output,forward,input,postrouting
raw:一般是为了不再让iptables做数据包的连接跟踪处理,从而提供性能,包含prerouting,output

==============
Subcommand:
链管理
-N :new,自定义一条新的规则链
-X :delete,删除自定义的空的规则链
-P :Policy,设置默认策略;对filter 表中的链而言,其默认策略有:ACCEPT :接受,DROP :丢弃

查看
-L :list,列出指定链上的所有规则,本选项须置后
-n :numberic,以数字格式显示地址和端口号

规则管理:
-A :append,追加
-I :insert,插入,要指明插入的规则编号,默认为第一条。
-D :delete,删除。(1)指明规则序号,(2)指明规则本身
-R :replace ,替换指定链上的指定规则编号
-F :flush ,清空指定的规则链
-Z :zero ,置零

==============
Chain:
INPUT (policy ACCEPT)
FORWARD (policy DROP)
OUTPUT (policy ACCEPT)
PREROUTING 流入的数据包进入路由表之前
POSTROUTING 传出的数据包到达网卡出口之前

==============
Match
-s, --source address/mask :源IP 地址或范围
-d, --destination address/mask :目标IP 地址或范围
-p, --protocol protocol :指定协议,protocol: tcp, udp, icmp
-i, --in-interface name :报文流入的接口;只能应用于数据报文流入环节,只应用于 INPUT 、FORWARD 、PREROUTING 链
-o, --out-interface name :报文流出的接口;只能应用于数据报文流出的环节,只应用于 OUTPUT 、FORWARD 、 POSTROUTING 链

--source-port, --sport port[:port] :匹配报文tcp首部源端口,可为端口范围
--destination-port,--dport port[:port] :匹配报文目标端口,可为范围

--tcp-flags mask comp:mask需检查的标志位列表,用逗号分隔,如 SYN,ACK,FIN,RST,PSH,URG,ALL,NONE.comp在mask列表中必须为1的标志位列表,无指定则必须为0,用逗号分割

==============
Target
-j targetname [per-target-options]:跳转目标

简单:
    ACCEPT
    DROP
扩展:
    REJECT :     明确拒绝,默认
    RETURN :     返回调用链
    REDIRECT :   端口重定向
    LOG :        记录日志,dmesg
    MARK :       做防火墙标记
    DNAT :       目标地址转换
    SNAT :       源地址转换
    MASQUERADE : 地址伪装


查看目前iptables
iptables -n -L

iptables -t nat -L

本地端口转发
iptables -t nat -A PREROUTING -s 192.168.250.0/32 -p tcp --dport 80 -j REDIRECT --to-ports 8080

iptables -t nat -D PREROUTING -s 192.168.250.0/32 -p tcp --dport 80 -j REDIRECT --to-ports 8080

异地端口转发
iptables -t nat -A PREROUTING -s 192.168.250.0/32 -p tcp --dport 81 -j DNAT --to 192.168.250.132:8081

iptables -t nat -D PREROUTING -s 192.168.250.0/32 -p tcp --dport 81 -j DNAT --to 192.168.250.132:8081

保存规则到配置文件中
cp /etc/sysconfig/iptables /etc/sysconfig/iptables.bak # 任何改动之前先备份,请保持这一优秀的习惯
iptables-save > /etc/sysconfig/iptables
cat /etc/sysconfig/iptables


芒果牛奶
1 声望0 粉丝

运维背锅之路


« 上一篇
tcpdump