Skip to main content

Настройка Rsyslogd. Удаленное транслирование логов.

В этой статье я опишу процесс настройки трансляции логов на удаленную машину. Это позволяет повысить общую безопасность системы за счет того, что злоумышленник не сможет скрыть следы своего пребывание путем очистки лог файлов.

Нам понадобятся две машины с rsyslogd, рассказывать я буду на примере ubuntu 10.04, в которой этот пакет является менеджером лог-файлов по умолчанию.

Базовая настройка логов

Первичная настройка системы логгирования очень простая.
В конфиг-файл вносятся правила вида
сервис.уровень_важности_сообщения действие

Под действием может пониматься одно из следующих:

  • Вывод в стандартный файл (/absolute/file/path;output_format_)
  • Именованный канал ( |named_pipe )
  • Вывод на терминал или консоль ( tty_name )
  • Пересылка на удаленную машину ( :type:remote_host:port
  • Вывод определнному пользователю (если он залогинен) (username,username2…)
  • Вывод всем залогиненным пользователям (*)
  • Отбросить (~)
  • Выполнить скрипт (^script-name)

Для более подбробной информации рекомендую прочитать
http://linux.die.net/man/5/rsyslog.conf
http://linux.die.net/man/8/rsyslogd

Из этого всего нас заинтересует в основном пересылка логов на удаленную машину. Остальные настройки можно настроить по своему вкусу.

Доставка без подтверждения

Чтобы отослать все логи на удаленную машину нам лишь надо добавить правило

*.* @remotehost:port

На удаленном сервере надо подключить модуль imudp

$ModLoad imudp
$UDPServerRun 514

Это подключит модуль и заставит удаленный сервер слушать 514 порт (стандартный) на предмет поступающих логов.

Подключение по UDP не устанавливает соединение, пакеты просто отсылаются на удаленную машину без любой проверки на успех доставки.

Доставка с установлением соединения

Для того, чтобы убедиться хотя бы в успехе доставки отдельных пакетов, можно воспользоваться соединением tcp.

На удаленной машине

$ModLoad imtcp
$TCPServerRun 514

на сервере логов

*.* @@remotehost:port

Это обеспечивает большую надежность доставки, но все равно не дает гарантии успеха.

Надежная доставка

Чтобы обеспечить гарантированную доставку лог файлов есть специальный модуль relp (Reliable Protocol).

На удаленной машине

$ModLoad imrelp
$RelpServerRun 514

На сервер логов

*.* :omrelp:remotehost:port

Это обеспечит надежную доставку всех логов локальной машины на удаленный сервер для их последующего анализа.