Linux中iptables的用法

1 iptables

iptables命令用于建立数据过滤与NAT规则,在iptables命令中设置数据过滤或处理数据包的策略叫作规则,将多个规则合成一个链。ssh

1.1 iptables的控制类型

ACCEPT:容许经过tcp

LOG:记录日志信息,而后传给下一条规则继续匹配。ide

REJECT:拒绝经过,必要时给出提示。spa

DROP:直接丢弃,不给出任何回应。日志

1.2 规则链

规则链依据处理数据包的位置不一样而进行分类orm

PREROUTING:在进行路由选择前处理数据包。ip

INPUT:处理入站的数据包。路由

OUTPUT:处理出站的数据包。it

FORWARD:处理转发的数据包。table

POSTROUTING:在进行路由选择后处理数据包。

规则链的前后顺序:

入站顺序:PREROUTINGàINPUT

出站顺序:OUTPUTàPOSTROUTING

转发顺序:PREROUTINGàFORWARDàPOSTROUTING

1.3 规则表

iptables中的规则表是用于容纳规则链,规则表默认是容许状态的,那么规则链就是设置被禁止的规则,而反之若是规则表是禁止状态的,那么规则链就是设置被容许的规则             

raw表:肯定是否对该数据包进行状态跟踪。

mangle表:为数据包设置标记。

nat表:修改数据包中的源、目的IP地址或端口。

filter表:此表是默认规则表,肯定是否放行该数据包。

规则表的前后顺序:rawàmangleànatàfilter

1.4 注意事项

1.       没有指定规则表则默认指filter表。

2.       不指定规则链则指表内全部的规则链。

3.       在规则链中匹配规则时会依次检查,匹配即中止(LOG规则除外),若没有匹配项则按链的默认状态处理。

1.5 iptables命令用法

1.5.1 添加规则

iptables [-t 表名] 选项 [链名] [条件] [-j 控制类型]

1.5.1.1 INPUT规则

# iptables -L -t filter  #查看filter表,“-t filter”可省略,由于默认就是filter

# iptables -L -t nat   #查看nat

#INPUT链的默认策略设置为丢弃。(此时ssh链接也被拒绝了) -P:policy

# iptables -P INPUT DROP    

#容许全部的ping操做,-I:insert在规则链头部加入新规则 -p:protocol -j: jump指令

# iptables -I INPUT -p icmp -j ACCEPT

INPUT链追加一条规则,容许全部未被其余规则匹配上的数据包经过,“-t filter”可省略,由于默认就是filter

# iptables -t filter -A INPUT -j ACCEPT

仅容许来自于10.0.0.0/24网段的用户链接本机的ssh服务

# iptables -I INPUT -s 10.0.0.0/24 -p tcp --dport 22 -j ACCEPT

# iptables -A INPUT -p tcp --dport 22 -j REJECT

不容许任何主机访问本机的12345端口

# iptables -I INPUT -p tcp --dport 12345 -j REJECT

# iptables -I INPUT -p udp --dport 12345 -j REJECT 

拒绝全部主机经过eth0网卡访问本机的http服务

# iptables -I INPUT -i eth0 -p tcp --dport 80 -j REJECT

1.5.1.2 FORWARD规则

FORWARD规则至关于路由功能

禁止用户访问www.wangning.com

iptables -I FORWARD -d www.wangning.com -j REJECT

禁止IP10.0.0.66的用户上网

# iptables -I FORWARD -s 10.0.0.66 -j REJECT

 

1.5.2 删除规则

#删除filter表中INPUT规则的第一条

# iptables -D INPUT 1    

1.6 保存iptables配置

# /etc/init.d/iptables save

相关文章
相关标签/搜索