赞
踩
作为一个安全测试人员,在确保WEB应用程序没有漏洞外,应该也需要关注一下主机环境的安全,因为应用程序部署在主机环境提供运行环境,也应当关注一下主机环境的安全。于此,通过学习本次对linux安全加固进行一次整理分享,不足之处望指正。
如何查询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
执行结果啥也没有
- public
- target: default
- icmp-block-inversion: no
- interfaces:
- sources:
- services: dhcpv6-client ssh
- ports:
- protocols:
- masquerade: no
- forward-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
目录
系统出现卡顿或者系统入侵遭受挖矿的时候,就要查看磁盘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 Mem
-
- PID 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 YDService
- 8093 root 20 0 689204 16416 3312 S 0.3 0.4 14:40.64 barad_agent
- 1 root 20 0 142004 4132 2624 S 0.0 0.1 0:12.17 systemd
- 2 root 20 0 0 0 0 S 0.0 0.0 0:00.05 kthreadd
- 4 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
- 6 root 20 0 0 0 0 S 0.0 0.0 0:00.72 ksoftirqd/0
- 7 root rt 0 0 0 0 S 0.0 0.0 0:00.59 migration/0
- 8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh
- 9 root 20 0 0 0 0 S 0.0 0.0 0:12.78 rcu_sched
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreBlack.png)
或者使用装杯命令 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:进程启动命令名称
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。