Linux 中如何查找并關(guān)掉開放的端口
我們先前寫過一篇關(guān)于如何查找 Linux 中開放的端口的文章,大家感興趣可以查閱一下:
基于服務(wù)器安全性維護(hù)的目的,查看所有開放的端口是通常采取的第一步,從中檢查出可疑或者不必要的端口并將其關(guān)掉。
關(guān)于查看開放的端口,方法不止一種,除了前文中提到的使用 lsof 命令以外,還可以使用 ss 命令。
查看開放的端口
今天我們就介紹一下如何使用 ss 命令來查看 Linux 系統(tǒng)中開放的端口。獲取所有正在監(jiān)聽的接口,可以使用 -l 選項(xiàng),不過我們可以再額外增加使用另外一個(gè)選項(xiàng) t 來監(jiān)聽所有 TCP 端口,如下:
如果希望同時(shí)監(jiān)聽 TCP 和 UDP 端口,可以使用如下選項(xiàng)組合命令:
要獲取每個(gè)服務(wù)監(jiān)聽的端口,可以使用 -n 選項(xiàng),然后結(jié)合 ??grep 命令???來過濾結(jié)果,如下所示:
找到開放的端口后,就可以選擇性地關(guān)閉它們。
關(guān)閉端口
要關(guān)閉端口,首先你需要找到位于該端口的服務(wù)名稱并停掉該服務(wù),可以使用 ss 命令的 -p 選項(xiàng),如下所示:
上圖所示的例子中,端口號(hào) 80 被 nginx 服務(wù)所占據(jù),如果我們想要關(guān)閉該端口,可以使用如下命令停止 nginx 服務(wù):
如果 nginx 服務(wù)被設(shè)置了自啟動(dòng)(即每次服務(wù)器重啟時(shí),nginx 都會(huì)自動(dòng)啟動(dòng)),那么我們可以使用如下命令來禁用該服務(wù):
不過最好還是更改防火墻規(guī)則,比如在 Ubuntu 中,可以阻止 UFW 中的端口號(hào) 80(即 nginx 所使用的端口)。
首先,檢查 UFW 的狀態(tài):
如果其狀態(tài)為 inactive,可以使用如下命令啟用:
然后使用 deny 選項(xiàng) 來阻止某個(gè)端口號(hào):
最終結(jié)果是:
如上圖所示,開放的端口中已經(jīng)沒有 nginx 了。