2013年8月26日 星期一

在 Debian 上使用 ufw 設定防火牆

以前設定防火牆時是直接使用 iptables 指令,但畢竟使用 iptables 頗有難度,所以基本上我都參考鳥哥的 "第九章、防火牆與 NAT 伺服器" 這篇文章,然後使用鳥哥提供的範例來設定。幸好,我手上的機器只需要 SSH 和 Samba 兩個服務,通常只要允許這兩個服務使用的埠 (port) 可以進入就行了。

後來,發現 ufw 這個工具後,我一直覺得 ufw 是個好東西,因為它不像 iptables 那麼複雜,對於一般防火牆的設定其實已經很足夠了。不過,若要對防火牆更進一步控管,建議還是學學 iptables 吧!

在 Debian 上安裝 ufw 很簡單,只要一行指令即可:

$ sudo apt-get install ufw

安裝完畢後,接著要先啟用 ufw:

$ sudo ufw enable

然後,將 ufw 的 defualt 設定改成 Deny:

sudo ufw default deny

這樣一來,INPUT 及 FORWARD 兩個 Chain 都會被設定成 DROP。

接著,就可以開始設定要允許的連線,由於我的機器只提供了 SSH 和 Samba 的服務,因此首先將 SSH 監聽的埠打開,此時可以執行這個指令直接允許 22 這個埠的 TCP 及 UDP 連線:

$ sudo ufw allow ssh

然後,再允許 Samba (SMB/CIFS 通訊協定) 監聽的幾個埠:

$ sudo ufw allow proto tcp to any port 135 from 192.168.1.0/24
$ sudo ufw allow proto udp to any port 137 from 192.168.1.0/24
$ sudo ufw allow proto udp to any port 138 from 192.168.1.0/24
$ sudo ufw allow proto tcp to any port 139 from 192.168.1.0/24
$ sudo ufw allow proto tcp to any port 445 from 192.168.1.0/24

其中,135 (Remote Procedure Call)、139 (NetBIOS Session Service) 和 445 (Microsoft-DS) 是 TCP 埠,而 137 (NetBIOS Name Service) 和 138 (NetBIOS Name Service) 是 UDP 埠。

參考閱讀:

  1. 鳥哥的 Linux 私房菜:第九章、防火牆與 NAT 伺服器
  2. 鳥哥的 Linux 私房菜:第十六章、檔案伺服器之二: SAMBA 伺服器
  3. Ubuntu: ufw
  4. UFW防火牆簡單設置
  5. [SOLVED] samba and ufw
  6. Allow Samba through your Linux firewall with ufw
  7. 開啟 CIFS / SMB / UNC 連線應開放哪些 Ports 與注意事項
  8. 設立 UFW防火牆與 Samba

張貼留言