一个专业运
维技术分享!

Centos7 系统漏洞安全

前言

作为一种开放源代码的操作系统,Linux服务器以其安全,高效和稳定的显著优势得以广泛应用
可以从账号安全控制,系统引导和登录控制的角度控制Linux系统的安全优化
还可以使用基于Linux系统环境的弱口令检测,网络扫描等安全工具,查找隐患,及时采取有针对性的防护措施

一:账号安全控制

1.1:账号安全基本措施

1.1.1:系统账号清理

将非登录用户的Shell设为/sbin/nologiin

在Linux系统中,除了用户手动创建的各种账号之外,还包括随系统或程序安装过程而产生的其他大量账号

除了root之外,其他大量账号只是用来维护系统运作,启动或保持服务进程,一般是不允许登录的,也称为非登录用户

常见的非登录用户包括bin,daemon,adm,lp,mail,nobody,apache,mysql,dbus,ftp,gdm,haldaemon等。

为了确保系统安全,这些用户的登录shell通常是/sbin/nologin,表示禁止终端登录,应确保不被人为改动
在这里插入图片描述

在这里插入图片描述

对于长期不用的用户账号,若无法确定是否删除,可以暂时将其锁定,(passwd,usermod命令都可以用来锁定和解锁账号)

在这里插入图片描述

在非登录用户中,还有一部分是很少用到的,如news,uucp,games,gopher等,这些用户可视为冗余账号,可以直接删除

此外,还有一些随着应用程序安装的用户账号,若程序卸载以后未能自动删除,需要人为手动删除

锁定账号文件passwd,shadow

如果服务器中的用户账号已经固定,不在进行更改,还可以采取锁定账号配置文件的方法

使用chattr命令,分别结合“+i”“-i”选项来锁定,解锁文件,使用lsattr命令可以查看文件锁定情况

chattr命令基本格式
chattr +i [目标文件] ‘锁定目标文件’
chattr -i [目标文件] ‘解锁目标文件’
lsattr [目标文件] ‘查看目标文件’

在账号文件被锁定的情况下,其内容将不允许变更,因此无法添加,删除账号,也不能更改用户的密码,登录shell,宿主目录等属性信息
在这里插入图片描述
在这里插入图片描述

1.1.2:密码安全控制

设置密码有效期

在不安全的网络环境中,为了降低密码被猜出或者被暴力破解的风险,用户应养成定期修改密码的习惯,避免长期使用同一个密码。

管理员可以在服务器端限制用户密码的最大有效天数

对于密码已经过期的用户,登录时将被要求重新设置密码,否则拒绝登录

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在某些情况下会要求用户初次登录的时候必须更改密码

例如,强制要求用户test2下次登录时重设密码 ‘(重设的密码有密码复杂性要求,例如不可是连续的数字,连续的字母等)’

在这里插入图片描述
在这里插入图片描述

1.1.3:命令历史,自动注销

命令历史限制

减少记录的命令条数:bash终端环境中,历史命令的记录条数由变量HISTSIZE控制,默认为1000条。通过修改/etc/profile文件中的HISTSIZE变量值,可以影响系统中 的所有用户

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注销时自动清空命令历史:修改用户宿主目录中的~/.bash_logout文件,添加清空历史命令的操作语句。即:当用户注销(退出已登录的bash环境)时,所记录的历史命令将自动清空
在这里插入图片描述
在这里插入图片描述

或者
使用vi /etc/profile,将其中的history值改为0
但是将history值改为0后,↑无法显示刚刚输入的命令。

终端自动注销

bash终端环境中,可以设置一个闲置超时时间,当超过指定时间没有任何输入时即自动注销终端,这样可以有效避免当管理员不在时其他人员对服务器的误操作风险。闲置时间有变量TMOUT来控制,默认单位为秒
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.2:用户切换与提权

大多数Linux服务器并不建议用户直接以root用户进行登录。

一方面可以大大减少因误操作而导致的破坏

另一方面也降低了特权密码在不安全的网络中被泄露的风险

su ,sudo 两种命令

su命令主要用来切换用户

sudo命令用来提升执行权限

1.2.1:su 命令 -切换用户

使用su命令,可以切换为指定的另一个用户,从而具有该用户的所有权限

切换时需要对目标用户的密码进行验证(从root用户切换为其他用户不需要)

