CentOS7 防火牆(firewall)的操作命令(轉載)(4)
1 firewalld的基本使用
啟動: systemctl start firewalld 檢視狀態: systemctl status firewalld 禁用,禁止開機啟動: systemctl disable firewalld 停止執行: systemctl stop firewalld2 配置firewalld-cmd
檢視版本: firewall-cmd --version 檢視幫助: firewall-cmd --help 顯示狀態: firewall-cmd --state 檢視所有開啟的埠: firewall-cmd --zone=public --list-ports 更新防火牆規則: firewall-cmd --reload 更新防火牆規則,重啟服務: firewall-cmd --completely-reload 檢視已啟用的Zone資訊: firewall-cmd --get-active-zones 檢視指定介面所屬區域: firewall-cmd --get-zone-of-interface=eth0 拒絕所有包:firewall-cmd --panic-on3 信任級別,通過Zone的值指定
drop: 丟棄所有進入的包,而不給出任何響應
block: 拒絕所有外部發起的連線,允許內部發起的連線
public: 允許指定的進入連線
external: 同上,對偽裝的進入連線,一般用於路由轉發
dmz: 允許受限制的進入連線
work: 允許受信任的計算機被限制的進入連線,類似 workgroup
home: 同上,類似 homegroup
internal: 同上,範圍針對所有網際網路使用者
trusted: 信任所有連線
4 firewall開啟和關閉埠
新增: firewall-cmd --zone=public --add-port=80/tcp --permanent (--permanent永久生效,沒有此引數重啟後失效) 重新載入: firewall-cmd --reload 檢視: firewall-cmd --zone=public --query-port=80/tcp 刪除: firewall-cmd --zone=public --remove-port=80/tcp --permanent5 管理服務
以smtp服務為例, 新增到work zone 新增: firewall-cmd --zone=work --add-service=smtp刪除: firewall-cmd --zone=work --remove-service=smtp
6 配置 IP 地址偽裝
檢視: firewall-cmd --zone=external --query-masquerade 開啟: firewall-cmd --zone=external --add-masquerade 關閉: firewall-cmd --zone=external --remove-masquerade埠轉發
第一步很關鍵:firewall-cmd --add-masquerade --permanent 開啟埠轉發
案例
如果需要將本地的85埠轉發至後端8080埠(這裡就需要開啟本地的85埠 8080埠)
firewall-cmd --permanent --zone=public --add-forward-port=port=85:proto=tcp:toport=8080
如果需要將本地的90埠轉發至後端192.168.64.131機器的8090埠(這裡需要開啟本地的90埠 和192.168.64.131機器上8090埠 (或者關閉192.168.64.131防火牆))
firewall-cmd --add-forward-port=port=90:proto=tcp:toport=8080:toaddr=192.168.64.131 --permanent
firewall-cmd --reload 重新載入防火牆
firewall-cmd --list-all 檢視防火牆規則(本地機器192.168.64.130)
[root@docker-130 ~]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: ens33
sources:
services: dhcpv6-client ssh
ports: 80/tcp 22/tcp 85/tcp 90/tcp 8080/tcp
protocols:
masquerade: yes
forward-ports:
port=80:proto=tcp:toport=8080:toaddr=
port=85:proto=tcp:toport=8080:toaddr=
port=90:proto=tcp:toport=8090:toaddr=192.168.64.131
source-ports:
icmp-blocks:
rich rules:
[root@docker-130 ~]#
netstat -antl 檢視監聽的埠號是否存在
vim /etc/sysctl.conf 編輯配置檔案開啟轉發
net.ipv4.ip_forward = 1
這裡就是修改httpd服務的埠號反覆測試 我就只放出一個實驗效果圖
192.168.64.131機器的8090效果圖
如果需要將本地(本地機器192.168.64.130)的90埠轉發至後端192.168.64.131機器的8090埠 效果圖
參考連結:
https://www.cnblogs.com/leoxuan/p/8275343.html
https://www.cnblogs.com/caidingyu/p/12075169.html