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

創(chuàng)新互聯(lián)建站專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、源城網(wǎng)絡(luò)推廣、重慶小程序開(kāi)發(fā)、源城網(wǎng)絡(luò)營(yíng)銷、源城企業(yè)策劃、源城品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)建站為所有大學(xué)生創(chuàng)業(yè)者提供源城建站搭建服務(wù),24小時(shí)服務(wù)熱線:028-86922220,官方網(wǎng)址:www.cdcxhl.com
在 之前的文章中,我分享了一些管理你的個(gè)人 Linux 服務(wù)器的首要步驟。我簡(jiǎn)要的提到了監(jiān)測(cè)網(wǎng)絡(luò)連接的監(jiān)聽(tīng)端口,我想通過(guò) Linux 系統(tǒng)的 netstat 命令來(lái)擴(kuò)展開(kāi)講講。
服務(wù)監(jiān)測(cè)和端口掃描是標(biāo)準(zhǔn)的行業(yè)慣例。有很好的軟件,如 Prometheus 協(xié)助這個(gè)過(guò)程自動(dòng)化,SELinux 協(xié)助上下文和保護(hù)系統(tǒng)訪問(wèn)權(quán)限。然而,我相信了解你的服務(wù)器是如何連接到其他網(wǎng)絡(luò)和設(shè)備的,是建立正常服務(wù)器基準(zhǔn)的關(guān)鍵,能夠幫助你識(shí)別有可能表明錯(cuò)誤和入侵等異常情況。作為一個(gè)初學(xué)者,我已經(jīng)掌握了 netstat 命令為我的服務(wù)器提供了監(jiān)測(cè)和網(wǎng)絡(luò)故障排除的重要觀察手段。
Netstat 和類似的一些網(wǎng)絡(luò)監(jiān)測(cè)工具被歸入 net-tools 軟件包 里,用來(lái)顯示關(guān)于活動(dòng)連接的信息。因?yàn)檫\(yùn)行在開(kāi)放的端口的服務(wù)往往容易被利用,定期進(jìn)行網(wǎng)絡(luò)監(jiān)測(cè)能夠幫助你及早探測(cè)到可疑的活動(dòng)。
安裝 netstat
netstat 經(jīng)常預(yù)裝在 Linux 發(fā)行版上。如果 netstat 沒(méi)有在你的服務(wù)器上安裝,用你的包管理器安裝它。下面是在基于 Debian 的系統(tǒng)上:
$ sudo apt-get install net-tools
在基于 Fedora 的系統(tǒng)上:
$ dnf install net-tools
使用 netstat
就其本身而言,netstat 命令顯示了全部建立成功的連接。你可以使用 netstat 的參數(shù)指定進(jìn)一步預(yù)期的輸出。舉個(gè)例子,要顯示所有監(jiān)聽(tīng)和非監(jiān)聽(tīng)的連接,使用 --all(-a 為簡(jiǎn)寫(xiě))的參數(shù)。這將返回許多結(jié)果,所以在例子中我用管道符輸出給 head 命令來(lái)顯示輸出的前 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ù),或者簡(jiǎn)寫(xiě)成 -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ù),或者簡(jiǎn)寫(xiě)成 -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ù)常常是簡(jiǎn)單易懂的。舉個(gè)例子,要顯示帶有全部進(jìn)程 ID(PID)和數(shù)字地址的監(jiān)聽(tīng) 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:
這個(gè)常用組合簡(jiǎn)寫(xiě)版本是 -tulpn 。
要顯示一個(gè)指定服務(wù)的信息,使用 grep 命令過(guò)濾:
$ 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
接下來(lái)的步驟
一旦你運(yùn)行了 netstat 命令,你就可以采取措施來(lái)保護(hù)你的系統(tǒng),確保只有你主動(dòng)使用的服務(wù)在你的網(wǎng)絡(luò)上被監(jiān)聽(tīng)。
- 識(shí)別通常被利用的端口和服務(wù)。一般來(lái)說(shuō),關(guān)閉你實(shí)際不使用的端口。
- 留意不常見(jiàn)的端口號(hào),認(rèn)識(shí)了解在你系統(tǒng)上使用的合法端口。
- 密切注意 SELinux 錯(cuò)誤。有時(shí)你需要做的只是更新上下文,以匹配你對(duì)系統(tǒng)做的合法更改,但是要閱讀錯(cuò)誤警告,以確保 SELinux 提醒你的不是可疑或者惡意的活動(dòng)。
如果你發(fā)現(xiàn)一個(gè)端口正在運(yùn)行一個(gè)可疑的服務(wù),或者你只是簡(jiǎn)單的想要關(guān)閉你不再使用的端口,你可以遵從以下這些步驟,通過(guò)防火墻規(guī)則手動(dòng)拒絕端口訪問(wèn):
如果你在使用 firewall-cmd ,運(yùn)行這些命令:
$ sudo firewall-cmd –remove-port=/tcp
$ sudo firewall-cmd –runtime-to-permanent
如果你在使用 UFW,運(yùn)行以下的命令:
$ sudo ufw deny
下一步,使用 systemctl 來(lái)停止這個(gè)服務(wù):
$ systemctl stop
理解 netstat
netstat 是一個(gè)快速收集你的服務(wù)器網(wǎng)絡(luò)連接信息的有用工具。定期網(wǎng)絡(luò)監(jiān)測(cè)是了解你的系統(tǒng)的重要組成部分,對(duì)幫助你保持你的系統(tǒng)安全有著重要意義。將這一步納入你的日常管理中,你可以使用類似 netstat 或者 ss ,以及 Nmap 等開(kāi)源端口掃描器或者 Wireshark 等嗅探器 ,它們都允許設(shè)定 計(jì)劃任務(wù)。
隨著服務(wù)器存儲(chǔ)了大量的個(gè)人數(shù)據(jù),確保個(gè)人服務(wù)器的安全日益重要。通過(guò)了解你的服務(wù)器怎樣連接到互聯(lián)網(wǎng),你可以降低你的機(jī)器的風(fēng)險(xiǎn),同時(shí)你仍可以在數(shù)字時(shí)代大量的連接中獲得益處。
新聞標(biāo)題:使用netstat查看你的Linux服務(wù)器網(wǎng)絡(luò)連接
轉(zhuǎn)載源于:http://m.5511xx.com/article/cdhohoo.html


咨詢
建站咨詢
