iptables命令

功能:iptables 是用来设置、维护和检查Linux内核的IP包过滤规则

命令格式:

#iptables [-t 表名]  选项 [链名]  [条件]  [-j  目标操作]

注意:

1)选项、链名、目标操作一般用大写字母,其余小写;

2)设置规则后需要执行service iptables  save保存规则,否则重启iptables服务会把前面设置的规则清除;

3)可以不指定表,默认为filter表

4)可以不指定链,默认为对应表的所有链

5)除非设置默认策略,否则必须指定匹配条件

(1)常用选项

1)添加规则

-A --append      在链的末尾追加一条规则

-I --insert      在链的开头或指定序号插入一条规则。原本该位置上的规则将会往后移动一个顺位,序号是在链名后面加上数字,

2)查看规则

-L --list              列出某规则炼中的所有规则

-n                     以数字形式显示地址、端口等信息

--line-numbers         查看规则时,显示规则的序号

-S --list-rules        打印在一个链中或所有链的规则

3)删除规则

-F --flush             清空指定链的所有规则或所有链的所有规则

# iptables –F


-D --delete            删除链内指定序号(或内容)的一条规则

# iptables -D INPUT 7


-R  --replace          规则序号替换现有规则,规则被取代后并不会改变顺序

4)默认策略

-P --policy            为指定的链设置默认规则

# iptables -P INPUT  DROP

5)链的操作

-N --new               增加一条用户自定义链

-X --delete-chain      删除一条用户自定义链

-E --rename-chain      改变链的名字


(2)条件,即包过滤基本匹配条件

1)协议匹配

-p --proto 协议

协议:tcp、udp、icmp

2)地址匹配

-s --source          源地址

-d --destination    目的地址

地址:具体ip、网段à192.168.10.1、192.168.10.0/24

3)接口匹配

-i --in-interface      收数据网卡

-o --out-interface  发数据网卡

网卡:eth0 、eth1 、eth2.....


4)端口匹配

--sport 源端口号

--dport 目的端口号

5ICMP类型匹配

--icmp-type ICMP类型

ICMP类型有:

any

echo-reply (pong)

destination-unreachable

  network-unreachable

  host-unreachable

  protocol-unreachable

  port-unreachable

  fragmentation-needed

  source-route-failed

  network-unknown

  host-unknown

  network-prohibited

  host-prohibited

  TOS-network-unreachable

  TOS-host-unreachable

  communication-prohibited

  host-precedence-violation

  precedence-cutoff

source-quench

redirect

  network-redirect

  host-redirect

  TOS-network-redirect

  TOS-host-redirect

echo-request (ping)

router-advertisement

router-solicitation

time-exceeded (ttl-exceeded)

  ttl-zero-during-transit

  ttl-zero-during-reassembly

parameter-problem

  ip-header-bad

  required-option-missing

timestamp-request

timestamp-reply

address-mask-request

address-mask-reply


6TCP标志位匹配


--tcp-flags SYN,RST,ACKSYN     多个标记以逗号隔开

tcp标记有:SYN ACK FINRST URG PSH ALL NONE



-m state --state 状态值   #多个状态以逗号隔开

状态值:INVALID,ESTABLISHED,NEW,RELATED



(3)最基本目标操作/目标规则

——设置默认规则时不加–j   添加规则时必须加-j

ACCEPT  :允许通过/放行

DROP    :直接丢弃

REJECT  :拒绝通过

LOG     :记录日志,然后传给下一跳规则

NOTRACK :免状态跟踪