初学者的Linux系统安全及应用

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


你可能感兴趣的:(初学者的LINUX)