插件窝 干货文章 保持服务器安全的Linux命令:必备技能与最佳实践

保持服务器安全的Linux命令:必备技能与最佳实践

sudo bash install 安全 1006    来源:    2025-04-12

保持服务器安全的Linux命令:必备技能与最佳实践

作为IT工程师,确保Linux服务器安全是我们的核心职责之一。以下是一套全面的Linux安全命令和最佳实践指南。

一、系统更新与补丁管理

  1. 更新系统软件包

    # Debian/Ubuntu
    sudo apt update && sudo apt upgrade -y
    
    # RHEL/CentOS
    sudo yum update -y
    
    # Fedora
    sudo dnf upgrade -y
    
  2. 自动安全更新

    # Debian/Ubuntu
    sudo apt install unattended-upgrades
    sudo dpkg-reconfigure unattended-upgrades
    
    # RHEL/CentOS 8+
    sudo dnf install dnf-automatic
    sudo systemctl enable --now dnf-automatic.timer
    

二、用户与权限管理

  1. 用户账户管理

    # 创建新用户
    sudo adduser newuser
    
    # 设置/修改密码
    sudo passwd username
    
    # 锁定/解锁账户
    sudo usermod -L username  # 锁定
    sudo usermod -U username  # 解锁
    
    # 删除用户
    sudo userdel -r username  # -r同时删除主目录
    
  2. sudo权限管理

    # 添加用户到sudo组
    sudo usermod -aG sudo username  # Debian/Ubuntu
    sudo usermod -aG wheel username # RHEL/CentOS
    
    # 查看sudo权限
    sudo -l -U username
    
  3. 检查特权账户

    # 查看UID为0的账户(超级用户)
    awk -F: '($3 == "0") {print}' /etc/passwd
    
    # 查看可登录用户
    grep -v '/nologin\|/false' /etc/passwd
    

三、SSH安全配置

  1. 基本SSH安全

    # 修改SSH端口(编辑后重启sshd)
    sudo nano /etc/ssh/sshd_config
    # 修改: Port 2222 (或其他非标准端口)
    
    # 禁止root登录
    # 修改: PermitRootLogin no
    
    # 限制用户登录
    # 修改: AllowUsers user1 user2
    
    # 应用更改
    sudo systemctl restart sshd
    
  2. 密钥认证

    # 生成SSH密钥对(在客户端)
    ssh-keygen -t ed25519 -a 100
    
    # 复制公钥到服务器
    ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server -p 2222
    
    # 禁用密码认证(服务器端sshd_config)
    # 修改: PasswordAuthentication no
    
  3. SSH暴力破解防护

    # 安装fail2ban
    sudo apt install fail2ban  # Debian/Ubuntu
    sudo yum install fail2ban  # RHEL/CentOS
    
    # 配置fail2ban监控SSH
    sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
    sudo nano /etc/fail2ban/jail.local
    # 修改[sshd]部分
    

四、防火墙配置

  1. UFW (简单防火墙)

    # 安装
    sudo apt install ufw  # Debian/Ubuntu
    
    # 基本配置
    sudo ufw default deny incoming
    sudo ufw default allow outgoing
    sudo ufw allow 2222/tcp  # SSH端口
    sudo ufw enable
    sudo ufw status verbose
    
  2. FirewallD (RHEL/CentOS)

    # 基本命令
    sudo firewall-cmd --state
    sudo firewall-cmd --permanent --add-service=ssh
    sudo firewall-cmd --permanent --add-port=2222/tcp
    sudo firewall-cmd --reload
    sudo firewall-cmd --list-all
    
  3. iptables (高级配置)

    # 查看当前规则
    sudo iptables -L -n -v
    
    # 保存iptables规则
    sudo iptables-save > /etc/iptables.rules
    

五、文件系统安全

  1. 文件权限检查

    # 查找全局可写文件
    find / -xdev -type d \( -perm -0002 -a ! -perm -1000 \) -print
    find / -xdev -type f \( -perm -0002 -a ! -perm -1000 \) -print
    
    # 查找无主文件
    find / -xdev \( -nouser -o -nogroup \) -print
    
    # 查找SUID/SGID文件
    find / -xdev -type f \( -perm -4000 -o -perm -2000 \) -print
    
  2. 修改文件权限

    # 设置安全umask
    umask 027  # 在/etc/profile或~/.bashrc中设置
    
    # 递归修改目录权限
    chmod -R 750 /path/to/directory
    
    # 修改文件所有者
    chown user:group filename
    
  3. 文件完整性检查

    # 使用AIDE(高级入侵检测环境)
    sudo apt install aide  # Debian/Ubuntu
    sudo yum install aide  # RHEL/CentOS
    
    # 初始化数据库
    sudo aideinit
    
    # 手动检查
    sudo aide --check
    

