用户名
Email
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
应用中心
帖子
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com技术社区
»
论坛
›
安全
›
网络安全
›
Linux 安全基线查抄与加固
Linux 安全基线查抄与加固
农妇山泉一亩田
论坛元老
|
2024-7-13 09:12:26
|
显示全部楼层
|
阅读模式
楼主
主题
1649
|
帖子
1649
|
积分
4947
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
为什么对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 <username>
可以使用命令: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,配置日志文件只可追加。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
继续阅读请点击广告
回复
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
农妇山泉一亩田
论坛元老
这个人很懒什么都没写!
楼主热帖
厉害了,腾讯云云巢荣获信通院“云原生 ...
2022 春节抖音视频红包系统设计与实现 ...
数据库概述
【Redis高手修炼之路】②Redis的五大数 ...
原型设计工具比较及实践--滴爱音乐 ...
ABP Framework 5.3.0 版本新增功能和变 ...
OpenHarmony和HarmonyOS有什么区别?这 ...
LoRa模块无线收发通信技术详解 ...
多线程(一)-两种创建线程的方式 ...
Kafka原理介绍+安装+基本操作(kafka o ...
标签云
国产数据库
集成商
AI
运维
CIO
存储
服务器
快速回复
返回顶部
返回列表