[Linux] 防火牆設定 Firewall Settings
使用 Linux/Unix 作為架站的主要環境,當有多個服務同時跑在同一台伺服器上的時候,不免就會遇到防火牆的設定的問題。在 Linux 的環境裡不論是 CentOS 還是 RHEL 系列都提供了簡單跟 netfilter kernel (管理網路的核心元件) 溝通的指令。
對於初學者,首先可以使用以下指令簡易了解目前在伺服器上的網路設定,由於設定通常會有很多訊息,所以建議使用 | less 慢慢觀看:
sudo iptables -L | less
大致上顯示出來的訊息可以分成以下幾個分類:
- 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"