插件窝 干货文章 命令行工具:应对Linux服务器安全挑战的利器

命令行工具:应对Linux服务器安全挑战的利器

sudo bash 文件 查看 771    来源:    2025-04-12

命令行工具:Linux服务器安全防护指南

作为IT工程师,命令行工具是我们维护Linux服务器安全的核心武器。下面我将介绍一系列关键工具和技术,帮助您有效应对服务器安全挑战。

1. 基础安全审计工具

netstat / ss

# 查看所有网络连接
sudo netstat -tulnp
# 或使用更现代的ss命令
sudo ss -tulnp

lsof

# 查看打开的文件和网络连接
sudo lsof -i

ps / top / htop

# 查看进程信息
ps auxf
# 交互式进程监控
htop

2. 用户和权限管理

last / lastb

# 查看成功登录记录
last
# 查看失败登录尝试
lastb

passwd / chage

# 强制用户下次登录修改密码
passwd -e username
# 设置密码过期策略
chage -M 90 -m 7 -W 14 username

sudo 配置审计

# 查看sudo配置
sudo visudo
# 检查用户sudo权限
sudo -l -U username

3. 文件系统安全

find 查找可疑文件

# 查找SUID/SGID文件
find / -type f \( -perm -4000 -o -perm -2000 \) -exec ls -l {} \;

# 查找世界可写文件
find / -type f -perm -o+w -exec ls -l {} \;

# 查找最近修改的文件
find / -type f -mtime -3 -exec ls -l {} \;

chmod / chown 权限修复

# 移除文件的世界可写权限
chmod o-w filename

# 正确设置文件所有权
chown root:root sensitive_file
chmod 600 sensitive_file

4. 网络和防火墙工具

iptables / nftables

# 基本防火墙规则示例
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -j DROP

fail2ban 防暴力破解

# 安装fail2ban
sudo apt install fail2ban  # Debian/Ubuntu
sudo yum install fail2ban  # CentOS/RHEL

# 查看状态
sudo fail2ban-client status sshd

5. 日志分析工具

grep / awk / sed

# 分析认证日志
grep "Failed password" /var/log/auth.log
grep "Accepted password" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr

journalctl (systemd系统)

# 查看系统日志
journalctl -xe
# 查看特定服务的日志
journalctl -u nginx.service

6. 安全扫描工具

lynis 系统审计

# 安装
sudo apt install lynis  # Debian/Ubuntu
sudo yum install lynis  # CentOS/RHEL

# 运行审计
sudo lynis audit system

rkhunter 后门检测

# 安装
sudo apt install rkhunter
# 更新数据库
sudo rkhunter --update
# 运行扫描
sudo rkhunter --check

7. 自动化监控脚本示例

#!/bin/bash

# 安全监控脚本示例
DATE=$(date +%Y%m%d)
LOG_FILE="/var/log/security_monitor_$DATE.log"

{
    echo "===== 安全检查报告 $(date) ====="
    echo ""
    echo "----- 1. 用户登录检查 -----"
    last | head -20
    echo ""
    echo "----- 2. 失败登录尝试 -----"
    lastb | head -20
    echo ""
    echo "----- 3. 可疑进程检查 -----"
    ps auxf | grep -E "(\./|tmp|sh -c)"
    echo ""
    echo "----- 4. 网络连接检查 -----"
    netstat -tulnp
    echo ""
    echo "----- 5. SUID/SGID文件检查 -----"
    find / -type f \( -perm -4000 -o -perm -2000 \) -exec ls -l {} \; 2>/dev/null
} > "$LOG_FILE"

# 发送邮件通知
mail -s "每日安全报告 $(date)" admin@example.com < "$LOG_FILE"

最佳实践建议

  1. 定期更新:保持系统和软件包最新

    sudo apt update && sudo apt upgrade  # Debian/Ubuntu
    sudo yum update  # CentOS/RHEL
    
  2. 最小权限原则:只授予必要的权限

  3. SSH加固

    # 禁用root登录
    sudo sed -i 's/^PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
    # 使用密钥认证
    sudo sed -i 's/^#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
    # 重启SSH服务
    sudo systemctl restart sshd
    
  4. 定期备份:确保有可恢复的备份

  5. 监控和警报:设置关键事件的自动警报

通过熟练使用这些命令行工具和技术,您可以有效提升Linux服务器的安全性,及时发现并应对潜在威胁。