вторник, 29 сентября 2009 г.

SSHD. Логи в отдельном файле

По умолчанию 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

Комментариев нет:

Отправить комментарий