在Linux服务器上加强访问控制可以通过多种方法来实现,包括使用强密码策略、配置防火墙规则、启用SELinux或AppArmor、限制用户权限以及定期审计系统配置等。以下是一些具体的步骤和建议:
1. 使用强密码策略
- 设置复杂密码:要求用户使用至少8个字符的密码,包含大小写字母、数字和特殊字符。
- 定期更换密码:可以设置密码过期时间,强制用户定期更换密码。
- 使用密码管理工具:如
passwd
命令结合脚本,或者使用pass
等密码管理工具。
2. 配置防火墙规则
- 使用iptables:
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT sudo iptables -A INPUT -j DROP
- 使用ufw(Uncomplicated Firewall):
sudo ufw allow 22/tcp sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw deny from any to any
3. 启用SELinux或AppArmor
- SELinux:
sudo yum install policycoreutils-python-utils sudo setenforce 1
- AppArmor:
sudo apt-get install apparmor apparmor-utils sudo aa-enable /etc/apparmor.d/usr.sbin.sshd
4. 限制用户权限
- 最小权限原则:只授予用户完成任务所需的最小权限。
- 使用sudo:配置sudoers文件,限制用户可以执行的命令。
sudo visudo # 添加如下行 username ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart httpd
5. 定期审计系统配置
- 使用auditd:安装并配置auditd服务,监控系统文件和目录的访问。
sudo yum install audit sudo systemctl start auditd sudo systemctl enable auditd
- 定期检查日志文件:如
/var/log/secure
、/var/log/auth.log
等,及时发现异常行为。
6. 使用SSH密钥认证
- 禁用密码登录:
sudo sed -i 's/.*PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config sudo sed -i 's/.*PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config
- 配置SSH密钥认证:要求用户使用SSH密钥对登录。
7. 更新系统和软件包
- 定期更新:保持系统和软件包的最新状态,修复已知的安全漏洞。
sudo yum update
通过以上步骤,可以有效地加强Linux服务器的访问控制,提高系统的安全性。