基于服務器安全性維護的目的,查看所有時尚的端口是通常采取的第一步,從中檢查出可疑或者不必要的端口并將其關掉。關于查看時尚的端口,方法不止一種,比如lsof 命令,還可以使用 ss 命令。
查看時尚的端口
今天我們就介紹一下如何使用 ss 命令來查看 linux 系統中時尚的端口。獲取所有正在監聽的接口,可以使用 -l 選項,不過我們可以再額外增加使用另外一個選項 t 來監聽所有 TCP 端口,如下:
ss -tl
如果希望同時監聽 TCP 和 UDP 端口,可以使用如下選項組合命令:
ss -tul
要獲取每個服務監聽的端口,可以使用 -n 選項,然后結合grep 命令來過濾結果,如下所示:
ss -tuln | grep LISTEN
找到時尚的端口后,就可以選擇性地關閉它們。
關閉端口
要關閉端口,首先你需要找到位于該端口的服務名稱并停掉該服務,可以使用 ss 命令的 -p 選項,如下所示:
sudo ss -tulnp | grep LISTEN
上圖所示的例子中,端口號 80 被 Nginx 服務所占據,如果我們想要關閉該端口,可以使用如下命令停止 nginx 服務:
sudo systemctl stop nginx
如果 nginx 服務被設置了自啟動(即每次服務器重啟時,nginx 都會自動啟動),那么我們可以使用如下命令來禁用該服務:
sudo systemctl disable nginx
不過最好還是更改防火墻規則,比如在 Ubuntu 中,可以阻止 UFW 中的端口號 80(即 nginx 所使用的端口)。
首先,檢查 UFW 的狀態:
sudo ufw status
如果其狀態為 inactive,可以使用如下命令啟用:
sudo ufw enable
然后使用 deny 選項 來阻止某個端口號:
sudo ufw deny 80
這里由于我們的服務器是云服務器,所以基本上防火墻都放在了云防火墻的配置中,這里就不演示了。