> 文章列表 > 安全测试(linux基线排查)看这一篇就够了

安全测试(linux基线排查)看这一篇就够了

安全测试(linux基线排查)看这一篇就够了

前言部分:

       作为一个安全测试人员,在确保WEB应用程序没有漏洞外,应该也需要关注一下主机环境的安全,因为应用程序部署在主机环境提供运行环境,也应当关注一下主机环境的安全。于此,通过学习本次对linux安全加固进行一次整理分享,不足之处望指正。

 1、系统端口使用情况排查

       如何查询linux服务器开发的TCP和UDP端口使用情况,服务既端口,服务器对外提供服务以端口的形式对外提供访问例如部署一个tomcat服务 8080端口既是一个tomcat服务。如下图所示

 1那么如何排查linux服务到底部署了多少服务呢?有多少端口服务对外提供服务呢?使用如下命令

netstat -anlpt | awk '{print $4}' | awk -F: '{print $NF}' | sort | uniq | grep '[0-9].*'
netstat -anlpu | awk '{print $4}' | awk -F: '{print $NF}' | sort | uniq | grep '[0-9].*'

 执行结果如下

[root@VM-24-9-centos ~]# netstat -anlpu | awk '{print $4}' | awk -F: '{print $NF}' | sort | uniq | grep '[0-9].*'
123
68
[root@VM-24-9-centos ~]# ifconfi^C
[root@VM-24-9-centos ~]# netstat -anlpt | awk '{print $4}' | awk -F: '{print $NF}' | sort | uniq | grep '[0-9].*'
22
49394
49396
52068
8005
8080

       顺便提一下防火墙策略问题,为了保证系统安全,对外提供业务访问受访问策略限制,开启防火墙策略添加业务端口仅允许业务端口对外提供服务。否则无法通过外网访问。就那我这台白嫖的服务器举例说明

查看防火墙状态命令

firewall-cmd --state

执行结果显示没有开启


[root@VM-24-9-centos ~]# firewall-cmd --state
not running
[root@VM-24-9-centos ~]#

开启防火墙命令

service firewalld start

查看防火墙状态


[root@VM-24-9-centos ~]# firewall-cmd --state
running

那么我们此时部署的tomcat服务则停止对外服务

       此问题刚才已经说过了,访问失败是因为开启防火墙原因导致,现在就是把8080端口添加到防火墙策略中去

查看防火墙列表

firewall-cmd --list-all

执行结果啥也没有

publictarget: defaulticmp-block-inversion: nointerfaces:sources:services: dhcpv6-client sshports:protocols:masquerade: noforward-ports:source-ports:icmp-blocks:rich rules:

添加8080tcp端口到防火墙策略中

firewall-cmd --permanent --add-port=8080/tcp

执行结果


[root@VM-24-9-centos ~]# firewall-cmd --permanent --add-port=8080/tcp
success

一定要重启防火墙不然任然访问不了

firewall-cmd --reload

执行结果


[root@VM-24-9-centos ~]# firewall-cmd --permanent --add-port=8080/tcp
success
[root@VM-24-9-centos ~]# firewall-cmd --reload
success
[root@VM-24-9-centos ~]#

 提供一条命令查看全零监听端口

netstat -tunlp

执行结果


[root@VM-24-9-centos ~]# netstat -tunlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      11634/sshd
tcp6       0      0 :::22                   :::*                    LISTEN      11634/sshd
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      29692/java
tcp6       0      0 :::8080                 :::*                    LISTEN      29692/java
udp        0      0 0.0.0.0:68              0.0.0.0:*                           1009/dhclient
udp        0      0 10.0.24.9:123           0.0.0.0:*                           6347/ntpd
udp        0      0 127.0.0.1:123           0.0.0.0:*                           6347/ntpd
udp6       0      0 fe80::5054:ff:fea3::123 :::*                                6347/ntpd
udp6       0      0 ::1:123                 :::*                                6347/ntpd

 

目录

前言部分:

 1、系统端口使用情况排查

 2、linux 进程内存排行


2、linux 进程内存排行

       系统出现卡顿或者系统入侵遭受挖矿的时候,就要查看磁盘CPU使用率情况,如何查看磁盘cpu使用情况最简单的一种就是top命令 GiB/TiB 切实使用(shift+e)

root@VM-24-9-centos ~]# top
top - 13:09:06 up 2 days,  1:30,  1 user,  load average: 0.00, 0.01, 0.05
Tasks:  97 total,   1 running,  96 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.3 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
GiB Mem :      3.6 total,      1.1 free,      0.5 used,      2.1 buff/cache
GiB Swap:      0.0 total,      0.0 free,      0.0 used.      2.9 avail MemPID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
12136 root      20   0 1037284  49640  17336 S   0.7  1.3  13:04.16 YDService8093 root      20   0  689204  16416   3312 S   0.3  0.4  14:40.64 barad_agent1 root      20   0  142004   4132   2624 S   0.0  0.1   0:12.17 systemd2 root      20   0       0      0      0 S   0.0  0.0   0:00.05 kthreadd4 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0:0H6 root      20   0       0      0      0 S   0.0  0.0   0:00.72 ksoftirqd/07 root      rt   0       0      0      0 S   0.0  0.0   0:00.59 migration/08 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcu_bh9 root      20   0       0      0      0 S   0.0  0.0   0:12.78 rcu_sched

或者使用装杯命令 ps aus 命令展示全部信息,如何筛选cpu前⑩的进程呢

[root@VM-24-9-centos ~]# ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.1 142004  4132 ?        Ss   Apr11   0:12 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root         2  0.0  0.0      0     0 ?        S    Apr11   0:00 [kthreadd]
root         4  0.0  0.0      0     0 ?        S<   Apr11   0:00 [kworker/0:0H]
root         6  0.0  0.0      0     0 ?        S    Apr11   0:00 [ksoftirqd/0]
root         7  0.0  0.0      0     0 ?        S    Apr11   0:00 [migration/0]
root        

查看占用cpu最高的进程

ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head -10

查看占用内存最高的进程

ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head

补充说明

该命令组合实际上是下面两句命令:

ps aux|head -1
ps aux|grep -v PID|sort -rn -k +3|head

其中第一句主要是为了获取标题(USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND)。
接下来的grep -v PID是将ps aux命令得到的标题去掉,即grep不包含PID这三个字母组合的行,再将其中结果使用sort排序。
sort -rn -k +3该命令中的-rn的r表示是结果倒序排列,n为以数值大小排序,而-k +3则是针对第3列的内容进行排序,再使用head命令获取默认前10行数据。(其中的|表示管道操作)

PID:进程的ID
USER:进程所有者
PR:进程的优先级别,越小越优先被执行
NInice:值
VIRT:进程占用的虚拟内存
RES:进程占用的物理内存
SHR:进程使用的共享内存
S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数
%CPU:进程占用CPU的使用率
%MEM:进程使用的物理内存和总内存的百分比
TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。
COMMAND:进程启动命令名称