在当今数字化时代,保障服务器安全是系统管理员的重要职责之一。Linux系统因其高度的可定制性和安全性,被广泛应用于服务器领域。然而,系统的安全性不仅仅依赖于操作系统本身,更需要管理员采取一系列的安全措施来加固系统。本文将详细介绍如何加固Linux用户登录的安全性,以降低系统被非法入侵的风险。
1. 设置强密码策略
设置强密码策略是保障Linux系统安全的基础。强密码策略不仅要求密码长度和复杂度,还限制了密码的使用周期和历史密码的重用。
密码长度和复杂度:
修改/etc/login.defs文件,设置密码最小长度为14位,并要求包含大写字母、小写字母、数字和特殊字符。
密码重用限制:
编辑/etc/pam.d/system-auth文件,设置remember=5,禁止用户使用最近用过的5个密码。
密码过期时间:
在/etc/login.defs中设置PASS_MAX_DAYS和PASS_MIN_DAYS,规定密码的有效期和最短使用时间。
2. 限制用户登录失败次数
通过限制用户登录失败次数,可以有效防止暴力破解攻击。
PAM模块配置:编辑/etc/pam.d/sshd文件,添加以下内容以限制登录失败次数和锁定时间:
auth required pam_tally2.so deny=5 unlock_time=300 even_deny_root root_unlock_time=600
这将允许用户尝试登录5次,失败后锁定账户300秒,root用户锁定600秒。
3. 禁止root用户远程登录
允许root用户远程登录会增加系统被攻击的风险,建议禁止root用户远程登录。
编辑/etc/ssh/sshd_config文件,设置PermitRootLogin no,然后重启sshd服务:
systemctl restart sshd
4. 更改默认的SSH端口
默认的SSH端口(22)常常成为黑客攻击的目标,更改默认端口可以有效降低风险。
编辑/etc/ssh/sshd_config文件,更改Port参数,例如:
Port 58463
重启sshd服务使配置生效。
5. 使用密钥认证代替密码认证
使用密钥认证比密码认证更安全,可以有效防止密码被暴力破解。
生成密钥对:在客户端使用ssh-keygen命令生成密钥对。
分发公钥:将生成的公钥复制到服务器的~/.ssh/authorized_keys文件中。
配置SSH使用密钥认证:在/etc/ssh/sshd_config中设置PasswordAuthentication no,禁止密码认证。
6. 配置防火墙
使用防火墙限制对SSH服务的访问,只允许信任的IP地址访问。
使用iptables(CentOS 6):
iptables -A INPUT -p tcp --dport 22 -s 192.168.0.1 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j REJECT
这将允许来自192.168.0.1的SSH访问,拒绝其他所有IP的SSH访问。
使用firewalld(CentOS 7及以上):
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.0.1" port port=22 protocol="tcp" accept'
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" port port=22 protocol="tcp" reject'
firewall-cmd --reload
7. 启用SELinux
SELinux提供了基于强制访问控制(MAC)的安全策略,能够进一步限制进程只能访问其任务所必需的资源。
启用SELinux:编辑/etc/selinux/config文件,将SELINUX设置为enforcing模式,然后重启系统。
配置SELinux策略:根据需要定制SELinux策略,使用semanage和restorecon等工具管理上下文标签。
8. 定期审查系统日志
定期审查系统日志可以帮助管理员及时发现异常登录尝试和其他潜在的安全威胁。
查看登录日志:使用lastb命令查看失败的登录尝试。
查看安全日志:使用cat /var/log/secure命令查看系统安全日志。
9. 使用安全组
如果使用云服务器,可以利用云平台的安全组功能,限制对服务器的访问。
配置安全组规则:只开放必要的端口和协议,拒绝所有其他访问。
10. 锁定系统文件
使用chattr命令锁定关键系统文件,防止被篡改。
锁定/etc/passwd和/etc/shadow文件:
chattr +i /etc/passwd /etc/shadow
这将防止对这两个文件的任何修改。
通过以上措施,可以有效提高Linux用户登录的安全性,降低系统被非法入侵的风险。系统管理员应根据实际情况采取相应的安全措施,并定期检查和更新安全策略,以确保系统的长期安全稳定运行。