六、进程与服务监控

  1. 系统监控命令

    # 查看运行进程
    ps aux
    top -c
    htop
    
    # 查看网络连接
    netstat -tulnp
    ss -tulnp
    lsof -i
    
    # 查看登录用户
    who
    w
    last
    
  2. 服务管理

    # 列出所有服务
    systemctl list-unit-files --type=service
    
    # 禁用不必要的服务
    sudo systemctl disable servicename
    sudo systemctl stop servicename
    
    # 查看服务状态
    systemctl status servicename
    
  3. 查找可疑进程

    # 查找隐藏进程
    ps -ef | grep -i '\['
    
    # 检查异常CPU/内存使用
    top -o %CPU
    top -o %MEM
    

七、日志分析与监控

  1. 关键日志文件

    # 认证日志
    tail -f /var/log/auth.log  # Debian/Ubuntu
    tail -f /var/log/secure   # RHEL/CentOS
    
    # 系统日志
    journalctl -xe
    tail -f /var/log/syslog
    
    # SSH登录尝试
    grep 'sshd' /var/log/auth.log | grep 'Failed'
    
  2. 日志分析工具

    # 使用logwatch进行日志分析
    sudo apt install logwatch  # Debian/Ubuntu
    sudo yum install logwatch  # RHEL/CentOS
    
    # 每日发送日志摘要到邮箱
    sudo nano /etc/logwatch/conf/logwatch.conf
    # 修改: Output = mail
    # 修改: MailTo = your@email.com
    

八、网络与端口安全

  1. 网络配置检查

    # 查看网络接口
    ip a
    ifconfig
    
    # 查看路由表
    ip route
    netstat -rn
    
    # ARP缓存
    ip neigh
    arp -a
    
  2. 端口扫描与监控

    # 本地监听端口
    ss -tulnp
    netstat -tulnp
    
    # 远程端口扫描(从安全测试机器)
    nmap -sS -p 1-65535 server_ip
    
    # 持续监控网络连接
    sudo apt install nethogs  # Debian/Ubuntu
    sudo nethogs
    

九、安全审计工具

  1. Lynis - 安全审计工具

    # 安装
    sudo apt install lynis  # Debian/Ubuntu
    sudo yum install lynis  # RHEL/CentOS
    
    # 运行审计
    sudo lynis audit system
    
  2. ClamAV - 防病毒扫描

    # 安装
    sudo apt install clamav clamav-daemon  # Debian/Ubuntu
    sudo yum install clamav clamd  # RHEL/CentOS
    
    # 更新病毒库
    sudo freshclam
    
    # 扫描系统
    sudo clamscan -r --bell -i /
    
  3. Rkhunter - Rootkit检测

    # 安装
    sudo apt install rkhunter  # Debian/Ubuntu
    sudo yum install rkhunter  # RHEL/CentOS
    
    # 更新数据库
    sudo rkhunter --update
    
    # 运行检查
    sudo rkhunter --check --sk
    

十、备份与恢复

  1. 关键数据备份

    # 使用tar创建备份
    sudo tar -czvf /backup/$(date +%Y%m%d)_full_backup.tar.gz --exclude=/backup --exclude=/proc --exclude=/sys --exclude=/dev --exclude=/run --exclude=/tmp /
    
    # 增量备份(使用rsync)
    sudo rsync -aAXv --delete --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found","/backup"} / /backup/$(date +%Y%m%d)_incremental/
    
  2. 自动化备份

    # 创建每日备份脚本
    sudo nano /usr/local/bin/daily_backup.sh
    # 添加备份命令
    
    # 设置cron任务
    sudo crontab -e
    # 添加: 0 2 * * * /usr/local/bin/daily_backup.sh
    

最佳实践总结

  1. 定期执行安全检查

    • 每周运行安全审计工具(Lynis, Rkhunter)
    • 每日检查关键日志
    • 每月审查用户账户和权限
  2. 最小权限原则

    • 只授予必要的最小权限
    • 使用sudo而非直接root登录
    • 定期审查sudo权限
  3. 保持系统更新

    • 启用自动安全更新
    • 定期手动检查并应用更新
  4. 深度防御策略

    • 组合使用防火墙、入侵检测和日志监控
    • 实施多层安全控制
  5. 备份验证

    • 定期测试备份恢复流程
    • 离线存储关键备份

通过熟练使用这些命令和遵循最佳实践,您可以显著提高Linux服务器的安全性,降低被入侵的风险。