Ubuntu下使用UFW,以及CentOS7的默認防火牆firewalld


  UFW是一個簡化版的iptables,基於iptables,配置比iptables簡單

  默認UFW是關閉狀態,即Ubuntu默認打開所有端口,比較危險。

  檢測狀態

  ufw status

  設置默認狀態,默認禁止所有連接(所有入站連接)

  ufw default deny

  啟用某個端口

  ufw allow 22

  刪除某個規則

  ufw delete allow 22

  只打開使用tcp/ip協議的22端口:

  ufw allow 22/tcp

  打開來自192.168.0.1的tcp請求的80端口:

  sudo ufw allow proto tcp 192.168.0.1 port 80 to 192.168.0.2 port 80

  更詳細的使用說明見:

  http://wiki.ubuntu.org.cn/Ufw%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97

  其實調用的還是iptables,因為使用后生成了很多iptables的規則。

 

 

# 清空所有防火牆規則
iptables --flush
iptables --delete-chain
 
# 接受所有到達 22 端口的 TCP 請求
# 假如你改了 SSH 的端口,記得修改這里的端口號。
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
 
# 接受所有到達 8888 端口的 TCP 請求
# 記得將 8888 改為你為 Shadowsocks server 設定的端口
iptables -A INPUT -p tcp --dport 8888 -j ACCEPT
 
# 接受所有由 VPS 發出的請求收到的回應
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# 允許 ping
iptables -A INPUT -p icmp -j ACCEPT
 
# 不接受其余一切網絡請求
iptables -A INPUT -j DROP
然后我發現 /etc/init.d 文件夾下不存在 iptables 服務文件,看來是要自行添加了,真麻煩。在 Google 了一下之后,沒有找到別人提供的服務文件,卻找到了利用開機網絡前的配置 hook 運行自定義腳本來實現的方法,聽說是因為 Debian 已經不再建議使用 /etc/init.d/iptables 服務了。
 
那么便添加 hook 吧,創建腳本 /etc/network/if-pre-up.d/iptables 並為其添加可執行屬性,文件內容如下:
 
#!/usr/bin/env bash
 
# 從 iptables.conf 中讀取防火牆配置
/sbin/iptables-restore < /etc/iptables.conf
接着,執行 bash iptables.sh 運行防火牆,然后執行 iptables-save > /etc/iptables.conf 生成配置文件。
 
最后,別忘了限制配置文件的讀寫權限,chmod 600 /etc/iptables.conf 足矣。搞定。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM