Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
Опционально могу порекомендовать запускать syslog-ng и stunnel от имени непривилегированных пользователей.
Настройка сервера протоколов
Шаг 1. Настройка stunnel
Процесс установки stunnel на сервере протоколов будет отличаться от примера для клиентской части только конфигурационным файлом. Он будет иметь вид:
cert = /usr/local/etc/stunnel/stunnel.pem
pid = /tmp/stunnel.pid
setuid = nobody
setgid = nogroup
Cafile = /usr/local/etc/stunnel/certs.pem
debug = 7 # вывод дополнительной информации о работе stunnel (после настройки можно отключить
output = stunnel.log # файл вывода дополнительной информации
client = no # работа в качестве клиента
[514]
accept = 5140
connect = 192.168.0.2:514 # адрес и порт клиента stunnel
Шаг 2. Настройка syslog-ng
В данном случае настройка также будет отличаться от протоколируемого сервера только конфигурационным файлом.
Отредактируем /usr/local/etc/syslog-ng/syslog-ng.conf:
source gateway {
unix-dgram(«/dev/log»); # создаем /dev/log на материнской машине
internal();
tcp(ip(192.168.0.2) port(514) max-connections(1));
};
destination localhost {
file(“/var/log/syslog-ng.all”); # дублируем все протоколы в файл на диске локальной машины
};
log {
source(gateway); destination(localhost);
};
Запустим оба сервиса. Теперь у нас есть готовая связка серверов, состоящая из протоколируемого сервера в jail-окружении и сервера протоколирования, получающего информацию работы приложений по tcp/ip ovel SSL.
Защита приложений на клиент-серверах от пользователя root
Проблема нашей схемы состоит в том, что если злоумышленник получает права root в jailed-окружении, он может удалить как /dev/log, создаваемый syslog-ng материнской машины, так и любой другой системный файл. К сожалению, /dev/log защитить от удаления мы практически никак не можем, т.к. syslog-ng должен удалять и создавать его заново при перезапуске. Единственное решение здесь – это заставить приложения в обход /dev/log пересылать протоколы по tcp/ip. Для этого потребуется переписать syslog-ориентированные системные функции. Для проверки работы нашей связки можно, скажем, раз в минуту посылать из jailed-окружения произвольное сообщение. Остальные же файлы можно защитить следующим образом.