linux系统安全设置策略
1.检查是否设置口令长度至少8位,并包括数字,小写字符、大写字符和特殊符号4类中至少2类。
1 2 3 4 | 在文件 /etc/login .defs中设置 PASS_MIN_LEN 不小于标准值 修改 /etc/pam .d /system-auth 文件, 在ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1 选3种,追加到password requisite pam_cracklib.so后面,添加到配置文件中。 例如:password requisite pam_cracklib.so ucredit=-1 lcredit=-1 dcredit=-1 注:ucredit:大写字母个数;lcredit:小写字母个数;dcredit:数字个数;ocredit:特殊字符个数 |
2.检查是否设置账户口令的生存期不长于90天。
1 2 3 4 5 | 修改 /etc/login .def PASS_MAX_DAYS 90 --99999 PASS_MIN_DAYS 10 --0 PASS_MIN_LEN 8 --5 PASS_WARN_AGE 5 --7 |
3.检查是否设置用户不能重复使用最近5次(含5次)内已使用的口令。
1 2 | 修改文件 # vi /etc/pam.d/system-auth 在 password sufficient pam_unix.so use_authtok md5 shadow remember=10 |
4.检查是否设置当用户连续认证失败次数超过5次,锁定该用户使用的账户。
1 2 | # vim /etc/pam.d/login auth required pam_tally2.so deny=5 unlock_time=300 even_deny_root root_unlock_time=10 |
5.检查默认账号,是否删除或锁定与设备运行、维护等工作无关的账号。查看多余账号# cat /etc/passwd
1 2 3 4 5 6 | [root@localhost ~] # userdel username [root@localhost ~] # groupdel groupname 删除的用户,如adm,lp, sync , shutdown ,halt,news,uucp,operator, games,gopher等。 删除的组,如adm,lp,news,uucp,games,dip,pppusers,popusers, slipusers等。 |
6.检查远程登录限制,是否限制具备超级管理员权限的用户远程登录。
1 2 3 4 5 | 限制具备超级管理员权限的用户远程登录。远程执行管理员权限操作,应先以普通权限用户远程登录后,再切换到超级管理员权限账号后执行相应操作。 Root从远程使用Telnet登录; 普通用户从远程使用Telnet登录; Root从远程使用 ssh 登录; 普通用户从远程使用 ssh 登录; |
7.检查用户缺省访问权限,是否配置用户缺省访问权限,屏蔽掉新建文件和目录不该有的访问允许权限。
1 2 3 4 | 查看新建的文件或目录的权限,操作举例如下: #ls -l dir; #查看目录dir的权限 #cat /etc/default/login /etc/default/login不存在 (查看是否有umask027内容) |
8.检查服务开启,是否最小化,关闭不必要的服务。
1 2 | /etc/rc .d /init .d或 # rpm -qi $(rpm -qf /etc/rc.d/init.d/sshd) chkconfig –level 2345 服务名称 off |
9.检查补丁安全,是否在确保业务不受影响的情况下及时更新操作系统补丁。
1 2 3 4 5 | 查看补丁安装情况: # rpm –qa | grep patch /etc/sysconfig/yum-cron CHECK_ONLY= yes 更新的补丁在: http: //itrc .hp.com /service/patch/releaseIndexPage . do |
10.检查日志审计功能设置,是否配置日志审计功能
1 2 3 4 5 6 7 8 | 查看日志服务是否开启 #service -–status-all | grep syslog 在root权限下,使用命令 more 、 cat 或 vi 查看 /var/log/message 系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一 /var/log/secure 与安全相关的日志信息 /var/log/maillog 与邮件相关的日志信息 /var/log/cron 与定时任务相关的日志信息 /var/log/spooler 与UUCP和news设备相关的日志信息 /var/log/boot .log 守护进程启动和停止相关的日志消息 |
11.检查远程管理加密协议,是否配置使用SSH等加密协议进行远程管理,禁止使用Telnet等明文传输协议。
1 2 3 | 查看SSH服务状态: #ps –elf|grep ssh 查看Telnet服务状态: #ps –elf|grep telnet (是否有SSH进程存在: #ps –elf|grep ssh) |
12.检查登录超时时间设置,是否设置登录账号的登录超时为30分钟。
1 2 3 4 5 | cat / etc / profile|grep TMOUT - n 查看超时时间参数TMOUT 在 / etc / profile 后面添加 export TMOUT = 1800 readonly TMOUT |
13.ssh安全设置策略(/etc/ssh/sshd_config)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | Port 22 #ssh服务端口号,我们可以改成高端口,一般端口扫描工具不会扫描高端口的。 AddressFamily any #ssh服务的协议族,可以用ipv4 ipv6或者直接使用any。 Protocol 2 #ssh服务协议版本,默认为1,建议使用2,1有漏洞。 KeyRegenerationInterval 3600 # 在SSH-1协议下,短命的服务器密钥将以此指令设置的时间为周期(秒),不断重新生成。这个机制可以尽量减小密钥丢失或者黑客攻击造成的损失。 ServerKeyBits 2048 # 指定临时服务器密钥的长度。1024存在认证漏洞,安全最低2048位。 LogLevel ERROR #日志级别,可以使用 QUIET, FATAL, ERROR, INFO(默认), VERBOSE, DEBUG, DEBUG1, DEBUG2, DEBUG3。 LoginGraceTime 30 #限制用户必须在指定的时限内认证成功,建议设置低,增加暴力破解难度,单位为秒。 MaxAuthTries 3 #最多登录尝试次数,建议设置低一些,加大暴力破解难度。 RSAAuthentication yes #使用纯 RSA公钥认证。 PubkeyAuthentication yes #使用公钥认证,推荐使用安全高效! AuthorizedKeysFile . ssh /authorized_keys #用户公钥文件保存路径,默认为用户的home目录下.ssh隐藏文件夹中的authorized_keys,建议更换到其他目录,防止丢失或者被恶意登陆者在默认的这个路径中找到篡改。 PermitEmptyPasswords no #不允许空密码登录,这个太危险啦。 GSSAPIAuthentication no #不基于 GSSAPI 的用户认证,关闭,优化性能。 UsePAM no #使用PAM认证,如果不用LDAP之类的登陆,建议关闭,优化性能。 X11Forwarding no #如果没有使用x11转发最好关闭掉,优化性能。 PrintMotd no #登录打印公告信息,可以修改或者关闭,修改/etc/motd来震慑恶意登陆者,默认会显示一些系统信息,关闭掉,减少恶意登陆者获取的信息量,防止被恶意利用。 PrintLastLog no #不打印最后登陆信息,减少恶意登陆者获取的信息量,防止被恶意利用。 TCPKeepAlive yes #保持长连接,加快连接速度,优化性能。 PidFile /var/run/sshd .pid #ssh服务的pid文件。 Banner none #不显示系统banner信息,如果开启会在每次登陆时显示系统信息,减少恶意登陆者获取的信息量,防止被恶意利用。 PermitRootLogin no #禁止root用户登陆,降低远程登陆的用户权限。 PasswordAuthentication no #允许用户名密码登陆,no,禁止使用用户名和密码登陆,使用公钥登陆,防止针对用户名和密码的暴力破解。 |
如对您有帮助,支持下呗!
微信

支付宝

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类