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
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。