0、 引言
今天配置服務器的ftp,被這個防火牆命令困擾半天,想不起來,特此整理下。
centos7 默認的防火牆是 firewall,替代了以前的 iptables。
參考資料 : https://blog.csdn.net/wangmx1993328/article/details/80738012
1、安裝
- 查看版本
firewall-cmd --version
有些服務器已經自帶了 firewall ,但是查看版本沒有找到,也可以直接通過yum安裝。
- 安裝
yum -y install firewalld
2、服務管理
和其他服務一樣,通過systemctl 管理。
systemctl status firewalld //查看防火牆狀態
systemctl stop firewalld //關閉防火牆
systemctl start firewalld //開啓防火牆
systemctl restart firewalld //重啓防火牆
systemctl is-enabled firewalld //查看 firewall 服務是否開機啓動
systemctl enable firewalld //開機時自動啓動
systemctl disable firewalld //開機時自動禁用
3、防火牆管理
3.1 firewall-cmd 命令
- 查看狀態
firewall-cmd --state
- 查看打開的所有端口
firewall-cmd --zone=public --list-ports
- 開啓指定端口
–permanent 永久開放
firewall-cmd --zone=public --add-port=80/tcp --permanent //永久開放80端口
firewall-cmd --zone=public --add-port=3000-4000/tcp --permanent //永久開放3000到4000端口
- 關閉指定端口
firewall-cmd --zone=public --remove-port=80/tcp --permanent
- 重新加載
對端口的所有修改,必須重新加載才能生效
firewall-cmd --reload
3.2 public.xml 文件
firewall-cmd對端口的操作,如開放端口等信息,都在 public.xml 文件中
文件目錄 /etc/firewalld/zones/public.xml
vim /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="ssh"/>
<service name="dhcpv6-client"/>
<port protocol="tcp" port="21"/>
<port protocol="tcp" port="4500-5000"/>
</zone>
修改後 :wq
firewall-cmd --reload
4、相關問題
- 如果你的服務器是在阿里雲,就需要去阿里雲配置安全組,只開啓防火牆,或者 只開啓安全策略,是不生效的。
- 修改安全策略,不需要重啓服務器
- 修改防火牆配置,必須重啓防火牆