Linux下高效筛选SSH连接的技巧与方法?如何快速筛选Linux的SSH连接?Linux如何快速过滤SSH连接?
实时监控活跃SSH会话
在Linux系统管理中,实时掌握SSH连接状态是保障系统安全的重要环节,管理员可以通过以下命令组合全面监控当前SSH会话:
1 基础监控命令
w
该命令输出包含以下关键信息:
- 登录用户名:显示当前所有登录用户
- 终端类型:标识用户使用的终端设备
- 登录来源IP:显示远程连接的客户端IP地址
- 会话开始时间:记录用户登录的起始时间点
- 空闲时间:显示用户最后操作至今的时间间隔
- 当前进程CPU占用:反映用户会话的资源消耗情况
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日志管理
# 实时追踪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安全强化指南
-
非标准端口配置
# /etc/ssh/sshd_config Port 2222
-
Root登录禁用
PermitRootLogin no
-
PasswordAuthentication no PubkeyAuthentication yes
-
会话超时控制
ClientAliveInterval 300 ClientAliveCountMax 2
-
协议版本限制
Protocol 2
安全工具推荐
-
SSH审计工具
# ssh-audit安装 pip install --upgrade ssh-audit # 本地审计 ssh-audit localhost -p 22
-
全面安全扫描
# 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
-
入侵检测系统
# OSSEC安装 sudo apt-add-repository ppa:ossec/ossec-hids sudo apt update sudo apt install ossec-hids
最佳实践建议
- 建立定期审计机制,建议每周检查SSH日志
- 对管理IP实施白名单控制
- 配置实时告警机制(如Fail2ban邮件通知)
- 定期更新SSH服务到最新版本
- 为不同管理员创建独立账户,禁用共享账户
重要提示:所有SSH配置变更后,需执行以下命令生效:
sudo systemctl restart sshd sudo systemctl status sshd # 验证服务状态
通过实施上述多层次的监控与防护措施,系统管理员可以构建完善的SSH安全体系,有效防范未授权访问和暴力破解攻击,确保远程管理通道的安全可靠。
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。