携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第4天,点击查看活动详情
账号安全
系统账号清理
usermod
-
将非登录用户的shell设为/sbin/nologin
usermod -s /sbin/nologin 用户名
- 锁定长时间不使用的账号 passwd -L 用户名
usermod -L 用户名
- 删除无用的账号 userdel -r 用户名
chattr
锁定账号文件passwd,shadow
- chattr + i /etc/shadow /etc/shadow锁定文件
- lsattr /etc/passwd /etc/shadow 查看状态
lsattr /etc/shadow /etc/passwd
密码安全控制
-
设置密码
-
要求用户下次登录时候修改密码
-
格式
- vi /etc/login.defs ### 适用于新用户 - chage -M 时间 用户 ### 适用于老用户
-选项
- m:密码可更改的最小天数。为0时代表任何时候都可以更改密码。
-M:密码保持有效的最大天数。
-W:用户密码到期前,提前收到警告信息的天数。
-E:帐号到期的日期。过了这天,此帐号将不可用。
-d:设置”最后一次修改密码的日期“。设置为 0 有特殊意思,表示用户应该在下次登录系统时更改密码。
-i:停滞时期。允许密码过期后多少天内仍能使用,如果一个密码已过期这些天,那么此帐号将不可用。
-l:例出当前的设置。
vi /etc/login.defs
chage -M 30 yyy
账号自动注销
命令历史限制
-
减少记录的命令条数
-
登录时自动清空命令历史
-
命令格式
- vim /etc/profile - source /etc/profile ##重启启动文件 - echo “” > ~/bash/
vim /etc/profile
编辑 ~/.bash_logout 文件,在注销时清空命令历史。
history -c ##清空当前登录环境的历史
搜索历史命令
- history
- ctrl+R
- 上下键
export HISTSIZE= #设置历史记录数量上限
export TMOUT= #设置登录后无操作退出登录操作时间
source /etc/profile 保存配置
./etc/profile
终端自动注销
- 闲置600s后自动注销
vi /etc/profile
su
-
用途及用法
- 用途:Substitute User 切换用户
- 格式 su - 目标用户
-
密码验证
- root -任意用户 不验证密码
- 普通用户 - 其他用户 验证目标用户密码
限制使用su命令的用户
- 把允许使用su切换的用户加入到wheel组中、
- 启用pam_wheel认证模块
vim /etc/pam.d/su
成功使用su命令切换用户
PAM 安全认证
sudo
提高授权
配置sudo visudo 或者 vi /etc/sudoers
格式
-
用户 主机名=命令程序列表(多条使用,号间隔 , 支持使用* !等通配符,命令前面加NOPASSWD:可以不需要密码)
-
用户 主机名-(用户) 命令程序列表(指定sbin能执行的命令)
visudo
-
User_Alias USERS=lisi,wangwu,zhaoliu
-
Cmnd_AliasCMNDS=/usr/sbin/,/usr/bin/,!/usr/sbin/reboot,!/usr/sbin/poweroff, /usr/bin/mount
-
USERS ALL=NOPASSWD: CMNDS
查看sudo操作记录
- 需要启用 Default logfile 配置
- 默认日志文件:/var/log/sudo
步骤
在visudo
查看sudo所具有的权限
sudo -l
开关机安全控制
-
调整BIOS引导设置
- 将第一引导设备设为当前系统所在的硬盘
- 禁止从其他设备(光盘,U盘,网络)引导系统
- 将安全级设为setup,并设置管理员密码
-
GRUB限制
- 使用grub2-mkpasswd-pbkdf2生成密钥
- 修改/etc/grub.d/00_header文件中,添加密码记录
- 生成新的grub.cfg配置文件 grub限制小实验 以这个加密方式生成一个密码:grub2-mkpasswd-pbkdf2
进入到grub.d目录
备份一个配置文件
编辑配置文件
实验成功
终端登录安全控制
限制root只在安全终端登录
安全终端配置:/etc/securetty
加#注释掉
touch /etc/nologin 禁止普通用户登录
rm -rf /etc/nologin 取消上述登录限制
JR
强力破解密码小实验
破解成功
NMAP
- 一款强大的网络端口扫描、安全、检测工具
- 官方网站:Nmap: the Network Mapper - Free Security Scanner
- CentOS 7.3光盘中安装包 nmap-6.40-7.el7.x86_64.rpm
检查所有端口开启情况 netstat -nltp
n:只查看端口号
l:只查看监听状态网络连接和端口信息
t:只查看tcp协议的相关信息
p:查看pid号和进程名
u: 查看udp协议的相关信息
a:查看所有
查看本机开放的端口
nmap -sT [扫描主机打开tcp端口]
nmap -sU[扫描主机打开UDP端口]
nmap -sP[IP地址]
总结
-
账号基本安全措施
- 系统账号清理,密码安全控制,命令历史清理,自动注销
-
用户切换与提权
- su,sudo
-
开关机安全控制
- BIOS引导设置,GRUB菜单设置密码
-
终端控制
- John the Ripper 工具
- nmap命令