Linux 安全基线查抄与加固_linux基线加固

打印 上一主题 下一主题

主题 1007|帖子 1007|积分 3021

为什么对Linux体系要进行安全基线查抄和加固:
固然说Linux操纵体系相比Windows体系更为安全一点,但是在现实利用当中,由于管理员的一些安全意识不敷全面大概一时的疏忽,大概会导致Linux体系中的一些账户和服务没有进行正确的设置,这样就大概产生被黑客利用的风险,因此必要。
留意:以下安全操纵是基于centos 7
留意:在做所有的操纵之前,对源文件都要进行备份以防止意外情况
一.账号管理

1.1 口令锁定策略


实践:
运行下令:more /etc/pam.d/password-auth,发现并没有限制内容,之后必要进行安全加固。

备份:cp -p /etc/pam.d/password-auth /etc/pam.d/password-auth_bak
进行安全加固:在文件的上方添加一行即可
这个设置用来防止账户被暴力破解:
auth        required      pam_tally2.so deny=5 onerr=fail unlock_time=300 even_deny_root=5 root_unlock_time=600

既然有用户锁定,那就可以利用root给锁定用户解锁
先利用下令:pam_tally2 -u 显示已锁定用户
解锁用户利用下令:pam_tally2 -u <要解锁的用户> -r
1.2 口令生存期


先实行设置文件备份:cp -p /etc/login.defs /etc/login.defs_bak

查看文件设置:

对其进行修改,改为90天。
留意:这里修改之后,只会对之后新建的账号生效,对之前已经存在的不会生效。以是这个时间必要利用下令让修改对已有的账户生效:chage -M 90 -W 7
可以利用下令:cat /etc/shadow查看相关账户的信息。

1.3 口令复杂度


利用下令:grep -E ‘minlen|minclass’ /etc/security/pwquality.conf,可以看到当前对暗码复杂度并无要求和规定。

实行修改下令:authconfig --passminlen=8 --passminclass=3 --update
然后再进行查询:

如果要排除这些限制,直接到文件/etc/security/pwquality.conf,然后将minlen和minclass两行参数删除即可。
1.4 查抄暗码重用是否受限制


输入下令查看:vim /etc/pam.d/system-auth,发现并未进行规范

后面添加参数进行修改,代表暗码必须进行五次轮换,不能利用一样的暗码:

1.5 查抄是否存在除root之外UID为0的用户


利用下令:awk -F: ‘($3 == 0){print $1}’ /etc/passwd
   下令表明:
  这条下令的作用是查找/etc/passwd文件中,用户ID(第3个字段)为0的所有账户,并打印出这些账户的用户名(第1个字段)。在Unix/Linux体系中,用户ID为0通常对应于root用户。但现实上,/etc/passwd文件中根用户的UID字段不会显示为0,而是会看到一个x(例如,root:x:0:0...),而现实的UID信息存储在/etc/shadow文件中。因此,此下令大概不会直接找到表示为0的UID,除非/etc/passwd被非标准地修改过。
  

1.6 禁止存在空暗码的帐户


利用下令:awk -F: ‘($2 == “”){print $1}’ /etc/passwd

不存在账户暗码为空的账户。
二.服务管理

2.1 禁止SSH空暗码用户登录


利用下令:more /etc/ssh/sshd_config |grep PermitEmptyPasswords,可以看出查询效果为no,但是被#注销了。

如若查询效果不符合要求,可以在文件中进行设置,将其改为no,这里必要将行首的#删除掉:

当然,末了是必要重启服务来进行生效的:systemctl restart sshd
2.2 SSH多次登录失败后锁定用户


先对设置文件进行查看,可以发现并未有限制:

然后在内里添加登录错误次数限制:
auth       required     pam_tally2.so deny=5 unlock_time=300 even_deny_root=5 root_unlock_time=600

同样,这里也必要重启服务进行设置生效:systemctl restart sshd
2.3 限制root用户长途登录


查询设置文件:more /etc/ssh/sshd_config |grep PermitRootLogin

对设置文件进行修改,取消掉行首的解释,然后修改为no即可:

同理,更改完成之后重启服务:systemctl restart sshd
2.4 查抄ssh利用的端口


查询设置文件:more /etc/ssh/sshd_config |grep Port

对设置文件进行修改,改为多少看需求:

这里的自界说的ssh端口还必要额外做点其他的设置:
  1. semanage port -a -t ssh_port_t -p tcp 222
复制代码
  下令semanage port -a -t ssh_port_t -p tcp 222
