文章目录
- 一、账号安全基本措施
- 二、su命令
- 三、设置GRUB密码
- 四、禁止终端登陆
- 五、系统弱口令检测
- 六、网络端口扫描![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/cd87344e286e46a7b436688187455716.png)
- [七、通过pam 模块来防止暴力破解ssh](#七、通过pam 模块来防止暴力破解ssh)
一、账号安全基本措施
1.系统账号清理
usermod -s /sbin/nologin 用户名
将非登录用户的Shell设为/sbin/nologin
锁定长期不使用的账号(passwd -l 锁定用户;passwd -u 解锁用户)
删除无用的账号(userdel -r 用户名)
chattr +i 锁定账号文件 chattr -i 解锁
lsattr 查看文件拓展属性
2.密码安全控制
vim /etc/login.defs ------适用于新建用户
PASS_MAX_DAYS 修改密码最大间隔天数,一般设置为30,60,90
PASS_MIN_DAYS 修改密码最小间隔天数
PASS_MIN_LEN 密码最小长度,对root用户无效
PASS_WARN_AGE 密码到期前提示的天数
例: 修改现有用户yy的密码最大有效期为60天
chage:用来修改帐号和密码的有效期限,针对目前系统已经存在的用户
-m:密码可更改的最小天数。为零时代表任何时候都可以更改密码。
-M:密码保持有效的最大天数。chage -M 60 root
-w:用户密码到期前,提前收到警告信息的天数。
-E:帐号到期的日期。过了这天,此帐号将不可用。
chage -E 2019-04-29 test //其中,test为用户,用户将在2019年4月29日失效(不可登录)
-d:上一次更改的日期。
-i:停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。
-l:例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期
3.命令历史限制
vim /etc/profile 默认限制为1000条
history -c 临时清除所有历史命令
或者在/root/.bash_logout里设置退出就删除历史命令记录
4.终端自动注销
vim /etc/profile
export TMOUT=60 设置新登陆的用户超时时间为60秒
设置当前用户超时时间为30秒 (一定要设置)
unset TMOUT 可以取消设置的超时
二、su命令
1.用途及用法
su 目标用户 切换用户
2.限制使用su命令的用户
在/etc/pam.d/su文件里设置禁止用户使用su命令
2 # auth sufficient pam_ rootok.so
6 #auth required pam_ wheel.so use_ _uid
1.以上两行是默认状态(即开启第一行,注释第二行),这种状态下是允许所有用户间使用su命令进行切换的。
2.两行都注释也是运行所有用户都能使用su命令,但root'下使用su切换到其他普通用户需要输入密码;如果第一行不注释,则root使用su切换普通用户就不需要输入密码(pam rootok. so模块的主要作用是使uid为0的用户,即root用户能够直接通过认证而不用输入密码。)
3.如果开启第二行,表示只有root用户和wheel组内的用户才可以使用su命令
4.如果注释第一行,开启第二行,表示只有whee1组内的用户才能使用su命令,root用户也被禁用su命令。
实例:
1.启用wheel认证模块(取消第6行注释)
2.将yy用户加入wheel组
3.只有在wheel组里的成员才能进行su切换
4.查看su操作记录
安全日志文件:/var/log/secure
3.使用sudo提升权限
允许一部分用户拥有管理员的部分权限
1.visudo进入/etc/sudoers
授权配置主要包括用户、主机、命令三个部分,即授权哪些人在哪些主机上执行哪些命 令。各部分的具体含义如下。
注:Runas_Alias:在哪些主机以谁的身份运行 的别名 这个不怎么使用
用户组设置sudo提权
用户(user):直接授权指定的用户名,或采用"%组名"的形式(授权一个组的所有用户)。
主机(MACHINE):使用此配置文件的主机名称。此部分主要是方便在多个主机间共用同一份 sudoers 文件,一般设为 localhost 或者实际的主机名即可。
命令(COMMANDS):允许授权的用户通过 sudo方式执行的特权命令,需填写命令程序的完整路径,多个命令之间以逗号","进行分隔。
实例1:
1.输入visudo进入配置文件,设yy用户能在所有主机上拥有创建和删除用户的root权限
2.测试
sudo -l 可以查看当前用户可以执行的sudo命令
实例2:
设置yy01只能在localhost这台终端上使用无密码登陆
在visudo里设置别名
当使用相同授权的用户较多时,或者相同命令较多时,可以定义别名
User_Alias: 用户别名
Host_Alias: 主机别名
Cmnd_Alias: 命令别名
实例1:
1.设置用户的别名,只允许YYHOST里的终端,可以使用YYCMND里的命令
YYUSER YYHOST=NOPASSWD:YYCMND
如果添加的是组的话(只需要在组号前添加%):
USER_Alias YYUSER=yy,%yy01
如果有不允许的命令可以添加 !
Cmnd_Alias YYCMND =/usr/bin/passwd,!usr/bin/passwd root
允许修改其他用户的密码,但是不允许修改root用户的
2.检查用户yy的权限
三、设置GRUB密码
1.使用 grub2-setpasswd 设置密码
2.设置成功,非root用户无法编辑GRUB
3.取消密码设置
四、禁止终端登陆
1.vi /etc/securetty
选定tty2前加#
2.crtl+alt+f2 进入tty2终端,发现无法登陆
3.其他用户不受影响
五、系统弱口令检测
Joth the Ripper,简称JR
一款开源的密码分析工具,支持字典式的暴力破解
通过对shadow文件的口令分析,可以检测密码强度
1.把安装包放入liunx中
2.输入安装命令
cd /opt
tar zxvf john-1.9.0.tar.gz #解压工具包
yum -y install gcc gcc-c++ make #安装软件编译工具
cd /opt/john-1.9.0/src
make clean linux-x86-64 #切换到src子目录,进行编译安装
cp /etc/shadow /opt/shadow.txt #准备待破解的密码文件
cd /opt/john-1.9.0/run
./john /opt/shadow.txt #切换到run子目录,执行暴力破解
./john --show /opt/shadow.txt #查看已破解出的账户列表
john. pot #清空己破解出的账户列表,以便重新分析
3.查看破解的密码
六、网络端口扫描
NMAP是一个强大的端口扫描类安全评测工具,支持 ping 扫描、多端口检测等多种技术
1.安装NMAP 软件包
yum install -y nmap
2.扫描常用的 TCP 端口
nmap -sT 127.0.0.1
3.扫描常用的 UTP 端口
nmap -sU 127.0.0.1
4.ICMP 扫描
nmap -sP 127.0.0.1
七、通过pam 模块来防止暴力破解ssh
vim /etc/pam.d/sshd #进入配置文件
注解:
deny 指定最大几次认证错误,如果超出此错误,将执行后面的策略。如锁定N秒,如果后面没有其他策略指定时,默认永远锁定,除非手动解锁。
lock_time 锁定多长时间,按秒为单位;
unlock_time 指定认证被锁后,多长时间自动解锁用户;
even_deny_root root用户在认证出错时,一样被锁定
root_unlock_time root用户在登录失败时,锁定多长时间。该选项一般是配合even_deny_root 一起使用的。