Linux–系统安全及应用
文章目录
Linux--系统安全及应用
系统账号清理
密码安全控制
su命令
Linux中的PAM安全认证
su命令的缺点
PAM认证原理
PAM认证的构成
PAM安全认证流程
使用sudo机制提升权限
Linux sudo命令
sudo实验:https://blog.csdn.net/hewei3714/article/details/106912346
开关机安全控制
调整BIOS引导设置
GRUB限制
终端登录安全控制
端口扫描
系统账号清理
将非登录用户的Shell设为/sbin/nologin
锁定长期不使用的账号 'usermod -L ’
删除无用的账号 ‘userdel -r’
锁定账号文件passwd、shadow,用以控制用户(包括root)无法创建删除修改账户
[root@localhost ~]# chattr +i /etc/passwd /etc/shadow
[root@localhost ~]# lsattr /etc/passwd /etc/shadow
----i--------------- /etc/passwd
----i--------------- /etc/shadow
[root@localhost ~]#
+i 进行加锁 -i 解锁
lsattr 查看是否锁定
密码安全控制
设置密码有效期
要求用户下次登陆时修改密码
[root@localhost ~]# vim /etc/login.defs
PASS_MAX_DAYS 99999
PASS_MIN_DAYS 30
对已存在的用户的密码有效期设置命令是
[root@localhost ~]# chage -M 99999 zhangsan
chage:无法打开 /etc/passwd
[root@localhost ~]# chage -M 99999 lisi
chage:无法打开 /etc/passwd
[root@localhost ~]# chattr -i /etc/passwd /etc/shadow
[root@localhost ~]# chage -M 99999 zhangsan
[root@localhost ~]#
这边要注意,我之前锁定了passwd,导致无法直接进行设置,要使用-i,解除锁定
su命令
切换用户,注意,上级用户切下级用户,不用输入密码,下级用户切上级用户需要密码验证
[root@localhost ~]# su zhangsan
[zhangsan@localhost root]$ su root
密码:
[root@localhost ~]#
Linux中的PAM安全认证
su命令的缺点
默认情况下,任何用户都允许使用su命令,从而恶意用户有机会反复尝试其他用户(如root)的登录密码,带来安全风险
为了加强su命令的使用控制,可以借助于PAM认证模块,只允许极个别用户使用su命令进行切换
PAM认证原理
PAM认证一般遵循的顺序:Service(服务)>PAM(配置文件)>pam_*.so
PAM认证首先要确定哪一项服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认证文件(位于/lib/security下)进行安全认证
用户访问服务器的时候,服务器的某一个服务程序把用户的请求发送到PAM模块进行认证
不同的应用程序所对应的PAM模块也是不同的
PAM认证的构成
查看某个程序是否支持PAM认证,可以用ls命令进行查看/etc/pam.d,然后管道符号检索想要查询的程序;例如查看su是否支持PAM模块认证
ls /etc/pam.d | grep su
查看su的PAM配置文件:cat /etc/pam.d/su
每一行都是独立的认证过程
每一行可以区分为三个字段
认证类型
控制类型
PAM模块及其参数
PAM安全认证流程
控制类型也可以乘坐Control Flags,用于PAM验证类型的返回结果
1.required验证失败时仍然继续,但返回Fail
2.requisite验证失败则立即结束整个验证过程,返回fail(最重要的一步)
3.sufficient验证成功则立即返回,不再继续,否则忽略结果并继续
4.optional不用于验证,只显示信息(通常用session类型)
使用sudo机制提升权限
Linux sudo命令
Linux sudo命令以系统管理者的身份执行指令,也就是说,经由 sudo 所执行的指令就好像是 root 亲自执行。
使用权限:在 /etc/sudoers 中有出现的使用者
sudo实验:https://blog.csdn.net/hewei3714/article/details/106912346
开关机安全控制
调整BIOS引导设置
将第一引导设备设为当前系统所在硬盘
禁止从其他设备(光盘、U盘、网络)引导系统
将安全级别设为isetup,并设置管理员密码
GRUB限制
使用grub2-mkpasswd-pbkdf2生成密钥
修改/etc/grub.d/00_header文件中,添加密码记录
生成新的grub.cfg配置文件
[root@localhost ~]# cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak
[root@localhost ~]# cp /etc/grub.d/00_header /etc/grub.d/00_header.bak
[root@localhost ~]# grub2-mkpasswd-pbkdf2
输入口令:
Reenter password:
PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.69D02A117BC87B18E9667BE2F2D3EC688C3FAD3AA560F139D2575332143C739AC288428E827F48BF3BD1025240C372D2CAA6D82F8C61E3AD9AA113A014246F47.283700C515A6DDC966EBB1A0F827BFD95675FB0BFA0A70BDCDF04A907C89C6805086EBF4E4F115513626AC4FCA3BDF9C3E168589B72FDFDC6FE7DD59E9ADB0FA
[root@localhost ~]# vim /etc/grub.d/00_header
在最后一行输入你输入密码后,出现的一段字符
cat << EOF
362 set superusers="root"
363 grub.pbkdf2.sha512.10000.69D02A117BC87B18E9667BE2F2D3EC688C3FAD3AA560F139D25753。。。
将生成的配置文件覆盖掉原来的grub.cfg配置文件
[root@localhost ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
/etc/grub.d/00_header: line 363: warning: here-document at line 361 delimited by end-of-file (wanted `EOF')
Found linux image: /boot/vmlinuz-3.10.0-957.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-957.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-56b5308ec2d64cadad3f0a91130f3c68
Found initrd image: /boot/initramfs-0-rescue-56b5308ec2d64cadad3f0a91130f3c68.img
done
[root@localhost ~]#
重启
[root@localhost ~]# init 6
Connection closing...Socket close.
Connection closed by foreign host.
Disconnected from remote host(新建会话 (3)) at 17:22:40.
Type `help' to learn how to use Xshell prompt.
[G:\~]$
输入新密码进入
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4xh5vdVF-1593768510158)(C:\Users\hewei\AppData\Roaming\Typora\typora-user-images\image-20200703172454261.png)]
终端登录安全控制
进入配置文件配置
[root@localhost ~]# vim /etc/securetty
console
vc/1
vc/2
vc/3
vc/4
vc/5
vc/6
vc/7
vc/8
vc/9
vc/10
vc/11
tty1
#tty2
tty3
tty4
tty5
tty6
tty7
tty8
tty9
禁止终端tty2登录,在其前方输入#即可
端口扫描
查看对外可被连接的端口,这边查看一下tcp的127.0.0.1接口
[root@localhost ~]# nmap -sP 127.0.0.1
Starting Nmap 7.70 ( https://nmap.org ) at 2020-07-03 04:22 EDT
Nmap scan report for localhost (127.0.0.1)
Host is up.
Nmap done: 1 IP address (1 host up) scanned in 0.00 seconds
[root@localhost ~]# nmap sT 127.0.0.1
Starting Nmap 7.70 ( https://nmap.org ) at 2020-07-03 04:23 EDT
Failed to resolve "sT".
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000070s latency).
Not shown: 999 closed ports
PORT STATE SERVICE
22/tcp open ssh
Nmap done: 1 IP address (1 host up) scanned in 2.57 seconds