su命令基本格式(Substitute User,切换用户)
su - 目标用户
在这里插入图片描述
上述操作中,“-”等同于“–login”“-l”,表示切换后进入目标用户的登录shell环境。若缺少此选项则仅切换身份,不切换用户环境
在这里插入图片描述

1.2.2限制使用su命令的用户

1.将允许使用su命令的用户加入wheel组
在这里插入图片描述
在这里插入图片描述
2.启用pam_wheel认证模块在这里插入图片描述
在这里插入图片描述
启用pam_wheel认证以后,未加入到wheel组内的其他用户将无法使用su命令
尝试进行切换时将会按照“拒绝权限”来处理,从而将切换用户的权限控制在最小范围内
/pam.d 服务模块目录
使用su命令切换用户的操作将会记录到安全日志/var/log/secure文件中,可以根据需要进行查看在这里插入图片描述
在这里插入图片描述

1.3:Linux中的PAM安全认证

1.3.1:su命令的安全隐患

默认情况下,任何用户都允许使用su命令,从而有机会反复尝试其他用户的登录密码,带来风险

借助pam_wheel认证模块,可以实现指定允许的用户使用su命令

1.3.2:PAM认证原理

PAM(Pluggable Authentication Modules)可插拔式认证模块,它是一种高效而且灵活便利的用户级别的认证方式,它也是当前Linux服务器普遍使用的认证方式
在这里插入图片描述

1.3.3:PAM认证的构成

在这里插入图片描述
在这里插入图片描述
查看su的PAM配置文件:cat /etc/pam.d/su

每一行都是一个独立的认证过程

每一行可以区分为三个字段(认证类型,控制类型,PAM模块及其参数)

1.3.4:PAM安全认证流程

在这里插入图片描述
在这里插入图片描述

控制类型也可以称作Control Flags,用于PAM验证类型的返回结果

1.required验证失败时仍然继续,但返回Fail

2.requisite验证失败则立即结束整个验证过程,返回Fail

3.sufficient验证成功则立即返回,不在继续,否则忽略结果并继续

4.optional不用于验证,只显示信息(通常用于session(会话)类型)

1.4:使用sudo机制提升权限

1.4.1:su命令的缺点

用过su命令可以非常方便的切换为另一个用户,但前提条件是必须知道目标用户的登录密码
对于生产环境中的Linux服务器,每多一个人知道特权密码,其安全风险也就增加一分

1.4.2:sudo命令的用途及用法

用途:以其他用户身份(如root)执行授权的命令

用法:

sudo 授权命令

1.4.3:配置sudo授权

visudo 或者 vi /etc/sudoers :sudo机制的配置文件为/etc/sudoers,文件的默认权限是440,需要使用专门的visudo工具进行编辑。若使用vi编辑,保存时必须执行“:w!”命令强制操作,否则系统将提示为只读文件而拒绝保存

配置文件/etc/sudoers中,授权记录的基本配置格式
用户 主机名列表 = 命令程序列表
命令程序列表是绝对列表

例如:
在这里插入图片描述在这里插入图片描述用户在本地主机拥有以下权限 (/sbin下的所有权限,除了/sbin/ifconfig,除了/sbin/route权限)’
*:通配符号
!:取反符号
%:代表组在这里插入图片描述

1.4.4:sudo实验

我们现在用wangwu和lisi这两个用户来做修改ip地址的sudo实验

在这里插入图片描述
在这里插入图片描述

1.4.5:查看sudo操作记录

查看sudo操作记录

需启用Defaults logfile 配置

默认日志文件:/var/log/sudo

[root@localhost ~]# visudo ‘vi sudo配置文件’
在配置文件中添加
Defaults logfile = “/var/log/sudo” ‘将之添加至配置文件中’
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

二:系统引导和登录控制

2.1:开关机安全控制

2.1.1:调整BIOS引导设置

将第一引导设备设为当前系统所在硬盘
禁止从其他设备(光盘,U盘,网络)引导系统
将安全级别设为setup,并设置管理员密码

2.1.2:GRUB限制

使用grub2-mkpasswd-pbkdf2生成秘钥
修改/etc/grub.d/00_header文件中,添加密码记录
生成新的grub.cfg配置文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.1.3:禁用ctrl+alt+del 键盘

在这里插入图片描述

2.2:终端登录安全控制

2.2.1:限制root只在安全终端登录

安全终端配置:/etc/securetty

