centos7 的防火墙配置

2,102 阅读2分钟

防火墙概述

centos从7开始默认用的是firewalld,iptables的服务是没安装的。如果存在firewalld的基础上又安装了iptables。那么需要两个防火墙都放通端口或者关闭掉,里面的服务才能访问。

firewalld的启停命令是:

systemctl stop firewalld.service && systemctl disable firewalld.service

systemctl start firewalld.service && systemctl enable firewalld.service

如果想要改用iptables的话,则需要安装

yum install iptables-services 
systemctl stop iptables && systemctl disable iptables
systemctl start iptables && systemctl enable iptables

也可以用如下命令进行启停:

service iptables start
service iptables stop

状态查看

检查防火墙的状态:

[root@test1 ~]# firewall-cmd --state
not running

从centos7开始使用systemctl来管理服务和程序,包括了service和chkconfig。这些命令都可以查看状态,只是显示的信息不太一样而已

[root@test1 ~]# systemctl list-unit-files|grep firewalld.service      
firewalld.service                             enabled 
[root@test1 ~]# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2019-07-11 09:49:26 CST; 12h ago

查看版本:

firewall-cmd --version

查看帮助:

firewall-cmd --help

查看所有打开的端口:

firewall-cmd --zone=public --list-ports

防火墙启停

重启防火墙:firewall-cmd --reload
启动一个服务: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;echo $?
查看已启动的服务列表:systemctl list-unit-files|grep enabled

端口开放和关闭:

#添加端口
[root@test1 ~]# firewall-cmd --zone=public --add-port=8081/tcp --permanent
#关闭端口
[root@test1 ~]# firewall-cmd --zone=public --remove-port=80/tcp --permanent

[root@test1 ~]# firewall-cmd --reload     #重启防火墙
success
[root@test1 ~]# firewall-cmd --list-ports
8080/tcp 50000/tcp
[root@test1 ~]# 

命令含义:

–zone #作用域

–add-port=80/tcp #添加端口,格式为:端口/通讯协议

–permanent #永久生效,没有此参数重启后失效