自学内容网 自学内容网

防火墙----iptables

防火墙是位于内部网和外部网之间的屏障,他按照系统管理员预先定义好的规则来控制数据包的进出

一、iptables简介

防火墙会从以上至下的顺序来读取配置的策略规则,在找到匹配项后就立即结束匹配工作并去执行匹配项中定义的行为(即放行或阻止)。如果在读取完所有的策略规则之后没有匹配项,就去执行默认的策略。
iptables 服务把用于处理或过滤流量的策略条目称之为规则,多条规则可以组成一个规则链,而规则链则依据数据包处理位置的不同进行分类。
1、规则链
  • 规则的作用:对数据包进行过滤或处理
  • 链的作用:容纳各种防火墙规则
  • 链的分类依据:处理数据包的不同时机

5种规则链

  • INPUT:处理进入本机的数据包
  • OUTPUT:处理从本机出去的数据包
  • FORWARD:处理转发数据包
  • POSTROUTING链:在进行路由选择后处理数据包
  • PREROUTING链:在进行路由选择前处理数据包
2、规则表
  • 表的作用:容纳各种规则链
  • 表的划分依据:防火墙规则的作用相似

4个规则表

  • raw表:确定是否对该数据包进行状态跟踪
  • mangle表:为数据包设置标记(修改数据包的头部信,拆解报文,做出修改,并重新封装)
  • nat:用于网络地址转换,修改数据包中的源、目标IP地址或端口
  • filter表:确定是否放行该数据包(过滤),iptables的默认表

 

四表五链总结:最终定义防火墙规则,都会添加规则到其中一张表,所以实际操作是对表的操作 

 规则表的作用∶容纳各种规则链

规则链的作用∶容纳各种防火墙规则

表里有链,链里有规则

 

 3、规则链之间的匹配顺序:
  • 入站数据(来自外界的数据包,且目标地址是防火墙本机)∶ PREROUTING --> INPUT --> 本机的应用程序
  • 出站数据(从防火墙本机向外部地址发送的数据包)∶ 本机的应用程序 --> OUTPUT --> POSTROUTING网络型防火墙∶
  • 转发数据(需要经过防火墙转发的数据包)∶ PREROUTING --> FORWARD --> POSTROUTING
4、规则链内的匹配顺序
  • 自上向下按顺序依次进行检查,找到相匹配的规则即停 止 (LoG策略例外, 表示记录相关日志)
  • 若在该链内找不到相匹配的规则,则按该链的默认策略处理(未修改的状况下,默认策略为允许)

 

 

5.iptables的处理动作 
  • 当规则链匹配后应采用以下几种动作来处理匹配流量:
  • ACCEPT:允许流量通过
  • REJECT:拒绝流量通过,拒绝后回复拒绝信息
  • LOG:记录日志信息
  • DROP:拒绝流量通过,流量丢弃不响应

二、iptables的配置 

rhel默认使用firewalld防火墙,没有安装iptables, 若想使用iptables防火墙。必须先关闭firewalld防火墙,再安装iptables。

1.准备工作
[root@server ~]# systemctl disable firewalld.service 
[root@server ~]# systemctl mask firewalld.service 

[root@server ~]# yum install iptables  iptables-services -y
[root@client ~]# systemctl start iptables.service
2.iptables格式
iptables -t 表名 <-A/I/D/R> 规则链名 [ 规则号 ] <-i/o 网卡名 > -p 协议名 <-s IP/ 源子网 >
--sport 源端口 <-d 目标 IP/ 目标子网 > --dport 目标端口 -j 控制动作
-t    对指定的表进行操作, table 必须是 raw nat filter mangle 中的一个,默认是 filter
  -A  在规则链的末尾加入新规则
-I  在规则链的 头部 加入新规则
-D  删除指定规则
-R  替换/ 修改第几条规则
-F   清空所有规则(F:flush 冲洗、冲掉 的意思 )
-p   指定要匹配的数据包协议类型,例如TCP、UDP、ICMP等,参看: /etc/protocols
-s   匹配源地址IP/MASK ,若有!表示取反
-d   匹配目的地址IP/MASK  
3.控制动作: 
选项用法
ACCEPT允许数据包通过
DROP直接丢弃数据包,不给出任何回 应信息
REJECT拒绝数据包通过,必要时会给数据发送端一个响应信息
4. 示例:
查看已有的防火墙规则链:
[root@server ~] # iptables -nvxL --line
# -n 显示源 -v 详细信息 -x 自动转换为 KB\MB 等单位 -L 写在最后列出所有规则 --line 增加行
# num :规则的编号(行号)
# pkts :数据包的数量
# bytes :数据包的字节数
# target :动作(放行、拒绝)
# port :端口
# in :入站的网卡
# out :出站网卡
清空规则:
[root@server ~] # iptables -F # 清空规则
[root@server ~] # iptables -nL # 查看规则链
[root@server ~] # systemctl restart iptables
[root@server ~] # iptables -nL # 由于未保存,则恢复原状
[root@server ~] # iptables -F # 再次尝试清空规则链
[root@server ~] # service iptables save # 保存服务状态
iptables: Saving firewall rules to /etc/sysconfig/iptables: [ OK ]
[root@server ~] # systemctl restart iptables # 重启服务
[root@server ~] # iptables -nL # 查看

三、iptables实验 

1.搭建web服务器,设置任何人都能通过80端口访问http

2.禁止所有人使用ssh进行远程登录

3.禁止某主机(192.168.48.131 ssh远程登录,允许访问web服务

测试: 允许访问web页面: 

4.禁止192.168.48.131 网段的地址进行ping


原文地址:https://blog.csdn.net/2401_83342251/article/details/143816285

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!