系统安全及应用

121 阅读5分钟

账号安全控制

系统账号清理

将非登陆用户的shell设为/sbin/nologin
#设置为不可登陆

示例:


Usermod -L /sbin/nologin 用户名
锁定长期不使用的账号
Usermod -L 用户名 
passwd -l 用户名
Passwd -S 用户名
删除无用的账号
Userdel -r 用户名 #删除用户
锁定账号文件passwd、shadow
Chattr +i /etc/passwd /etc/shadow #锁定
Chattr -i /etc/passwd /etc/shadow #解锁
Lsattr /etc/paddwd /etc/shadow #查看文件锁定状态,
全是横杆就是没锁,有i就是锁了

image.png

密码安全控制

设置密码有效期
要求用户下次登陆时更改密码

Vim /etc/shadow #查看密码有效期
PASS MAX DAYS #这个设置新用户的默认密码有效时间
99999 #为永久有效
Chage -M 30 用户名 #将用户密码改为30天
Chage -d 0 用户名 #强制在下次登陆时更改密码

image.png image.png image.png image.png

命令历史限制

历史命令最多记录1000条
命令:

Vim /etc/profile #进入命令上线修改到最高多少条
History -C #临时清空当前的命令历史记录
History #查看命令历史记录
Vim ~/.bashrc_history #进入缓存命令历史记录
Echo ‘’ > ~/.bash_hsistory #自动清空
Exporl HISTSIZE=  #设置历史数量上线
Exporl TMOUT=     #设置登陆后无操作超时退出时间
Source /etc/profie

image.png

image.png

su

Su 用户名 #更改用户
Su - 用户名 #切换到你指定的用户的家目录
Whoami #查看当前用户名
Echo SUSER #查看当前用户名
限制普通用户使用su切换用户
Whcih su #查看su的路径
Vi /etc/pam.d/su #进入pm认证,第六行的注释#去掉,限制他人随意使用su
//6  auth   required  pam_wheel.so  use_uid #第六行
Gpasswd -a 用户名 wheel
Usermod -a 用户名 wheel #将用户加入wheel组,限制后不加入wheel组,不可随意使用su

image.png

image.png

image.png

image.png

image.png

image.png

Sudo 授权

Visudo  vim /etc/sudoers (要强制保存)

用户名 主机=(用户)   命令列表(多条时使用逗号间隔,支持使用*!等通配符,命令前面加NOPASSWD: 可以不需要密码认证) udo 的作用:默认是以root身份去执行授权的命令

第一次执行需要认证密码,默认超时时长为5分钟,在此期间不在重复验证密码

Sudo 命令   #Sudo -l #可以查询sudo可以使用哪些权限

Lisi ALL=/usr/sbin* , !/usr/sbin/reboot, !/usr/sbin/poweroff , !/usr/sbin/shutdown, !/usr/sbin/init #将lisi用户赋予除了重启,关机的所有权限

grub限制

通常情况下在系统开机进入grub菜单时,按e键可以查看并修改GRUB引导参数,这对服务器是一个极大的威胁。但是可以为grub菜单设置一个密码,只有提供正确的密码才被允许修改引导参数

Grub2 -mkpasswd-pbkdf2 #根据提示设置grud菜单密码生成密码
Cp /etc/grub.d/00_header /etc/grub.d/00_header.bak #备份文件
Vim /etc/grub.d/00_header #修改文件
cat <<EOF #粘贴密码EOF使用
set superusers="root" #设置用户名为root password_pbkdf2 root grub.pbkdf2(生成的密钥) #设置密码,密码只需要粘贴生成的密钥 Cd grub2/\ Cp grub.cfg{,.bak}
Grub2-mkconfig -o /boot/grub2/grub.cfg #重新生成grub文件
重启系统进入grub菜单时,按e键将需要输入账号密码才能修改引导参数

image.png

image.png

image.png

image.png image.png

网络扫描

nmap是一个强大的端口扫描类安全测评工具,支持ping扫描、多端口检测等多种技术

rpm -qa | grep nmap #安装nmap软件包 yum install -y nmap

nmap命令常用的选项和扫描类型
-p:指定扫描的端口。
-n:禁用反向DNS 解析(以加快扫描速度)。
-sS:TCP的SYN扫描(半开扫描),只向目标发出s猾a数据包,如果收到SYN/ACK响应包就认为目标端口正在监听,并立即断开连接、否则认为目标端口并未开放。
-sT。TCP连接扫描,这是完整的ncP扫描方式(默认扫描类型),用来建立一个TCP连接,如果成功则认为目标端口正在监听服务,否则认为目标端口并未开放。
-sF:TCP的FIN扫描,开放的端口会忽略这种数据包,关闭的端口会回应RST数据包。许多防火墙只对sinr数据包进行简单过滤,而忽略了其他形式的 tcp攻击包。这种类型的扫描可间接检测防火墙的健壮性。
-sU: UDP扫描,探测目标主机提供哪些UDP服务,UDP扫描的速度会比较慢。
-sP: ICMP扫描,类似于 ping检测,快速判断目标主机是否存活,不做其他扫描。
-PO:跳过ping检测,这种方式认为所有的目标主机是存活的,当对方不响应IoNAP请求时,使用这种方式可以避免因无法 ping通而放弃扫描。

netstat -natp
#查看正在运行的使用TCP协议的网络状态信息
netstat -naup
#查看正在运行的使用UDP协议的网络状态信息

示例: #分别查看本机开发的TCP端口、UDP端口 nmap -sT 127.0.0.1 nmap -sU 127.0.0.1

natstat命令常用选项:
-a:显示主机中所有活动的网络连接信息(包括监听、非监听状态的服务端口)。-n:以数字的形式显示相关的主机地址、端口等信息。
-t:查看TCP相关的信息。
-u:显示UDP协议相关的信息。
-p:显示与网络连接相关联的进程号、进程名称信息(该选项需要root权限)。
-r:显示路由表信息。
-l:显示处于监听状态的网络连接及端口信息。