CentOS7 防火墙相关命令【资料】

1.firewalld 基本介绍

Centos7 开始已经放弃 iptables,转而使用 firewalld。从本质意义上讲,iptables 和 firewalld 是防火墙软件,其实现方式都是调用内核 Netfilter。firewalld 提供了一个动态管理的防火墙,形成网络 “zones” 规则集,具备支持 ipv4 和 ipv6 的能力。firewalld 程序提供了图形化的配置工具 firewall-confighe、system-config-firewall 和命令行 firewall-cmd,用于配置 firewalld 永久性或非永久性规则。

1、firewalld的基本使用

启动: systemctl start firewalld
查看状态: systemctl status firewalld
停止: systemctl disable firewalld
禁用: systemctl stop firewalld

PS:systemctl 常见其他命令:

查看已启动的服务列表:
systemctl list-unit-files | grep enabled

查看启动失败的服务列表:
systemctl --failed

查看防火墙的状态【案例】

systemctl status firewalld

[root@VM-4-2-centos ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: active (running) since Thu 2023-04-06 10:14:13 CST; 2min 8s ago
     Docs: man:firewalld(1)
 Main PID: 2862 (firewalld)
   CGroup: /system.slice/firewalld.service
           └─2862 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid

Apr 06 10:14:13 VM-4-2-centos systemd[1]: Starting firewalld - dynamic firewall daemon...
Apr 06 10:14:13 VM-4-2-centos systemd[1]: Started firewalld - dynamic firewall daemon.
Apr 06 10:14:13 VM-4-2-centos firewalld[2862]: WARNING: AllowZoneDrifting is enabled....w.
Apr 06 10:14:14 VM-4-2-centos firewalld[2862]: WARNING: AllowZoneDrifting is enabled....w.
Hint: Some lines were ellipsized, use -l to show in full.
Active: active (running) :说明防火墙当前是【启动】状态
Active: inactive (dead):说明防火墙当前是【未启动】状态

把防火墙设为自启动模式

systemctl enable firewalld.service

2.systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体

启动一个服务:systemctl start firewalld.service
关闭一个服务:systemctl stop firewalld.service
重启一个服务:systemctl restart firewalld.service
显示一个服务的状态:systemctl status firewalld.service
在开机时启用一个服务:systemctl enable firewalld.service
在开机时禁用一个服务:systemctl disable firewalld.service
查看服务是否开机启动:systemctl is-enabled firewalld.service
查看已启动的服务列表:systemctl list-unit-files|grep enabled
查看启动失败的服务列表:systemctl –failed

3.配置firewalld-cmd

查看版本: firewall-cmd –version
查看帮助: firewall-cmd –help
显示状态: firewall-cmd –state
查看所有打开的端口: firewall-cmd –zone=public –list-ports
更新防火墙规则: firewall-cmd –reload
查看区域信息: 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 –zone=public –add-port=80/tcp –permanent (–permanent永久生效,没有此参数重启后失效)

重新载入

firewall-cmd –reload

查看

firewall-cmd –zone= public –query-port=80/tcp

删除

firewall-cmd –zone= public –remove-port=80/tcp –permanent

firewalld 端口转发

开启防火墙伪装:firewall-cmd –add-masquerade –permanent // 开启后才能转发端口

添加转发规则:firewall-cmd –add-forward-port=port=80:proto=tcp:toport=8080:toaddr=192.168.1.1 –permanent

(PS:此规则将本机 80 端口转发到 192.168.1.1 的 8080 端口上,配置完 –reload 才生效)

如果配置完以上规则后仍不生效,检查防火墙是否开启 80 端口,如果 80 端口已开启,仍无法转发,可能是由于内核参数文件 sysctl.conf 未配置 ip 转发功能,具体配置如下:

vi /etc/sysctl.conf

在文本内容中添加:net.ipv4.ip_forward = 1

保存文件后,输入命令 sysctl -p 生效

网站声明: 1.本站大部分资源搜集于网络,仅代表作者观点,如有侵权请提交修改。 2.网站内容仅网站站长做个人学习摘记,任何人不得用于其他商业用途,网站发表的内容全权归原作者所有。 3.有任何疑问,可以点击右侧边栏的联系QQ进行咨询 4.本网站部分内容来自于其他网站平台的,版权归原网站所有,本网站只作信息记录,自己学习使用,特此申明,本站用户也不得使用此信息内容做其他商业用途。
白丁学者 » CentOS7 防火墙相关命令【资料】

发表回复

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据