iptables防火墙

防火墙 的定义

        防火墙是一种由硬件和软件组合而成,在内部网和外部网之间,专有网与公共网之间构造的保护屏障,用以保护用户资料和信息安全的一种技术

防火墙的作用

        主要在于及时发现并处理计算机网络运行时可能存在的安全风险,数据传输等问题,从而实现对计算机不安全网络因素的阻断。确保网络正常运行,保障信息安全,为用户提供良好的网络体验

防火墙分类

        逻辑上分类:主机防火墙和网络防火墙

                主机型防火墙:针对单个主机进行防护

                网络型防火墙:针对网络进行保护,保护内部的局域网

        物理上分类:硬件防火墙和软件防火墙

                硬件防火墙:在硬件上实现进行防火墙功能,性能高,成本高

                软件防火墙:依靠软件来实现防火墙功能,性能低,成本低

Linux包过滤防火墙

        Linux防火墙是一种功能强大的信息包过滤系统
        net filter

                是一种内核中的一种包过滤功能体系

                称为Linux防火墙“内核态”

        iptables

                位于/sbin/iptables,是防火墙规则的管理工具

                称为;inux防火墙的“用户态”

        包过滤的工作层次

                主要是网络层,针对IP数据包

                体现在对数据包内的IP地址,端口等信息的处理上

IPtables的表,链结构

        规则表       

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

                表的划分依据:防火墙规则的作用相似

        默认包括4规则表

                raw表:是否对数据包进行状态追踪

                mangle:是否为数据包设置标记

                nat表:是否修改数据包中的源,目标iIP地址或端口号

                filter表:是否放行该数据包(过滤)

         规则链

                规则的作用:对数据包进行过滤或处理

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

                链的分类依据:处理数据包的不同时机

        默认包括5种规则链

                INPUT: 处理入站数据包

                OUTPUT:处理出战数据包

                FORWARD:处理转发数据包

                POSTROUTING链:在进行路由选择后处理数据包

                PREROUTING链:在进行路由选择前处理数据包

        默认的表,链结构示意图

数据包过滤的匹配流程

        规则表之间的顺序 

                raw→mangle→nat→filter

         规则链之间的顺序

                入站:PREROUTING→INPUT

                出站:OUTPUT→POSTROUTING

                转发:PREROUTING→FORWARD→POSTROUTING

        规则链内的匹配顺序

                按顺序依次检查,匹配即停止(LOG策略例外)

                若找不到相匹配的规则,则按该链的默认策略处理

        匹配流程示意图

编写防火墙规则

        数据包的常见控制类型

                ACCEPT:允许通过

                DROP:直接丢弃,不给出任何回应

                REJECT:拒绝通过,必要时会给出提示

                LOG:记录日志信息,然后传给下一条规则继续匹配

        1.iptables安装

                1.确认开启iptables防火墙(要使用iptables防火墙,要确认firewall防火墙关闭)

systemctl status firewalld            //查看firewalld的运行状态
systemctl stop firewall                //停止firewalld服务
systemctl disable firewalld            //设置开机默认关闭

                2.使用yum安装iptables

yum -y install iptables-services iptables    //安装软件包

                3.启动防火墙,并设置开机自启动

systemctl start iptables.service
systemctl enable iptables

        2.基本语法,数据包控制

                        

        查询具有的iptables规则(-t指定查询表)

                -nL:查询

[root@bogon ~]# iptables -t raw -nL        //查看指定raw表
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination    

                -F :清空防火墙规则

iptables -t raw -F        //清理指定raw表
    

                -A   -I  添加规则

iptables -t filter -A INPUT -p icmp -j REJECT
//-t filter: 指定了要操作的表为 filter。iptables 防火墙系统中有多个表,但 filter 表是最常用的,它用于处理进入(INPUT)、转发(FORWARD)和离开(OUTPUT)的数据包。
//-A INPUT: 这意味着向 INPUT 链(chain)追加(Append)一条新规则。INPUT 链用于处理到达本地系统的数据包。
//-p icmp: 这指定了这条规则应用于 ICMP 协议的数据包。ICMP 是“Internet Control Message Protocol”的缩写,常用于网络诊断(如 ping 命令)和其他网络控制功能。
//-j REJECT: 这指定了当数据包与这条规则匹配时应该采取的动作。REJECT 意味着数据包将被拒绝,并且会向发送方返回一个错误消息(例如,对于 ICMP 数据包,这可能是一个“主机不可达”或“端口不可达”的消息

                -D 删除防火墙规则

[root@bogon ~]# iptables -t filter -nL --line-numbers
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           
2    REJECT     icmp --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable
3    DROP       udp  --  0.0.0.0/0            0.0.0.0/0           
4    DROP       udp  --  0.0.0.0/0            0.0.0.0/0           

Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination         
[root@bogon ~]# iptables -t filter -D INPUT 3 

                -P :设置默认规则

iptables -t filter -P INPUT DROP        //设置默认规则为丢弃

        规则匹配

                 通用匹配

                        协议匹配 

                                -p 协议名

[root@bogon ~]# iptables -t filter -A INPUT ! -p tcp -j ACCEPT

                        地址匹配

iptables -t filter -A INPUT -S 192.168.2.1 -j ACCEPT
 iptables -t filter -A INPUT -S 192.168.2.0/24 -J ACCEPT

                                -s源地址,-d目的地址

                        接口匹配

iptables -t filter -I INPUT -i ens33 -s 192.168.2.0 -p udp -j ACCEPT

                                -i入站网卡,-o出站网卡

                常用的隐含匹配条件

                        端口匹配:--sport 源端口, --dport 目的端口

                        允许为网段 192.168.4.0/24 转发 DNS 查询数据包

[root@localhost ~]# iptables -A FORWARD -s 192.168.4.0/24 -p udp --dport 53 -j ACCEPT
[root@localhost ~]# iptables -A FORWARD -d 192.168.4.0/24 -p udp --sport 53 -j ACCEPT

                        ICMP类型匹配:--icmp-type ICMP类型

                        禁止从其他主机 ping本机,但是允许本机 ping 其他主机

[root@localhost ~]# iptables -A INPUT -p icmp --icmp-type 8 -j DROP 
[root@localhost ~]# iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT 
[root@localhost ~]# iptables -A INPUT -p icmp --icmp-type 3 -j ACCEPT 
[root@localhost ~]# iptables -A INPUT -p icmp -j DROP

                常用的显示匹配条件

                        多端口匹配:-m multiport --soprts 源端口列表

                                             -m multiport --dports 目的端口列表

                        允许本机开放 25、80、110、143 端口

[root@localhost ~]# iptables -A INPUT -p tcp -m multiport --dport 25,80,110,143 -j ACCEPT

                        IP范围匹配: -m ipranage --src-range IP范围

                        禁止转发源 IP 地址位于 192.168.4.21 与 192.168.4.28 之间的 TCP数据包

[root@localhost	~]#	iptables	-A	FORWARD	-p	tcp	-m	iprange	--src-range 192.168.4.21-192.168.4.28 -j DROP

                        MAC地址匹配: -m mac --mac-source MAC地址

                        根据 MAC 地址封锁主机,禁止其访问本机的任何应用

[root@localhost ~]# iptables -A INPUT -m mac --mac-source 00:0c:29:c0:55:3f -j DROP

                        状态匹配: -m state --state连接状态

                        禁止转发与正常 TCP 连接无关的非--syn 请求数据包(如伪造的网络攻击数据包)

[root@localhost ~]# iptables -A FORWARD -m state --state NEW -p tcp ! --syn -j DROP

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值