iptables详解

iptables 入门详解

一、 iptables介绍

采用数据包过滤机制工作的,所以会对请求的数据包的包头数据进行分析,并根据预先规定的规则进行匹配来决定是否可以进入主机。iptables主要工作在OSI的二、三、四层。

​ iptables工作流程小结:

​ 1、防火墙是一层层过滤的。实际是按照配置规则的顺序从上到下,从前到后进行过滤的。
​ 2、如果匹配上规则,即明确表明是阻止还是通过,此时数据包就不在向下匹配新规则了。
​ 3、如果所有规则中没有明确表明是阻止还是通过这个数据包,也就是没有匹配上规则,向
​ 下进行匹配,直到匹配默认规则得到明确的阻止还是通过。
​ 4、防火墙的默认规则是对应链的所有的规则执行完才会执行的。

​ iptables是表的容器,iptables有四张表。表是链(chain)的容器,链是规则(policy)的容器。

​ 四表: (1) filter(筛选作用,最常用) :INPUT OUTPUT FORWARD

​ (2) nat (负责数据包改写,网关共享) :OUTPUT PREROUTING POSTPREROUTING

​ (3)mangle(硬件常使用) :INTPUT OUTPUT FORWARD PREROUTING POSTROUTING

​ (4)raw

​ 查看4表5链: man iptables

二、工作原理

在这里插入图片描述

在这里插入图片描述

强调:.上 图可以用北京地铁1,2号线来描述:
1号线:主要是NAT功能,
企业案例:
1)局域网上网共享(路由和网关),使用NAT的POSTROUTING链。.
2)外部P和端口映射为内部P和端口(DMZ功能),,使用 NAT的PREROUTING链
2号线:主要是FIltER功能,即防火墙功能FILTRR NPUT FORWARD.
企业案例:
1)主要应用就是主机服务器防火墙,使用FILTER的INPUT链。

三、常用命令

​ iptables -n :数字

​ iptables -L :列表

​ iptables -F (iptables --flush):清除所有规则,不会处理默认规则

​ iptables -X (iptables --delete -chain) :删除用户自定义的链

​ iptables -Z : 链的计数器清零

​ -t :指定表

​ -A :添加规则

​ -p :协议(all,tcp,udp,icmp),默认all。 匹配端口范围时用冒号分隔: -p 10:80

​ --dport :目的端口

​ --sport:源端口

​ -j :jump 处理行为(ACCEPT、DROP 、REJECT)

​ -A: 将规则添加到链的结尾

​ -I :将规则添加到指定位置,默认第一条

​ --line-number : 显示规则的序号

​ -D : 删除规则

​ -s :源地址,网段

​ -i :匹配进入的网卡接口 如:iptables -A INPUT -i eth0

​ -o :匹配出去的网卡接口 如:iptables -A FORWARD -o eth0

	-m state --state 匹配网络状态

​ -m limit --limit n/{second/minite/hour}:限制指定时间包的允许通过数量和最大并发数量

​ -limit -burst 2 -j ACCEPT

​ -P :改变默认规则

注意:

​ ## Drop: 把包丢弃,可能会再次访问 ,建议使用。

​ Refuse:拒绝,会告诉。

​ ## -p 要在 -dport 前面

​ ## 使用-D -I -R时需要在链后面加第几行 ,使用-A时不用加,只能加在最后一行。

(1) 增删查改

查看表: iptables -t 表名 -L (直接输入iptables -L 打开的是filter这张表)

在这里插入图片描述

(1)一般查看一个表后面接触 -nvL 如:iptables -t 表名 -nvL

img

(2)删除某个策略: iptables -D INPUT 1(行数)

(3)增加某个策略:iptables -A INPUT -p tcp --dport 80 (-A 默认添加到最后)

​ iptables -A INPUT -p tcp --dport 80 -j ACCEPT

img

iptables -I INPUT 2 -p tcp --dport 80 -j ACCEPT (插入用-I,默认插入在第一行)

img

(4)修改策略 : iptables -R INPUT 7 -p tcp --dport 80 -j ACCEPT

OUTPUT相关:

​ 禁止目的地址为某个特定地址时:iptables -A OUTPUT -d baidu.com -j DROP

(2) iptables 默认加载的内核模块

​ lsmod |egrep “nat|filter”

​ linux 默认加载模块为空,通过modprobe加载如下模块到linux内核。

​ modprobe ip_tables

​ modprobe iptable_filter

​ modprobe iptable_nat

​ modprobe ip_conntrack

​ modprobe ip_conntrack_ftp

在这里插入图片描述

(3)禁用端口

查看ssh端口:netstat -lntup|grep ssh

禁用ssh:iptables -t filter -A INPUT -p tcp --dport 22 -j DROP

​ 使用禁用端口范围的方式:iptables -t filter -A INPUT -p tcp --dport 22:23 -j DROP

​ 若多个端口不连续可以使用 -m multiport (!)–dport 22,23的方式

在这里插入图片描述

进入linux,查看iptables

在这里插入图片描述

删除该条规则(规则较多时,用iptables -nvL --line-number 显示规则的序号)

在这里插入图片描述

(4)禁用网段

​ 基于客户端源地址网段控制:-s 192.168.40.0/24
在这里插入图片描述

​ 取非(端口,协议等等都可以使用非): iptables -A INPUT ! -s 192.168.40.0/24 -j DROP

​ (注意:centos5.8 及之前!放在-s后面 ,centos6开始,!放在-s前面)

(5) 匹配icmp类型

​ iptables -I INPUT -p icmp --icmp-type 8 -j DROP (这样设置后ping不通)

​ iptables -I INPUT -p icmp -m icmp --icmp-type any -j ACCEPT

​ iptables -A FORWARD -s 192.168.1.0/24 -p icmp -m icmp --icmp-type any -j ACCEPT

(6)匹配网络状态

​ -m state --state

​ NEW:已经或将启动新的连接

​ ESTABLISHED:已经建立的连接

​ RELATED:正在启动的新连接

​ INVALID:非法或无法识别的

​ 如:允许关联(RELATED)的状态包通过(WEB服务器不要使用FTP服务)

​ iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

​ iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

四、防火墙的应用

iptables防火墙的应用:
1)主机防火墙
2)网关的应用(IP映射,端口映射)
3)过滤信息,监控限制流量及员工上网行为( squid(正向代理缓存加过滤)+ntop (图形流量
监控) +tc (流量限制) +iptrfiftop (流量查看) )
如果IPTABLES的服务器升级内核可以实现类似squid的过滤的功能。
4)网关装杀毒软件软件监听9999端口,(网关杀毒)
smtp gateway anti-vinus
-A PREROUTING -i eth0 -d 211.167.253.109 _p tcp -m tcp -dport 25 j DNAT --to-destination
192.168. 10.6:9025
5)结合zebra配置企业级路由器。

五、总结

iptables常用企业案例:
1、linux 主机防火墙(表:FILTER链: INPUT) 。
2、局域网机器共享上网(表: NAT链: POSTROUTING)
iptables -t nat -A POSTROUTING -S 192.168.1.0/24 -0 eth0 d SNAT - to source 10.0.0.7
3、外部地址和端口,映射为内部地址和端口(表: NAT链: PREROUTING)
iptables -t nat -A PREROUTING -d 10.0.0.7 -P tcp --dport 80 j DNAT --to-destination
192.168.1.8:9000

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值