我尝试在我的服务器上失败(用户名错误、密码错误,或两者皆错误)。
我将 /etc/ssh/sshd_config 从
# Logging
SyslogFacility AUTH
LogLevel INFO
到
# Logging
SyslogFacility AUTH
LogLevel VERBOSE
此后,我尝试使用随机密码对现有和不存在的用户进行多次 ssh 尝试,但均以失败告终。检查 /var/log/auth.log 时,没有任何内容,完全是空白的。
我遗漏了什么?我的系统上是否还需要安装和运行其他进程?我正在运行 Ubuntu。
我们非常欢迎有关此事的任何帮助或指导。
谢谢
答案1
LogLevel 通常(显然取决于应用程序)是指系统日志记录过程 (syslog) 支持的定义严重性级别之一。因此,请将其改回原样并重新启动 sshd 服务器。
现在,如果您没有得到输出,您需要查看系统 /etc/syslog.conf,查看 AUTH 类型的请求被记录到的最低日志级别以及记录到哪个文件。错误可能会发送到不同的日志文件。或者您可能没有记录这些错误,因为 AUTH 服务的 syslog.conf 配置。有关更多信息,请参阅 syslog.conf 的手册页。
答案2
当我在 Debian 上遇到同样的问题时,我发现我必须重新启动 rsyslogd:
/etc/init.d/rsyslog restart
(您的 syslogd 程序可能会有所不同。)
它再次开始写入 /var/log/auth.log。
也许是磁盘已满事件发生后它就停止记录了,我不确定。
也可以看看:https://bugs.launchpad.net/ubuntu/+source/rsyslog/+bug/1059854/comments/9
答案3
就我而言,问题出在文件的所有权上/var/log/auth.log
。它归 拥有,root:root
但必须是syslog:adm
。将其更改为
sudo chown syslog:adm /var/log/auth.log
这似乎是新创建的系统的一个常见问题——有更多的日志文件存在这个问题。
答案4
您可以使用 sshlog 之类的守护进程(我是该项目的贡献者),它可以监控成功和失败的 ssh 请求以及执行的命令。这种方法的好处是,您可以配置如何记录/警告这些事件。
例如,您可以将其配置为报告所有失败的登录尝试并将其发送到远程系统日志,并将任何 sudo 尝试发送到 Slack 警报。
在这种情况下,配置将如下所示:
events:
- event: log_all_failed_connections
triggers:
- connection_auth_failed
actions:
- action: syslog_to_localhost
plugin: syslog_action
server_address: remote_server_addr
port: 514
udp: True
output_json: False
program_name: sshlog
- event: sudo_successful
triggers: [ 'command_finish']
filters:
command_name: 'sudo'
command_exit_code: '= 0'
actions:
- action: send_to_slack
plugin: slack_action
slack_webhook_url: 'https://hooks.slack.com/services/x/y/z'
更多配置示例请参见此处:https://github.com/sshlog/agent/tree/master/daemon/config_samples