麦克斯仇
Think different
160
文章
42172
阅读
首页
INDEX
文章
ARTICLE
关于
ABOUT
CentOS7 / Debian12 的 firewalld 防火墙配置教程
创建日期:
2019/02/26
修改日期:
2024/02/24
Linux
# 服务安装 > CentOS7 默认已安装服务 > Debian12 默认未安装,执行以下命令安装服务 ```bash apt-get install firewalld ``` # 服务启停、自启、状态 - 开启自启:`systemctl enable firewalld.service` - 关闭自启:`systemctl disable firewalld.service` - 是否自启:`systemctl is-enabled firewalld.service` - 服务状态:`systemctl status firewalld.service` - 开启服务:`systemctl start firewalld.service` - 关闭服务:`systemctl stop firewalld.service` # 服务配置 ## 公用参数 - 生效空间:(全局)`--zone=public` - 永久有效:`--permanent` ## 查询状态 - 查询所有配置:`firewall-cmd --zone=public --list-all` - 仅查询开放的端口:`firewall-cmd --zone=public --list-ports` - 仅查询端口的转发:`firewall-cmd --zone=public --list-forward-ports` - 仅查询伪装IP配置:`firewall-cmd --zone=public --query-masquerade` ## 端口开放 以 80 端口 tcp 协议为例 - 开启端口:`firewall-cmd --zone=public --add-port=80/tcp --permanent` - 关闭端口:`firewall-cmd --zone=public --remove-port=80/tcp --permanent` ## 端口转发 > 前置条件,需要开启系统的端口转发功能 ```bash # 编辑如下文件 vim /etc/sysctl.d/99-sysctl.conf # 添加如下内容 net.ipv4.ip_forward = 1 # 使其生效 sysctl -p ``` ### 伪装IP 开启转发之前必须要 **开启** 伪装IP - 开启:`firewall-cmd --zone=public --add-masquerade --permanent` - 关闭:`firewall-cmd --zone=public --remove-masquerade --permanent` ### 配置转发 以 本地 80 端口转发到 192.168.1.2 的 80 端口 - 开启:`firewall-cmd --zone=public --add-forward-port=port=80:proto=tcp:toaddr=192.168.1.2:toport=80 --permanent` - 关闭:`firewall-cmd --zone=public --remove-forward-port=port=80:proto=tcp:toaddr=192.168.1.2:toport=80 --permanent` ## 配置生效(必须要做) 防火墙的配置修改之后,必须执行以下命令使其生效 ```bash # 重新加载防火墙,如果已连接的端口配置了关闭,断开后才会关闭 firewall-cmd --reload # 彻底的重新加载防火墙,如果已连接的端口配置了关闭,则连接会断开 firewall-cmd --complete-reload ```
28
全部评论