什么服务正在运行以及为什么?

系统管理员需要了解每个系统的第一件事是什么服务正在运行以及为什么。有了那些信息,禁用所有不是严格必需的那些服务并且避免在相同物理机上托管太多服务器是明智的决定。

例如,如果你的网络不需要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,在你选择的发行版上运行以下命令:

#CentOS
[root@localhost blctrl]# yum install nmon# Ubuntu
blctrl@blctrl-KVM:~$ sudo apt install 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中网络性能审计,安全以及排错相关推荐

  1. Linux内核网络性能优化

    Linux内核网络性能优化 1. 前言 2. Linux网络协议栈 3. DPDK 4. XDP 4.1 XDP主要的特性 4.2 XDP与DPDK的对比 4.3 应用场景 5. CPU负载均衡 5. ...

  2. 通过/proc/sys/net/ipv4/优化Linux下网络性能

    通过/proc/sys/net/ipv4/优化Linux下网络性能 /proc/sys/net/ipv4/优化 1)      /proc/sys/net/ipv4/ip_forward 该文件表示是 ...

  3. Linux中网络连接不上解决方案大全

    Linux中网络连接不上解决方案大全 能解决的话点个赞呗,人家有动力的啦 感谢大家的支持,浏览量上两千了,虽然没人点赞,很开心,得到大家的支持,和认可 在安装虚拟时遇到本地网络连接不上或者用xshel ...

  4. x86服务器中网络性能分析与调优(高并发、大流量网卡调优)

    最近在百度云做一些RTC大客户的项目,晚上边缘计算的一台宿主机由于CPU单核耗被打满,最后查到原因是网卡调优没有生效,今天查了一下网卡调优的资料,欢迎大家共同探讨. 一.网卡调优方法 1.Broadc ...

  5. linux bcc_使用bcc / BPF在Linux中分析性能的7种工具

    linux bcc Linux中出现了一项新技术,可以为系统管理员和开发人员提供大量新工具和仪表板,以进行性能分析和故障排除. 它被称为增强型Berkeley数据包过滤器(eBPF,或简称BPF),尽 ...

  6. Linux系统网络性能实例分析

    由于TCP/IP是使用最普遍的Internet协议,下面只集中讨论TCP/IP 栈和以太网(Ethernet).术语 LinuxTCP/IP栈和 Linux网络栈可互换使用,因为 TCP/IP栈是 L ...

  7. linux ping 端口_教你排除linux中网络故障问题

    php中文网课程 每日17点准时技术干货分享 本文为php中文网认证作者:"齐天大圣"投稿. 如果公司网站打不开了,假如是因为网络问题,你该如何去进行排查.又比如,远程连接工具连不 ...

  8. linux中网络编程1

    1 网络编程API (1)网络层的ip地址可以唯一标识网络中的主机,传输层通过协议+端口唯一标识主机中的应用程序.这样以来使用三元组(地址,协议,端口)标识网络的进程. (2)socket---> ...

  9. Linux中 MySql设置审计及报错解决 can‘t initialize function ‘audit‘; Plugin initialization function failed

    环境: 服务器:CentOS Linux release 7.4.1708 64位 MySql: 社区版5.7.35  由于使用的是社区版MySql,没有内置审计,使用的McAfee的插件 1.下载插 ...

最新文章

  1. linux dns 添加mx,linux dns配置
  2. Web开发兼容性系列文章(一):不同设备浏览器的userAgent值大全
  3. visio 形状_分享我Visio经验(问题从来都不是问题)
  4. mysql navicat如何为表添加外键?
  5. C# 生成缩略图 方法
  6. 对状态代码使用JAX-RS异常
  7. Linux进程全解4——fork创建子进程
  8. fdisk 分区_【linux】循序渐进学运维-基础篇-分区命令fdisk
  9. sass穿透 scoped 的情况下 去修改ui组件的样式
  10. 图论(二):图的割点(cut vertex)与连通度(connectivity)
  11. 为什么我推荐ImageJ?
  12. asp中把数据导出为excel的2种方法
  13. 手把手学习Vue3.0:开发工具WebStorm和Vue模板文件介绍
  14. PostgreSQL下载安装
  15. 计算机网络速度测试指令,怎么ping网速 ping命令简单测试网速方法【详解】
  16. 开水果店的水果怎么保鲜,新手开水果店水果保鲜方法
  17. 点击按钮变色,松开按钮恢复原来的颜色
  18. ICC 图文学习——LAB1:Data Setup 数据设置
  19. 西门子数控系统的机床数据采集
  20. win7 计算机无法搜索,Win7笔记本电脑无法搜索无线网络_计算机的基本知识_IT /计算机_信息...

热门文章

  1. 企业微信消息推送卡片按钮互动的使用
  2. [BJDCTF 2nd] Web复现 wp
  3. “两岸四地消费者信心指数”:消费者信心波动
  4. 不懂编程也可以开发网站
  5. java饲养员喂动物_你真的想当一名动物饲养员?
  6. 电脑连接多台Andro设备使用adb命令进行无线调试
  7. 芬兰赫尔辛基:欢迎神秘的东方科技力量 阿里云:一起为创业者开挂
  8. 计算机上的字体太小怎么办,Win7电脑网页字体变小了怎么办?
  9. html字体怎么变大,网页字体怎么变大(html怎么改字体类型)
  10. 什么是大数据,大数据的处理流程介绍