作为IT工程师,确保Linux服务器的身份验证安全至关重要。以下是全面的配置建议:
# 编辑SSH配置文件
sudo nano /etc/ssh/sshd_config
# 关键配置项:
Port 2222 # 更改默认端口
PermitRootLogin no # 禁止root直接登录
PasswordAuthentication no # 禁用密码认证
PubkeyAuthentication yes # 启用公钥认证
MaxAuthTries 3 # 限制认证尝试次数
LoginGraceTime 1m # 登录宽限时间
AllowUsers user1 user2 # 只允许特定用户登录
# 在客户端生成密钥对
ssh-keygen -t ed25519 -a 100
# 将公钥复制到服务器
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server -p 2222
# 服务器端设置权限
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
# 安装pam模块
sudo apt install libpam-cracklib # Debian/Ubuntu
sudo yum install pam_cracklib # RHEL/CentOS
# 编辑PAM密码策略
sudo nano /etc/pam.d/common-password
# 添加/修改以下内容:
password requisite pam_cracklib.so retry=3 minlen=12 difok=3 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1
# 编辑PAM配置
sudo nano /etc/pam.d/common-auth
# 添加以下内容:
auth required pam_tally2.so deny=5 unlock_time=900 onerr=fail
# 安装Google Authenticator
sudo apt install libpam-google-authenticator # Debian/Ubuntu
sudo yum install google-authenticator # RHEL/CentOS
# 为用户配置
google-authenticator
# 编辑PAM配置
sudo nano /etc/pam.d/sshd
# 添加:
auth required pam_google_authenticator.so
# 查看失败登录尝试
lastb
# 查看成功登录记录
last
# 检查认证日志
sudo tail -f /var/log/auth.log # Debian/Ubuntu
sudo tail -f /var/log/secure # RHEL/CentOS
# 安装并配置fail2ban
sudo apt install fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
# 检查过期密码
sudo chage -l username
# 设置密码过期策略
sudo nano /etc/login.defs
# 修改:
PASS_MAX_DAYS 90
PASS_MIN_DAYS 7
PASS_WARN_AGE 14
# 强制现有用户遵守新策略
sudo chage --maxdays 90 username
通过实施这些措施,您可以显著提高Linux服务器的身份验证安全性。请记住定期审查和更新这些配置以适应新的安全威胁。