操作系统加固
1 检查是否配置登陆超时时间设置
1 2 3 | 编辑vi /etc/profile文件,配置TMOUT将值设置为低于300. TMOUT=300 |
2 检查是否禁止root用户登录FTP
设置如下将对应配置文件中,设置root,禁止登录的用户列表中添加root用户
1 2 3 4 5 6 | 1.编辑vi /etc/ftpaccess,将root前的#去掉 2.编辑vi /etc/vsftpd/ftpusers,将root前的#去掉 3.编辑vi /etc/ftpusers,将root前的#去掉 4.编辑vi /etc/vsftpd.ftpusers,将root前的#去掉 5.编辑v i /etc/pam.d/vsftpd,将root前的#去掉 6.编辑vi /etc/pam.d/ftp,将root前的#去掉 |
3 检查是否使用SSH协议进行远程维护
1 2 3 4 5 6 | 开启ssh,关闭telnet 1.关闭telnet服务[仅供参考,不通的系统会有差别] a)vi /etc/xinetd.d/telnet,将disable=no改成disable=yes; b)chkconfig telnet off;如果需要设置telnet服务不为开机自启动,使用命令chkconfig -del telnet或者chkconfig --del telnet 2.使用命令server xinetd restart或者/etc/init.d/xinetd restart使更改生效。 |
4 检查是否配置日志文件安全权限
1 2 3 4 5 6 | 1.对日志文件进行赋权:chmod 640 / var /log/messages,权限要小于等于640 2.对日志文件进行赋权:chmod 640 / var /log/secure,权限要小于等于640 3.对日志文件进行赋权:chmod 640 / var /log/maillog,权限要小于等于640 4.对日志文件进行赋权:chmod 640 / var /log/cron,权限要小于等于640 5.对日志文件进行赋权:chmod 640 / var /log/spooler,权限要小于等于640 6.对日志文件进行赋权:chmod 640 / var /log/boot.log,权限要小于等于640 |
5 检查是否启用Syslog日志审计
1 2 3 4 | 系统可能是syslog或rsyslog,配置存在其中一个即可。 1.vi /etc/syslog.conf,修改或配置authpriv.* / var /log/secure 2.vi /etc/rsyslog.conf,修改或配置authpriv.* / var /log/secure |
6 检查是否启用远程日志功能
1 2 3 4 | 系统可能是syslog或rsyslog,配置存在其中一个即可。 1.配置文件添加:vi /etc/syslog.conf,加上*.* @10.254.90.58 //注意空白处为tab键 2.配置文件添加:vi /etc/rsyslog.conf,加上*.* @10.254.90.58 //注意空白处为tab键 |
7 检查是否记录cron行为日志
1 2 3 4 | 系统可能是syslog或rsyslog,配置存在其中一个即可。 1.vi /etc/syslog.conf,修改或配置cron.* / var /log/cron 2.vi /etc/rsyslog.conf,修改或配置cron.* / var /log/cron |
8 检查是否配置文件与目录缺省权限控制
1 2 3 4 | 配置的值可以为:027|037|077|127|137|177|327|337|377|777|067|167|367|767 1.vi /etc/login.defs,修改或配置umask 027 2.vi /etc/profile,修改或配置umask 027 |
9 检测是否限制 root 用户远程登录
1 | 修改配置:vi /etc/ssh/sshd_config,修改或配置PermitRootLogin no |
10 检查是否限制用户su到root
1 2 | 1.添加配置:vi /etc/pam.d/su,修改或配置auth sufficient pam_rootok.so 2.添加配置:vi /etc/pam.d/su,修改或配置auth required pam_wheel.so group =wheel |
11 检查是否配置用户最小授权
1 2 3 | 1.chmod 644 /etc/passwd 设置文件权限低于等于644 2.chmod 644 /etc/ group 设置文件权限低于等于644 3.chmod 600 /etc/shadow设置文件权限低于等于600 |
12 检查是否关闭不必要的服务和端口
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | 1.通过chkconfig --list daytime查看对应的服务是否开启,通过chkconfig daytime off 关闭。 同理关闭如下服务: 2.daytime-udp 3.time 4.time-udp 5.echo 6.echo-udp 7.discard, 8.discard-udp 9.chargen 10.chargen-udp, 11.ntalk 12.ident 13.printer 14.bootps 15.tftp 16.kshell 17.klogin 18.lpd 19.nfs 20.nfs. lock 21.sendmail 22.ypbind |
13 检查是否删除或锁定无关账号
1 2 3 4 5 6 7 8 | 配置listen,gdm,webservd,nobody,nobody4,noaccess账号的状态,通过命令如下: 1.chsh listen -s /sbin/nologin 2.chsh gdm -s /sbin/nologin 3.chsh webservd -s /sbin/nologin 4.chsh nobody -s /sbin/nologin 5.chsh nobody4 -s /sbin/nologin 6.chsh noaccess -s /sbin/nologin |
14 检查用户 FTP 访问安全是否配置
1 2 3 4 | 如果有开启vsftpd则需要配置如下两个文件,内容添加root 1.vi /etc/vsftpd.chroot_list配置root 2.vi /etc/vsftpd/chroot_list配置root |
15 检测是否删除潜在危险文件
1 2 3 | 1.全局搜索是否存在:.rhosts文件,如果存在则删除掉。 2.全局搜索是否存在:.netrc文件,如果存在则删除掉。 3.全局搜索是否存在:.hosts.equiv文件,如果存在则删除掉。 |
16 检查密码过期时间
1 | 编辑:vi /etc/login.defs设置PASS_MAX_DAYS=90,时间要小于等于90 |
17 检查密码创建要求是否配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 1.vi /etc/pam.d/common-password,修改或配置password requisite pam_cracklib.so retry=3 minlen=8 lcredit=-1 ocredit=-1 ucredit=-1 dcredit=-1 use_authtok 匹配正则如下: ^password\\s+requisite\\s+pam_cracklib\\.so\\s+.*retry=\\d\\s+.*((minlen=([8-9]|[1-9]\\d)+\\s+.*minclass=[3-4])|(minclass=[3-4]\\s+.*minlen=([8-9]|[1-9]\\d+))) 2.vi /etc/pam.d/system-auth,password requisite pam_cracklib.so try_first_pass retry=3 minlen=8 minclass=3 匹配正则如下: ^(\\s*|\\t*)password\\s+requisite\\s+pam_cracklib\\.so\\s+.*retry=\\d\\s+.*((minlen=([8-9]|[1-9]\\d)+\\s+.*minclass=[3-4])|(minclass=[3-4]\\s+.*minlen=([8-9]|[1-9]\\d+))) 3.vi /etc/login.defs,修改或配置PASS_MIN_LEN 8,设置为大于等于8 4.vi /etc/pam.d/system-auth,修改或配置pam_passwdqc.so |
18 检查是否禁止匿名FTP
1 2 3 | 1.vi /etc/vsftpd.conf,配置修改anonymous_enable=NO 2.vi /etc/vsftpd/vsftd.conf,配置修改anonymous_enable=NO |
19.用户密码强度 16位
20.禁止普通用户 su 到root 完成
1 | echo 'auth required pam_wheel.so use_uid' >> /etc/pam.d/su |
21.设置用户登录错误次数
1 2 3 4 5 6 | sed -i '/%PAM-1.0/a\auth required pam_tally2.so deny=3 unlock_time=150 even_deny_root root_unlock_time300' /etc/pam.d/sshd #am_succeed_if模块为某些用户提供例外 #http://www.voidcn.com/article/p-rubmrbyd-bua.html /sbin/pam_tally2 -u <username> --reset=0 手动解锁 注意事项 centos7上需要将:/etc/hosts.deny文件中对应的失败IP地址删除 |
22.锁定重要文件 完成
1 2 3 4 | chattr +i /etc/passwd /etc/shadow /etc/ group /etc/gshadow chattr -i /etc/passwd /etc/shadow /etc/ group /etc/gshadow 5.设置禁止密码登录,只允许使用key登录 完成 sed -i 's/^PasswordAuthentication yes/PasswordAuthentication no/g' /etc/ssh/sshd_config" |
23.删除系统信息 完成
1 | rm -f /etc/issue /etc/issue.net /etc/redhat-release /etc/motd /etc/centos-release /etc/system-release |
"一劳永逸" 的话,有是有的,而 "一劳永逸" 的事却极少
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具