是在Selinux环境下用于添加一个新的端口界说的下令。下面是对这条下令的简单解析:
  

  • semanage 是 Security Enhanced Linux 管理工具,用于管理SELinux策略和设置。
  • port 子下令用于管理SELinux中端口的范例标签(security context),即指定哪些端口应该被赋予什么样的安全上下文。
  • -a 选项表示添加(add)一个新的端口界说。
  • -t ssh_port_t 指定了端口的安全上下文范例(type)。在这个例子中,ssh_port_t 是与SSH服务关联的安全上下文,意味着您希望将端口222标志为与SSH服务类似的安全级别,答应SSH服务通过这个端口通讯。
  • -p tcp 指定了协议范例为TCP。SELinux规则可以基于协议分别设置,这里指定的就是TCP协议。
  • 222 是您要添加和设置的端标语。
  综上所述,这条下令的作用是告诉SELinux体系,将TCP协议下的222端口标志为ssh_port_t范例,通常这一步骤是为了答应SSH服务大概其他必要类似安全上下文的服务通过222端口进行通讯。这在修改了SSH服务默认监听端口大概设置额外的SSH服务端口时非常有用,确保SELinux不会克制这些端口的正常通讯。
  1. firewall-cmd --zone=public --add-port=222/tcp --permanent
复制代码
  表明如下:
  

  • firewall-cmd:是管理Linux防火墙(通常是firewalld服务)的下令行工具。
  • --zone=public:指定操纵的地区为public。Firewalld将网络流量分别到不同的地区,public是默认地区之一,适用于外部网络,如互联网。
  • --add-port=222/tcp:添加一个端口规则,指定打开TCP协议的222端口。这里直接指定了端标语和协议,不必要像您提到的那样在ssh后面重复端口信息。
  • --permanent:表示该规则在体系重启后仍然有用,如果没有这个参数,则规则只会临时生效,直到下次重启或防火墙规则被革新。
  成功实行此下令后,会开放TCP 222端口用于SSH连接,并且这个更改是长期化的。必要留意的是,如果之前有运行过没有--permanent参数的类似下令,应当先用firewall-cmd --reload下令来载入永世规则,大概重启firewalld服务使改动生效。
  同理,更改完成之后重启服务:systemctl restart sshd
2.5 设置登录超时主动注销


查询设置:more /etc/profile |grep export ,可以看到并未存在相关设置参数

现在手动进行设置修改,直接在文件的末了一行添加 export TMOUT=180 就行:

留意:等号前后不能有空格
同理,更改完成之后重启服务:systemctl restart sshd
三.权限管理

3.1 查抄默认umask值


什么是umask值?
   umask值(用户文件创建掩码)是在Linux和其他类Unix体系中利用的一个紧张概念,用于控制用户在创建新文件或目录时,默认赋予这些文件或目录的权限。umask是一个由三个八进制数字组成的值,分别对应文件或目录的用户(owner)、组(group)、其他人(others)的权限位。
  每个数字分别代表要从默认的最大权限中移除的权限位。在八进制表示中,数字4表示读权限(r),2表示写权限(w),1表示实行权限(x),而0表示没有任何权限。因此,一个范例的umask值如022,意味着:
  

  • 第一位0表示用户(owner)没有权限被去除(保持全部权限);
  • 第二位2表示组(group)的写权限被去除;
  • 第三位2同样表示其他人(others)的写权限被去除。
  根据这个umask值,新创建的文件默认权限会是666(-rw-rw-rw-)减去022,效果是644(-rw-r–r–),即文件所有者有读写权限,而组和其他用户只有读权限。对于目录,默认是从777开始减去umask值,因此umask 022下的新目录权限会是755(drwxr-xr-x)。
  通过调整umask值,体系管理员和用户可以微调体系上的安全策略,限制不须要的访问权限,从而加强体系安全性。umask可以在用户的设置文件中设置,如~/.bashrc或/etc/profile,也可以通过运行umask下令临时或永世地修改。
  查看设置文件,文件末端并未设置umask值:

更改设置文件,然后启用生效:source /etc/profile:

设置好umask之后,新建文件夹的权限就会按umark分配,其中也包括新建的文件:

3.2 查抄紧张目录和文件的权限设置


  1. ls -l /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/hosts.allow /etc/services /etc/ssh/sshd_config
