Linux基线加固:Linux基线检查及安全加固手工实操

admin 2025年4月21日22:22:05评论2 views字数 4744阅读15分48秒阅读模式

基线检查安全加固是安全服务中重要的部分,招聘要求以及面试提问中出现的频率也比较高,虽然现在部分企业使用工具进行基线检查并加固,但是如果企业只有一两台服务器需要进行基线加固的话,使用工具就没有必要了,所以学习手工基线加固还是十分有必要的。本文对Linux基线加固进行实操讲解,使用的是CentOS 7系统,相关内容需要根据企业实际情况做相应的更改!

一、身份鉴别

1.1、配置口令复杂度(必须实施)

/etc/pam.d/system-auth文件中配置:
password  requisite pam_cracklib.so difok=3 minlen=8 ucredit=-1 lcredit=-1 dcredit=1

  • password requisite pam_cracklib.so:这表示当用户更改密码时,需要使用pam_cracklib模块来检查密码的强度。如果密码不满足pam_cracklib的要求,密码更改将被拒绝

  • difok=3:这个参数指定密码中必须有至少3个字符与旧密码不同。这是为了防止用户通过只更改一两个字符来绕过密码更改的要求

  • minlen=8:这表示密码的最小长度必须是8个字符

  • ucredit=-1:这个参数指定密码中必须包含至少一个大写字母。-1表示至少需要一个大写字母,如果设置为0,则不强制要求大写字母

  • lcredit=-1:这个参数指定密码中必须包含至少一个小写字母。-1表示至少需要一个小写字母,如果设置为0,则不强制要求小写字母

  • dcredit=1:这个参数指定密码中必须包含至少一个数字。1表示至少需要一个数字,如果设置为0,则不强制要求数字

总的来说就是设置密码至少8位,包含1位大字母、1位小写字母、1位数字:

Linux基线加固:Linux基线检查及安全加固手工实操Linux基线加固:Linux基线检查及安全加固手工实操

1.2、配置口令认证失败锁定次数(必须实施)

/etc/pam.d/system-auth文件中配置:

auth required pam_tally.so onerr=fail deny=10 unlock_time=300

  • auth required pam_tally.so:这表示当用户尝试认证时,需要使用pam_tally模块来跟踪失败的登录尝试。如果用户连续多次登录失败,该模块将锁定账户

  • onerr=fail:这个参数指定如果pam_tally模块失败(例如,因为账户被锁定),则认证过程将立即失败,不会尝试其他认证模块

  • deny=10:这个参数指定在账户被锁定之前允许的最大失败登录尝试次数,如果用户连续10次登录失败,账户将被锁定

  • unlock_time=300:这个参数指定账户锁定的时间长度(以秒为单位),如果账户被锁定,它将在300秒(即5分钟)后自动解锁

Linux基线加固:Linux基线检查及安全加固手工实操

1.3、配置口令生存期(必须实施)

/etc/login.defs文件中配置:

PASS_MAX_DAYS   90      #新建用户的密码最长使用天数
PASS_MIN_DAYS   0        #新建用户的密码最短使用天数
PASS_WARN_AGE   7      #新建用户的密码到期提前提醒天数

Linux基线加固:Linux基线检查及安全加固手工实操
Linux基线加固:Linux基线检查及安全加固手工实操

1.4、配置使用SSH方式远程访问(必须实施)

使用service sshd status命令查看SSH服务状态:

Linux基线加固:Linux基线检查及安全加固手工实操使用service telnetd status命令查看telnetd状态(要关闭该服务或者不安装该服务),我没有安装该服务所以查询不到该服务:

Linux基线加固:Linux基线检查及安全加固手工实操

1.5、配置历史口令使用策略(建议实施)

/etc/pam.d/system-auth文件中配置:

password sufficient pam_unix.so ............ remember=5    #直接在对应的行后面添加remember=5

Linux基线加固:Linux基线检查及安全加固手工实操

二、访问控制

2.1、禁用共享账户(必须实施)

使用cat /etc/passwd命令查看所用的用户信息,与管理员确认是否存在共享账户

Linux基线加固:Linux基线检查及安全加固手工实操

2.2、锁定无关账户(必须实施)

