Linux firewalld 防火墙 笔记

发布时间 2024-01-08 17:24:00作者: Paimon丶

Linux 防火墙策略:
  严格过滤入站,允许出站
  防火墙有两类: 硬件防火墙(可以组成集群保护),软件防火墙(本机安装的软件,本机防护)。

 

1.firewalld防火墙服务:
  Linux默认安装的防火墙系统服务: firewalld防火墙是centos7系统默认的防火墙管理工具,一般是自带的无需安装
  firewalld工作在网络层,属于包过滤防火墙。
  管理工具:firewall-cmdfirewall-config

 

2.firewalld区域的概念:
  firewalld防火墙为了简化管理,将所有网络流量分为多个区域zone。根据数据包的源IP地址或传入的网络接口等条件将流量传入相应的区域。每个区域都定义了自己打开或者关闭的端口和服务列表。

  常用的几个区域: 

    (区域)根据所在的网络场所区分,预设保护规集

    - public: (公共区域)    一般默认为该区域,仅允许访问本机的sshd, dhcp, ping等服务
    - trusted:(信任区域)    允许任何访问
    - block: (限制区域)   阻塞任何来访请求
    - drop:(丢弃区域)     丢弃任何来访的数据包(不做出任何回应,直接丢弃) 能节省资源

  Firewalld数据处理流程
    检查数据来源的源地址
    若源地址关联到特定的区域,则执行该区域所指定的规则
    若源地址未关联到特定的区域,则使用传入网络接口的区域并执行该区域所指定的规则
    若网络接口未关联到特定的区域,则使用默认区域并执行该区域的所有指定的规则

 

防火墙匹配原则: 匹配到则停止
  1. 查看数据包中源IP地址,然后查询所有区域中规则,哪一个区域有该源IP地址的规则,则进入下一个区域
  2. 进入默认区域(public)

 

命令:

        firewall-cmd --get-default-zone        #查看默认区域
        firewall-cmd --set-default-zone=block   #修改默认区域为block (按照自己需求修改)    block区域会默认将所有访问请求全部阻塞拒绝

    

    

 

 在一个区域中添加协议(临时策略):(协议service)

  示例:

  firewall-cmd --zone=block --list-all    #查看block区域所有的规则

  

 

    firewall-cmd --zone=block --add-service=http   #临时在block区域添加http协议,使block区域可以访问http协议
    firewall-cmd --zone=block --add-service=ftp    #临时在block区域添加ftp协议,使block区域可以访问ftp协议 

  

  firewall-cmd --zone=block --remove-service=http   #删除block区域中的http协议

 

  互联网常见协议:
    http (超文本传输协议,废话:httpd是软件不是协议)
    https (安全的加密超文本传输协议)
    ftp (文件传输协议)
    tftp (简单的文件传输协议)
    telnet (网络远程管理协议)
    DNS (域名解析协议)
    snmp(简单的网络传输协议)
    smtp (发邮件协议)
    pop3 (收邮件协议)

永久的在一个区域中添加协议(permanent):

  该方式执行后只是将规则写入进配置文件当中,并不会立刻生效,可执行firewall-cmd --reload #重新加载防火墙配置策略生效。

  firewall-cmd --permanent --zone=public --add-service=http   #将pulic区域中添加http协议的规则写入配置文件
  firewall-cmd --reload      #重新加载防火墙配置策略,使配置生效

  注意: firewall-cmd --reload 重新加载配置后会将所有临时的策略全部清空。

 

将IP写入区域 (IP:source):

  firewall-cmd --zone=block --add-source=192.168.1.216            #临时将216ip添加到block区域,使其拒绝访问
   firewall-cmd --permanent --zone=block --add-source=192.168.1.216    #永久将216ip添加到block区域,使其拒绝访问

  

  firewall-cmd --permanent --zone=block --remove-source=192.168.1.216    #删除ip

   注意:一个IP或协议只能添加到一个区域当中,添加重复时会提示Error: ZONE_CONFLICT错误信息

模式:
  宽松:默认区域设置为trusted所有都可以访问,然后单独将ip添加进block或drop拒绝访问。
  严格:  默认区域设置为block拒绝访问所有,然后将允许的ip添加到trsued允许访问。
  设置默认之前需要先检查一些区域中是否添加过ip或协议。

 

端口管理:

#添加tcp的443端口到trusted区域
firewall-cmd --zone=trusted --add-port=443/tcp

#从internal区域将tcp443端口移除
firewall-cmd --zone=trusted --remove-port=443/tcp

#允许udp的2048-2050端口到默认区域
firewall-cmd  --add-port=2048-2050/tcp