作为一个开放源代码的操作系统,linux系统以其安全性,高效稳定而广泛应用,主要从账户安全,系统引导,登录控制的角度,优化linux系统的安全性,linux的环境的弱口令检查,网络扫描等安全工具的构建和使用,帮助运维人员查找安全隐患,及时采取有针对性的措施。
系统引导和登录控制的安全
在互联网环境中,大部分服务器是通过远程登录的方式来进行管理的,本地引导和终端登录过程往往被忽视,从而留下安全隐患。特别是当服务器所在的机房环境缺乏严格、安全的管控制度时,如何防止其他用户的非授权介入就成为必须重视的问题。
1.开关机安全控制
对于服务器主机,其物理安全是非常重要的,除了要保持机箱完好、机柜锁闭、 严格控制机房人员进出、硬件设备现场接触等,在开关机方面,还要做好系统本身的安全措施。
(1)调整BIOS引导设置
将第一优先引导设备设为当前系统所在磁盘
禁止从其他设备引导系统(U盘,光驱,网络), 对应的项为Disabled。 防止通过其他方式引导进入系统窃取数据。
将BIOS安全级别改为setup,并设好管理密码,以防止未授权修改
(2)禁止Ctrl+Alt+Del|快捷键重启
快捷键重启功能为服务器的本地维护提供了方便,但对于多终端登录的Linux服务器,禁用此功能时比较安全的选择。
[root@localhost ~]# systemctl mask ctrl-alt-del.target 禁止快捷键
Created symlink from /etc/systemd/system/ctrl-alt-del.target to /dev/null.
[root@localhost ~]# systemctl daemon-reload 重新加载配置
systemctl mask命令是用于注销指定服务的,
例如systemctl mask cpu.service命令用于注销cpu服务,
取消注销则使用systemctl umask。
(3)限制更改GRUB引导参数
通过修改GRUB引导参数进入单用户模式,不需要密码就可以进入系统,而且还用于root权限,只应在紧急情况下使用。从系统安全角度来看,如果任何人都能修改GRUB引导参数,对服务器来说是个极大地威胁。所以需要为GRUB菜单设置一个密码,只有提供正确的密码才被允许修改引导参数。
GRUB菜单设置密码
为GRUB菜单设置的密码建议采用grub2-mkpasswd-pbkdf2命令生成,表现为经过pbkdf2算法加密的字符串,安全性更好,生成密码后在/etc/grub.d/00_ header配置文件中,添加对应的用户,密码等配置。为GRUB菜单设置的密码时grub .pbkdf2. sha512.*这个部分可以使用明文字符串,但是安全性很差,不建议采用。
密码设置方式:
root@localhost ~]# grub2-mkpasswd-pbkdf2 //根据提示输入指定的密码
输入口令:
Reenter password:
PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.683234403E525718A93F349874FA6813B90EE39484F18922FB975EF52778E442A2E9C70220DBE1EFACE482B88125DA93AE494052F4FD84426598DF8B958AEFDA.286B6ECCBD14D935AFD22BE7433B86D33E4E3DA002248F9AAA98C454D054D68A265223D6592D28893AD9A6BBEBC70F3E243C4BDE7465256D2729B4D3330802FF
[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 ~]# vim /etc/grub.d/00_header //将下面内容添加到文件末尾
cat << EOF
set superusers="root"
password_pbkdf2 root grub.pbkdf2.sha512.10000.683234403E525718A93F349874FA6813B90EE39484F18922FB975EF52778E442A2E9C70220DBE1EFACE482B88125DA93AE494052F4FD84426598DF8B958AEFDA.286B6ECCBD14D935AFD22BE7433B86D33E4E3DA002248F9AAA98C454D054D68A265223D6592D28893AD9A6BBEBC70F3E243C4BDE7465256D2729B4D3330802FF
EOF
使用grub2-mkconfig命令重新生成grub.cfg文件
[root@localhost ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-862.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-862.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-78f0a89850f04bd595a5a80c50d5d223
Found initrd image: /boot/initramfs-0-rescue-78f0a89850f04bd595a5a80c50d5d223.img
done
[root@localhost ~]# reboot
重新开机进入GRUB菜单时,按e键将无法修改引导参数,若要获得编辑权限,必须根据提示输入正确的GRUB密码。
终端登录安全控制
在Linux中,默认开启了留个tty终端,允许任何用户进行本地登录,可从以下方面限制本地登录:
(1)禁止root用户登录
在Linux系统中,login程序会读取/etc/securetty文件, 以决定允许root用户从哪些终端登录。若要禁止root用户从指定的终端登录,只需注释或删除对应的行即可
[root@localhost ~]# vim /etc/securetty
#tty1
#tty2 注释掉
(2)禁止普通用户登录
当服务器在维护时,不希望普通用户登录系统,只需建立/etc/nologin文件即可。当login程序检测到etc/nologin文件存在时,将拒绝普通用户登录系统(root除外)。
实际上是利用shutdown延迟关机的限制机制,只建议在服务器维护期间临时使用。
[root@localhost ~]# touch /etc/nologin 禁止普通用户登录
[root@localhost ~]# rm -rf /etc/nologin
取消禁止普通用户登录
来源:CSDN
作者:aaa阿彪
链接:https://blog.csdn.net/aaaa_xiebiao/article/details/104697391