firewall使用記錄

原文鏈接:https://wangchujiang.com/linux-command/c/firewall-cmd.html

firewalld自身並不具備防火牆功能 和iptables一樣需要通過內核的netfilter來實現 兩者作用都是維護規則

systemctl是CentOS 7的service和chkconfig融合工具

# 安裝firewalld
yum install firewalld firewall-config

systemctl start firewalld # 啓動
systemctl status firewalld # 或者 firewall-cmd --state 查看狀態
systemctl disable firewalld # 停止
systemctl stop firewalld # 禁用

# 使用iptables 關閉服務的方法
yum install iptables-services
systemctl start iptables
systemctl enable iptables

服務管理

# 顯示服務列表
# Amanda FTP Samba和TFTP等最重要的服務已經被firewalld提供相應服務
firewall-cmd --get-services

# 允許SSH服務通過
firewall-cmd --enable service=ssh

# 禁止SSH服務通過
firewall-cmd --disable service=ssh

# 打開TCP的8080端口
firewall-cmd --enable ports=8080/tcp

# 臨時允許Samba服務通過600秒
firewall-cmd --enable service=samba --timeout=600

# 顯示當前服務
firewall-cmd --list-services

# 添加HTTP服務到內部區域internal
firewall-cmd --permanent --zone=internal --add-service=http
firewall-cmd --reload # 在不改變狀態的條件下重新加載防火牆
端口管理
# 打開443/TCP端口
firewall-cmd --add-port=443/tcp

# 永久打開3690/TCP端口
firewall-cmd --permanent --add-port=3690/tcp

# 永久打開端口需要reload一下 臨時打開不用 如臨時打開端口reload此端口會失效
firewall-cmd --reload

# 查看防火牆 添加的端口也可以看到
firewall-cmd --list-all

直接模式

# 打開TCP協議的9999端口
firewall-cmd --direct -add-rule ipv4 filter INPUT 0 -p tcp --dport 9000 -j ACCEPT
firewall-cmd --reload

控制端口 / 服務

可以通過兩種方式控制端口的開放 指定端口號或指定服務名
	雖然開放http 服務就是開放80端口 但不能通過端口號來關閉 即通過指定服務名
開放的要通過指定服務名關閉 通過指定端口號開放的就要通過指定端口號關閉 指定端口
的時一定要指定協議(http tcp udp)

firewall-cmd --add-service=mysql # 開放mysql端口
firewall-cmd --remove-service=http # 阻止http端口
firewall-cmd --list-services # 查看開放的服務
firewall-cmd --add-port=3306/tcp # 開放通過tcp訪問3306
firewall-cmd --remove-port=80tcp # 阻止通過tcp訪問3306
firewall-cmd --add-port=233/udp # 開放通過udp訪問233
firewall-cmd --list-ports # 查看開放的端口

僞裝 IP

firewall-cmd --query-masquerade # 檢查是否允許僞裝IP
firewall-cmd --add-masquerade # 允許防火牆僞裝IP
firewall-cmd --remove-masquerade# 禁止防火牆僞裝IP

端口轉發

端口轉發可將指定地址訪問指定的端口時 將請求轉發至指定地址的指定端口 轉發ip不指定時默認爲本機 如指定ip未指定端口默認使用來源端口

如果配置好端口轉發之後不能用 可以檢查下面兩個問題

如將80端口轉發至8080端口 先檢查本地80端口和目標8080端口是否開放監聽
其次檢查是否允許僞裝 ip沒允許的話要開啓僞裝ip
# 將80端口的流量轉發至8080
firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080
firewall-cmd --add-forward-port=proto=80:proto=tcp:toaddr=192.168.1.0.1 # 將80端口的流量轉發至192.168.0.1
firewall-cmd --add-forward-port=proto=80:proto=tcp:toaddr=192.168.0.1:toport=8080 # 將80端口的流量轉發至192.168.0.1的8080端口
想把某個端口隱藏時 就可在防火牆上阻止那個端口訪問 然後再開一個不規則的端口 之後配置防火牆的端口轉發 將請求轉發過去
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章