使用方法以下:html
>>> 關閉防火牆vim
systemctl stop firewalld.service #中止firewalltcp
systemctl start firewalld.service #開啓firewall
systemctl disable firewalld.service #禁止firewall開機啓動工具
>>> 開啓端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
命令含義:
--zone #做用域
--add-port=80/tcp #添加端口,格式爲:端口/通信協議
--permanent #永久生效,沒有此參數重啓後失效
>>> 重啓防火牆
firewall-cmd --reload測試
經常使用命令介紹
firewall-cmd --state ##查看防火牆狀態,是不是running
firewall-cmd --reload ##從新載入配置,好比添加規則以後,須要執行此命令
firewall-cmd --get-zones ##列出支持的zone
firewall-cmd --get-services ##列出支持的服務,在列表中的服務是放行的
firewall-cmd --query-service ftp ##查看ftp服務是否支持,返回yes或者no
firewall-cmd --add-service=ftp ##臨時開放ftp服務
firewall-cmd --add-service=ftp --permanent ##永久開放ftp服務
firewall-cmd --remove-service=ftp --permanent ##永久移除ftp服務
firewall-cmd --add-port=80/tcp --permanent ##永久添加80端口
iptables -L -n ##查看規則,這個命令是和iptables的相同的
man firewall-cmd ##查看幫助spa
更多命令,使用 firewall-cmd --help 查看幫助文件rest
CentOS 7.0默認使用的是firewall做爲防火牆,使用iptables必須從新設置一下
直接關閉防火牆
systemctl stop firewalld.service #中止firewall
systemctl disable firewalld.service #禁止firewall開機啓動htm
iptables服務須要本身安裝,命令是:ip
yum install iptables-services作用域
如圖:
開啓iptables防火牆的命令是:
systemctl start iptables.service
重啓iptables防火牆的命令是:
systemctl restart iptables.service
關閉iptables防火牆的命令是:
systemctl stop iptables.service
查看iptables防火牆狀態的命令是:
systemctl status iptables.service
如圖:
不少時候,須要開啓防火牆,可是放行某些特定的端口,如何在防火牆開啓的狀態下,放行50007端口?按照下面的步驟作。
主要是編輯/etc/sysconfig/iptables文件,編輯方法不少,可使用vim編輯,也能夠直接把該文件下載到本地,用本地工具編輯。
將原來的內容 :INPUTACCEPT [0:0] 修改成 :INPUT DROP[0:0]
將原來的內容 :FORWARDACCEPT [0:0] 修改成 :FORWARD DROP[0:0]
將原來的內容 :OUTPUT ACCEPT [0:0] 修改成 :OUTPUTACCEPT [0:480]
iptables文件的末尾有以下三行內容:
-A INPUT -j REJECT--reject-with icmp-host-prohibited
-A FORWARD -j REJECT--reject-with icmp-host-prohibited
COMMIT
在這這三行的前面添加一行放行50070端口的配置內容:
-A INPUT -p tcp -m tcp --dport 50070 -j ACCEPT
同理,若是要放行80端口,就添加一行:
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
修改完成後,個人/etc/sysconfig/iptables文件是這樣的:
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:480]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22-j ACCEPT
-A INPUT -p tcp -m tcp --dport 50070 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
執行重啓iptables防火牆的命令,命令是:
systemctl restart iptables.service
如圖:
在使用命令systemctl stop firewalld.service關閉防火牆,使用命令systemctl start iptables.service開啓防火牆,可是爲配置/etc/sysconfig/iptables文件,未放行50070端口的狀況下,訪問如下地址http://192.168.27.134:50070/dfshealth.html#tab-overview
是訪問不了的,如圖:
在配置了/etc/sysconfig/iptables文件,添加了放行50070端口,而且重啓了iptables防火牆的狀況下,在訪問該地址:http://192.168.27.134:50070/
發現OK了,如圖:
2.3使用執行命令的方式開放特定端口
在不手動修改iptables防火牆的配置文件的狀況下,使用命令作到放行某些經常使用端口,命令集合是:
iptables -P INPUT ACCEPT
iptables -F
iptables -X
iptables -Z
iptables -A INPUT -i lo -jACCEPT
iptables -A INPUT -p tcp --dport22 -j ACCEPT
iptables -A INPUT -p tcp --dport21 -j ACCEPT
iptables -A INPUT -p tcp --dport80 -j ACCEPT
iptables -A INPUT -p tcp --dport8080 -j ACCEPT
iptables -A INPUT -p tcp --dport8088 -j ACCEPT
iptables -A INPUT -p tcp --dport443 -j ACCEPT
iptables -A INPUT -p icmp--icmp-type 8 -j ACCEPT
iptables -A INPUT -p tcp --dport50070 -j ACCEPT
iptables -A INPUT -m state --stateRELATED,ESTABLISHED -j ACCEPT
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
service iptables save
systemctl restart iptables.service
如圖:
測試方法同2.2.4章節,開放端口的效果是同樣的。