如果希望在伺服器上提供服務,諸如CentOS或RHEL的企業級Linux發行版包含內建的強大防火牆,它們預設的防火牆規則十分嚴格。因此,如果你安裝了任何定製的服務(比如web伺服器、NFS和Samba),那麼它們的流量很有可能被防火牆規則阻塞。所以需要在防火牆上開啟必要的連接埠以允許流量通過。
在CentOS/RHEL 6或更早的版本上,iptables服務允許使用者與netfilter核心模組互動來在使用者空間中配置防火牆規則。然而,從CentOS/RHEL 7開始,一個叫做firewalld新使用者空間介面被引入以取代iptables服務。
使用這個命令察看當前的防火牆規則:
代碼如下:
$ sudo iptables -L
現在,讓我們看看如何在CentOS/RHEL上修改防火牆來開啟一個連接埠。
在CentOS/RHEL 7上開啟連接埠
啟動CentOS/RHEL 7後,防火牆規則設定由firewalld服務進程預設管理。一個叫做firewall-cmd的命令列用戶端支援和這個守護進程通訊以永久修改防火牆規則。
使用這些命令來永久開啟一個新連接埠(如TCP/80)。
代碼如下:
$ sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
$ sudo firewall-cmd --reload
如果不使用“--permanent”標記,把麼防火牆規則在重啟後會失效。
在CentOS/RHEL 6上開啟連接埠
在CentOS/RHEL 6甚至更早版本系統上,iptables服務負責維護防火牆規則。
使用iptables的第一條命令可以通過防火牆開啟一個新TCP/UDP連接埠。為了永久儲存修改過的規則,還需要第二條命令。
代碼如下:
$ sudo iptables -I INPUT -p tcp -m tcp --dport 80 -j ACCEPT
$ sudo service iptables save
另一種方法是通過一個名為system-config-firewall-tui的命令列使用者介面(TUI)的防火牆用戶端。
代碼如下:
$ sudo system-config-firewall-tui
選擇位於中間的“Customize”按鈕,按下ENTER鍵即可。
如果想要為任何已知的服務(如web伺服器)修改防火牆,只需勾選該服務,然後關閉工具。如果想要開啟任意一個TCP/UDP連接埠,選擇“Forward”按鈕,然後進入下一個介面。
選擇“Add”按鈕添加一條新規則。
指定一個連接埠(如80)或者連接埠範圍(如3000-3030)和協議(如tcp或udp)。
最後,儲存修改過的配置,關閉工具。這樣,防火牆就永久儲存了。