作为IT工程师,保护Linux服务器是至关重要的任务。以下是通过命令行增强Linux服务器安全性的关键步骤:
# 更新软件包列表
sudo apt update # Debian/Ubuntu
sudo yum check-update # CentOS/RHEL
# 升级所有已安装的软件包
sudo apt upgrade # Debian/Ubuntu
sudo yum update # CentOS/RHEL
# 自动安全更新 (Debian/Ubuntu)
sudo apt install unattended-upgrades
sudo dpkg-reconfigure unattended-upgrades
# 创建新用户
sudo adduser username
# 设置强密码策略
sudo vi /etc/login.defs # 修改PASS_MAX_DAYS, PASS_MIN_DAYS等参数
# 锁定不必要账户
sudo passwd -l username
# 检查空密码账户
sudo awk -F: '($2 == "") {print}' /etc/shadow
# 编辑SSH配置文件
sudo vi /etc/ssh/sshd_config
# 推荐修改以下参数:
Port 2222 # 修改默认端口
PermitRootLogin no # 禁止root登录
PasswordAuthentication no # 禁用密码认证,仅使用密钥
MaxAuthTries 3 # 最大尝试次数
ClientAliveInterval 300 # 超时设置
AllowUsers username # 只允许特定用户
# 重启SSH服务
sudo systemctl restart sshd
# 使用UFW (Ubuntu)
sudo ufw enable
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 2222/tcp # 允许SSH新端口
# 使用firewalld (CentOS/RHEL)
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
# 配置fail2ban
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo vi /etc/fail2ban/jail.local # 自定义设置
# 启动服务
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
# 检查文件权限
find / -type f -perm -o+w -exec ls -l {} \; # 查找全局可写文件
find / -type d -perm -o+w -exec ls -ld {} \; # 查找全局可写目录
# 设置重要文件权限
sudo chmod 600 /etc/shadow
sudo chmod 644 /etc/passwd
sudo chmod 600 ~/.ssh/authorized_keys
# 查看认证日志
sudo tail -f /var/log/auth.log # Debian/Ubuntu
sudo tail -f /var/log/secure # CentOS/RHEL
# 安装并配置logwatch
sudo apt install logwatch # Debian/Ubuntu
sudo yum install logwatch # CentOS/RHEL
sudo vi /etc/logwatch/conf/logwatch.conf
# 使用Lynis进行安全审计
sudo apt install lynis # Debian/Ubuntu
sudo yum install lynis # CentOS/RHEL
sudo lynis audit system
# 使用rkhunter检查rootkit
sudo apt install rkhunter # Debian/Ubuntu
sudo yum install rkhunter # CentOS/RHEL
sudo rkhunter --check
# 创建备份脚本示例
sudo mkdir /backups
sudo tar -czvf /backups/etc_backup_$(date +%Y%m%d).tar.gz /etc
sudo tar -czvf /backups/home_backup_$(date +%Y%m%d).tar.gz /home
# 设置cron定时任务
sudo crontab -e
# 添加以下内容每天凌晨3点备份
0 3 * * * /path/to/backup_script.sh
通过实施这些命令行安全措施,您可以显著提高Linux服务器的安全性。记住,安全是一个持续的过程,需要定期审查和更新安全配置。