在这里插入图片描述
在这里插入图片描述

2.2.2:禁止普通用户登录

建立/etc/nologin文件

在这里插入图片描述
在这里插入图片描述
‘一般做维护的时候使用(只有root用户可以登录,其他用户不可登录)’
在这里插入图片描述

三:弱口令检测

3.1:Joth the Ripper,简称为 JR

一款密码分析工具,支持字典式的暴力破解
通过对shadow文件的口令分析,可以检测密码强度
资源有需要可以私我

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四:端口扫描

4.1:NMAP

一款强大的网络扫描,安全检测工具

可以探测局域网中那些主机在线,或者某台主机中开了那些端口

NMAP的扫描语法

nmap [扫描类型] [选项] <扫描目标…>

常用的扫描类型

-sS,-sT,-sF,-sU,-sP,-P0

-sT:TCP端口

-sU:UDP端口

-sP:ping

4.2:nmap实验

在这里插入图片描述
在这里插入图片描述

4.3 常见用法

1、查看1-200之间的端口是否开放

nmap -p 1-200 192.168.255.130

2、指定端口

nmap -p 22 192.168.255.130

作用
检测网络上的主机
检测主机上开放的端口
检测操作系统,硬件地址,以及软件版本
检测脆弱性的漏洞(Nmap的脚本)

3. 扫描方式

  1. -sS Tcp SYN Scan 不需要三次握手,速度快

优点:半开放扫描,Nmap发送SYN包到远程主机,但是它不会产生任何会话,目标主机几乎不会把连接记入系统日志。(防止对方判断为扫描攻击),扫描速度快,效率高,在工作中使用频率最高

缺点:它需要root/administrator权限执行

  1. -sT Tcp connect() scan ,默认扫描模式,三次握手,需要调用系统的connect().

    优点:你勿需root权限。普通用户也可以使用。

    缺点:这种扫描很容易被检测到,在目标主机的日志中会记录大批的连接请求以及错误信息,由于它要完成3次握手,效率低,速度慢,建议使用-sS

  2. -sU

Udp scan(sU) 顾名思义,这种扫描技术用来寻找目标主机打开的UDP端口.它不需要发送任何的SYN包,因为这种技术是针对UDP端口的。UDP扫描发送UDP数据包到目标主机,并等待响应,

如果返回ICMP不可达的错误消息,说明端口是关闭的,如果得到正确的适当的回应,说明端口是开放的.udp端口扫描速度比较慢

  1. -sF:也是tcp的扫描一种,发送一个FIN标志的数据包

FIN scan(sF)

有时候TcpSYN扫描不是最佳的扫描模式,因为有防火墙的存在.目标主机有时候可能有IDS和IPS系统的存在,防火墙会阻止掉SYN数据包。发送一个设置了FIN标志的数据包并不需要完成TCP的握手.

和sS扫描效果差不多,比sT速度快

4. 选项

1、Nmap进行完整全面的扫描
nmap –T4 –A –v

-A   进攻性(Aggressive)方式扫描

-T4  指定扫描过程使用的时序(Timing),总有6个级别(0-5),级别越高,扫描速度越快,但也容易被防火墙或IDS检测并屏蔽掉,在网络通讯状况良好的情况推荐使用T4;
-v   表示显示冗余(verbosity)信息,在扫描过程中显示扫描的细节,从而让用户了解当前的扫描状态。

5.常见端口

21 ftp 文件传输协议(FTP)端口;有时被文件服务协议(FSP)使用
22 ssh 安全 Shell(SSH)服务
23 telnet Telnet 服务
25 smtp 简单邮件传输协议(SMTP)
42 nameserver 互联网名称服务
53 domain 域名服务(如 BIND)
80 http 用于万维网(WWW)服务的超文本传输协议(HTTP)
110 pop3 邮局协议版本3
123 ntp 网络时间协议(NTP)
143 imap 互联网消息存取协议(IMAP)
161 snmp 简单网络管理协议(SNMP)
389 ldap 轻型目录存取协议(LDAP)

443 https 安全超文本传输协议(HTTP)
873 rsync rsync 文件传输服务

3306 mysql MySQL 数据库服务

5044 logstash

5601 kibana

9200 elasticsearch



微信扫描下方的二维码阅读本文

赞(4) 打赏
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。小柳实验室 » Centos7 系统漏洞安全

相关推荐

  • 暂无文章

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