firewalld 防火墙

本文详细介绍了firewalld防火墙在CentOS7中的应用,包括firewalld的基本概念、区域划分、常用命令,以及如何设置允许和禁止规则。重点讲解了区域的默认策略和如何使用firewalld-cmd工具进行操作。
摘要由CSDN通过智能技术生成

firewalld 防火墙

1、firewalld简介

CentOS 7 默认的防火墙管理工具,firewalld 和 iptables 内部结构都指向 netfilter 这个强大的网络过滤子系统,以实现包过滤防火墙功能。 支持动态更新、加入防火墙zone概念,支持IPv4和IPv6地址。

2、firewalld的区域

firewalld将所有的网络数据流量划分为多个区域,从而简化防火墙管理。根据数据包的源IP地址或传入网络接口等条件,将数据流量转入相应区域的防火墙规则。
区域介绍:

区域默认策略规则
trusted允许所有的数据包
home拒绝流入的流量,除非与流出的流量相关;而如果流量与 ssh、mdns、ipp-client、amba-client 与 dhcpv6-client 服务相关,则允许流量
work拒绝流入的流量,除非与流出的流量数相关;而如果流量与 ssh、ipp-client 与 dhcv6-client 服务相关则允许流量
public拒绝流入的流量,除非与流出的流量相关;而如果流量与 ssh、dhcpv6-client 服务 相关则允许流量
external拒绝流入的流量,除非与流出的流量相关;而如果流量与 ssh 服务相关,则允许流量
block拒绝流入的流量,除非与流出的流量相关
drop拒绝流入的流量,除非与流出的流量相关

3、firewalld防火墙基础命令

3.1 firewall-cmd 命令行工具: firewalld包,默认安装。主要参数如下:
参数作用
– get-default-zone查询默认的区域名称
–set-default-zone=<区域名称>设置默认的区域,使其永久生效
–get-zones显示可用的区域
–add-source=将源自此 IP 或子网的流量导向指定的区域
–remove-source=不再将源自此 IP 或子网的流量导向某个指定区域
–list-all显示当前区域的网卡配置参数、资源、端口以及服务等信息
–list-all-zones显示所有区域的网卡配置参数、资源、端口以及服务等信息
–add-port=<端口号/协议>设置默认区域允许该端口的流量
–remove-port=<端口号/协议>设置默认区域不再允许该端口的流量
3.2 查看firewalld防火墙运行状态:
  1. systemctl status firewalld
  2. firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
3.3 firewall防火墙的启停命令
systemctl start firewalld  #启动firewall
systemctl restart firewalld   #重启firewall
systemctl stop firewalld.service      #停止firewall
systemctl disable firewalld.service   #禁止firewall开机启动
systemctl enable firewalld.service    #设置开机启用防火墙
3.4 查看防火墙规则
firewall-cmd --list-all 
3.5 查看所有的防火墙策略
firewall-cmd --list-all-zones 
3.6 重新加载配置文件
firewall-cmd --reload     
3.7 查看生效策略
firewall-cmd --list-all

4、firewall防火墙规则设置

4.1 firewall防火墙添加允许规则
1. 允许全部网段访问本机8080端口:firewall-cmd --permanent --zone=public --add-port=8080/tcp  
参数说明:--permanent永久生效,没有此参数重启后失效。--zone=public指定public区域。
2. 允许全部网段访问本机端口段:firewall-cmd --permanent --zone=public --add-port=5080-5081/udp 
3. 允许[指定IP]访问本机5080端口:firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.34.31" port protocol="tcp" port="5080" accept"
4. 允许[指定IP]访问本机全部tcp端口:firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.34.31" port protocol="tcp" port="0-65535" accept"
5. 允许[指定IP]访问本机全部端口:firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.34.31"  accept"
6. 允许[指定IP段]访问本机5080-5090端口:firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.34.31" port protocol="tcp" port="5080-5090" accept'
7. 允许http服务:firewall-cmd --add-service=http
......
注意:添加或者修改完规则后必须热加载才能生效:firewall-cmd --reload
4.2 firewall防火墙添加禁止规则
1. 禁止[指定IP]访问本机8080端口:firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.34.31" port protocol="tcp" port="8080" reject'
2. 屏蔽[指定IP] (reject):firewall-cmd --permanent --zone=public --add-rich-rule="rule family=ipv4 source address=192.168.34.31 reject"
3. 屏蔽[指定IP段] (drop):firewall-cmd --permanent --zone=public --add-rich-rule="rule family=ipv4 source address='x.x.x.x/24'  drop"
......
注意:添加或者修改完规则后必须热加载才能生效:firewall-cmd --reload
4.3 firewall防火墙删除添加的规则
1. 删除端口:firewall-cmd --permanent --zone=public --remove-port=8080/tcp 
2. 删除IP+端口:firewall-cmd --permanent --zone=public --remove-rich-rule="rule family="ipv4" source address="192.168.34.31" port protocol="tcp" port="5080" accept"
......
注意:添加或者修改完规则后必须热加载才能生效:firewall-cmd --reload
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值