Centos防火墙规则

Posted by Epoch Blog on December 3, 2021

本文主要针对centos7和8,6不再此介绍

官方针对防火墙介绍如下:

https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/7/html/security_guide/sec-using_firewalls#sec-Comparison_of_Firewalld_to_system-config-firewall_and_iptables

centos7之上默认使用firewalld作为防火墙

防火墙命令

检查是否安装防火墙

1
yum install firewalld firewall-config

查看防火墙状态

1
2
3
4
5
6
7
8
9
firewall-cmd --state
结果:running 和not running
systemctl status firewalld
结果:
firewalld.service - firewalld - dynamic firewall daemon
	  Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled)
	  Active: active (running) since Sat 2013-04-06 22:56:59 CEST; 2 days ago
	Main PID: 688 (firewalld)
	  CGroup: name=systemd:/system/firewalld.service

禁用防火墙

1
2
systemctl stop firewalld
systemctl disable firewalld

开机启动防火墙

1
systemctl enable firewalld

针对安全加固SELinux关闭

1
2
 sed -i 's/enforcing/disabled/' /etc/selinux/config
 setenforce 0

允许为permissive

恢复安全加固setenforce 1

配置防火墙放行规则

配置防火墙放行规则

1
2
firewall-cmd --add-port=80/tcp --permanent 
firewall-cmd --add-port=443/tcp --permanent

这里放行了80端口和443端口,用于web服务器,并且支持https必须要开启443端口。

--permanent 参数表示该条规则永久生效

如果你想放行的端口号是连贯的,也可以直接指定范围,例如:

1
firewall-cmd --add-port=8080-8888/tcp --permanent

如果配置错了,还可以取消:

1
2
3
firewall-cmd --remove-port=80/tcp --permanent
firewall-cmd --remove-port=443/tcp --permanent
firewall-cmd --remove-port=8080-8888/tcp --permanent

当我们添加或移除防火墙规则后,需重新加载才能生效,使用--reload参数:

1
firewall-cmd --reload

配置好后我们可以通过--list-all参数查看防火墙规则:

1
firewall-cmd --list-all