iptabls
容器
包含的管理
iptables是表的容器,表是链的容器
iptables包含的表
- filter
- nat
- mangle
- raw
iptables的链
- INPUT:进入主机
- OUTPUT:出主机
- FORWARD:转发
- PREROUTING:进来之前的路由
- POSTROUTING:出去之前的路由
链是规则的容器。
英文单词:
chains:链 table:表 policy:规则
表和链的关系
微信截图_20190707201852.pngINPUT | OUTPUT | FORWARD | PREROUTING | POSTROUTING | |
---|---|---|---|---|---|
Filter | √ | √ | √ | × | × |
Nat | × | × | √ | √ | √ |
Mangle | √ | √ | √ | √ | √ |
Filter表
强调:主要和主机自身有关,正在负责防火墙的功能。(默认表)
链:
INPUT(最重要)
过滤进入主机的数据包。
OUTPUT
过滤出去的包
FORWARD
过滤经过主机的包。
Nat表
负责网络地址的转换,即来源与目的ip地址和port的。
链:
OUTPUT
和主机发出去的数据包有关。改变主机发出数据包的目标地址。
PREROUTING
在数据包到达防火墙时进行路由判断之前执行的规则。
作用:
改变数据包的目的地址、目的端口等。
POSTROUTING
在数据包离开防火墙最后一到门槛。
作用:
改数据包的源地址、源端口等。
iptables工作流程
iptables是采用包过滤机制工作的,所以他会获取包头的数据,来就行预先设定的规则进行匹配。
1、防火墙层层过滤。
2、如果匹配上规则,即明确表明是阻止还是通过,数据包就不在向下匹配新的规则。
3、防火墙默认规则是所有规则执行完才会执行的。
iptables命令
基本命令
/etc/init.d/iptables restart
#启动iptbles
#如果启动失败去setup中修改configuration firewall的enabled为开启
iptables -L -n --line-numbers
#显示默认表
#-L显示链表
#-n显示IP地址
#--line-numbers 显示序号
iptables -F [chain]
#清空用户添加的规则,但清空不成默认规则
iptables -X [chain]
#删除自定义的链
iptables -N chain
#创建自定义的链
iptables -Z [chain]
#清零计数器
规则命令
ss -lntup | grep ssh
#查询ssh的端口
iptables -t [table] -A [chain] -p [tcp/ucp] --dport [目的端口] -j [行为]
#-t 表示表:filter、nat
#-A 追加到链 -I插入:INPUT、OUTPUT、FORWARD、PREROUTING、POSTROUTING
#-j行为表示DROP(丢弃) 或 ACCEPT(允许) 或 REJECT(拒绝)
iptables -t [table] -D [chain] [序号]
#删除指定序号的规则
iptables
-i eth0 #从哪个网口进来
-o eth0 #从哪个网口出
-s 10.0.0.0/24 #源地址
NAT命令
iptables -t nat -A POSTROUTING -s [源地址] -o eth0 -j SNAT --to-source eth0的网口地址
#实现内网计算机上网
iptables -t nat -A PREROUTING -d [目的地址] --dport 80 -o eth1 -j DNAT --to-destination 192.168.0.2
网友评论