|
使用下面的这个方法统计 SSH 流量具有很大的局限性,但仍然将其提出来。
该方法主要是通过修改 SSHD 配置文件中的日志等级以获得流量统计数据。
不同的 Linux 发行版的 SSHD 日志存放在不同的地方,比如有些放在 /var/log/messages 中,有些则放在 /var/log/secure 中。以 Fedora 15 为例,它默认是存放在 /var/log/messages 中的。但在默认情况下,SSHD 并不会在日志中留下流量记录,需要修改 SSHD 配置文件。SSHD 配置文件一般为:/etc/ssh/sshd_config ,下面我们修改其中的两项:SyslogFacility local5
LogLevel VERBOSE 上面设置 SyslogFacility 为 local5 ,local5 是 syslog 中的日志选择器,在 syslog 的日志选择器中,有 local0 ~ local7 保留给用户自定义使用,但一般 local7 用来生成系统启动日志(存放在 /var/log/boot.log 文件中)。
设置 LogLevel 记录等级为 VERBOSE 时,那么会产生流量记录信息,设为 DEBUG 也是可以的,但后者输出更冗余的信息,因此不做选择。
接着,修改日志记录守护进程 rsyslogd 的配置文件/etc/rsyslog.conf ,添加一行:local5.* /var/log/sshd.log 这里我们定义 SSHD 守护进程产生的流量信息存放在 /var/log/sshd.log 文件中。
需要注意的是,如果使用的是 CentOS 5 这样的发行版时,syslog 配置文件是 /etc/syslog.conf 。
最后,重启一下 sshd 和 rsyslog 这两个服务:# service sshd restart
# service rsyslog restart
比如在 Windows 端用 putty 来登录 Linux 服务器,那么在用户“正常”退出时会在日志文件里看到下面的记录:May 9 16:46:05 beyes sshd[5097]: Transferred: sent 5768, received 2608 bytes 上面之所以说是“正常”退出,那是因为如果不是执行 exit 命令退出的话,而是直接鼠标点击 X 按钮关闭 putty 窗口,那么这个流量记录将不会产生,因此这是局限性之一。
局限性之二是用 xshell ,tunnelier 之类的软件登陆操作时,竟然也是不能留下流量记录的,因此这也是一种遗憾。
为什么想要获取 SSH 流量统计?一般人自然是不会用到这个功能的,那些做 SSH 代理买卖的人很可能非常感兴趣:)
以后还会介绍另外一种比较全面的获取 SSH 流量的方法。 |
|