在Linux中网络性能审计,安全以及排错
什么服務正在運行以及為什么?
?
系統管理員需要了解每個系統的第一件事是什么服務正在運行以及為什么。有了那些信息,禁用所有不是嚴格必需的那些服務并且避免在相同物理機上托管太多服務器是明智的決定。
例如,如果你的網絡不需要FTP服務器,你需要禁用你的FTP服務器(順便說一下,有通過網絡共享文件的更多安全方法)。此外,你應該避免在相同系統上按照web服務程序和數據庫服務程序。如果一個組件暴露了,其余也冒著暴露的風險。
用ss查看套接字連接
ss用于輸出套接字統計數據并且顯示類似netstat的信息,雖然她可以顯示比其它工具更多TCP和狀態信息。此外,它作為netstat的替代。
我們在這里只強調與網絡安全相關的信息。
示例:顯示在我們服務器上開放的所有TCP端口(套接字)
所有服務運行在它們的默認端口(即是:http在80上,mysql在3306上)由它們各自名稱表示。其它端口用它們的數值格式顯示。
[blctrl@rockygu ~]$ ss -t -a [blctrl@rockygu ~]$ ss -t -a State Recv-Q Send-Q Local Address:Port Peer Address:Port Process LISTEN 0 128 127.0.0.1:x11-ssh-offset 0.0.0.0:* LISTEN 0 128 0.0.0.0:sunrpc 0.0.0.0:* LISTEN 0 128 0.0.0.0:ssh 0.0.0.0:* TIME-WAIT 0 0 172.28.133.248:34536 100.100.36.108:https ESTAB 0 0 172.28.133.248:38194 100.100.30.26:http ESTAB 0 0 172.28.133.248:ssh 61.87.239.94:55179 ESTAB 0 48 172.28.133.248:ssh 61.87.239.94:55177 LISTEN 0 128 [::]:sunrpc [::]:* LISTEN 0 128 *:telnet *:*第一列顯示TCP狀態,而第二列和第三列顯示當前排隊等待接收和發送的數據量。第三和第四列顯示每個連接的源和目的套接字。
示例:用它們的計時器顯示所有活動的TCP連接。
[blctrl@rockygu ~]$ ss -t -o State Recv-Q Send-Q Local Address:Port Peer Address:Port Process ESTAB 0 0 172.28.133.248:38194 100.100.30.26:http ESTAB 0 0 172.28.133.248:ssh 61.87.239.94:55179 timer:(keepalive,64min,0) ESTAB 0 48 172.28.133.248:ssh 61.87.239.94:55177 timer:(on,268ms,0)在以上輸出中,你看到了2個建立的SSH連接。如果你注意到timer:的第二個字段的值,你將注意到在第一個連接中一個64min的值。那是在下次keepalive探測被發送前時間量。
由于它是一個被保持存活的連接你可以安全地認為那是一個不活躍連接,因而可以在找到其PID后殺死它。
而對于第二個連接,由on表明,你可以看到它是當前被使用地。
示例:通過套接字過濾連接
假如你想要通過套接字過濾TCP連接:從服務器視角,你需要檢查源端口是80的連接。
[root@rockygu blctrl]# ss -tn sport = :80 State Recv-Q Send-Q Local Address:Port Peer Address:Port Process ESTAB 0 0 [::ffff:172.28.133.248]:80 [::ffff:61.87.239.94]:58815防止用NMAP端口掃描
端口掃描時黑客識別網絡上活動主機和開放端口的常見技術。一旦發現弱點,為了獲取對系統的訪問利用這個弱點。
一個聰明的系統管理員需要檢查其系統如何被外人看到,并且通過經常審計它們確定沒有留下機會。那被稱為"防御的端口掃描"。
示例:顯示開放端口的信息
你可以使用以下命令在你系統或者在遠程主機中掃描哪些端口是開放的:
# nmap -A -sS [IP address or hostname]以上命令將為OS和版本探測,端口信息和路由追蹤(-A)掃描主機。最終,-sS發送一個TCP SYN掃描,防止nmap完成3次TCP握手并且因而一般在目標機上不留日志。
在繼續下一個示例前,請記住端口掃描不是一項非法活動。非法的事情是為惡意目的使用這些結果。
例如,對一臺遠程主機運行以上命令的輸出結果如下:
[root@localhost blctrl]# nmap -A -sS 192.168.3.3Starting Nmap 6.40 ( http://nmap.org ) at 2022-07-27 23:24 EDT Nmap scan report for 192.168.3.3 Host is up (0.00034s latency). Not shown: 991 closed ports PORT STATE SERVICE VERSION 21/tcp open ftp vsftpd 3.0.2 | ftp-anon: Anonymous FTP login allowed (FTP code 230) |_drwxr-xr-x 2 0 0 6 Jun 09 2021 pub 22/tcp open ssh OpenSSH 7.4 (protocol 2.0) | ssh-hostkey: 2048 89:78:57:c5:88:1f:f0:7a:af:0a:88:84:bb:8b:c0:49 (RSA) |_256 49:c2:49:ad:e9:05:a8:28:f0:3b:75:de:30:dc:c6:b0 (ECDSA) 80/tcp open http Apache httpd 2.4.6 ((CentOS)) | http-methods: Potentially risky methods: TRACE |_See http://nmap.org/nsedoc/scripts/http-methods.html |_http-title: Apache HTTP Server Test Page powered by CentOS 111/tcp open rpcbind 2-4 (RPC #100000) | rpcinfo: | program version port/proto service | 100000 2,3,4 111/tcp rpcbind |_ 100000 2,3,4 111/udp rpcbind 5901/tcp open vnc VNC (protocol 3.8) | vnc-info: |_ ERROR: Too many security failures 5902/tcp open vnc VNC (protocol 3.8) | vnc-info: |_ ERROR: Too many security failures 6001/tcp open X11 (access denied) 6002/tcp open X11 (access denied) 9999/tcp open abyss? MAC Address: 52:54:00:52:8B:A9 (QEMU Virtual NIC) No exact OS matches for host (If you know what OS is running on it, see http://nmap.org/submit/ ). TCP/IP fingerprint: OS:SCAN(V=6.40%E=4%D=7/27%OT=21%CT=1%CU=30894%PV=Y%DS=1%DC=D%G=Y%M=525400%T OS:M=62E2018A%P=x86_64-redhat-linux-gnu)SEQ(SP=107%GCD=1%ISR=107%TI=Z%TS=A) OS:SEQ(SP=107%GCD=1%ISR=107%TI=Z%CI=RD%TS=A)OPS(O1=M5B4ST11NW7%O2=M5B4ST11N OS:W7%O3=M5B4NNT11NW7%O4=M5B4ST11NW7%O5=M5B4ST11NW7%O6=M5B4ST11)WIN(W1=7120 OS:%W2=7120%W3=7120%W4=7120%W5=7120%W6=7120)ECN(R=Y%DF=Y%T=40%W=7210%O=M5B4 OS:NNSNW7%CC=Y%Q=)T1(R=Y%DF=Y%T=40%S=O%A=S+%F=AS%RD=0%Q=)T2(R=N)T3(R=N)T4(R OS:=Y%DF=Y%T=40%W=0%S=A%A=Z%F=R%O=%RD=0%Q=)T5(R=Y%DF=Y%T=40%W=0%S=Z%A=S+%F= OS:AR%O=%RD=0%Q=)T6(R=Y%DF=Y%T=40%W=0%S=A%A=Z%F=R%O=%RD=0%Q=)T7(R=Y%DF=Y%T= OS:40%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)U1(R=Y%DF=N%T=40%IPL=164%UN=0%RIPL=G%RID OS:=G%RIPCK=G%RUCK=G%RUD=G)IE(R=Y%DFI=N%T=40%CD=S)Network Distance: 1 hop Service Info: OS: UnixTRACEROUTE HOP RTT ADDRESS 1 0.34 ms 192.168.3.3OS and Service detection performed. Please report any incorrect results at http://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 26.24 seconds這個端口掃描操作提供了可以由其它命令也能獲取的所有信息:
示例:顯示在本地或遠程系統中有關特定端口的信息。
# nmap -p [port] [hostname or address] [root@localhost blctrl]# nmap -p 80 192.168.3.3Starting Nmap 6.40 ( http://nmap.org ) at 2022-07-27 23:32 EDT Nmap scan report for 192.168.3.3 Host is up (0.00039s latency). PORT STATE SERVICE 80/tcp open http MAC Address: 52:54:00:52:8B:A9 (QEMU Virtual NIC)Nmap done: 1 IP address (1 host up) scanned in 0.47 seconds示例:顯示路由跟蹤,并且找出服務版本,OS類型,主機名:?
?
[root@localhost blctrl]# nmap -A 192.168.3.2Starting Nmap 6.40 ( http://nmap.org ) at 2022-07-27 23:34 EDT Nmap scan report for 192.168.3.2 Host is up (0.000026s latency). Not shown: 998 closed ports PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 7.4 (protocol 2.0) | ssh-hostkey: 2048 57:3c:be:c8:e5:7c:5a:25:e9:89:63:4b:ec:0b:9a:59 (RSA) |_256 7d:e7:0a:7b:c0:75:1c:42:0f:fd:01:6f:d7:a5:62:d5 (ECDSA) 80/tcp open http Apache httpd 2.4.6 ((CentOS)) | http-methods: Potentially risky methods: TRACE |_See http://nmap.org/nsedoc/scripts/http-methods.html |_http-title: Apache HTTP Server Test Page powered by CentOS Device type: general purpose Running: Linux 3.X OS CPE: cpe:/o:linux:linux_kernel:3 OS details: Linux 3.7 - 3.9 Network Distance: 0 hopsOS and Service detection performed. Please report any incorrect results at http://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 10.65 seconds示例:同時掃描若干端口或者主機
你也可以掃描若干那端口(返回)或者子網,如下:
注意:以上命令掃描在網絡段內所有主機的端口21,22,80?
[root@localhost blctrl]# nmap -p 21,22,80 192.168.3.0/24Starting Nmap 6.40 ( http://nmap.org ) at 2022-07-27 23:36 EDT Nmap scan report for 192.168.3.3 Host is up (0.00040s latency). PORT STATE SERVICE 21/tcp open ftp 22/tcp open ssh 80/tcp open http MAC Address: 52:54:00:52:8B:A9 (QEMU Virtual NIC)Nmap scan report for 192.168.3.50 Host is up (0.0034s latency). PORT STATE SERVICE 21/tcp filtered ftp 22/tcp filtered ssh 80/tcp filtered http MAC Address: 00:0E:C6:82:57:72 (Asix Electronics)Nmap scan report for 192.168.3.254 Host is up (-0.067s latency). PORT STATE SERVICE 21/tcp filtered ftp 22/tcp open ssh 80/tcp filtered http MAC Address: FC:4D:D4:37:A2:11 (Universal Global Scientific Industrial Co.)Nmap scan report for 192.168.3.2 Host is up (0.000083s latency). PORT STATE SERVICE 21/tcp closed ftp 22/tcp open ssh 80/tcp open httpNmap done: 256 IP addresses (4 hosts up) scanned in 3.37 seconds報告在你網絡上使用和性能
雖然有若干可用工具來分析和排錯網絡性能,其中兩個工具非常容易學習并且用戶友好。
要在CentOS上安裝它們,我們需要首先啟用EPEL倉庫。
1、nmon工具
nmon是一個系統調節器和基準工具。它能夠顯示CPU,內存,網絡,磁盤,文件系統,NFS,top進程和資源(Linux版本和處理器)。當然,我們主要對網絡性能特性感興趣。
要按照nmon,在你選擇的發行版上運行以下命令:
?
運行nmon,在命令行終端中輸入:nmon
[root@localhost blctrl]# nmon養成習慣實時地查看網絡流量確保你地系統能夠支持正常負載并且監視非必要地流量或者可疑活動。
2、vnstat工具
vnstat是一個基于console地網絡流量監視器,它為所選的接口保存每小時網絡流量日志。
# CentOS [root@localhost blctrl]# yum install vnstat# Ubuntu blctrl@blctrl-KVM:~$ sudo apt install vnstat在按照這個軟件包后,你需要啟用進行監視的守護程序:
[root@localhost blctrl]# systemctl start vnstat [root@localhost blctrl]# systemctl status vnstat ● vnstat.service - vnStat network traffic monitorLoaded: loaded (/usr/lib/systemd/system/vnstat.service; disabled; vendor preset: disabled)Active: active (running) since Tue 2022-07-26 08:50:16 CST; 5s agoDocs: man:vnstatd(1)man:vnstat(1)man:vnstat.conf(5)Main PID: 20438 (vnstatd)Tasks: 1CGroup: /system.slice/vnstat.service└─20438 /usr/sbin/vnstatd -n一旦你按照并且使能了vnstat,你可以初始化數據庫記錄eth0(或其它NIC)的流量:
[root@localhost blctrl]# vnstat -u -i eth0由于我才在機器中安裝vnstat,還未收集足夠數據來顯示使用的統計數據:
[root@localhost blctrl]# vnstatrx / tx / total / estimatedeth0:Jul '22 47 KiB / 4 KiB / 51 KiB / 0 KiBtoday 47 KiB / 4 KiB / 51 KiB / --virbr0-nic: Not enough data available yet.virbr0: Not enough data available yet.vnstatd守護進程在后臺繼續運行并且收集流量數據。直到它采集了足夠數據產生輸出,請參考vnstat項目來看流量分析看起來像什么。
3、在網上安全地傳輸文件
如果你需要在通過網絡傳輸或接收文件時確保安全,并且尤其如果你需要通過Internet執行這個操作時,你將想要求助用于文件傳輸地2個安全方法(不要通過普通地FTP做這件事)。
示例:用scp傳輸文件(安全復制)
如果遠程主機上地SSH正在監聽除默認22外的端口,使用-P標記。-p選項將在傳輸后保留local_file的權限,這個權限由在遠程主機上遠程用戶的身份確定。你將需要確保/abolute/path/to/remote/directory是這個用戶可寫的。
# scp -P XXXX -p local_file remote_user@remote_host:/absolute/path/to/remote/directory示例:用scp接收文件(安全復制)
你頁可以用scp從遠程主機下載文件:
# scp remote_user@remote_host:myFile.txt /absolute/path/to/local/directory甚至在兩臺遠程主機之間傳輸文件(在這里,從remote_host1復制文件myFile.txt到remote_host2):
# scp remote_user1@remote_host1:/absolute/path/to/remote/directory1/myFile.txt remote_user1@remote_host2:/absolute/path/to/remote/directory2/如果SSH監聽除了默認22外的端口,不要忘記使用-P選項。
示例:用sftp發送和接收文件
不同于SCP,SFTP不需要提前知道你想要下載或發送文件的位置。
這是使用SFTP連接遠程主機的基本語法:
# sftp -oPort=XXXX username@host此處XXXX表示在主機上SSH監聽的端口,這臺主機可以是主機名或她的對應IP地址。如果SSH在其默認端口(22)上監聽,你可以忽略-oPort標記。
一旦麗娜姐成功了,你可以發出以下命令來發送或接收文件:
get -Pr [remote file or directory] # Receive files put -r [local file or directory] # Send files在兩種情況中,-r選項用于遞歸接收或發送文件。在第一種情況中,-P選項也將保留原先文件權限。
在Linux中查找連接網絡的所有活動的IP地址
nmap是一個用于探索網絡,執行安全掃描,網絡審計以及查找遠程主機上開放端口的強大靈活的開源命令行工具。
nmap的使用語法:
$ nmap [scan type...] options {target specification}此處參數{target specification}可以被hostnames, IP地址,networks等替代。因而要列出連接了指定網絡所有主機的IP地址,首先使用ifconfig命令或ip命令識別網絡以及子網掩碼:
$ ifconfig OR $ ip addr show [root@localhost blctrl]# ip addr show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope hostvalid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 52:54:00:ec:ec:28 brd ff:ff:ff:ff:ff:ffinet 192.168.3.2/24 brd 192.168.3.255 scope global noprefixroute eth0valid_lft forever preferred_lft foreverinet6 fe80::e5b6:b14:38ae:6d52/64 scope link noprefixroutevalid_lft forever preferred_lft forever接著運行以下nmap命令:
[root@localhost blctrl]# nmap -sn 192.168.3.0/24Starting Nmap 6.40 ( http://nmap.org ) at 2022-07-27 23:48 EDT Nmap scan report for 192.168.3.3 Host is up (0.00056s latency). MAC Address: 52:54:00:52:8B:A9 (QEMU Virtual NIC) Nmap scan report for 192.168.3.50 Host is up (0.0034s latency). MAC Address: 00:0E:C6:82:57:72 (Asix Electronics) Nmap scan report for 192.168.3.254 Host is up (-0.100s latency). MAC Address: FC:4D:D4:37:A2:11 (Universal Global Scientific Industrial Co.) Nmap scan report for 192.168.3.2 Host is up. Nmap done: 256 IP addresses (4 hosts up) scanned in 1.93 seconds在以上命令中:
- -sn:是掃描類型,它表示一個ping掃描。默認,nmap執行端口掃描,但這個掃描將禁用端口掃描。
- -192.168.3.0/24:是目標網絡,用你的實際網絡替代它。
總結
以上是生活随笔為你收集整理的在Linux中网络性能审计,安全以及排错的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MySQL的yum源
- 下一篇: linux 多wan口 路由器,真假多W