作为IT工程师,保护Linux服务器安全是首要任务。以下是通过命令行工具增强服务器安全的最佳实践:
# 定期更新系统
sudo apt update && sudo apt upgrade -y # Debian/Ubuntu
sudo yum update -y # CentOS/RHEL
sudo dnf upgrade -y # Fedora
# 自动安全更新配置 (Ubuntu/Debian)
sudo apt install unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades
# 创建新用户并设置强密码
sudo adduser newusername
sudo passwd newusername
# 禁用root SSH登录
sudo sed -i 's/PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
sudo systemctl restart sshd
# 查看特权用户
sudo awk -F: '($3 == "0") {print}' /etc/passwd
# 设置密码策略
sudo apt install libpam-pwquality # Debian/Ubuntu
sudo yum install pam_pwquality # CentOS/RHEL
# UFW (简单防火墙)
sudo ufw enable
sudo ufw default deny incoming
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https
# 或者使用iptables
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -j DROP
sudo iptables-save > /etc/iptables/rules.v4
# 安装并配置fail2ban防止暴力破解
sudo apt install fail2ban
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo systemctl enable fail2ban && sudo systemctl start fail2ban
# 使用rkhunter检查rootkit
sudo apt install rkhunter
sudo rkhunter --update
sudo rkhunter --propupd
sudo rkhunter --check
# 使用Lynis进行安全审计
sudo apt install lynis
sudo lynis audit system
# 查看认证日志
sudo tail -f /var/log/auth.log
sudo grep "Failed password" /var/log/auth.log
# 使用logwatch进行日志分析
sudo apt install logwatch
sudo logwatch --output mail --mailto admin@example.com --detail high
# 查找SUID/SGID文件
sudo find / -perm /4000 -type f -exec ls -la {} \; 2>/dev/null
sudo find / -perm /2000 -type f -exec ls -la {} \; 2>/dev/null
# 查找世界可写文件
sudo find / -xdev -type d \( -perm -0002 -a ! -perm -1000 \) -print
sudo find / -xdev -type f \( -perm -0002 -a ! -perm -1000 \) -print
# 检查文件完整性 (AIDE)
sudo apt install aide
sudo aideinit
sudo aide --check
# 修改SSH默认端口
sudo sed -i 's/#Port 22/Port 2222/' /etc/ssh/sshd_config
# 禁用密码认证,仅使用密钥
sudo sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
# 限制SSH访问IP
echo "sshd: 192.168.1.0/24" | sudo tee -a /etc/hosts.allow
echo "sshd: ALL" | sudo tee -a /etc/hosts.deny
# 重启SSH服务
sudo systemctl restart sshd
# 使用Nmap扫描开放端口
sudo apt install nmap
sudo nmap -sS -p- -T4 -v localhost
# 使用OpenVAS进行漏洞扫描
sudo apt install openvas
sudo gvm-setup
sudo gvm-start
# 创建重要文件备份
sudo tar -czvf /backup/etc_backup_$(date +%Y%m%d).tar.gz /etc
# 设置自动备份 (cron)
echo "0 2 * * * root tar -czvf /backup/etc_backup_$(date +\%Y\%m\%d).tar.gz /etc" | sudo tee -a /etc/crontab
# 使用chkrootkit检查rootkit
sudo apt install chkrootkit
sudo chkrootkit
# 使用tiger进行安全审计
sudo apt install tiger
sudo tiger
通过实施这些命令行工具和技术,您可以显著提高Linux服务器的安全性。记住,安全是一个持续的过程,需要定期审查和更新安全措施。