如何「關閉」開放的連接埠?

如何「關閉」開放的連接埠?

幾天前,我開始非常關心我的資料安全,最後我nmap發現:nmap 127.0.0.1

驚訝,驚訝,我有很多活動服務監聽本地主機:

$ nmap 127.0.0.1
Starting Nmap 5.21 ( http://nmap.org ) at 2013-05-05 00:19 WEST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00025s latency).
Not shown: 993 closed ports
PORT    STATE SERVICE
22/tcp  open  ssh
25/tcp  open  smtp
53/tcp  open  domain
111/tcp open  rpcbind
139/tcp open  netbios-ssn
445/tcp open  microsoft-ds
631/tcp open  ipp

Nmap done: 1 IP address (1 host up) scanned in 0.05 seconds

我唯一一個可能use is ssh(雖然它可能配置得不好,我將把這個問題留到另一個問題)。

據我所知,ippCUPS 使用協定來共用我的印表機,我不需要共用它們,只需從伺服器存取印表機即可。

netstat -lntup這是root 使用者的輸出,刪除了本機主機位址:

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      497/sshd        
tcp        0      0 0.0.0.0:17500           0.0.0.0:*               LISTEN      2217/dropbox    
tcp        0      0 0.0.0.0:445             0.0.0.0:*               LISTEN      892/smbd        
tcp        0      0 0.0.0.0:50022           0.0.0.0:*               LISTEN      1021/rpc.statd  
tcp        0      0 0.0.0.0:139             0.0.0.0:*               LISTEN      892/smbd        
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      906/rpcbind     
tcp6       0      0 :::22                   :::*                    LISTEN      497/sshd        
tcp6       0      0 :::42712                :::*                    LISTEN      1021/rpc.statd  
tcp6       0      0 :::445                  :::*                    LISTEN      892/smbd        
tcp6       0      0 :::139                  :::*                    LISTEN      892/smbd        
tcp6       0      0 :::111                  :::*                    LISTEN      906/rpcbind     
udp        0      0 0.0.0.0:51566           0.0.0.0:*                           615/avahi-daemon: r
udp        0      0 0.0.0.0:68              0.0.0.0:*                           7362/dhclient   
udp        0      0 0.0.0.0:111             0.0.0.0:*                           906/rpcbind     
udp        0      0 192.168.1.255:137       0.0.0.0:*                           1782/nmbd       
udp        0      0 192.168.1.67:137        0.0.0.0:*                           1782/nmbd       
udp        0      0 0.0.0.0:137             0.0.0.0:*                           1782/nmbd       
udp        0      0 192.168.1.255:138       0.0.0.0:*                           1782/nmbd       
udp        0      0 192.168.1.67:138        0.0.0.0:*                           1782/nmbd       
udp        0      0 0.0.0.0:138             0.0.0.0:*                           1782/nmbd       
udp        0      0 0.0.0.0:655             0.0.0.0:*                           906/rpcbind     
udp        0      0 0.0.0.0:17500           0.0.0.0:*                           2217/dropbox    
udp        0      0 0.0.0.0:5353            0.0.0.0:*                           615/avahi-daemon: r
udp        0      0 0.0.0.0:34805           0.0.0.0:*                           1021/rpc.statd  
udp6       0      0 :::40192                :::*                                1021/rpc.statd  
udp6       0      0 :::111                  :::*                                906/rpcbind     
udp6       0      0 :::655                  :::*                                906/rpcbind     
udp6       0      0 :::5353                 :::*                                615/avahi-daemon: r
udp6       0      0 :::42629                :::*                                615/avahi-daemon: r

我該如何配置這些服務,以便它們只在我實際使用它們時監聽外界的聲音?

答案1

確定您的曝光度

從命令的輸出來看netstat,看起來很多服務其實是一個非常短的清單:

$ netstat -lntup | awk '{print $6 $7}'|sed 's/LISTEN//'| cut -d"/" -f2|sort|uniq|grep -v Foreign
avahi-daemon:r
dhclient
dropbox
nmbd
rpcbind
rpc.statd
smbd
sshd

了解狀況

看看這個列表,有幾項服務我不想管。

  • dhclient
    • 負責取得你的IP位址的DHCP伺服器守護進程,必須要有這個。
  • 保管箱
    • 顯然 Dropbox,必須有

開始減少它 - 停用 Samba

您可能可以立即停用 Samba,它佔上述服務中的 2 個,nmbd並且smbd.值得懷疑的是,您是否真的需要在筆記型電腦上運行它,無論是在本地主機還是面向網路的 IP 上。

要檢查它們是否正在運行,您可以使用以下命令status

$ status nmbd
nmbd start/running, process 19457
$ status smbd
smbd start/running, process 19423

關閉服務可能會混淆新貴、/etc/rc.d、業務的所有變化,因此很難弄清楚哪個服務採用哪種技術。對於 Samba,您可以使用以下service命令:

$ sudo service nmbd stop
nmbd stop/waiting
$ sudo service smbd stop
smbd stop/waiting

現在他們走了:

$ status nmbd 
nmbd stop/waiting
$ status smbd 
smbd stop/waiting

讓它們遠離......永久

為了讓他們遠離我,我一直在使用這個工具,sysv-rc-conf從控制台管理服務,它比大多數工具工作得更好。它允許您檢查要運行哪些服務以及應在哪個運行級別啟動/停止它們:

$ sudo apt-get install sysv-rc-conf

   sysv-rc-conf 的 ss

停用其餘不需要的內容

現在 Samba 關閉了,我們剩下以下內容:

  • avahi 守護程式
    • Zeroconf(即插即用)的一部分,將其關閉
  • rpc綁定
    • NFS 需要 - 將其關閉
  • rpc.statd
    • NFS 需要 - 將其關閉

對於剩下的 3 個,您也可以執行與 Samba 相同的操作來關閉。

杯?

要關閉 CUPS(順便說一下,您實際上並不需要 CUPS),您可以遵循相同的步驟:關閉該服務,然後停用它啟動。為了能夠列印,您需要在系統上單獨設定每台印表機。您可以透過system-config-printerGUI 來執行此操作。

按需提供這些服務?

這確實是您問題的核心,但實際上並沒有一個靈丹妙藥的解決方案可以使這些服務變得“智能”,以便它們在使用時運行,而不是一直運行。

#1 - systemd 與新貴

部分原因是目前的分裂系統暴發戶。對兩種競爭技術有很好的概述這裡

在我看來,兩種技術都試圖做一些略有不同的事情,考慮到它們的功能集,systemd 似乎更適合伺服器,而 upstart 似乎更適合桌面捲。隨著時間的推移,這會自行解決,IMO,並且這兩項服務都將穩定且功能豐富。

最終,這兩項服務都將為它們管理的所有服務提供全面的隨選啟動和停止服務。例如,諸如此類的功能StopWhenUnneeded=yes已經存在systemd,因此這些功能的充實只是時間問題。

#2 - 服務支持

有些服務根本不支援停止/啟動。諸如此類的服務sshd按需運作似乎沒有什麼意義,尤其是在大量使用它們的情況下。此外,一些服務(例如 Apache)在其內部提供了機制,以啟動或多或少的監聽器來管理自身。因此,目前還不清楚這些類型的服務如何提供按需服務systemdupstart將如何與這些服務整合。

這真的有必要嗎?

您會聽到雙方都說這太過分了,或者您應該採取極簡主義的方法,只安裝您絕對需要的東西,但這確實是個人選擇。了解這些服務的存在以及它們的作用確實很重要。歸根結底,電腦只是一種工具,透過使用 Unix 系統,您就已經表明您願意窺探幕後並了解電腦的運作方式。

我想說,這種類型的質疑正是人們在處理電腦和 Unix 時應該努力追求的心態。

參考

答案2

127.0.0.1不是“外面的世界”,它正在屋內四處張望。

檢查您的防火牆配置(當今 Linux 中的 iptables),其中大多數不應從外部存取。

不要運行您不需要的服務。卸載所有不需要的軟體。

改變密碼變得更強。檢查一下你的系統使用情況,不要隨意去追任何有趣的網站。檢查瀏覽器的反網路釣魚、反腳本等配置。修改 SSH 和 su/sudo 的用法。

但最重要的是,過度偏執會適得其反。不要被困住科技的閃光

答案3

雖然您可以“關閉”個別服務 - 也許設置防火牆可能更容易。幾乎所有常見發行版(Ubuntu、Debian、Centos 等)都內建了對 iptables 的支援。

一個簡單的入門規則集:(您只需在命令提示字元中輸入這些規則;要使它們永久存在,請將它們新增至您的啟動腳本或告訴我們您正在使用什麼發行版。例如在Centos 上:system-config -firewall 是一個很好的用於配置 iptables 規則的 UI)

iptables -A INPUT -p tcp --dport ssh -j ACCEPT
iptables -A INPUT -j DROP

基本上 - 允許 ssh 入站;放下其他一切。

您的 INPUT 鏈現在如下所示:

  • 如果資料包通過“ssh”進入我的計算機 - 允許它
  • 如果資料包不符合任何先前的規則 - 只需將其丟棄即可。

然後稍後,假設您想要允許“samba”(Windows 檔案共享):您可以運行

iptables -I INPUT-p tcp --dport 465 -j ACCEPT

-I清單的前置和規則;-A附加一條規則。所以你的鏈現在看起來像這樣:

  • 如果“samba”資料包進入我的電腦 - 允許它
  • 如果資料包通過“ssh”進入我的計算機 - 允許它
  • 如果資料包不符合任何先前的規則 - 只需將其丟棄即可。

INPUT鏈指的是發送到您系統的資料包。其他鏈OUTPUT用於來自您的電腦的資料包,進入互聯網以及FORWARD透過您的電腦路由的資料包(即「傳輸」您的電腦的資料包,例如機場的中轉區域 - 不是INPUT因為它沒有進入您的電腦的東西)。

作為臨別說明:nmap'ing 127.0.0.1 不是很有用;許多服務只能從 127.0.0.1 訪問,而不能從其他地址訪問。如果您沒有另一台可以運行 nmap 的機器 - 嘗試使用 Gibson Research 的 Shields UP! (https://www.grc.com/shieldsup) - 這是一個免費的線上 nmap-lite。或添加您的 IP/電子郵件的評論,我將 nmap 您:)

相關內容