VPN技术 · 2023年11月10日 0

firewalld命令使用指南

firewalld命令使用指南

常用的firewalld操作示例:

检查状态:# systemctl status firewalldfirewall-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 firewalldfirewall-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