保证 Linux 服务器安全基本措施
作为一种开放源代码的操作系统,Linux服务器以其安全,高效和稳定的显著优势而得以广泛应用,但是,若不加以控制,也不见得安全到哪里,这篇博文主要从账号安全控制、系统引导和登录控制的角度,来进行Linux系统安全优化。并且使用辅助工具来查找安全隐患,以便我们及时采取相应的措施。
基本安全措施: 1、 系统各种冗余账号,如“games”等,可直接删除,包括一些程序账号,若卸载程序后,账号没能被删除,则需要我们手动进行删除。 2、 当服务器中的用户账号已经固定,不再进行更改,可以直接锁定账号配置文件,锁定以后,便不可以添加用户及更改用户密码: [[email?protected] ~]# chattr +i /etc/passwd /etc/shadow #锁定文件 [[email?protected] ~]# lsattr /etc/passwd /etc/shadow #查看是否锁定 ----i----------- /etc/passwd ----i----------- /etc/shadow [[email?protected] ~]# chattr -i /etc/passwd /etc/shadow #解锁文件 3、密码的有效期控制:为了降低密码被暴力破解或被猜出的风险,可以设置密码有效期来限制密码最大有效天数,对于密码已过期的用户,登录时则必须重置密码,否则将拒绝登录。 [[email?protected] ~]# vim /etc/login.defs #适用于新建的用户,配置完毕后新建的用户则为30天 ........................ PASS_MAX_DAYS 30 #将该配置项默认的值“99999”改为所期望的值,如30天。 [[email?protected] ~]# chage -M 30 zhangsan # 适用于已经存在的用户,指定已经存在的用户为30天 [[email?protected] ~]# chage -d 0 zhangsan # 张三下次登录必须修改密码 4、命令历史、自动注销: [[email?protected] ~]# vim /etc/profile #适用于新登录用户 ................ HISTSIZE=200 #命令历史记录为200条 export TMOUT=600 #自动注销时间为600秒 #适用于当前用户 [[email?protected] ~]# export HISTSIZE=200 # 命令历史记录为200条 [[email?protected] ~]# export TMOUT=600 # 自动注销时间为600秒 注意:当正在执行程序代码编译、修改系统配置等耗时较长的操作时,最好不要设置TMOUT变量。必要时可以执行“unset TMOUT”命令取消TMOUT变量设置。 [[email?protected] ~]# gpasswd -a admin wheel #添加授权用户admin 正在将用户“admin”加入到“wheel”组中 [[email?protected] ~]# grep wheel /etc/group #确认wheel组成员 wheel:x:10:admin [[email?protected] ~]# vim /etc/pam.d/su #%PAM-1.0 auth sufficient pam_rootok.so ................... auth required pam_wheel.so use_uid #去掉此行开头的 # 号 然后就只有wheel组中的用户可以使用su命令了,使用su命令切换用户的操作将会记录到安全日志/var/log/secure文件中,可以根据需要进行查看。 sudo命令的控制只需在/etc/sudoers配置文件中添加授权即可,需使用专门的visudo工具进行编辑,用vi也可以,但是保存时必须执行“ w!”命令来进行强制保存,否则系统将提示文件为只读文件而拒绝保存。 user MACHINE=COMMANDS 具体含义如下: [[email?protected] ~]# visudo ......................... zhangsan localhost=/sbin/ifconfig %wheel ALL=NOPASSWD:ALL 上述配置就是可以让用户能够执行ifconfig命令,而wheel组的用户不需验证密码即可执行任何命令。 User_Alias OPERATORS=user1,user2,user3 #定义用户名列表 Host_Alias MAILSVRS=smtp,pop #定义主机列表 Cmnd_Alias PKGTOOLS=/bin/rpm,/usr/bin/yum #定义命令列表 OPERATORS MAILSVRS=PKGTOOLS #使定义的列表关联起来 sudo配置记录的命令部分可以使用通配符 “ * ” 、取反符号“ !”,也可以启用sudo日志记录以备运维人员查看,当需要授权某个目录下所有命令或取消其中个别命令时特别有用。例如:授权用户zhangsan可以执行/sbin/目录下除了ifconfig、route以外的其他命令,并且启用日志记录: [[email?protected] ~]# visudo zhangsan localhost=/sbin/*,!/sbin/ifconfig,!/sbin/route #通配符及取反符的应用。 Defaults logfile = "/var/log/sudo" #启用日志记录 注意: login程序是通过读取 /etc/securetty文件,以决定允许root用户从哪些终端登录的,若要禁止root用户从tty5、tty6登录,只需将文件中对应的行注释掉即可: [[email?protected] ~]# vim /etc/securetty #tty5 #tty6 2、禁止普通用户登录: 当正在调试服务器,不希望再有新用户登录系统的话,可以建立/etc/nologin文件即可,login程序会检查/etc/nologin文件是否存在,如果存在,则拒绝普通用户登录系统(root用户不受限制)。这个方法只建议在服务器维护期间临时使用,当手动删除/etc/nologin文件或者重新启动主机后,即可恢复正常,(只对创建文件之后的才登陆的用户有效)如下: [[email?protected] ~]# touch /etc/nologin 开关机安全控制: [[email?protected] ~]# systemctl mask ctrl-alt-del.target #注销ctrl-alt-del服务 Created symlink from /etc/systemd/system/ctrl-alt-del.target to /dev/null. [[email?protected] ~]# systemctl daemon-reload #重载systemd配置 若要重新开启ctrl-alt-del快捷键功能,只需执行以下即可: [[email?protected] ~]# systemctl unmask ctrl-alt-del.target Removed symlink /etc/systemd/system/ctrl-alt-del.target. [[email?protected] ~]# systemctl daemon-reload 3、限制更改GRUB引导参数: 当Linux系统在启动时,到了下面这个界面,按“e”就可以进入GRUB引导菜单,并且通过修改配置后,无须任何密码就可以进入系统环境中,这个漏洞显然对服务器是一个极大的威胁,那么可以执行以下操作,为grub菜单设置一个密码,只有提供正确的密码才被允许修改引导参数: [[email?protected] ~]# grub2-mkpasswd-pbkdf2 #根据提示指定密码 输入口令: #设置密码为“123456” Reenter password: PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.F7169053E0A4C582D0D65D3181CBDF7306E56AAB4D5F6910A576FA42CAD66DE8A28019CC3E8A0A75C56B517325A10D63DF85BD018FEF345359677B403F9FE4.C1E18CA9FFB54BF3AAE7EC0A03B41DD384A5ECB38A42F651C9467442EB41F7319BF4B3C600EC8CC7562C3AF188DB77BDA5FDE4E978E72BD715A77F965CC9EFBD #经过加密的密码字符串 #为了防止更改grub菜单错误,所以先将相关文件进行备份 [[email?protected] ~]# cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak [[email?protected] ~]# cp /etc/grub.d/00_header /etc/grub.d/00_header.bak [[email?protected] ~]# vim /etc/grub.d/00_header #将以下内容添加到文件中的最后 cat << EOF set superusers="change" password_pbkdf2 change grub.pbkdf2.sha512.10000.F7169053E0A4C582D0D65D3181CBDF7306E56AAB4D5F6910A576FA42CAD66DE8A28019CC403E8A0A75C56B517325A10D63DF85BD018FEF345359677B403F9FE4.C1E18CA9FFB54BF3AAE7EC0A03B41DD384A5ECB38A42F651C9467442EB41F7319BF4B3C600EC8CC7562C3AF188DB77BDA5FDE4E978E72BD715A77F965CC9EFBD [[email?protected] ~]# grub2-mkconfig -o /boot/grub2/grub.cfg #生成新的grub.cfg文件 Generating grub configuration file ... /etc/grub.d/00_header: line 361: warning: here-document at line 359 delimited by end-of-file (wanted `EOF‘) Found linux image: /boot/vmlinuz-3.10.0-514.el7.x86_64 Found initrd image: /boot/initramfs-3.10.0-514.el7.x86_64.img Found linux image: /boot/vmlinuz-0-rescue-095dca7b09764ecf91e366075c160144 Found initrd image: /boot/initramfs-0-rescue-095dca7b09764ecf91e366075c160144.img done 现在重启服务器,进入grub菜单时,按e将无法修改引导参数,若要修改,还需输入正确的grub用户名及密码: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |