站点图标 IDC铺

关于CentOS7如何设置防火墙

操作如下:
1. firewall配置
在旧版本的CentOS中,是使用 iptables命令来设置防火墙的。但是,从CentOS7开始,默认就没有安装iptables,而是改用firewall来配置防火墙。
firewall的配置文件是以xml的格式,存储在 /usr/lib/firewalld/ 和 /etc/firewalld/ 目录中。

1.1 系统配置目录

/usr/lib/firewalld/
/usr/lib/firewalld/services
/usr/lib/firewalld/zones

1.2 用户配置目录

/etc/firewalld/
/etc/firewalld/services
/etc/firewalld/zones

1.3 设置防火墙
设置防火墙的方式有两种:firewall命令和直接修改配置文件。
推荐使用firewall命令来设置防火墙。
注意:对防火墙所做的更改,必须重启防火墙服务,才会立即生效。命令如下:

service firewalld restart
或
systemctl restart firewalld

1.3.1 firewall命令

firewall-cmd --zone=public --add-port=3306/tcp --permanent
# 对外开放3306端口,供外部的计算机访问
# 该命令方式添加的端口,可在/etc/firewalld/zones中的对应配置文件中得到体现
systemctl restart firewalld

说明:
firewall-cmd:Linux中提供的操作firewall的工具。
–zone:指定作用域。
–add-port=80/tcp:添加的端口,格式为:端口/通讯协议。
–permanent:表示永久生效,没有此参数重启后会失效。

1.3.2 直接修改配置文件
/etc/firewalld/zones/public.xml 文件的默认内容为:

<?xml version="1.0" encoding="utf-8"?>
<zone>
<short>Public</short>
<description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description>
<service name="dhcpv6-client"/>
<service name="ssh"/>
</zone>

修改该配置文件,来添加3306端口。修改后的内容为:

<?xml version="1.0" encoding="utf-8"?>
<zone>
<short>Public</short>
<description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description>
<service name="dhcpv6-client"/>
<service name="ssh"/>
<port protocol="tcp" port="3306"/>
</zone>

 

2. firewall常用命令
2.1 查看firewall的状态

service firewalld status
或
systemctl status firewalld
或
firewall-cmd --state

2.2 启动、停止、重启

service firewalld start
或
systemctl start firewalld
# 启动

service firewalld stop
或
systemctl stop firewalld
# 停止

service firewalld restart
或
systemctl restart firewalld
# 重启

2.3 开机自启动的关闭与开启

systemctl disable firewalld
# 关闭开机自启动

systemctl enable firewalld
# 开启开机自启动

2.4 查看防火墙的规则

firewall-cmd --list-all

 

3. CentOS7更改为iptables防火墙
CentOS7切换到iptables防火墙,首先应该关闭默认的firewall防火墙并禁止自启动,然后再来安装和启动iptables防火墙。
操作步骤如下:

systemctl stop firewalld
# 停止firewall

systemctl disable firewalld
# 禁止firewall的开机自启动

yum install iptables-services
# 安装iptables

systemctl start iptables
# 开启iptables

systemctl enable iptables
# 启用iptables的自启动

之后,就可以在CentOS7中使用iptables配置防火墙。

允许外部的计算机访问mysql,操作如下:

iptables -A INPUT -p tcp -dport 3306 -j ACCEPT
# 添加3306端口

service iptables save
# 保存当前的防火墙策略

service iptables restart
# 重启iptables

iptables常用命令:

service iptables start
# 启动iptables

service iptables stop
# 停止iptables

service iptables restart
# 重启iptables

service iptables status
# 查看iptables的状态

iptables防火墙,非常重要的两个文件:

配置文件 /etc/sysconfig/iptables-config

策略文件 /etc/sysconfig/iptables(默认是不存在的,使用service ipatables save 可以保存当前策略)

退出移动版