Ubuntu SSH如何监控与日志
导读: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查看端口监听
通过netstat
或ss
命令可确认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、端口及认证方式(如publickey
、password
)的信息。 - 筛选登录失败记录:
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
- 重启auditd:
sudo systemctl restart auditd
,查看审计日志用sudo ausearch -k sftp
。
3. 网络流量监控
使用iftop
、nload
或tcpdump
监控SSH流量,识别异常连接:
- iftop:实时显示带宽使用(按IP排序),安装
sudo apt install iftop
,运行sudo iftop -i eth0
(eth0
为网络接口)。 - 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