本文共 5089 字,大约阅读时间需要 16 分钟。
1.系统各种冗余账号,如games等可直接删除,包括一些程序账号,若程序卸载后,账号没能被删除,则需手动删除。
2.当服务器中的用户账号已经固定,不再进行更改,可直接锁定账号配置文件,锁定以后便不可添加用户及修改用户密码。
chattr +i /etc/passwd /etc/shadow
lsattr /etc/passwd /etc/shadow
chattr -i /etc/passwd /etc/shadow
3.密码有效期控制,为了降低密码被暴力破解或被猜出的风险,可以设置密码有效期来限制密码最大有效天数,对于密码已过期的用户,登陆时必须重置密码,否则将被拒绝登陆。
]# vim /etc/login.defs #适于新建的用户
...
PASS_MAX_DAYS 30
]# chage -M 30 1v #适用于已经存在的用户
]# chage -d 0 zhangsan #张三下次登陆必须修改密码
4.历史命令,自动注销
适用于新登陆用户
vim /etc/profile
HISTSIZE=200 #命令历史记录为200条
export TMOYT=600 #自动注销时间为600秒
适用于当前用户
export HISTSIZE=200
export TMOUT=600 #不必要时执行“unset TMOUT” 来取消变量
5.su命令 --切换用户
默认任何用户都允许使用su命令,从而有机会反复尝试其他用户(如root)的登陆密码;可以借助于pam_wheel认证模块,只允许极个别用户使用su
]# gpasswd -a admin wheel #添加授权用户admin
正在将用户“admin”加入到“wheel”组中 ]# grep wheel /etc/group #确认wheel组成员 wheel:x:10:lv,admin ]# 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文件中,可以根据需要进行查看。
6.sudo命令—提升执行权限
使用su命令可以方便的切换为另一个用户,但前提条件是必须知道目标用户的登录密码。若想要切换到root用户,那么必须知道root用户的密码,对于生产环境中的Linux服务器来说,每多一个人知道root密码,其安全风险也就增加一分。所以sudo命令就由此而生了。
sudo命令的控制只需在/etc/sudoers配置文件中添加授权即可,需使用专门的visudo工具进行编辑,用vi也可以,但是保存时必须执行“ w!”命令来进行强制保存,否则系统将提示文件为只读文件而拒绝保存。
配置文件/etc/sudoers中,授权记录的基本配置格式如下所示:
user MACHINE=COMMANDS
上述三个部分的具体含义如下:
user:直接授权指定的用户名,或采用“%组名”的形式(授权一个组中的所有用户)。
MACHINE:使用此配置文件的主机名称,这个部分主要是方便在多个主机间共用同一份sudoers文件,一般设置为localhost或实际的主机名即可。
COMMANDS:允许授权的用户通过sudo方式执行的特权命令,需填写命令的绝对路径,多个命令之间以逗号“ ,”进行分隔。
若现在的需求是jerry用户能够执行ifconfig命令,而wheel组的用户不需验证密码即可执行任何命令,可以进行以下修改:
[root@localhost ~]# visudo .........................jerry localhost=/sbin/ifconfig%wheel ALL=NOPASSWD:ALL
当使用相同授权的用户较多,或者授权的命令较多时,可以采用集中定义的别名。如:允许用户user1、user2、user3在主机smtp、pop中执行rpm、yum命令:
[root@localhost ~]# visudo .........................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以外的其他命令,并且启用日志记录:
sudo命令使用中注意事项:
1、第一次通过sudo命令执行命令时,必须以用户自己的密码进行验证,此后再次执行sudo命令,只要与前一次sudo操作的间隔时间不超过5分钟,则不需重复验证。
2、若想要查看用户自己获得哪些sudo授权,可以执行“ sudo -l”,若是某个用户的sudo权限列表中出现了(ALL) ALL字样,则表示授权有误,此时,该用户拥有所有命令的执行权限。若visudo命令编辑的授权列表没有错误的话,就需要看看是否将该用户添加到了wheel组中,并且启用了pam_wheel认证。
7.终端及登陆控制
login程序是通过读取 /etc/securetty文件,以决定允许root用户从哪些终端登录的,若要禁止root用户从tty5、tty6登录,只需将文件中对应的行注释掉即可:
[root@localhost ~]# vim /etc/securetty .........................#tty5#tty6
当正在调试服务器,不希望再有新用户登录系统的话,可以建立/etc/nologin文件即可,login程序会检查/etc/nologin文件是否存在,如果存在,则拒绝普通用户登录系统(root用户不受限制)。这个方法只建议在服务器维护期间临时使用,当手动删除/etc/nologin文件或者重新启动主机后,即可恢复正常,如下:
[root@localhost ~]# touch /etc/nologin
8.开关机安全机制
1、调整bios引导设置,给BIOS设置密码,并启用;
2、禁止Ctrl+Alt+Del快捷键重启主机:[root@localhost ~]# systemctl mask ctrl-alt-del.target #注销ctrl-alt-del服务Created symlink from /etc/systemd/system/ctrl-alt-del.target to /dev/null.[root@localhost ~]# systemctl daemon-reload #重载systemd配置
若要重新开启ctrl-alt-del快捷键功能,只需执行以下即可:
[root@localhost ~]# systemctl unmask ctrl-alt-del.targetRemoved symlink /etc/systemd/system/ctrl-alt-del.target.[root@localhost ~]# systemctl daemon-reload
3、限制更改GRUB引导参数:
[root@localhost ~]# grub2-mkpasswd-pbkdf2 #根据提示指定密码输入口令:#设置密码为“111111”Reenter password:PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.F7169053E0A4C582D0D65D3181CBDF7306E56AAB4D5F6910A576FA42CAD66DE8A28019CC403E8A0A75C56B517325A10D63DF85BD018FEF345359677B403F9FE4.C1E18CA9FFB54BF3AAE7EC0A03B41DD384A5ECB38A42F651C9467442EB41F7319BF4B3C600EC8CC7562C3AF188DB77BDA5FDE4E978E72BD715A77F965CC9EFBD #经过加密的密码字符串#为了防止更改grub菜单错误,所以先将相关文件进行备份[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 << EOFset superusers="change"password_pbkdf2 change grub.pbkdf2.sha512.10000.F7169053E0A4C582D0D65D3181CBDF7306E56AAB4D5F6910A576FA42CAD66DE8A28019CC403E8A0A75C56B517325A10D63DF85BD018FEF345359677B403F9FE4.C1E18CA9FFB54BF3AAE7EC0A03B41DD384A5ECB38A42F651C9467442EB41F7319BF4B3C600EC8CC7562C3AF188DB77BDA5FDE4E978E72BD715A77F965CC9EFBD[root@localhost ~]# 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_64Found initrd image: /boot/initramfs-3.10.0-514.el7.x86_64.imgFound linux image: /boot/vmlinuz-0-rescue-095dca7b09764ecf91e366075c160144Found initrd image: /boot/initramfs-0-rescue-095dca7b09764ecf91e366075c160144.imgdone
现在重启服务器,进入grub菜单时,按e将无法修改引导参数,若要修改,还需输入正确的grub用户名及密码(根据上面的操作,这里需要输入的用户名为“change”,密码为“111111”):
转载地址:http://shiqi.baihongyu.com/