CentOS 7 关闭 iptables 和 SELinux

从 CentOS 6 换到 CentOS 7,虽然服务管理命令从 service 换成了 systemctl,但总归是通用的。今天在新装主机上关闭防火墙时,经历了以下错误:

1
2
3
4
5
[hzz@magedu ~]$ sudo service iptables stop
[sudo] password for hzz:
Redirecting to /bin/systemctl stop iptables.service
Failed to stop iptables.service: Unit iptables.service not loaded.
[hzz@magedu ~]$

上网查了以下,原来 CentOS 7 默认使用的是 firewall 作为防火墙,故操作 iptables 的方式必须改变以下。下面就来说说 CentOS 7 上如何关闭 iptables 和 SELinux。

iptables

关闭 iptables

停止 firewall:

systemctl stop firewalld.service

禁止 firewall 开机启动:

systemctl disable firewalld.service

设置 iptables

yum -y install iptables-services

如果要修改防火墙配置,如增加防火墙端口 3306:

1
2
3
4
5
6
7
8
9
10
vi /etc/sysconfig/iptables

# 增加规则
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

# 保存退出后重启防火墙
systemctl restart iptables.service

# 设置防火墙开机启动
systemctl enable iptables.service

SELinux

关闭 selinux

临时关闭 SELinux:

setenforce 0

查看状态:

getenforce

修改配置文件关闭 SELinux:

1
2
3
4
5
6
vi /etc/sysconfig/selinux

# 修改:
#SELINUX=enforcing
# 为:
SELINUX=disabled