首页主机资讯Ubuntu SSH如何监控与日志

Ubuntu SSH如何监控与日志

时间2025-10-04 04:09:03发布访客分类主机资讯浏览852
导读:Ubuntu SSH监控与日志管理指南 一、SSH服务状态监控 1. 使用systemctl命令(推荐) systemctl是Ubuntu管理systemd服务的核心工具,可全面监控SSH服务(ssh)的状态: 查看服务状态:sudo s...

Ubuntu SSH监控与日志管理指南

一、SSH服务状态监控

1. 使用systemctl命令(推荐)

systemctl是Ubuntu管理systemd服务的核心工具,可全面监控SSH服务(ssh)的状态:

  • 查看服务状态sudo systemctl status ssh,输出会显示服务是否运行(Active: active)、最近日志片段及进程ID(Main PID)。
  • 启动/停止/重启服务sudo systemctl start ssh(启动)、sudo systemctl stop ssh(停止)、sudo systemctl restart ssh(重启,中断现有连接)。
  • 重新加载配置sudo systemctl reload ssh(不中断现有连接,应用/etc/ssh/sshd_config的修改)。
  • 设置开机自启sudo systemctl enable ssh(启用)、sudo systemctl disable ssh(禁用)。

2. 使用netstat/ss查看端口监听

通过netstatss命令可确认SSH服务是否在默认端口(22)监听:

  • sudo netstat -tuln | grep 22:显示TCP端口22的监听状态(LISTEN)及进程信息。
  • sudo ss -tuln | grep 22:更现代的工具,输出更简洁,包含进程PID和名称(如sshd)。

二、SSH日志查看与分析

1. 主要日志文件

Ubuntu系统默认将SSH认证及连接日志记录在/var/log/auth.log(Debian/Ubuntu系),包含登录成功/失败、会话开启/关闭等信息。

2. 基础日志查看命令

  • 查看SSH相关日志sudo grep "sshd" /var/log/auth.log,筛选出所有包含sshd的日志条目。
  • 实时监控日志sudo tail -f /var/log/auth.log | grep sshd,持续显示新增的SSH日志(按Ctrl+C退出)。
  • 使用journalctl查看系统日志sudo journalctl -u ssh,通过systemd查看sshd服务的日志,支持时间过滤(如--since "2025-09-01")。

3. 常见日志分析场景

  • 筛选登录成功记录sudo grep "Accepted" /var/log/auth.log,输出包含用户、IP、端口及认证方式(如publickeypassword)的信息。
  • 筛选登录失败记录sudo grep "Failed password" /var/log/auth.log(密码认证失败)、sudo grep "Invalid user" /var/log/auth.log(无效用户名尝试),用于检测暴力破解。
  • 统计失败尝试次数sudo grep "Failed password" /var/log/auth.log | awk '{ print $11} ' | sort | uniq -c | sort -nr,按IP统计失败次数(从高到低排序)。

三、高级监控与安全加固

1. 使用fail2ban自动防御暴力破解

fail2ban通过监控日志识别多次失败尝试,自动封禁恶意IP:

  • 安装sudo apt install fail2ban
  • 配置:复制默认配置sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local,编辑jail.local启用SSH监狱:
    [sshd]
    enabled = true
    port = ssh
    filter = sshd
    logpath = /var/log/auth.log
    maxretry = 3  # 允许的最大失败次数
    bantime = 600 # 封禁时间(秒,如10分钟)
    
  • 重启服务sudo systemctl restart fail2ban,生效后会自动封禁触发规则的IP。

2. 使用auditd进行深度审计

auditd可记录系统调用(如文件访问、进程执行),适合需要详细追踪SFTP活动的场景:

  • 安装sudo apt install auditd audispd-plugins
  • 添加审计规则:编辑/etc/audit/rules.d/sftp.rules,添加以下规则(监控/path/to/sftp/directory目录的读写操作):
    -a exit,always -F arch=b64 -S openat,open,close,close_write -F auid!=unset -F auid>
        =1000 -F key=sftp
    -a exit,always -F arch=b32 -S openat,open,close,close_write -F auid!=unset -F auid>
        =1000 -F key=sftp
    
  • 重启auditdsudo systemctl restart auditd,查看审计日志用sudo ausearch -k sftp

3. 网络流量监控

使用iftopnloadtcpdump监控SSH流量,识别异常连接:

  • iftop:实时显示带宽使用(按IP排序),安装sudo apt install iftop,运行sudo iftop -i eth0eth0为网络接口)。
  • nload:图形化显示总流量及收发速率,安装sudo apt install nload,运行nload
  • tcpdump:捕获SSH数据包(端口22),安装sudo apt install tcpdump,运行sudo tcpdump -i eth0 port 22

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Ubuntu SSH如何监控与日志
本文地址: https://pptw.com/jishu/719533.html
Debian清理后如何更新系统 Debian清理需要管理员权限吗

游客 回复需填写必要信息