linux系统安全基础汇总

linux系统安全基础汇总

基本安全措施:

1)系统帐号清理:

常见的非登录用户包括bindaemonadmlpmailnobodyapachemysqldbusftpgdm等。

为了保证系统安全,这些用户的登录shell通常是/sbin/nologin,表示禁止终端登录:

还有一部分很少用到的用户,如newsuucpgamesgopher,这些用户可以视为冗余帐号,直接删除即可。

对于Linux服务器中长期不用的用户帐号,若无法确定是否应该删除,可以暂时将其锁定。

eg:锁定、解锁zqq的用户帐号:

如果服务器中的用户帐号已经固定,不再进行修改,可以采用锁定帐号配置文件的方法。

使用chattr 命令,分别结合"+i" "-i"选项来锁定、解锁文件,使用lsattr命令查看文件锁定情况。

[root@www ~]# chattr +i /etc/passwd/etc/shadow

[root@www ~]# lsattr /etc/passwd/etc/shadow

帐号文件被锁定的情况下,其内容将不允许变更。

2)密码安全控制:

为了降低密码被猜出或被暴力破解的风险,用户应养成定期更改密码的习惯。

管理员可以在服务器端限制用户密码的最大有效天数,对于密码已过期的用户,登录时将被要求重新设置,否则将拒绝登录。

eg:将密码的有效期设为30天,chage用于设置密码时限:

3)命令历史、自动注销:

shell环境的命令机制为用户提供了极大的便利,但另一方面也给用户带来了极大的风险。

Bash终端环境中,历史命令的记录条数由变量HISTSIZE控制,默认为1000条。通过修改/etc/profile文件中的HISTSIZE变量值,可以影响系统中的所有用户。

eg:设置历史命令记录条数最多只记录150条:

[root@www ~]# vim /etc/profile――适用于新登录的用户

除此之外,还可以修改用户宿主目录中的~/.bash_logout文件,添加清空历史命令的操作语句。

eg:当用户退出已登录Bash环境以后,删除所记录的历史命令:

[root@www ~]# vim~/.bash_logout

Bash终端环境中,可以设置一个闲置超时时间,当超过指定的时间没有任何操作即自动注销终端。

闲置超时由变量TMOUT来控制,默认单位为秒。

当正在进行程序代码编译、修改系统配置等耗时较长的操作时,避免设置TMOUT变量,必要时使用“ unsetTMOUT”命令取消TMOUT变量。

用户切换与提权:

大多数Linux服务器不建议用户直接以root用户进行登录。

一方面可以减少因误操作而导致的破坏;另一方面也降低了特权密码在不安全的网络中被泄露的风险。

1su命令――切换用户:

使用su命令切换为制定的另一个用户,从而具有该用户的所有权限。

eg:当前登录的是root用户,切换到zqq用户:

注解:“-”等同于“--login”或“-l表示切换后进入目标用户的登录shell环境,若缺少此选项则仅切换身份、不切换用户环境。

为了加强su命令的使用控制,可以借助于pam_wheel认证模块,只允许极个别用户使用su命令进行切换。

实现过程:将授权使用su命令的用户添加到wheel组,修改/etc/pam.d/su认证配置以启用pam_wheel认证。

启用pam_wheel认证以后,未加入组内的其他用户将无法使用su命令,尝试进行切换时将会按照“密码不正确”来处理。

使用su命令切换用户的操作记录将会记录到安全日志/var/log/secure文件中。

2sudo命令――提升权限:

  • 使用sudo命令提升执行权限,不过,需要由管理员预先进行授权,指定允许哪些用户以超级用户或其他用户的身份来执行哪些命令。

  • 在配置文件/etc/sudoers中添加授权:

  • sudo机制的配置文件位于/etc/sudoers,文件的默认权限是440,需使用专门的visudo工具进行编辑。

格式:user    MACHINE=COMMANDS

主要包括用户、主机、命令三个部分,即授权哪些人在哪些主机上执行哪些命令。

  • 用户(user):授权的用户名,或采用“%组名”的形式(授权一个组的所有用户)

  • 主机(MACHINE):使用此配置文件的主机名称。此选项主要是方便在多个主机间共用同一份sudoers文件。

  • 命令(COMMANDS):允许授权的用户通过sudo方式执行的特权命令,需填写命令程序的完整路径,多个命令之间以逗号“,”进行分隔。

eg:授权用户zqq能够执行ifconfig命令来修改IP 地址:

查看用户自己获得哪些sudo授权,可以执行“sudo-l”命令:

授权wzx用户可以执行/sbin目录下除ifconfigroute以外的其他所有命令程序:

默认情况下,通过sudo方式执行的操作并不记录。若要启用sudo日志记录以备管理员查看,应在/etc/sudoers文件中增加“Defaultslogfile”设置:

系统引导和登录控制:

开关机安全控制:

1.调整BIOS引导设置:

  • 将第一优先引导设备(FirstBootDevice)设为当前系统所在磁盘;

  • 禁止从其他设备(如光盘、U盘、网络等)引导系统,对应的项设为“Disabled

  • BIOS的安全级别改为“setup”,并设置好管理密码,以防止未授权的修改。

2.禁止 Ctrl + Alt + Del 热键重启:

Linux5.2 存在三键重启:

Linux6.0系统不存在此问题。

3.限制更改GRUB引导参数:

添加到第一个title 之前:

重新开机进入 GRUB菜单时,直接按 e 将无法修改引导参数

若要获得编辑权限,必须先按并根据提示输入正确的GRUB密码

终端及登录控制:

Linux 服务器中,默认开启了 6tty终端,允许任何用户进行本地登录。

1)修改登录提示信息:

系统登录的提示信息保存在/etc/issue/etc/issue.net文件中,其中包括操作系统的类型、内核版本等。

对于生产环境中的服务器,建议修改上述配置文件,以隐藏或伪装登录提示信息。

2)减少开放的tty终端个数:

修改初始配置文件/etc/inittab,以减少开放的tty终端数。

eg:只开启tty1tty2tty3这三个终端:

3)禁止root用户登录:

Linux系统中,login程序会读取/etc/securetty文件,以决定允许root用户从哪些安全终端登录系统。

eg:禁用root用户从tty3tty4登录,可以修改/etc/securetty文件,将tty3tty4注释掉:

4)禁止普通用户登录:

当服务器正在进行备份或调试等维护工作时,不希望再有新的用户登录系统。

只需要简单地建立/etc/nologin文件,login程序会检查/etc/nologin文件是否存在,如果存在则拒绝普通用户登录系统――root用户不受限制。

工作原理:利用shutdown延迟关机的限制,此操作只建议在服务器维护期间临时使用。

减除方法:

手动删除/etc/nologin文件或者重新启动主机,恢复正常。

 

你可能感兴趣的:(linux安全基础,linux安全汇总,linux安全细节)