新聞中心
netstat 命令為你的 linux 服務(wù)器提供了監(jiān)測和網(wǎng)絡(luò)故障排除的重要觀察手段。

創(chuàng)新互聯(lián)建站專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站制作、成都網(wǎng)站設(shè)計、源城網(wǎng)絡(luò)推廣、重慶小程序開發(fā)、源城網(wǎng)絡(luò)營銷、源城企業(yè)策劃、源城品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)建站為所有大學(xué)生創(chuàng)業(yè)者提供源城建站搭建服務(wù),24小時服務(wù)熱線:028-86922220,官方網(wǎng)址:www.cdcxhl.com
在 之前的文章中,我分享了一些管理你的個人 Linux 服務(wù)器的首要步驟。我簡要的提到了監(jiān)測網(wǎng)絡(luò)連接的監(jiān)聽端口,我想通過 Linux 系統(tǒng)的 netstat 命令來擴展開講講。
服務(wù)監(jiān)測和端口掃描是標(biāo)準的行業(yè)慣例。有很好的軟件,如 Prometheus 協(xié)助這個過程自動化,SELinux 協(xié)助上下文和保護系統(tǒng)訪問權(quán)限。然而,我相信了解你的服務(wù)器是如何連接到其他網(wǎng)絡(luò)和設(shè)備的,是建立正常服務(wù)器基準的關(guān)鍵,能夠幫助你識別有可能表明錯誤和入侵等異常情況。作為一個初學(xué)者,我已經(jīng)掌握了 netstat 命令為我的服務(wù)器提供了監(jiān)測和網(wǎng)絡(luò)故障排除的重要觀察手段。
Netstat 和類似的一些網(wǎng)絡(luò)監(jiān)測工具被歸入 net-tools 軟件包 里,用來顯示關(guān)于活動連接的信息。因為運行在開放的端口的服務(wù)往往容易被利用,定期進行網(wǎng)絡(luò)監(jiān)測能夠幫助你及早探測到可疑的活動。
安裝 netstat
netstat 經(jīng)常預(yù)裝在 Linux 發(fā)行版上。如果 netstat 沒有在你的服務(wù)器上安裝,用你的包管理器安裝它。下面是在基于 Debian 的系統(tǒng)上:
$ sudo apt-get install net-tools
在基于 Fedora 的系統(tǒng)上:
$ dnf install net-tools
使用 netstat
就其本身而言,netstat 命令顯示了全部建立成功的連接。你可以使用 netstat 的參數(shù)指定進一步預(yù)期的輸出。舉個例子,要顯示所有監(jiān)聽和非監(jiān)聽的連接,使用 --all(-a 為簡寫)的參數(shù)。這將返回許多結(jié)果,所以在例子中我用管道符輸出給 head 命令來顯示輸出的前 15 行:
$ netstat --all | head -n 15
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 *:27036 *:* LISTEN
tcp 0 0 localhost:27060 *:* LISTEN
tcp 0 0 *:16001 *:* LISTEN
tcp 0 0 localhost:6463 *:* LISTEN
tcp 0 0 *:ssh *:* LISTEN
tcp 0 0 localhost:57343 *:* LISTEN
tcp 0 0 *:ipp *:* LISTEN
tcp 0 0 *:4713 *:* LISTEN
tcp 0 0 10.0.1.222:48388 syd15s17-in-f5.1e:https ESTABLISHED
tcp 0 0 10.0.1.222:48194 ec2-35-86-38-2.us:https ESTABLISHED
tcp 0 0 10.0.1.222:56075 103-10-125-164.va:27024 ESTABLISHED
tcp 0 0 10.0.1.222:46680 syd15s20-in-f10.1:https ESTABLISHED
tcp 0 0 10.0.1.222:52730 syd09s23-in-f3.1e:https ESTABLISHED
要只顯示 TCP 端口,使用 --all 和 --tcp 參數(shù),或者簡寫成 -at :
$ netstat -at | head -n 5
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 *:27036 *:* LISTEN
tcp 0 0 localhost:27060 *:* LISTEN
tcp 0 0 *:16001 *:* LISTEN
要只顯示 UDP 端口,使用 --all 和 --udp 參數(shù),或者簡寫成 -au :
$ netstat -au | head -n 5
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
udp 0 0 *:27036 *:*
udp 0 0 10.0.1.222:44741 224.0.0.56:46164 ESTABLISHED
udp 0 0 *:bootpc
netstat 命令參數(shù)常常是簡單易懂的。舉個例子,要顯示帶有全部進程 ID(PID)和數(shù)字地址的監(jiān)聽 TCP 和 UDP 的端口:
$ sudo netstat --tcp --udp --listening --programs --numeric
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Addr State PID/Program name
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 2500/dnsmasq
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1726/sshd
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1721/cupsd
tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN 4023/sshd: tux@
tcp6 0 0 :::111 :::* LISTEN 1/systemd
tcp6 0 0 :::22 :::* LISTEN 1726/sshd
tcp6 0 0 ::1:631 :::* LISTEN 1721/cupsd
tcp6 0 0 ::1:6010 :::* LISTEN 4023/sshd: tux@
udp 0 0 0.0.0.0:40514 0.0.0.0:* 1499/avahi-daemon:
udp 0 0 192.168.122.1:53 0.0.0.0:* 2500/dnsmasq
udp 0 0 0.0.0.0:67 0.0.0.0:* 2500/dnsmasq
udp 0 0 0.0.0.0:111 0.0.0.0:* 1/systemd
udp 0 0 0.0.0.0:5353 0.0.0.0:* 1499/avahi-daemon:
udp6 0 0 :::111 :::* 1/systemd
udp6 0 0 :::44235 :::* 1499/avahi-daemon:
udp6 0 0 :::5353 :::* 1499/avahi-daemon:
這個常用組合簡寫版本是 -tulpn 。
要顯示一個指定服務(wù)的信息,使用 grep 命令過濾:
$ sudo netstat -anlp | grep cups
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1721/cupsd tcp6 0 0 ::1:631 :::* LISTEN 1721/cupsd
unix 2 [ ACC ] STREAM LISTENING 27251 1/systemd /var/run/cups/cups.sock
unix 2 [ ] DGRAM 59530 1721/cupsd
unix 3 [ ] STREAM CONNECTED 55196 1721/cupsd /var/run/cups/cups.sock
接下來的步驟
一旦你運行了 netstat 命令,你就可以采取措施來保護你的系統(tǒng),確保只有你主動使用的服務(wù)在你的網(wǎng)絡(luò)上被監(jiān)聽。
- 識別通常被利用的端口和服務(wù)。一般來說,關(guān)閉你實際不使用的端口。
- 留意不常見的端口號,認識了解在你系統(tǒng)上使用的合法端口。
- 密切注意 SELinux 錯誤。有時你需要做的只是更新上下文,以匹配你對系統(tǒng)做的合法更改,但是要閱讀錯誤警告,以確保 SELinux 提醒你的不是可疑或者惡意的活動。
如果你發(fā)現(xiàn)一個端口正在運行一個可疑的服務(wù),或者你只是簡單的想要關(guān)閉你不再使用的端口,你可以遵從以下這些步驟,通過防火墻規(guī)則手動拒絕端口訪問:
如果你在使用 firewall-cmd ,運行這些命令:
$ sudo firewall-cmd –remove-port=/tcp
$ sudo firewall-cmd –runtime-to-permanent
如果你在使用 UFW,運行以下的命令:
$ sudo ufw deny
下一步,使用 systemctl 來停止這個服務(wù):
$ systemctl stop
理解 netstat
netstat 是一個快速收集你的服務(wù)器網(wǎng)絡(luò)連接信息的有用工具。定期網(wǎng)絡(luò)監(jiān)測是了解你的系統(tǒng)的重要組成部分,對幫助你保持你的系統(tǒng)安全有著重要意義。將這一步納入你的日常管理中,你可以使用類似 netstat 或者 ss ,以及 Nmap 等開源端口掃描器或者 Wireshark 等嗅探器 ,它們都允許設(shè)定 計劃任務(wù)。
隨著服務(wù)器存儲了大量的個人數(shù)據(jù),確保個人服務(wù)器的安全日益重要。通過了解你的服務(wù)器怎樣連接到互聯(lián)網(wǎng),你可以降低你的機器的風(fēng)險,同時你仍可以在數(shù)字時代大量的連接中獲得益處。
名稱欄目:使用netstat查看你的Linux服務(wù)器網(wǎng)絡(luò)連接
文章分享:http://m.fisionsoft.com.cn/article/cdhohoo.html


咨詢
建站咨詢