方式一:使用 vim /etc/passwd命令,将需要锁定的无关账户的shell域后面添加nologin

方式二:使用passwd -l username命令锁定无关账户,使用passwd -d username解锁账户,同时被解锁的账户需要重新设置密码,比较麻烦,推荐使用方式一

一般情况下,需要锁定的账户有:lp、nuucp、hpdb、sync、adm

像我这里只有sync需要设置,其它默认为nologin:

Linux基线加固:Linux基线检查及安全加固手工实操Linux基线加固:Linux基线检查及安全加固手工实操

2.3、清除UID为0的非root账户(必须实施)

因为UID为0的任何用户都拥有系统的最高特权,所以需要保证只有root用户的UID为0

使用awk -F: '($3==0){print $1}' /etc/passwd查看UID为0的用户有哪些:

Linux基线加固:Linux基线检查及安全加固手工实操

2.4、设置umask值(必须实施)

使用以下命令查看umask的值是否存在为027,如果不是就修改为027

  • cat /etc/profile | grep "umask"

  • cat /etc/csh.login | grep "umask"

  • cat /etc/csh.cshrc | grep "umask"

  • cat /etc/bashrc | grep "umask"

Linux基线加固:Linux基线检查及安全加固手工实操我这里只展示修改/etc/csh.login文件,这个文件中没有设置umask值:

Linux基线加固:Linux基线检查及安全加固手工实操

2.5、配置重要目录与文件的权限(建议实施)

对于重要目录,使用ls -l 文件路径命令进行权限设置的检查,使用chmod -R 750 文件路径命令进行权限配置,保证只有root可以读、写、执行这个文件或者目录,重要的目录或文件包括:

  • /etc/

  • /etc/rc.d/init.d/

  • /tmp

  • /etc/inetd.conf

  • /etc/passwd

  • /etc/shadow

  • /etc/group

  • /etc/security

  • /etc/services

  • /etc/rc*.d

Linux基线加固:Linux基线检查及安全加固手工实操

2.6、控制未授权的SUID/SGID(建议实施)

使用命令find / -perm /4000或者find / -perm /2000查找系统中是否存在SUID/SGID权限配置不当的文件或文件夹,如果存在需要进行修改或者禁止,及时避免可能存在的后门程序:

Linux基线加固:Linux基线检查及安全加固手工实操
Linux基线加固:Linux基线检查及安全加固手工实操

如果存在可疑的文件或者文件夹SUID/SGID权限,可以使用chmod u-s 文件/文件夹路径或者chmod g-s 文件/文件夹路径命令删除

2.7、控制任何人都有写权限的目录(建议实施)

使用命令find / -type d -perm -002查找任何人都拥有写权限目录,并且需要严格控制这些目录:

Linux基线加固:Linux基线检查及安全加固手工实操

2.8、控制任何人都有写权限的文件(建议实施)

使用命令find / -type f -perm -002查找任何人都拥有写权限文件,并且需要严格控制这些文件:

Linux基线加固:Linux基线检查及安全加固手工实操

2.9、删除没有属主的文件(建议实施)

使用find / -nouser命令查询没有属主的文件,如果存在没有属主的文件则将其删除:

Linux基线加固:Linux基线检查及安全加固手工实操

2.10、控制异常或隐含文件(建议实施)

使用find / -name "..*"或者find / -name "...*"等命令对异常和隐含文件进行检查,禁用或者删除这些文件:

Linux基线加固:Linux基线检查及安全加固手工实操同时需要注意“.xx“和”.mail“这样的文件名

2.11、禁止Ctrl+Alt+Del(建议实施)

先使用systemctl status ctrl-alt-del.target命令检查是否禁用:

Linux基线加固:Linux基线检查及安全加固手工实操

如果不是,先使用systemctl edit ctrl-alt-del.target命令创建一个覆盖文件来重写ctrl-alt-del.target的行为,此时会打开一个编辑器,然后在打开的编辑器中添加以下内容来禁用重启行为:

  • [Unit]

  • Description=Disable Ctrl+Alt+Del Reboot

  • ExecStart=

保存并关闭文件,然后使用systemctl daemon-reload命令重新加载systemd的配置,此时就可以禁用Ctrl+Alt+Del重启功能

