插件窝 干货文章 命令行工具:保护你的Linux服务器免受攻击

命令行工具:保护你的Linux服务器免受攻击

sudo install 检查 Ubuntu 102    来源:    2025-04-11

保护Linux服务器免受攻击的命令行指南

作为IT工程师,保护Linux服务器安全是首要任务。以下是一套全面的命令行安全措施,帮助您加固服务器防御。

1. 系统更新与补丁管理

# 更新软件包列表
sudo apt update && sudo apt upgrade -y  # Debian/Ubuntu
sudo yum update -y                      # CentOS/RHEL
sudo dnf upgrade -y                     # Fedora

# 自动安全更新 (Debian/Ubuntu)
sudo apt install unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades

# 检查需要重启的服务
sudo needs-restarting -r  # RHEL/CentOS

2. 用户账户安全

# 检查空密码账户
sudo awk -F: '($2 == "") {print}' /etc/shadow

# 强制密码复杂性要求
sudo apt install libpam-pwquality  # Debian/Ubuntu
sudo yum install pam_pwquality     # CentOS/RHEL

# 编辑/etc/pam.d/common-password或/etc/pam.d/system-auth添加:
# password requisite pam_pwquality.so retry=3 minlen=12 difok=3 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1

# 锁定不必要账户
sudo passwd -l username
sudo usermod -s /sbin/nologin username

# 检查UID为0的账户(除root外)
sudo awk -F: '($3 == 0) {print}' /etc/passwd

3. SSH安全加固

# 编辑/etc/ssh/sshd_config
sudo nano /etc/ssh/sshd_config

# 推荐设置:
Port 2222                      # 更改默认端口
PermitRootLogin no             # 禁止root登录
MaxAuthTries 3                 # 最大尝试次数
LoginGraceTime 1m              # 登录宽限时间
ClientAliveInterval 300        # 客户端活动间隔
ClientAliveCountMax 0          # 客户端活动计数
AllowUsers user1 user2         # 只允许特定用户
PasswordAuthentication no      # 禁用密码认证,使用密钥

# 重启SSH服务
sudo systemctl restart sshd

# 检查登录失败尝试
sudo grep "Failed password" /var/log/auth.log
sudo lastb | less

4. 防火墙配置

# UFW (Ubuntu)
sudo ufw enable
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 2222/tcp  # SSH端口
sudo ufw allow 80/tcp    # HTTP
sudo ufw allow 443/tcp   # HTTPS
sudo ufw status verbose

# firewalld (RHEL/CentOS)
sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
sudo firewall-cmd --list-all

# iptables (通用)
sudo iptables -A INPUT -p tcp --dport 2222 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
sudo iptables -A INPUT -j DROP
sudo iptables-save > /etc/iptables.rules

5. 入侵检测与监控

# 安装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 nano /etc/fail2ban/jail.local
# 修改[sshd]部分启用并设置端口

# 启动fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

# 检查被ban的IP
sudo fail2ban-client status sshd

# 安装并配置rkhunter rootkit检测
sudo apt install rkhunter  # Debian/Ubuntu
sudo yum install rkhunter  # CentOS/RHEL
sudo rkhunter --update
sudo rkhunter --propupd
sudo rkhunter --check

# 安装Lynis进行安全审计
sudo apt install lynis     # Debian/Ubuntu
sudo yum install lynis     # CentOS/RHEL
sudo lynis audit system

6. 文件系统安全

# 检查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

# 检查无属主文件
sudo find / -xdev \( -nouser -o -nogroup \) -print

# 设置文件权限
sudo chmod 600 /etc/shadow
sudo chmod 644 /etc/passwd
sudo chmod 600 /home/*/.ssh/authorized_keys

7. 日志监控与分析

# 查看系统日志
sudo tail -f /var/log/syslog          # Debian/Ubuntu
sudo tail -f /var/log/messages        # RHEL/CentOS

# 查看认证日志
sudo tail -f /var/log/auth.log        # Debian/Ubuntu
sudo tail -f /var/log/secure         # RHEL/CentOS

# 安装logwatch进行日志分析
sudo apt install logwatch             # Debian/Ubuntu
sudo yum install logwatch             # RHEL/CentOS
sudo logwatch --output mail --range yesterday --detail high

# 使用journalctl查看systemd日志
sudo journalctl -xe
sudo journalctl -u sshd --since "1 hour ago"

8. 网络服务安全

# 检查监听端口
sudo netstat -tulnp
sudo ss -tulnp
sudo lsof -i

# 禁用不必要服务
sudo systemctl list-unit-files --type=service | grep enabled
sudo systemctl disable servicename
sudo systemctl stop servicename

# 检查异常进程
sudo ps auxf
sudo top

9. 定期安全审计

# 使用OpenSCAP进行合规性检查
sudo apt install openscap-scanner scap-security-guide  # Debian/Ubuntu
sudo yum install openscap-scanner scap-security-guide # RHEL/CentOS
sudo oscap xccdf eval --profile xccdf_org.ssgproject.content_profile_standard --results scan-results.xml /usr/share/xml/scap/ssg/content/ssg-ubuntu2204-ds.xml

# 使用chkrootkit检查rootkit
sudo apt install chkrootkit  # Debian/Ubuntu
sudo yum install chkrootkit  # RHEL/CentOS
sudo chkrootkit

10. 备份与恢复

# 创建关键配置文件备份
sudo tar -czvf /backup/etc_backup_$(date +%F).tar.gz /etc

# 设置自动备份 (使用cron)
sudo crontab -e
# 添加: 0 3 * * * tar -czf /backup/etc_backup_$(date +\%F).tar.gz /etc

# 检查备份完整性
sudo tar -tzvf /backup/etc_backup_*.tar.gz

通过实施这些命令行安全措施,您可以显著提高Linux服务器的安全性。定期执行这些检查并根据您的特定环境调整配置,以保持服务器的最佳安全状态。