使用netstat檢視你的Linux伺服器網路連線
導讀 | Netstat 和類似的一些網路監測工具被歸入 net-tools 軟體包 裡,用來顯示關於活動連線的資訊。因為執行在開放的埠的服務往往容易被利用,定期進行網路監測能夠幫助你及早探測到可疑的活動。 |
在 之前的文章中,我分享了一些管理你的個人
伺服器的首要步驟。我簡要的提到了監測網路連線的監聽埠,我想透過 Linux 系統的 netstat
來擴充套件開講講。
服務監測和埠掃描是標準的行業慣例。有很好的軟體,如 Prometheus 協助這個過程自動化,SELinux 協助上下文和保護系統訪問許可權。然而,我相信瞭解你的伺服器是如何連線到其他網路和裝置的,是建立正常伺服器基準的關鍵,能夠幫助你識別有可能表明錯誤和入侵等異常情況。作為一個初學者,我已經掌握了 netstat 為我的伺服器提供了監測和網路故障排除的重要觀察手段。
Netstat 和類似的一些網路監測工具被歸入 net-tools 軟體包 裡,用來顯示關於活動連線的資訊。因為執行在開放的埠的服務往往容易被利用,定期進行網路監測能夠幫助你及早探測到可疑的活動。
netstat 經常預裝在 Linux 發行版上。如果 netstat 沒有在你的伺服器上安裝,用你的包管理器安裝它。下面是在基於 Debian 的系統上:
$ sudo apt-get install net-tools
在基於 Fedora 的系統上:
$ dnf install net-tools
就其本身而言,netstat 命令顯示了全部建立成功的連線。你可以使用 netstat 的引數指定進一步預期的輸出。舉個例子,要顯示所有監聽和非監聽的連線,使用 --all(-a 為簡寫)的引數。這將返回許多結果,所以在例子中我用管道符輸出給 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 引數,或者簡寫成 -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 引數,或者簡寫成 -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 命令引數常常是簡單易懂的。舉個例子,要顯示帶有全部程式 ID(PID)和數字地址的監聽 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 。
要顯示一個指定服務的資訊,使用 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 命令,你就可以採取措施來保護你的系統,確保只有你主動使用的服務在你的網路上被監聽。
識別通常被利用的埠和服務。一般來說,關閉你實際不使用的埠。
留意不常見的埠號,認識瞭解在你係統上使用的合法埠。
密切注意 SELinux 錯誤。有時你需要做的只是更新上下文,以匹配你對系統做的合法更改,但是要閱讀錯誤警告,以確保 SELinux 提醒你的不是可疑或者惡意的活動。
如果你發現一個埠正在執行一個可疑的服務,或者你只是簡單的想要關閉你不再使用的埠,你可以遵從以下這些步驟,透過防火牆規則手動拒絕埠訪問:
如果你在使用 firewall-cmd ,執行這些命令:
$ sudo firewall-cmd –remove-port=<port number>/tcp $ sudo firewall-cmd –runtime-to-permanent
如果你在使用 UFW,執行以下的命令:
$ sudo ufw deny
下一步,使用 systemctl 來停止這個服務:
$ systemctl stop
netstat 是一個快速收集你的伺服器網路連線資訊的有用工具。定期網路監測是瞭解你的系統的重要組成部分,對幫助你保持你的系統安全有著重要意義。將這一步納入你的日常管理中,你可以使用類似 netstat 或者 ss ,以及 Nmap 等開源埠掃描器或者 Wireshark 等嗅探器 ,它們都允許設定 計劃任務。
隨著伺服器儲存了大量的個人資料,確保個人伺服器的安全日益重要。透過了解你的伺服器怎樣連線到網際網路,你可以降低你的機器的風險,同時你仍可以在數字時代大量的連線中獲得益處。
原文來自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2889757/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 檢視網路連線數netstat -an
- 使用netstat檢測及監測網路連線
- Linux 檢視網路連線狀態Linux
- centOS伺服器 netstat命令 檢視TCP連線數資訊CentOS伺服器TCP
- linux 檢視伺服器的連線數Linux伺服器
- linux系統檢視網路連線情況Linux
- 檢視系統網路連線資訊
- Linux下用netstat檢視網路狀態、埠狀態Linux
- ss:檢視網路連線的另一種方法
- 檢視Linux連線數Linux
- Linux 系統如何通過 netstat 命令檢視連線數判斷攻擊Linux
- Linux 系統如何透過 netstat 命令檢視連線數判斷攻擊Linux
- 使用netstat命令檢視埠的使用情況
- 檢視使用者連線
- 檢查網路是否連線
- (轉)netstat和awk命令來統計網路連線數
- 網路連線狀態檢視工具:Internet Status for MacMac
- Internet Status Mac網路連線狀態檢視工具Mac
- 檢視使用 MySQL Shell 的連線狀態MySql
- linux 檢視網路埠Linux
- 檢視Linux下網路卡狀態或 是否連線(轉)Linux
- Mac網路連線狀態檢視工具:Internet Status for MacMac
- linux檢視埠號佔用命令-netstatLinux
- Linux檢視埠併發連線數Linux
- 使用iwctl連線無線網路
- Linux系統如何檢視伺服器頻寬及網路使用情況?Linux伺服器
- Linux下檢視Nginx的併發連線數和連線狀態LinuxNginx
- 檢視oracle資料庫的連線數以及使用者檢視Oracle資料庫
- LINUX 網路監控命令(netstat)Linux
- 網路--netstat -an
- Linux網路檢測相關工具用法(ping/netstat/ss/ethtool)Linux
- Linux檢視網路流量的指令碼Linux指令碼
- Linux網路連線的三種方式Linux
- linux系統併發連線數檢視Linux
- 檢視Oracle連線數Oracle
- 檢視sqlserver連線數SQLServer
- 檢視連線端IP
- linux檢視埠及與使用埠程式相關命令_netstat_lsofLinux