论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com
»
论坛
›
安全
›
数据安全
›
Linux 安全基线查抄与加固_linux基线加固
Linux 安全基线查抄与加固_linux基线加固
吴旭华
论坛元老
|
2024-11-5 14:17:43
|
显示全部楼层
|
阅读模式
楼主
主题
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端口还必要额外做点其他的设置:
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不会克制这些端口的正常通讯。
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 查抄紧张目录和文件的权限设置
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 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
吴旭华
论坛元老
这个人很懒什么都没写!
楼主热帖
【云原生】第二篇--容器管理工具 Docke ...
数据库系统课程设计(高校成绩管理数据 ...
《原CSharp》第二回 巧习得元素分类 子 ...
JVM虚拟机性能监控与故障处理工具(3) ...
使用TrueNas(FreeNas)进行华为手机备 ...
mamba-ssm安装building wheel卡着不动 ...
java中==和equals区别
【图论】—— 有向图的强连通分量 ...
Spark 总复习
AWVS漏洞扫描器的使用
标签云
AI
运维
CIO
存储
服务器
浏览过的版块
图数据库
快速回复
返回顶部
返回列表