作为IT工程师,我理解服务器安全的重要性。以下是使用命令行工具增强Linux服务器安全性的全面指南:
# 更新软件包列表并升级所有已安装软件
sudo apt update && sudo apt upgrade -y # Debian/Ubuntu
sudo yum update -y # CentOS/RHEL
sudo dnf upgrade -y # Fedora
# 设置自动安全更新
sudo apt install unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades # Debian/Ubuntu
# 检查空密码账户
sudo awk -F: '($2 == "") {print}' /etc/shadow
# 强制密码复杂性要求
sudo apt install libpam-pwquality # Debian/Ubuntu
sudo yum install pam_pwquality # CentOS/RHEL
# 编辑密码策略
sudo nano /etc/security/pwquality.conf
# 添加以下内容:
minlen = 12
minclass = 3
maxrepeat = 3
maxsequence = 3
# 备份原始SSH配置
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
# 编辑SSH配置
sudo nano /etc/ssh/sshd_config
# 修改以下参数:
Port 2222 # 更改默认端口
PermitRootLogin no
PasswordAuthentication no # 仅允许密钥认证
MaxAuthTries 3
LoginGraceTime 60
ClientAliveInterval 300
ClientAliveCountMax 2
# 重启SSH服务
sudo systemctl restart sshd
# 检查SSH监听端口
sudo ss -tulnp | grep ssh
# 使用UFW (Ubuntu/Debian)
sudo apt install ufw
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 2222/tcp # 替换为你的SSH端口
sudo ufw enable
# 使用firewalld (CentOS/RHEL)
sudo systemctl start firewalld
sudo systemctl enable firewalld
sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --reload
# 安装并配置fail2ban
sudo apt install fail2ban # Debian/Ubuntu
sudo yum install fail2ban # CentOS/RHEL
# 创建本地配置
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
# 修改SSH端口和封禁时间
[sshd]
enabled = true
port = 2222
maxretry = 3
bantime = 1h
# 重启fail2ban
sudo systemctl restart fail2ban
# 检查日志
sudo journalctl -u fail2ban -f
# 检查SUID/SGID文件
sudo find / -type f \( -perm -4000 -o -perm -2000 \) -exec ls -l {} \;
# 检查世界可写文件
sudo find / -xdev -type d \( -perm -0002 -a ! -perm -1000 \) -print
# 检查无主文件
sudo find / -xdev \( -nouser -o -nogroup \) -print
# 查看运行中的服务
sudo systemctl list-units --type=service --state=running
# 禁用不必要的服务
sudo systemctl disable <service_name>
# 检查监听端口
sudo netstat -tulnp
sudo ss -tulnp
# 安装并运行Lynis安全审计工具
sudo apt install lynis # Debian/Ubuntu
sudo yum install lynis # CentOS/RHEL
# 运行审计
sudo lynis audit system
# 检查审计结果
sudo cat /var/log/lynis.log
# 使用rkhunter检查rootkit
sudo apt install rkhunter # Debian/Ubuntu
sudo yum install rkhunter # CentOS/RHEL
# 更新数据库并运行扫描
sudo rkhunter --update
sudo rkhunter --checkall
# 创建备份目录
sudo mkdir /backups
# 备份重要配置文件
sudo tar -czvf /backups/etc_backup_$(date +%Y%m%d).tar.gz /etc
# 设置定期备份 (添加到crontab)
sudo crontab -e
# 添加以下内容:
0 3 * * * tar -czvf /backups/etc_backup_$(date +\%Y\%m\%d).tar.gz /etc
通过实施这些命令行安全措施,你可以显著提高Linux服务器的安全性。记得根据你的具体环境调整这些命令,并定期审查安全配置。