iptables防火墙

发布于:2024-07-05 ⋅ 阅读:(20) ⋅ 点赞:(0)

防火墙的定义

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

防火墙的作用。

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

防火墙的分类

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

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

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

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

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

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

Linux包过滤防火墙概述

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

        netfilter

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

                称为Linux防火墙的“内态核”

        iptables

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

                称为Linux防火墙的“用户态”

                netfilter和iptables都称之为Linux防火墙

        包过滤的工作层次

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

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

iptables的表,链结构

        规则表

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

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

                默认包括4个规则表

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

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

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

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

        规则链

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

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

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

        默认包括5种规则链

                INPUT:处理入站数据包

                OUTPUT:处理出站数据包

                FORWARD:处理转发数据包

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

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

        每个表下面的链        

   

数据包过滤的匹配流程

        规则表之间的顺序

                raw->mangle->nat->filter

        规则链之间的顺序

                入站:PREROUTING->INPUT

                出站:OUTPUT->POSYROUTING

                转发:PREROUTING->FORWARD->POSTROUTING

        规则链内的匹配顺序

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

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

        匹配流程示意图

                

iptables基本语法

        数据包的常见控制类型

                ACCEPT:允许通过

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

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

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

代码操作

[root@bogon ~]# systemctl status firewalld        #确认防火墙是不是启动状态
[root@bogon ~]# yum -y install iptables-services iptables    #下载iptables
[root@bogon ~]# systemctl start iptables    #开启iptables
[root@bogon ~]# systemctl enable iptables    #设置开机自启
[root@bogon ~]# iptables -t raw -nL        #查看当前表中的规则
[root@bogon ~]# iptables -t filter -F    #清理表中的规则
[root@bogon ~]# iptables -t filter -I INPUT -p icmp -j REJECT    #添加防火墙规则
[root@bogon ~]# iptables -t filter -nL        #查看当前表中的规则
[root@bogon ~]# iptables -t filter -I INPUT -p icmp -j ACCEPT    #添加防火墙规则可以ping本机
[root@bogon ~]# iptables -t filter -I INPUT -p icmp -j DROP    #直接丢弃防火墙规则不给出任何回应
[root@bogon ~]# iptables -t filter -nL --line-number    #查看防火墙规则并排序
[root@bogon ~]# iptables -D INPUT 2     #删除一条防火墙规则
[root@bogon ~]# iptables -t filter -D INPUT 2    #删除防火墙规则
[root@bogon ~]# iptables -t filter -A INPUT -p tcp -j DROP        #设置为丢弃
[root@bogon ~]# iptables -t filter -I INPUT -p icmp -j DROP       #丢弃防火墙规则
[root@bogon ~]# iptables -t filter -I INPUT -p tcp -j ACCEPT      #添加防火墙ACCEPT规则
[root@bogon ~]# iptables -t filter -P INPUT DROP        #默认入站规则设为丢弃
[root@bogon ~]# iptables -t filter -I INPUT -p tcp -j ACCEPT    #默认入站设置为放行
[root@bogon ~]# iptables -t filter -A INPUT ! -p tcp -j ACCEPT         #允许通过非tcp的包
[root@bogon ~]# iptables -t filter -A INPUT -s 192.168.93.1 -j ACCEPT        #地址匹配,指定源IP地址
[root@bogon ~]# iptables -t filter -A INPUT -s 192.168.93.0/24 -j ACCEPT     #地址匹配,网段匹配

iptables通用操作

iptables后操作
-t     #查询表
-F    #清理防火墙规则
-nL    #查看显示所有规则
-n    #进行解析
-L    #列出规则
-A    #在链的末尾添加一条规则
-i    #在链的开头(或指定序号)插入一条规则
常见的通用匹配条件
-s    #源地址
-d    #目的地址
-p    #协议名
-i    #入站网卡
-o    #出站网卡
!    #表示条件取反

常用的隐含匹配条件

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

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

常用的显示匹配条件

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

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

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

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

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

iptables的规则配置需要谨慎进行,不当的配置可能导致系统安全风险或网络通信问题。在配置iptables规则时,建议先在测试环境中进行验证,确保规则的正确性和有效性。


网站公告

今日签到

点亮在社区的每一天
去签到