[Linux] 防火牆設定 Firewall Settings

使用 Linux/Unix 作為架站的主要環境,當有多個服務同時跑在同一台伺服器上的時候,不免就會遇到防火牆的設定的問題。在 Linux 的環境裡不論是 CentOS 還是 RHEL 系列都提供了簡單跟 netfilter kernel (管理網路的核心元件) 溝通的指令。

對於初學者,首先可以使用以下指令簡易了解目前在伺服器上的網路設定,由於設定通常會有很多訊息,所以建議使用 | less 慢慢觀看:

sudo iptables -L | less
iptables -L 顯示的輸出

大致上顯示出來的訊息可以分成以下幾個分類:

  • Chain INPUT
  • Chain FORWARD
  • Chain OUTPUT
  • Chain ALLOWIN
  • Chain ALLOWOUT
  • Chain DENYIN
  • Chain DENYOUT

如果你有使用 Docker 的話你會有額外幾個分類:

  • Chain DOCKER
  • Chain DOCKER-ISOLATION-STAGE
  • Chain DOCKER-USER
  • Chain INVALID

想要增加開啟的 TCP, UDP port 可以修改以下的文件 /etc/csf/csf.conf,文件裡面的 UDP_IN, UDP_OUT, TCP_IN, TCP_OUT 分別像是以下方式修改。

//Allow incoming TCP ports
TCP_IN = "20,21,22,25,80,110,143,443,465,587,993,995"

//Allow outgoing TCP ports
TCP_OUT = "20,21,22,25,80,110,113,443,587,993,995"

//Allow incoming UDP ports
UDP_IN = "20,21,53"

//Allow outgoing UDP ports
//To allow outgoing traceroute add 33434:33523 to this list 
UDP_OUT = "20,21,53,113,123"