作为IT工程师,以下是提高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 -plow unattended-upgrades
# 检查空密码账户
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, dcredit=-1, ucredit=-1, ocredit=-1, lcredit=-1
# 设置密码过期策略
sudo chage -M 90 -m 7 -W 7 [username]
# 编辑SSH配置
sudo nano /etc/ssh/sshd_config
# 推荐设置:
Port 2222 # 更改默认端口
PermitRootLogin no # 禁止root登录
PasswordAuthentication no # 禁用密码认证,仅用密钥
MaxAuthTries 3 # 最大尝试次数
ClientAliveInterval 300 # 超时设置
ClientAliveCountMax 0
AllowUsers yourusername # 仅允许特定用户
# 重启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
# iptables (通用)
sudo iptables -A INPUT -p tcp --dport 2222 -j ACCEPT
sudo iptables -A INPUT -j DROP
# 检查文件权限
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 /home/*/.ssh/authorized_keys
# 查找SUID/SGID文件
find / -type f \( -perm -4000 -o -perm -2000 \) -exec ls -l {} \;
# 安装并配置fail2ban
sudo apt install fail2ban # Debian/Ubuntu
sudo yum install fail2ban # CentOS/RHEL
# 查看系统日志
sudo tail -f /var/log/auth.log # Debian/Ubuntu
sudo tail -f /var/log/secure # CentOS/RHEL
# 安装并配置rkhunter进行rootkit检测
sudo apt install rkhunter # Debian/Ubuntu
sudo yum install rkhunter # CentOS/RHEL
sudo rkhunter --update
sudo rkhunter --check
# 查看运行的服务
sudo systemctl list-units --type=service --state=running
# 禁用不必要的服务
sudo systemctl stop [service]
sudo systemctl disable [service]
# 检查监听端口
sudo netstat -tulnp
sudo ss -tulnp
# 使用Lynis进行安全审计
sudo apt install lynis # Debian/Ubuntu
sudo yum install lynis # CentOS/RHEL
sudo lynis audit system
# 使用ClamAV进行恶意软件扫描
sudo apt install clamav clamav-daemon # Debian/Ubuntu
sudo yum install clamav clamav-update # CentOS/RHEL
sudo freshclam
sudo clamscan -r /home
# 检查当前sysctl安全设置
sudo sysctl -a | grep security
# 编辑/etc/sysctl.conf添加以下内容
kernel.exec-shield = 1
kernel.randomize_va_space = 2
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.conf.all.log_martians = 1
# 应用设置
sudo sysctl -p
# 创建重要配置文件备份
sudo tar -czvf /backup/etc_backup_$(date +%Y%m%d).tar.gz /etc
# 设置定期备份 (添加至crontab)
0 3 * * * tar -czf /backup/etc_backup_$(date +\%Y\%m\%d).tar.gz /etc
通过实施这些命令行操作,你可以显著提高Linux服务器的安全性。记得在执行任何更改前先测试,并在生产环境中谨慎操作。