firewalld命令使用指南
常用的firewalld操作示例:
检查状态:# systemctl status firewalld 或 firewall-cmd --state
启动服务:# systemctl start firewalld
停止服务:# systemctl stop firewalld
设置开机自启:# systemctl enable firewalld
禁用开机自启:# systemctl disable firewalld
查看当前活动区域:# firewall-cmd --get-active-zones
显示已开放的端口:# firewall-cmd --zone=public --list-ports
向永久区添加端口:# firewall-cmd --permanent --zone=public --add-port=61080/tcp --add-port=61446/tcp
向永久区添加服务:# firewall-cmd --permanent --zone=public --add-service=samba
刷新配置以使更改生效:# firewall-cmd --reload
再次显示已开放的端口:# firewall-cmd --zone=public --list-ports
显示当前开放的服务:# firewall-cmd --zone=public --list-service
开放vrrp的命令:
firewall-cmd --permanent --add-rich-rule "rule family=ipv4 source address=192.168.100.0/24 port name='22' reject"
firewall-cmd --zone=public --permanent --add-rich-rule "rule family=ipv4 source address=192.168.100.237/32 accept"
firewall-cmd --zone=public --permanent --add-rich-rule "rule family=ipv4 source address=192.168.100.238/32 accept"
firewall-cmd --reload
firewall-cmd --zone=public --list-rich-rules
—————–
CentOS 7 firewalld简介
1. firewalld概述
firewalld是CentOS 7的一个重要特性,其主要优势在于:支持动态更新,无需重启服务;同时引入了“zone”概念,增强了防火墙的灵活性。
firewalld提供图形界面和命令行工具,由于本文侧重于服务器使用,因此将主要介绍命令行工具。
firewalld的命令行管理工具为 firewall-cmd。
firewalld的默认配置文件有两个:/usr/lib/firewalld/(系统配置,建议不要修改)和 /etc/firewalld/(用户配置文件)。
zone的概念:硬件防火墙通常有三个区域,firewalld引入了这一概念,系统默认包含以下区域(如有误请指正):
- drop:默认丢弃所有包
- block:拒绝所有外部连接,允许内部发起的连接
- public:指定允许外部连接
- external:功能与public相同,允许指定的外部连接
- dmz:和硬件防火墙相似,允许受限的公共连接
- work:工作区,允许指定的外部连接
- home:类似家庭组
- internal:信任所有连接
2. 安装firewalld
使用root权限执行:# yum install firewalld firewall-config
3. 管理firewalld的服务
查看状态:# systemctl status firewalld 或 firewall-cmd --state
启动服务:# systemctl start firewalld
停止服务:# systemctl stop firewalld
设置开机自启:# systemctl enable firewalld
禁用开机自启:# systemctl disable firewalld
4. 配置firewalld
查看版本:$ firewall-cmd --version
获取帮助:$ firewall-cmd --help
查看设置:
显示状态:$ firewall-cmd --state
查看区域信息:$ firewall-cmd --get-active-zones
查看指定接口所属区域:$ firewall-cmd --get-zone-of-interface=eth0
拒绝所有包:# firewall-cmd --panic-on
取消拒绝状态:# firewall-cmd --panic-off
查看拒绝状态:$ firewall-cmd --query-panic
更新防火墙规则:# firewall-cmd --reload
# firewall-cmd --complete-reload
两者的区别在于,前者无需断开连接,后者则需要断开连接,类似于重启服务。
将接口添加到区域,默认接口在public:
# firewall-cmd --zone=public --add-interface=eth0
要使其永久生效,请加入 --permanent 选项,然后执行reload。
设置默认接口区域:# firewall-cmd --set-default-zone=public,该设置立即生效,无需重启。
打开端口(这是最常用的操作之一):
查看所有开放的端口:# firewall-cmd --zone=dmz --list-ports
将端口添加到区域:# firewall-cmd --zone=dmz --add-port=8080/tcp
若要永久生效,方法与前述相同。
开启服务,类似于将端口可视化,服务需在配置文件中定义,/etc/firewalld 目录下有services文件夹。
# firewall-cmd --zone=work --add-service=smtp
移除服务:# firewall-cmd --zone=work --remove-service=smtp
