Linux下高效筛选SSH连接的技巧与方法?如何快速筛选Linux的SSH连接?Linux如何快速过滤SSH连接?

06-03 1304阅读

实时监控活跃SSH会话

在Linux系统管理中,实时掌握SSH连接状态是保障系统安全的重要环节,管理员可以通过以下命令组合全面监控当前SSH会话:

1 基础监控命令

w

该命令输出包含以下关键信息:

  • 登录用户名:显示当前所有登录用户
  • 终端类型:标识用户使用的终端设备
  • 登录来源IP:显示远程连接的客户端IP地址
  • 会话开始时间:记录用户登录的起始时间点
  • 空闲时间:显示用户最后操作至今的时间间隔
  • 当前进程CPU占用:反映用户会话的资源消耗情况

Linux下高效筛选SSH连接的技巧与方法?如何快速筛选Linux的SSH连接?Linux如何快速过滤SSH连接?

2 辅助监控工具

who    # 显示简洁的登录用户信息
last   # 查看历史登录记录(包括系统重启记录)
users  # 快速查看当前登录用户列表

网络连接深度分析

1 现代网络工具ss

推荐使用ss替代传统的netstat,因其性能更优、功能更全面:

ss -tnp | grep sshd

参数解析:

  • -t:仅显示TCP协议连接
  • -n:禁用主机名解析,直接显示IP地址
  • -p:显示关联的进程信息
  • -o:显示计时器信息(可选)

2 传统netstat方案

netstat -tnp | grep sshd

输出字段说明

  • Proto:协议类型(tcp/udp)
  • Recv-Q/Send-Q:接收/发送队列大小
  • Local Address:本地IP及端口
  • Foreign Address:远程IP及端口
  • State:连接状态(ESTABLISHED等)
  • PID/Program:进程ID和程序名称

SSH日志分析体系

1 日志文件定位

不同Linux发行版的SSH日志存储位置:

发行版系列 主日志文件路径 补充日志位置
Debian/Ubuntu /var/log/auth.log /var/log/syslog
RHEL/CentOS /var/log/secure /var/log/messages
Arch Linux /var/log/auth.log /var/log/journal/
openSUSE /var/log/messages /var/log/secure

2 日志分析技巧

成功登录分析

grep "Accepted password" /var/log/auth.log --color=auto

暴力破解检测

# 统计失败次数最多的IP
grep "Failed password" /var/log/auth.log | 
  awk '{print $(NF-3)}' | 
  sort | uniq -c | 
  sort -nr | head -20

可疑行为识别

# 检测短时间密集尝试
grep "Failed password" /var/log/auth.log | 
  awk '{print $1,$2,$3,$(NF-3)}' | 
  uniq -c | 
  awk '$1>5 {print $0}'

3 Systemd日志管理

Linux下高效筛选SSH连接的技巧与方法?如何快速筛选Linux的SSH连接?Linux如何快速过滤SSH连接?

# 实时追踪SSH日志
journalctl -u sshd -f
# 时间范围查询
journalctl -u sshd --since "09:00" --until "17:00" --no-pager
# 日志导出分析
journalctl -u sshd --since yesterday > sshd_audit.log

自动化防护体系

1 Fail2ban高级配置

安装方法

# Debian系
sudo apt update && sudo apt install fail2ban -y
# RHEL系
sudo yum install epel-release && sudo yum install fail2ban

定制化配置

[sshd]
enabled   = true
port      = 22
filter    = sshd
logpath   = %(sshd_log)s
maxretry  = 3
findtime  = 1h
bantime   = 24h
ignoreip  = 192.168.1.0/24 10.0.0.0/8

管理命令集

# 服务状态检查
sudo fail2ban-client status sshd
# IP封禁管理
sudo fail2ban-client set sshd banip 1.2.3.4
sudo fail2ban-client set sshd unbanip 1.2.3.4
# 日志监控
sudo tail -f /var/log/fail2ban.log

2 防火墙策略优化

iptables方案

# 基础访问控制
iptables -A INPUT -p tcp --dport 22 -s 192.168.1.0/24 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP
# 连接频率限制
iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m recent --set
iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m recent --update --seconds 60 --hitcount 3 -j DROP

UFW简化配置

sudo ufw allow from 192.168.1.0/24 to any port 22
sudo ufw limit 22/tcp comment 'SSH rate limiting'

高级监控技术

1 智能分析脚本

登录审计脚本

#!/bin/bash
LOG_FILE="/var/log/auth.log"
function show_success_logins() {
    echo "=== 最近成功登录 ==="
    grep "Accepted" $LOG_FILE | tail -n 10 | \
    awk '{printf "%-15s %-20s %-10s\n", $11, $1" "$2" "$3, $9}'
}
function analyze_failures() {
    echo -e "\n=== 失败登录分析 ==="
    echo "1. 最近10次失败尝试:"
    grep "Failed password" $LOG_FILE | tail -n 10
    echo -e "\n2. TOP 10攻击源IP:"
    grep "Failed password" $LOG_FILE | \
    awk '{print $(NF-3)}' | \
    sort | uniq -c | \
    sort -nr | head -10
}
show_success_logins
analyze_failures

2 实时监控面板

#!/bin/bash
watch -n 30 '
clear;
echo -e "===== SSH监控面板 $(date) =====";
echo -e "\n[当前连接]";
ss -tnp state established | grep -E "ssh(d)?";
echo -e "\n[活跃用户]";
w | tail -n +2;
echo -e "\n[最近登录]";
last | head -n 10;
echo -e "\n[异常检测]";
journalctl -u sshd --since "5 min ago" | grep -i "fail";
'

SSH安全强化指南

  1. 非标准端口配置

    # /etc/ssh/sshd_config
    Port 2222
  2. Root登录禁用

    PermitRootLogin no
  3. 强制密钥认证 Linux下高效筛选SSH连接的技巧与方法?如何快速筛选Linux的SSH连接?Linux如何快速过滤SSH连接?

    PasswordAuthentication no
    PubkeyAuthentication yes
  4. 会话超时控制

    ClientAliveInterval 300
    ClientAliveCountMax 2
  5. 协议版本限制

    Protocol 2

安全工具推荐

  1. SSH审计工具

    # ssh-audit安装
    pip install --upgrade ssh-audit
    # 本地审计
    ssh-audit localhost -p 22
  2. 全面安全扫描

    # Lynis安装
    curl -LO https://downloads.cisofy.com/lynis/lynis-3.0.8.tar.gz
    tar xvzf lynis-3.0.8.tar.gz
    # 执行审计
    cd lynis && ./lynis audit system
  3. 入侵检测系统

    # OSSEC安装
    sudo apt-add-repository ppa:ossec/ossec-hids
    sudo apt update
    sudo apt install ossec-hids

最佳实践建议

  1. 建立定期审计机制,建议每周检查SSH日志
  2. 对管理IP实施白名单控制
  3. 配置实时告警机制(如Fail2ban邮件通知)
  4. 定期更新SSH服务到最新版本
  5. 为不同管理员创建独立账户,禁用共享账户

重要提示:所有SSH配置变更后,需执行以下命令生效:

sudo systemctl restart sshd
sudo systemctl status sshd  # 验证服务状态

通过实施上述多层次的监控与防护措施,系统管理员可以构建完善的SSH安全体系,有效防范未授权访问和暴力破解攻击,确保远程管理通道的安全可靠。

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

目录[+]

取消
微信二维码
微信二维码
支付宝二维码