在CentOS7之后系統(tǒng)默認(rèn)的防火墻管理工具出現(xiàn)了變化,使用了firewall-cmd乓梨,這一節(jié)我們就來看一看firewall-cmd的用法烘挫,iptables的用法參看這篇文章Linux防火墻命令之 ~ iptables
一挣棕、防火墻管理中 systemctl 常用的命令
- 啟動(dòng)/關(guān)閉/重啟防火墻:
systemctl start/stop/restart firewalld.service
- 禁止開機(jī)啟動(dòng)防火墻:
systemctl disable firewalld.service
- 查看服務(wù)運(yùn)行狀態(tài):
systemctl status firewalld
二宁玫、防火墻控制臺(tái)命令:firewall-cmd
- 查看8080端口是否已經(jīng)開放:
firewall-cmd --query-port=8080/tcp
- 永久開放TCP8080端口:
firewall-cmd --zone=public --add-port=8080/tcp --permanent
- 永久移除TCP8080端口:
firewall-cmd --zone=public --remove-port=8080/tcp --permanent
- 重新加載防火墻規(guī)則:
firewall-cmd --reload
- 查看防火墻運(yùn)行否:
firewall-cmd --state
- 查看端口開放情況:
firewall-cmd --list-all
三、防火墻管理中 netstat 的應(yīng)用
- 安裝
yum install net-tools
- 查看正在監(jiān)聽的端口
netstat -lntp
- 檢查端口8080被哪個(gè)進(jìn)程占用
netstat -lnp | grep 8080
四薇正、firewall-cmd 的高級用法
-
前面我們是通過直接開放端口的形式來放開對應(yīng)的服務(wù)片酝,這種就是典型的iptables的思路囚衔。在firewall中還提供了另外的一種思路,這就是使用開放服務(wù)的形式來開放對應(yīng)的端口雕沿,如下:
firewall-cmd --add-service=http #臨時(shí)開放http服務(wù) firewall-cmd --add-service=http --permanent #永久開放http服務(wù) firewall-cmd --remove-service=http #臨時(shí)移除http服務(wù) firewall-cmd --remove-service=http --permanent #永久移除http服務(wù)
-
查看開放的服務(wù)练湿、端口
firewall-cmd --list-services firewall-cmd --list-ports
-
開放、阻止端口
firewall-cmd --add-port=3306/tcp --permanent #永久開放通過tcp訪問3306 firewall-cmd --add-port=233/udp --permanent #永久開放通過udp訪問233 firewall-cmd --remove-port=80/tcp --permanent #永久阻止通過tcp訪問3306
-
IP偽裝:防火墻可以實(shí)現(xiàn)偽裝IP的功能
firewall-cmd --query-masquerade # 檢查是否允許偽裝IP firewall-cmd --add-masquerade # 允許防火墻偽裝IP firewall-cmd --remove-masquerade# 禁止防火墻偽裝IP
-
端口轉(zhuǎn)發(fā)
- 可以在訪問指定地址訪問指定的端口時(shí)审轮,將流量轉(zhuǎn)發(fā)至指定地址的指定端口肥哎。如果在設(shè)置的時(shí)候任何一個(gè)不設(shè)置都使用來源的數(shù)據(jù);如果配置好端口轉(zhuǎn)發(fā)之后不能用疾渣,可以檢查下面兩個(gè)問題:
- 如我將80端口轉(zhuǎn)發(fā)至8080端口篡诽,首先檢查本地的80端口和目標(biāo)的8080端口是否開放監(jiān)聽了
- 檢查是否允許IP偽裝,沒允許的話要開啟IP偽裝
- 幾個(gè)端口轉(zhuǎn)發(fā)的例子:
- 將80端口轉(zhuǎn)發(fā)至8080
firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080
- 將80端口轉(zhuǎn)發(fā)至192.168.1.0.1的80端口
firewall-cmd --add-forward-port=port=80:proto=tcp:toaddr=192.168.1.0.1
- 將80端口轉(zhuǎn)發(fā)至192.168.0.1的8080端口
firewall-cmd --add-forward-port=port=80:proto=tcp:toaddr=192.168.0.1:toport=8080
- 將80端口轉(zhuǎn)發(fā)至8080
- 端口轉(zhuǎn)發(fā)的應(yīng)用場景
- 隱藏端口:當(dāng)我們想把某個(gè)端口隱藏起來的時(shí)候榴捡,就可以在防火墻上阻止那個(gè)端口訪問杈女,然后再開一個(gè)不規(guī)則的端口,之后配置防火墻的端口轉(zhuǎn)發(fā)吊圾,將流量轉(zhuǎn)發(fā)過去达椰。
- 流量分發(fā):一個(gè)防火墻拖著好多臺(tái)運(yùn)行著不同服務(wù)的機(jī)器,然后用防火墻將不同端口的流量轉(zhuǎn)發(fā)至不同機(jī)器项乒。
- 可以在訪問指定地址訪問指定的端口時(shí)审轮,將流量轉(zhuǎn)發(fā)至指定地址的指定端口肥哎。如果在設(shè)置的時(shí)候任何一個(gè)不設(shè)置都使用來源的數(shù)據(jù);如果配置好端口轉(zhuǎn)發(fā)之后不能用疾渣,可以檢查下面兩個(gè)問題:
-
其他常用命令
firewall-cmd --get-zones #列出支持的zone firewall-cmd --get-services #列出支持的服務(wù)啰劲,在列表中的服務(wù)是放行的 firewall-cmd --query-service ftp #查看ftp服務(wù)是否支持,返回yes或者no iptables -L -n #查看規(guī)則檀何,這個(gè)命令是和iptables的相同的 man firewall-cmd ##查看幫助