Книга: Linux глазами хакера

Листинг 12.4. Содержимое файла /etc/rc.d/initd/syslog

Листинг 12.4. Содержимое файла /etc/rc.d/initd/syslog

# /bin/bash
. /etc/init.d/functions
[ -f /sbin/syslogd ] || exit 0
[ -f /sbin/klogd ] || exit 0
# Source config
# Загрузка конфигурационного файла
if [ -f /etc/sysconfig/syslog ] ; then
 . /etc/sysconfig/syslog
else
 SYSLOGD_OPTIONS="-m 0"
 KLOGD_OPTIONS="-2"
fi
RETVAL=0
umask 077
start() {
 echo -n $"Starting system logger: "
 daemon syslogd $SYSLOGD_OPTIONS
 RETVAL=$?
 echo
 echo -n $"Starting kernel logger: "
 daemon klogd $KLOGD_OPTIONS
 echo
 [ $RETVAL -eq 0 ] && touch /var/lock/subsys/syslog
 return $RETVAL
}
stop() {
 # Команды остановки сервиса
}
rhstatus() {
 # Команды вывода состояния
}
restart() {
 stop
 start
}
...
...

Самое интересное спрятано в следующих строчках:

if [ -f /etc/sysconfig/syslog ] ; then
 . /etc/sysconfig/syslog
else
 SYSLOGD_OPTIONS="-m 0"
 KLOGD_OPTIONS="-2"
fi

Здесь происходит проверка. Если файл /etc/sysconfig/syslog существует, то используются опции загрузки из этого файла, иначе явно задаются в строке:

SYSLOGD_OPTIONS="-m 0"

Здесь в кавычках указываются параметры. Чтобы добавить ключ -r, измените строку следующим образом:

SYSLOGD_OPTIONS="-m 0 -r"

Если файл /etc/sysconfig/syslog существует, то в нем будет такая же строка, и вам достаточно внести изменения туда, и не надо будет трогать сценарий запуска /etc/rc.d/init.d/syslog.

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

Вопрос решается достаточно просто, если зашифровать трафик, направив его через туннель SSL. Самый простой вариант — выполнить следующие действия:

? на сервере, отправляющем сообщения, в конфигурационном файле прописываем пересылку сообщений на локальный компьютер:

*.* @localhost

? все сообщения будут передаваться на локальный компьютер, т.е. самому себе на 514 порт UDP. Чтобы все работало верно, сервер не должен находиться в режиме приема сообщений, т.е. запущен без ключа -r. Иначе порт 514 будет занят, а нам это не нужно;

? на 514 порту локального компьютера запускаем stunnel-клиент:

stunnel -c -d 127.0.0.1:514 -r loagserver:1050

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

? на компьютере loagserver создаем stunnel-сервер:

stunnel -d 1050 -r 127.0.0.1:514

После этих действий stunnel-сервер будет получать зашифрованные сообщения на 1050 порт и в расшифрованном виде направлять их на порт 514. На сервере loagserver сервис syslogd должен быть запущен с ключом -r для приема сообщений на 514 порту.

Теперь все сообщения будут передаваться по сети в зашифрованном виде.

Оглавление книги


Генерация: 0.663. Запросов К БД/Cache: 2 / 0
поделиться
Вверх Вниз