centos7 firewall 防火牆 命令

爲了架設ss在vultr上買了一個日本的vps 用的是centos7的系統 防火牆是 firewall 搗鼓了兩天 在這裏總結一下。

如果小夥伴也準備在vultr上買vps  在註冊是 可以使用這個優惠連接   http://www.vultr.com/?ref=6972993-3B  會的到 20$ 的優惠  也就可以免費使用4個月

 

如果你的系統上沒有安裝使用命令安裝

#yum install firewalld  //安裝firewalld 防火牆

開啓服務 

# systemctl start firewalld.service

關閉防火牆

# systemctl stop firewalld.service

開機自動啓動

# systemctl enable firewalld.service

關閉開機制動啓動

# systemctl disable firewalld.service

 

查看狀態

#systemctl status firewalld

得到到的結果如果是

● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2016-09-05 02:34:07 UTC; 15min ago
Main PID: 3447 (firewalld)
CGroup: /system.slice/firewalld.service
└─3447 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid

Sep 05 02:34:07 vultr.guest systemd[1]: Starting firewalld - dynamic firewall daemon...
Sep 05 02:34:07 vultr.guest systemd[1]: Started firewalld - dynamic firewall daemon.

這樣的說明沒有問題

設置 firwall 

使用firewall-cmd 命令

查看狀態

#firewall-cmd --state    //running 表示運行

獲取活動的區域

#firewall-cmd --get-active-zones
這條命令將用以下格式輸出每個區域所含接口:
<zone1>: <interface1> <interface2> ..<zone2>: <interface3> ..

 獲取所有支持的服務

#firewall-cmd --get-service

每個服務以空格分隔  例如:

RH-Satellite-6 amanda-client bacula bacula-client dhcp dhcpv6 dhcpv6-client dns freeipa-ldap freeipa-ldaps freeipa-replication ftp high-availability http https imaps ipp ipp-client ipsec iscsi-target kerberos kpasswd ldap ldaps libvirt libvirt-tls mdns mountd ms-wbt mysql nfs ntp openvpn pmcd pmproxy pmwebapi pmwebapis pop3s postgresql proxy-dhcp radius rpc-bind rsyncd samba samba-client smtp ssh telnet tftp tftp-client transmission-client vdsm vnc-server wbem-http

獲取永久選項所支持的服務   就是重啓後也支出的

#firewall-cmd --get-service --permanent  //在 0.3.0 之前的 FirewallD版本中, panic 選項是 –enable-panic 與 –disable-panic

開啓應急模式阻斷所有網絡連接
#firewall-cmd --panic-on  //在 0.3.0 之前的 FirewallD版本中, panic 選項是 –enable-panic 與 –disable-panic

關閉應急模式       

#firewall-cmd --panic-off

 查看應急模式的狀態

#firewall-cmd --query-panic

 在不改變狀態的條件下重新加載防火牆:

#firewall-cmd --reload

防火牆預定義的服務配置文件是xml文件 目錄在 /usr/lib/firewalld/services/

 

在 /etc/firewalld/services/ 這個目錄中也有配置文件    但是/etc/firewalld/services/目錄 優先於 /usr/lib/firewalld/services/  目錄

修改配置文件後 使用命令重新加載

#firewall-cmd --reload

 

啓用某個服務

# firewall-cmd --zone=public --add-service=https   //臨時
# firewall-cmd --permanent --zone=public --add-service=https  //永久

開啓某個端口

#firewall-cmd --permanent --zone=public --add-port=8080-8081/tcp  //永久
#firewall-cmd  --zone=public --add-port=8080-8081/tcp   //臨時

使用命令加載設置

#firewall-cmd --reload

 

查看開啓的端口和服務

#firewall-cmd --permanent --zone=public --list-services    //服務空格隔開  例如 dhcpv6-client https ss   
#firewall-cmd --permanent --zone=public --list-ports //端口空格隔開  例如  8080-8081/tcp 8388/tcp 80/tcp

在每次修改 端口和服務後  /etc/firewalld/zones/public.xml  文件就會被修改   所以也可以在文件中之間修改  然後重新加載

 

 

 設置某個ip 訪問某個服務

#firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4"  source address="192.168.0.4/24" service name="http" accept"

ip 192.168.0.4/24 訪問 http

設置後 public.xml 就會出現變化

 

 刪除上面設置的規則

#firewall-cmd --permanent --zone=public --remove-rich-rule="rule family="ipv4"  source address="192.168.0.4/24" service name="http" accept"

 

啓動服務

複製代碼
#systemctl start firewalld.service  //開啓服務
#systemctl enable firewalld.service //開機制動啓動

#systemctl stop firewalld.service //關閉服務
#systemctl disable firewalld.service //禁止開機啓動


複製代碼

 

端口轉發

先開啓允許僞裝IP

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

  

設置轉發

 

然後轉發 tcp 22 端口至 3753

# firewall-cmd --zone=public --add-forward-port=port=22:proto=tcp:toport=3753

 

轉發 22 端口數據至另一個 ip 的相同端口上

# firewall-cmd --zone=public --add-forward-port=port=22:proto=tcp:toaddr=192.168.1.100

 

轉發 22 端口數據至另一 ip 的 2055 端口上

# firewall-cmd --zone=public --add-forward-port=port=22:proto=tcp:toport=2055:toaddr=192.168.1.100
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章