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

    技术2023-12-24  75

    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
    Processed: 0.013, SQL: 9