CentOS 7.0默認使用的是firewall作爲防火牆, 使用systemctl來管理服務和程序,包括了service和chkconfig
1、查看默認防火牆狀態(關閉後顯示not running,開啓後顯示running)
[root@localhost ~]# firewall-cmd --state
not running
2、檢查防火牆的狀態
[root@localhost ~]# systemctl list-unit-files|grep firewalld.service
firewalld.service disabled # 沒有啓動
firewalld.service enabled # 啓動
或者:
[root@localhost ~]# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead) --表示防火牆已經關閉
Docs: man:firewalld(1)
3、開啓防火牆
[root@localhost ~]#systemctl start firewalld.service --啓動firewall
[root@localhost ~]#systemctl enable firewalld.service --開機時啓動firewall
Created symlink from /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service to /usr/lib/systemd/system/firewalld.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/firewalld.service to /usr/lib/systemd/system/firewalld.service.
4、關閉防火牆:
[root@localhost ~]#systemctl stop firewalld.service --停止firewall
[root@localhost ~]# systemctl disable firewalld.service --禁止firewall開機啓動
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
5、重啓防火牆
[root@localhost ~]# systemctl restart firewalld.service
6、查看防火牆是否開機自啓
[root@localhost ~]# systemctl is-enabled firewalld.service;echo $?
enabled --自啓
0
或者:
[root@localhost ~]# systemctl is-enabled firewalld.service;echo $?
disabled --不自啓
1
7、查看已啓動的服務列表
[root@localhost ~]# systemctl list-unit-files|grep enabled
auditd.service enabled
[email protected] enabled
avahi-daemon.service enabled
crond.service enabled
8、開啓端口
[root@localhost ~]# firewall-cmd --zone=public --add-port=80/tcp --permanent
success
命令含義:
–zone #作用域
–add-port=80/tcp #添加端口,格式爲:端口/通訊協議
–permanent #永久生效,沒有此參數重啓後失效
9、查看已經開放的端口
[root@localhost ~]#firewall-cmd --list-port
80/tcp
10、屏蔽FirewallD服務
[root@localhost ~]#systemctl mask firewalld
還可以通過創建一個firewall.service到/dev/null的符號連接來屏蔽防火牆服務。
11、反屏蔽FirewallD服務
[root@localhost ~]#systemctl unmask firewalld
這是反屏蔽FirewallD服務,它會移除屏蔽FirewallD服務時創建的符號鏈接,故能重新啓用服務。
12、檢查是否已安裝防火牆
[root@localhost ~]#yum install firewalld firewall-config
13、永久移除端口
#永久移除端口
firewall-cmd --zone=public --remove-port=80/tcp --permanent
#檢查端口是否開啓
#centos7以下使用netstat -ant,7使用ss;80替換爲想要檢查的端口
ss -ant | grep 80
下面說下CentOS7和6的默認防火牆的區別
CentOS 7默認使用的是firewall作爲防火牆,使用iptables必須重新設置一下
1、直接關閉防火牆
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall開機啓動
2、設置 iptables service
yum -y install iptables-services
3、如果要修改防火牆配置,如增加防火牆端口3306
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 #設置防火牆開機啓動
4、最後重啓系統使設置生效即可
systemctl start iptables.service #打開防火牆
systemctl stop iptables.service #關閉防火牆
本文轉自此處https://blog.csdn.net/cool_summer_moon/article/details/78744009