linux防火墙

一.基本

1.iptables和firewalld服务都是管理防火墙的工具,并不是防火墙.rhel7用firewalld服务代替了iptables服务

2.策略:

ACCEPT: 接受
REJECT: 拒绝
DROP: 丢弃
LOG: 记录日志,然后传给下一个规则匹配(日志/var/log/message)

  

3.规则表:

raw表: 确定是否对数据包进行状态跟踪
mangle表: 为数据包设置标记
nat表:修改数据包中的源,目标IP地址或端口
filter:确定是否放行该数据包(过滤,这是默认的表类型)

  

先后顺序:raw -> mangle -> nat -> filter

4.规则链:

PREROUTINT: 在进行路由选择前处理数据包
INPUT: 处理入站数据包
OUTPUT:处理出站的数据包
FORWARD:处理转发数据包
POSTROUTING:路由选择后处理数据包

  

先后顺序
入站顺序:PREROUTINT -> INPUT
出站顺序:OUTPUT -> POSTROUTING
转发顺序:PREROUTINT -> FORWARD -> POSTROUTING

 

综合示意图:

 

5.注意
a.没有指定规则表,则默认是filter
b.没有指定规则链则指表内所有规则链
c.规则链中匹配规则时,会依次检查,匹配即停止(LOG除外)

二.命令格式

1.基本格式
iptables [-t 表名] 选项 [链名] [条件] [-j 控制类型]

2.参数:

-P 设置默认策略,如: iptables -P INPUT (DROP|ACCEPT)
-F 清空规则链
-L 查看规则链
-A 规则链末尾插入新规则
-I num 规则链头部插入新规则
-D num 删除某一条规则
-s 匹配来源地址ip/MASK, 加!表示除了这个IP外
-d 匹配目标地址
-i 网卡名称 匹配从这块网卡流入的数据
-o 网卡名称 匹配从这块网卡流出的数据
-p 匹配协议,如tcp/upd/icmp
--dport num 目标端口号
--sport num 来源端口号

  

查看nat链:

iptables -t nat -nL

  

允许ping:

iptables -I INPUT -p icmp -j ACCEPT

  

3.snat(源地址转换技术)和dnat(目标地址转换技术)

本机80端口转发到81端口:

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 81
iptables -I INPUT -p tcp --dport 81 -j ACCEPT

  

将访问本机的80端口时转向到192.168.2.10的9000端口

iptables -t nat -I PREROUTING -p tcp --dport 80  -j DNAT --to-destination 192.168.2.10:9000
iptables -t nat -A POSTROUTING -j MASQUERADE

  

 

posted @ 2017-12-14 19:30  rorshach  阅读(212)  评论(0编辑  收藏  举报