复制代码
  

  • /etc/passwd:存储用户账户信息的文件
  • /etc/shadow:存储用户暗码哈希和账户过期信息等敏感数据的文件
  • /etc/group:界说用户组信息的文件
  • /etc/gshadow:类似于/etc/group,但包罗组暗码等敏感信息
  • /etc/hosts.allow:界说哪些主机被答应访问本机网络服务的访问控制列表文件
  • /etc/services:界说网络服务与其对应的端标语的文件
  • /etc/ssh/sshd_config:SSH服务器的设置文件,控制SSH服务的行为和安全设置
  3.3 限制可以SU为root的用户

做这一步的目标是防止root暗码泄露之后,利用其他低权限账户su,然后进行高危操纵:

查看设置文件,已被解释,存在不合规行为:

更改完之后,再su就不行了

然后,如何添加用户能够su到root呢:usermod -G wheel <必要添加的用户名>
移除操纵下令:gpasswd -d <必要移除的用户名> wheel
四.日志管理

4.1 查抄rsyslog服务启用状态以及对登录事件的记录


对于/etc/rsyslog.conf文件的解析,可以参考两篇文章:
日志管理-rsyslogd服务(/etc/rsyslog.conf 设置文件)-CSDN博客
Linux 体系日志管理 rsyslogd设置文件 - lizhouwei - 博客园 (cnblogs.com)
查看设置文件:more /etc/rsyslog.conf,是符合规定的。如果没有大概不同等,可以自己设置和添加

校验rsyslog服务状态,确认是否启动:systemctl status rsyslog
若未启动,利用下令:systemctl start rsyslog 开启服务
但是为了以防万一,最好将其添加到开机自启动服务中去:systemctl enable rsyslog

对设置文件及服务修改完成之后,记得重启rsyslog服务:systemctl restart rsyslog
4.2 查抄是否启用记录定时任务行为日志功能


查看设置文件:more /etc/rsyslog.conf

如果不符合规定,可以按照这个进行设置修改或添加,然后重启服务:systemctl restart rsyslog
4.3 查看SSH LogLevel设置是否为INFO


查看设置文件:more /etc/ssh/sshd_config | grep LogLevel,这里固然设置的级别是INFO,但是已经被解释掉了,必要将行首的#删除。

修改完成之后,重启服务:systemctl restart sshd
4.4 是否将/var/log/messages文件设置为只可追加


查看隐藏权限:lsattr /var/log/messages,这里并未设置只可追加

   利用 lsattr 下令,你可以看到文件是否被设置了以下一些特殊的属性:
  

  • i (Immutable):文件不能被修改、删除或重命名。
  • a (Append Only):文件只能被追加内容,不能被删除或重写。
  • S (Sparse file):稀疏文件属性,用于大文件优化存储。
  • s (Secure Deletion):当文件被删除时,会安全擦除其数据,防止规复。
  • u (Undelete):一种“防删除”标志,只管Linux体系中很少直接支持此特性。
  • c (Compressed):文件内容被压缩。
  • d (No dump):在体系备份时,该文件不会被dump程序备份。
  • e (Extent format):文件利用extent来记录其磁盘空间的分配情况,主要针对大文件优化。
  • A (No atime updates):访问文件时不更新访问时间戳。
  根本用法如下:
  

  • 查看指定文件或目录的属性:lsattr [选项] 文件或目录
  • 若要查看目录下的所有文件属性(递归),需加上 -R 选项:lsattr -R 目录
  利用下令:chattr +a /var/log/messages,设置日志文件只可追加。

学习筹划安排


我一共分别了六个阶段,但并不是说你得学完全部才华上手工作,对于一些初级岗位,学到第三四个阶段就足矣~
这里我整合并且整理成了一份【282G】的网络安全从零基础入门到进阶资料包,必要的小同伴可以扫描下方CSDN官方合作二维码免费领取哦,无偿分享!!!
①网络安全学习路线
②上百份渗出测试电子书
③安全攻防357页条记
④50份安全攻防口试指南
⑤安全红队渗出工具包
⑥HW护网行动经验总结
⑦100个毛病实战案例
⑧安全大厂内部视频资源
⑨历年CTF夺旗赛题解析
本文转自 https://blog.csdn.net/Just_like_this/article/details/138824050?spm=1001.2100.3001.7377&utm_medium=distribute.pc_feed_blog_category.none-task-blog-classify_tag-14-138824050-null-null.nonecase&depth_1-utm_source=distribute.pc_feed_blog_category.none-task-blog-classify_tag-14-138824050-null-null.nonecase,如有侵权,请接洽删除。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

吴旭华

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表