Linux防火墙体系只要工作在网咯层,针对于TCP/IP数据包实施过滤个限制,典型的包过滤防火墙(或称为网络层防防火墙)

  • net filter 指的是Linux的内核总的实现包头过滤不以程序或文件的形式存在。
  • iptables 指的是用户管理Linux防火墙的密令程序,通常位于/sbin/iptables目录下
    规则表
    1. filter 表用来对数据包过滤,根据具体的规则要求决定如何处理一个数据包。表内包含了三个链。即INPUT , FORWARD,OUTPUT
    2. nat 表:主要用来修改数据包IP地址,端口的信息表内包含了三个链,PREROUTING POSTROUTING OUTPUT
    3. mangle 表 用来修改数据包的TOS服务 TTL生存周期,或者为数据包设置Mark 标记。表内包含五个链 PREROUTING POSTROUTING INPUT OUTPUT FORWARD .
    4. raw 表 是来自1.2.9 以后的版本的iptables新增的,只要用来决定是否对数据包进行跟踪 表包含了两个链 OUTPUT PREROUTING
      规则链
    5. INPUT 当收到访问防火墙本机地址数据包(入站)时,应用从链路中的规则。
    6. OUTPUT 当防火墙本机向外发送数据包(出站)时 应用次链中的规则 。
    7. FORWARD 当接收到需要通过防火墙中转发送给其他地址的数据包中,应用此链路中的规则。
    8. PREROUTING 在数据包做出路由选择之前,应用此链中的规则
    9. POSTROUTING 在对数据包做出选择之后,应用此链中规则
      规则表之间顺序
      当数据包抵达防火墙时,将一次应用raw表、mangle表、nat表、和filter表中对应的规则(如果存在)应用顺序为raw=> mangle=>nat=>filter.
      基本语法
    10. ACCEPT 允许通过
    11. DROP 直接丢弃不给发出任何回应
    12. REJECT 拒绝数据包通过,必要时会给数据发送端一个相应
选项名 功能及特点
-A 在指定链尾端添加
-D 删除莫一条
-I 在指定链插入一条规则
-R 修改替换
-L 列出指定的所有规则末指定为所有
-F 清空链规则末指定为所有
-P 指定默认链
-n 使用数字心事显示输出结果
-v 查看规则列表显示详细信息
-h 产看密令帮助信息
--line-numbers 查看规则列表时,同时显示出在链中的顺序号
实验开始
实验目的为可以访问Linux 提供的网页服务
实现只能访问不让ping
实现NAT snt 转换 和 DNAT

实验准备两Linux 其中Linux 1 提供HTTP 服务 Linux 2充当路由器 一台客户机

  1. Linux 1 只需要开启 httpd 服务就可以 但让网卡信息要清楚
  2. Linux 2 充当路由器 双网卡配置 一个为 192.168.100.1 一个12.0.0.1
  3. 一台客户机 IP地址 为12.0.0.33
    开始实验
    • 实现互联互通 当然只能平通网关
    • [root@c02 ~]# iptables -F 清楚所有链
    • [root@c02 ~]# vim /etc/sysctl.conf 修改配置文件
    • net.ipv4.ip_forward = 1 把 0 改为 1 这样就能从客户机访问到Linux 1 提供的 httpd 服务
    • [root@c02 ~]# iptables -A FORWARD -s 12.0.0.33 -p icmp -j DROP
      在指定列表最末行插入(这个看环境因为我全部情况了不存在先后顺序)FORWARD (出站口)禁止源地址 -s 12.0.0.33 访问 -p icmp 协议 -j 执行操作 DROP 丢弃(注意大小写)
    • [root@c01 ~]# cat /etc/httpd/logs/access_log
      12.0.0.33 - - [12/May/2018:07:59:27 +0800] "查看httpd访问日志
    • [root@c02 ~]# iptables -t nat -A POSTROUTING -s 12.0.0.0/24 -o eth0 -j SNAT --to-source 192.168.100.1
      内网访问公网 -t 指定表格 nat 表 -A 插入到POSTROUTING 规则链在对数据包做出选择之后 源地址的段 -o 出口 eth0 -j 使用 SNAT --to-source 转换成外网出口
    • [root@c02 ~]# iptables -t nat -A PREROUTING -s 192.168.100.1 -i eth0 -j DNAT --to-destination 12.0.0.33 这个就是在 PREROUTING 在数据包做出路由选择之前
    • Linux Redhat 6.5 中防火墙Linux Redhat 6.5 中防火墙_第1张图片Linux Redhat 6.5 中防火墙_第2张图片Linux Redhat 6.5 中防火墙_第3张图片Linux Redhat 6.5 中防火墙_第4张图片Linux Redhat 6.5 中防火墙_第5张图片Linux Redhat 6.5 中防火墙_第6张图片Linux Redhat 6.5 中防火墙