По умолчанию sshd ведет лог в файл /var/log/auth.log, а там у нас куча всего. Чтоб все было по феншую необходимо, чтобы sshd писал лог в свой отдельный файл, например в /var/log/sshd.log. Посмотрим как это можно сделать. В моем Archlinux'е по умолчанию для логов используется программа syslog-ng, значит ее и будем использовать. Конфигурационный файл /etc/syslog-ng.conf имеет следующий вид:
options {
опции
};
source имя {
описание источника
};
destination имя { параметры };
filter имя { параметры };
log { source(имя_источника); filter(имя_фильтра);
destination(имя_направления); };
Описание опций источника мы рассматривать не будем, а обратим наше внимание на разделы destination, filter и log. destination определяет то, куда будет выводится лог: файл, терминал, сокет или сеть. Нас интересует файл, следовательно указываем fail("/var/log/sshd.log") filter определяет признак по которому будет отбираться логируемое сообщение, мы используем program, program{"sshd"). log служит для связывания filter и destination
Итак, нас интересуют три элемента: destination, filter и log. добавляем в /etc/syslog-ng.conf следующие строки:
destination d_sshd { file("/var/log/sshd.log"); };
filter f_sshd { program("sshd"); };
log { source(src); filter(f_sshd); destination(d_sshd); }
Сохраняемся и перезапускаем syslogd-ng, в моем случае:
[root@moon ~]# /etc/rc.d/syslog-ng restart
После сих магических манипуляций sshd начнет выводить логи в определенный нами файл, что существенно упрощает их анализ)
P.S. Аналогичным образом можно управлять логами любой другой программы, которая использует для ведения логово syslog