安全加固方案原则
1.版本升级
对于系统和应用在使用过程中暴露的安全缺陷,系统或应用厂商会及时发布解决问题的升级补丁包。升级系统或应用版本,可有效解决旧版本存在的安全风险。
2.关闭端口服务
在不影响业务系统正常运行情况下,停止或禁用承载业务无关的服务和服务端口,可有效避免无关服务造成的安全风险。
3.修改配置项
操作系统、安全设备、数据库、中间件、第三方应用和业务系统可更改的配置中与安全相关的设置参数等信息,通过修改安全配置,可以为网络和应用提供必要的安全保护。
4.修改代码(可选)
修改代码一般由系统开发商完成,安全加固支持方仅提供加固建议及加固有效性验证。
5.主机和网络ACL策略
主机和网络ACL策略是一类临时安全加固方法。
ACL通常应用在系统的流量控制上,可通过实施ACL有效的部署网络出/入口策略,控制对内网资源的访问能力,来保障资源安全性。
6.部署设备防护(可选)
部署设备防护的安全加固方式一般由设备厂商完成。
安全加固测试
加固方向
1.账号管理与认证授权
2.通信协议
3.补丁管理
4.服务进程与启动
5.banner与 自动注销
账号管理与认证授权⭐
为不通的管理员分配不通的账号
目的:根据不同用途设置不同账户账号,提高安全层级
创建多用途账号
useradd username
passwd username
修改目录权限
chmod 750 dir
chown user:group dir
普通账户使用特定授权命令
sudo ifconfig
修改sudo的提权应用
vim /etc/sudoers 或者 命令visudo
testn localhost=NOPASSWD:ALL,usr/sbin/useradd,/usr/sbin/ifconfig
testn localhost=NOPASSWD:ALL,!/usr/sbin/ifconfig
jerry可以在本地使用useradd命令
jerry localhost=/usr/sbin/useradd
注释
testn:用户名
localhost:主机名
NOPASSWD:ALL:sudo时不需要密码
!:不能执行什么命令
usr/sbin/useradd,/usr/sbin/ifconfig:多个命令用,隔开
检查高权限文件
过高的权限或在不应该时间段创建或修改的文件
find / -type f ( -perm -00007 ) -a -ctime -1 |xargs -I {} ls -lh {}
-ctime:属性变更
-mtime:内容修改
atime:被访问
删掉不需要的账号,修改默认账号shell环境
目的:删除系统不需要的默认账号、更改危险账号的默认shell变量,降低被利用的可能性
删除/锁定多余用户与组
userdel -r username
groupdel groupname
passwd -l username
修改程序账号的登录shell
usermod -s /sbin/nologin username
限制超级管理员远程登录
目的:限制具备超级权限的用户远程登录
1.vim /etc/ssh/sshd_config
进制root用户远程登录
PermitRootLogin no
2.重启sshd服务
systemctl restart sshd
删除root以外UID为0的用户
目的:减少被越权使用的可能性
1.检查哪些账户的UID为0
awk -F: ‘($3 == 0) { print $1 }’ /etc/passwd
2.删除账户,或编辑passwd与shadow文件
userdel -r username
安全日志
显示所有登录用户的信息
last
显示登录失败的用户信息
lastb
安全日志
cat /var/log/secure
不应存在位于高权组的账户
目的:检查是否有账号获取过高权限
检查哪些账户属于其他组
1.uid起始值:正常1000以后,特别关注少于1000
grep -v ^# /etc/login.defs |grep “^GID_MIN”|awk ‘{print $2}’
2.能登录系统用户的组id
awk -F: ‘$3>1000{print $1}’ /etc/passwd |xargs -I {} grep {} /etc/group
3.能登录系统用户的用户id
grep -v “/sbin/nologin” /etc/passwd |awk -F : ‘{print $1}’ | xargs -I {} grep {} /etc/group
缩短默认密码生存周期
目的:对于采用静态密码认证的设备,账户密码的生存周期不长于90天。
修改文件密码策略文件
vim /etc/login.defs
PASS_MAX_DAYS 90 # 最长使用期限
PASS_MIN_DAYS 0 # 最短使用期限
PASS_MIN_LEN 8 # 密码最小长度
PASS_WARN_AGE 7 # 最长期限到期前7天提醒更改密码
设置密码强度策略
目的:规范使用高强度密码,延长被爆破的时间
修改pam认证文件
vim /etc/pam.d/system-auth
添加、修改内容
password requisite pam_cracklib.so try_first_pass retry=3 dcredit=-1 lcredit=-1 ucredit=-1 ocredit=-1 minclass=3 minlen=8
注释
try_first_pass:修改密码前输入当前密码
local_users_only:本地用户
retry:重试次数
authtok_type:修改密码的提示内容
dcredit=-1:至少一个数字
lcredit=-1:至少一个小写字母
ucredit=-1:至少一个大写字母
ocredit=-1:至少一个特殊字符
minclass=3:至少三个字符(大小写字母,数字,特殊字符)
minlen=8:至少八位密码
remember=3:防止使用前三次内设置过的密码
centos7以后设置密码复杂性
文件位置 /etc/security/pwquality.conf
命令:authconfig
authconfig --passminlen=8 --update # 密码最短8位
authconfig --enablereqlower --update # 包含一个小写
authconfig --enablerequpper --update # 包含一个大写
authconfig --enablereqdigit --update # 包含一个数字
authconfig --enablereqother --update # 包含一个字符
设置强制密码历史
目的:防止被社工字典破解
修改pam认证文件
vim /etc/pam.d/system-auth
添加、修改内容
password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok remember=5
设置账户锁定策略
目的:防止被连续试探密码,降低爆破可能性
vim /etc/pam.d/system-auth
加在注释文档后一行就行,连续6次失败,就拉黑
auth required pam_tally2.so deny=6 unlock_time=300 even_deny_root root_unlock_time=60
查看登录失败次数
[root@bogon ~]# pam_tally2 --user hello
Login Failures Latest failure From
hello 6 05/31/23 10:36:23 pts/0
重置登录失败
pam_tally2 --user hello --reset
设置关键目录的权限
目的:在设备权限配置能力内,根据用户的企业需要,配置其所需的最小权限,以减少非法访问的可能性。
更改账户组文件的权限设置
chmod 644 /etc/passwd
chmod 600 /etc/shadow
chmod 644 /etc/group
去除多余的写入操作,例如
chmod -R go-w /etc
修改umask值
目的:修改创建文件或目录时的默认权限,防止属于该组的其他用户级别组的用户修改该用户的文件。
修改启动脚本文件
/etc/profile
/etc/csh.login
/etc/csh.cshrc
/etc/bashrc
在文件末尾加入umask值
umask 027
限制硬件资源
目的:限制用户对系统资源的使用,减缓DDOS等攻击危害。
1.修改限制文件
vim /etc/security/limits.conf
加入如下内容
- soft core 0
- hard core 0
- hard rss 5000
- hard nproc 20
* soft nproc 4096 # 所有的用户默认可以打开最大的进程数为 4096
root soft nproc unlimited # root 用户默认可以打开最大的进程数 无限制的。
2.修改pam的本地登录文件
vim /etc/pam.d/login
在文件末尾加入信息
session required /lib64/security/pam_limits.so
3.日常收集进程数使用
ps aux |grep httpd |wc -l
对用户使用ls、rm设置别名
目的:让ls随时看清文件属性,让rm需要确认后删除目标实施方法
1.修改当前用户的登录启动脚本
vim ~/.bashrc
追加别名命令
alias ls=“ls -alh”
alias rm=“rm -i”
禁止任何人su至root账户
目的:避免任何人使用su切换到root,减少提权风险
1.修改su的配置文件
vim /etc/pam.d/su
auth sufficient /lib/security/pam_rootok.so
auth required /lib/security/pam_wheel.so group=wheel
2.如果需要su切换,将用户加入wheel组
usermod -g wheel luobo
去掉所有人SUID和SGID
目的:防止被利用提权
查找具有SUID和SGID的对象
find / -type f ( -perm -04000 -o -perm -02000 ) -exec ls -1g {} ;
chmod ugo-s file
对开放目录设置粘滞位
目的:允许小规模开放目录,用户作为暂存目录使用
为/tmp目录添加粘滞位
chmod +t /tmp/
我们都知道,/tmp常被我们用来存放临时文件,是所有用户。但是我们不希望别的用户随随便便的就删除了自己的文件,于是便有了粘连位,它的作用便是让用户只能删除属于自己的文件。
也就是说,即便该目录是任何人都可以写,但也只有文件的属主才可以删除文件。
启用日志记录功能,使用日志服务器
目的:增加审计记录,分布保存日志
机器准备:
主机名 | IP |
---|---|
node01 | 10.0.1.110 |
log(日志服务器) | 10.0.1.111 |
node01操作:
1.修改应用服务器日志配置文件
vim /etc/rsyslog.conf
确认关键日志审计是否存在
*.info;mail.none;authpriv.none;cron.none /var/log/messages
authpriv.* /var/log/secure
添加两行转发日志信息
.info;mail.none;authpriv.none;cron.none @10.0.1.111
authpriv. @@10.0.1.111
注释:
@:使用tcp协议
10.0.1.111:把日志内容写入到10.0.1.111机器上
@@:协议udp协议
2.重启rsyslog
systemctl restart rsyslog.service
log(日志服务器):开启配置文件
1.修改应用服务器日志配置文件
vim /etc/rsyslog.conf
15 $ModLoad imudp
16 $UDPServerRun 514
19 $ModLoad imtcp
20 $InputTCPServerRun 514
22 t e m p l a t e R e m o t e , " / v a r / l o g / template Remote,"/var/log/% templateRemote,"/var/log/YEAR%-% M O N T H MONTH%-% MONTHDAY%/%fromhost-ip%.log"
47 #### RULES ####
48 :fromhost-ip, !isequal, “127.0.0.1” ?Remote
49 & stop
2.重启rsyslog
systemctl restart rsyslog.service
3.查看日志是否有时间段的目录,有了则成功
ls /var/log
4.日志服务器实时查看日志,在客户机器输入 logger luobo
tail -f /var/log/2023-05-31/10.0.1.110.log
重要日志权限不应该高于640
防止日志泄露敏感信息
ls -la /var/log/
chmod -R 640 /var/log
设置关键文件底层属性
目的:增强关键文件的底层属性,降低篡改风险
1.修改关键文件的日志和底层属性
chattr +a /var/log/messages
chattr +i /etc/shadow
chattr +i /etc/passwd
chattr +i /etc/group
不只限于上述文件,可用lsattr查看更改结果
通信协议⭐
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数网络安全工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注网络安全获取)
还有兄弟不知道网络安全面试可以提前刷题吗?费时一周整理的160+网络安全面试题,金九银十,做网络安全面试里的显眼包!
王岚嵚工程师面试题(附答案),只能帮兄弟们到这儿了!如果你能答对70%,找一个安全工作,问题不大。
对于有1-3年工作经验,想要跳槽的朋友来说,也是很好的温习资料!
【完整版领取方式在文末!!】
93道网络安全面试题
内容实在太多,不一一截图了
黑客学习资源推荐
最后给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
1️⃣零基础入门
① 学习路线
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
② 路线对应学习视频
同时每个成长路线对应的板块都有配套的视频提供:
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
黑客学习资源推荐
最后给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
1️⃣零基础入门
① 学习路线
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
② 路线对应学习视频
同时每个成长路线对应的板块都有配套的视频提供:
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-gr85EYMV-1712679292604)]