系统安全与用户

一、账号安全控制

1.1 账号清理

账号清理手段

  • 将非登录的用户的shell设为 /sbin/nologin
  • 锁定长期不使用的账户
  • 删除无用的账号
  • 锁定账号文件passwd,shadow

账号清理的具体命令

useradd命令

useradd -s /sbin/nologin  用户名   ## 创建账户的时候设置为不可登录

usermod命令

usermod -L 用户名    ## 锁定已创建好的账户
usermod -U 用户名	    ## 与 -L对应解锁锁定的账户

passwd命令

passwd -l 用户名     ## 锁定已创建的账户
passwd -u 用户名     ## 对 -l对应解锁锁定的账户

userdel命令

userdel [-r] 用户   ## 删除用户,加 -r删除用户时宿主目录也会被删除

1.2 锁定账号文件chattr

chattr的命令

[root@server1 ~]# chattr +i  /[目录]   ## 对该目录进行保护,不能对该目录进行删除、改名、设定链接关系,同时不能写入或新增内容
[root@server1 ~]# chattr -i  /[目录]   ## 解锁该目录的锁定,可正常对该目录进行操作
[root@server1 ~]# lsattr 目录    ## 与chattr搭配使用,查看chatte操作后的状态

chattr命令的用法

选项 作用
+ 在原有参数设定的基础上,追加参数
- 在原有参数设定基础上,移除参数
= 更新为指定参数设定

chattr的常用选项

选项 作用
i 设定文件不能被删除、改名、设定链接关系,同时不能写入或新增内容
a 设定改参数后,只能向该文件中添加数据,而不能移除。多用于服务器日志文件安全。只有root才能设置这个属性

chattr的注意事项

chattr命令不能保护 /、/dev、/tmp、/var 目录

1.3 密码安全控制

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

[root@server1 ~]# chage -M 30 用户名   ## 设置该用户密码可用时间30天
[root@server1 ~]# chage -d 0 用户名    ## 设置该用户下次登录时修改密码

1.4 命令历史限制

减少记录的命令条数

[root@server1 ~]# vi /etc/profile   ## 进入该文件
HISTSIZE = 100         ## 将命令条数限制为100,默认为1000

注销时自动清空命令历史

[root@server1 ~]# vi .bash_logout    ## 进入注销设置命令
	 ~/.bash_logout     ## 如果前面有#的需要将#去掉
	history -c             ## 清空历史
	clear                  ## 清屏
	echo ""> /root/.bash_history     ## 将.bash_history目录清空
[root@server1 ~]#source .bash_history   ## 不关机的情况下执行上述命令

二、su与sudo

2.1 su命令

作用

切换用户

格式

su 用户名称

密码验证

  • root用户切换到其他用户时不需要验证密码
  • 普通用户切换到其他用户时需要验证密码

除root用户外允许使用su命令的条件

默认注释掉执行非wheel组用户无法使用su命令
在这里插入图片描述

2.1.1 su命令的安全隐患

默认情况下,任何用户都允许使用su命令,有机会反复尝试其他用户(如root)的登录密码,会带来安全隐患。
为了加强su命令的使用控制,可借助于PAM认证模块,只允许极个别用户使用su命令进行切换。

2.2 sudo命令

  • 配置sudo授权
    在visudo 或者vi /etc/sudoers文件中修改
  • 记录格式
    用户 主机名列表=命令程序列表

三、安全控制

3.1 PAM可插拔式认证模块

  • 是一种高级且灵活便利的用户级别的认证方式
  • 也是当前linux服务器普遍使用的认证方式

3.1.1 PAM认证原理

  • service(服务)→PAM(配置文件)→PAM_*.so
  • 首先要确定哪一项服务,然后加载相应的PAM的配置文件(位于 /etc/pam.d下),最后调用认证文件(位于 /lib/security下)进行安全认证
  • 用于访问服务器时,服务器的某一个服务器程序把用户的请求发送到PAM模块进行认证
  • 不同的应用程序所对应的PAM模块是不同的

3.1.2 PAM认证的构成

查看某个程序是否支持PAM认证,可用ls命令

ls /etc/pam.d | grep su

查看su的PAM的配置文件

cat /etc/pam.d/su

每一行都是一个独立的认证过程,每行可以区分为3个字段
认证类型
控制类型
PAM模块及基参数

3.1.3 PAM安全认证类型

控制类型也称作Control Flags,用于PAM验证类型的返回结果
在这里插入图片描述

  1. required验证失败时仍然继续,但返回Fail;
  2. requisite验证失败则立即结束整个验证过程,返回Fail;
  3. sufficient验证成功则立即返回,不在继续,否则忽略结果并继续;
  4. optional不用于验证,为显示信息(通常用于session类型)

3.2 开关机安全控制

3.2.1 调整BIOS引导设置

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

3.2.2 GRUB限制

  • 使用grub2-mkpasswd-pbkdf2生成密钥
  • 修改 /etc/grub.d/00_header 文件中添加密码记录
  • 生成新的grub.cfg配置文件

3.2.3 命令过程

grub2-mkpasswd-pbkdf2         ## 生成密钥
复制is后的密码
cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak 
cp /etc/grub.d/00_header /etc/grub.d/00_header.bak
vi /etc/grub.d/00_header    ## 进入文件中
	cat << EOF
	set superusers="root"
	password_pbkdf2 root
	粘贴上面已复制的密码
	EOF
grub2-mkconfig -o /boot/grub2/grub.cfg   ## 使密钥生效

3.3 终端登录安全控制

限制root只在安全终端登录

安全终端配置: /etc/securetty

禁止普通用户登录

在root目录下新建 /etc/nologin文件
删除nologin文件或重启即恢复正常

3.4 系统弱口令监测

  • Joth the Ripper,简称JR。是一款密码分析工具,支持字典式的暴力破解
  • 通过对shadow文件的口令分析,可以检测密码强度
  • 官方网站:http://www/openwall.com/john/

3.4.1 John简单密码暴力破解命令

方式一:

导入john.tar.gz压缩包
tar.zxvf john.tar.gz    ## 解压john压缩包
cd john-1.8.0     
cd src
make clean linux-x86-64   ## 执行编译文件
ls .. /run/john        ## 查看上一级目录是否生成john程序
cp /etc/shadow root/shadow.txt    ## 复制密码文件
.john /root/shadow.txt      ## 破译账户弱密码
.john --show /root/shadow.txt    ## 查看已破译出的账户列表

方式二

:> john.pot
./john --wordlist=./password.lst  /root/shadow.txt
./john --show /root/shadow.txt

3.5 网络端口扫描NMAP

  • 一款强大的网络扫描,安全检测工具
  • 官网:http://nmap.org/
  • CentOS7.3光盘中的安装包 nmap-6.40-7.e17.x86_64.rpm

3.5.1 NMAP扫描

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

3.5.2 常用的扫描类型

选项 作用
-sT tcp扫描连接
-sU udp扫描连接
-sP icmp扫描
-sS tcp syn扫描
-sF tcp fin扫描
-P 指定端口扫描

猜你喜欢

转载自blog.csdn.net/weixin_50344820/article/details/109203555
今日推荐