三、安全审计

3.1、配置rsyslog.conf(必须实施)

使用more /etc/rsyslog.conf命令查看是否配置了以下项:

  • kern.warning;*.err;authpriv.nonet@loghost

  • *.info;mail.none;authpriv.none;cron.nonet@loghost

  • *.emergt@loghost

  • local7.*t@loghost

以上配置是用于将日志消息发送到远程日志服务器(loghost)的配置,如果没有配置则需要进行配置,最好配置专门的日志服务器,当然我这里是没有配置的

3.2、配置认证日志(必须实施)

使用more /etc/rsyslog.conf命令查看authpriv参数,看看其是否对所有的登录事件进行了记录

Linux基线加固:Linux基线检查及安全加固手工实操

3.3、配置使用NTP(必须实施)

为了保证日志记录时间的准确性,需要配置NTP服务器,并与NTP服务器时间同步,首先使用ps -ef | grep "ntpd"命令查看NTP进程是否启动(我这里没有安装NTP服务,所以需要使用yum install ntp命令进行安装)如果没有启动则需要使用vim /etc/ntp.conf命令进行查看并编辑NTP服务配置文件

Linux基线加固:Linux基线检查及安全加固手工实操

Linux基线加固:Linux基线检查及安全加固手工实操配置完成后,使用systemctl enable ntpd命令将NTP服务设置为开机自启动,然后使用systemctl start ntpd命令启动NTP服务

3.4、配置安全日志(必须实施)

使用cat /etc/rsyslog.conf | grep "authpriv"命令查看是否配置了安全日志:

Linux基线加固:Linux基线检查及安全加固手工实操

四、入侵防范

4.1、关闭不需要的服务(必须实施)

使用who -r命令查看当前的init级别,如果是命令行级别应该是3,然后使用systemctl list-unit-files --type=service --state=enabled命令查看开启的服务,查看哪些服务是不需要的,使用systemctl stop 服务名称来关闭对应的服务,然后还需要使用systemctl is-enabled 服务名称命令来检查对应不必要的服务是不是设置了开机自启动,如果是则需要使用systemctl disable 服务名称命令来关闭开机自启动:

  • 如果输出为enabled,表示该服务被设置为开机自启动

  • 如果输出为disabled,表示该服务未被设置为开机自启动

  • 如果输出为enabled-runtime,表示该服务被临时启用,仅在当前会话有效,不会影响下次启动

Linux基线加固:Linux基线检查及安全加固手工实操

五、资源控制

5.1、配置登录超时(必须实施)

使用vim /etc/profile命令修改配置文件,在文件末尾添加export TMOUT=180保存并退出,表示设置登录超时时间为3分钟:

Linux基线加固:Linux基线检查及安全加固手工实操

5.2、配置增强被远程访问的安全性(必须实施)

使用find / -name .netrc以及find / -name .rhosts命令检查系统中是否存在.netrc以及.rhosts文件,如果存在则将其删除:

Linux基线加固:Linux基线检查及安全加固手工实操

5.3、限制root账户远程登录(按需实施)

使用vim /etc/ssh/sshd_config命令编辑远程连接配置文件,将#PermitRootLogin yes修改为PermitRootLogin no,表示禁止root账户远程登录,修改完成后保存并退出,然后使用systemctl restart sshd命令重启ssh服务:

Linux基线加固:Linux基线检查及安全加固手工实操

六、其它

6.1、关闭系统core dump状态(建议实施)

检查/etc/security/limits.conf文件中是否存在以下行,如果不存在则添加:

  • * soft core 0

  • * hard core 0

Linux基线加固:Linux基线检查及安全加固手工实操

七、总结

Linux的基线加固内容到这里就结束了,相比Windows的基线加固来说内容少了一些,但是操作的复杂度还是比较大的,毕竟需要编辑各种配置文件,当然如果熟悉的话做起来也是相当快的!文章编写不易,希望大家多多支持!

原文始发于微信公众号(德斯克安全小课堂):Linux基线加固:Linux基线检查及安全加固手工实操

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年4月21日22:22:05
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Linux基线加固:Linux基线检查及安全加固手工实操https://cn-sec.com/archives/3980916.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息