1. 程式人生 > 其它 >CentOS7 防火牆(firewall)的操作命令(轉載)(4)

CentOS7 防火牆(firewall)的操作命令(轉載)(4)

1 firewalld的基本使用

啟動: systemctl start firewalld 檢視狀態: systemctl status firewalld  禁用,禁止開機啟動: systemctl disable firewalld 停止執行: systemctl stop firewalld

2 配置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-on
取消拒絕狀態: firewall-cmd --panic-off 檢視是否拒絕: firewall-cmd --query-panic 這三個命令別輕易使用 尤其是第一個命令

3 信任級別,通過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 --permanent

5 管理服務

以smtp服務為例, 新增到work zone 新增: firewall-cmd --zone=work --add-service=smtp
檢視: firewall-cmd --zone=work --query-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