The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Создание централизованного безопасного syslog сервера (stunnel crypt security log syslog bsd)


<< Предыдущая ИНДЕКС Правка src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: stunnel, crypt, security, log, syslog, bsd,  (найти похожие документы)
From: Сгибнев Михаил <http://dreamcatcher.ru>; Date: Mon, 20 Mar 2005 18:21:07 +0000 (UTC) Subject: Создание централизованного безопасного syslog сервера Оригинал: http://dreamcatcher.ru/docs/secure_syslog.html http://www.sun.com/bigadmin/features/articles/syslog_ng.html?biga=15 Создание централизованного безопасного сервера регистрации событий с использованием syslog-ng и Stunnel Автор: Amy Rich, September, 2004 Перевод: Сгибнев Михаил * Установка Stunnel * Создание файлов сертификатов для syslog-ng поверх Stunnel * Конфигурирование Stunnel для работы с syslog-ng * Установка syslog-ng * Конфигурирование syslog-ng * Ресурсы Администраторы UNIX-систем конечно знакомы с демоном syslog, но собираемая им информация очень часто остается нерассмотренной. В большой сети, где число машин достаточно велико, никто не может найти время, чтобы разобраться с файлами журналов не то что каждый день, но и хотябы раз в месяц. Скрипты для анализа данных, поступающих с разных машин, сложны для написания и индивидуальны для каждой машины. Для того чтобы облегчить бремя ручной и автоматической обработки журналов многие сети огранизуют выделенный сервер регистрации событий, собирающий данные для всех машин (желательно, чтобы на нем выполнялся демон NTP для синхронизации времени) сети - UNIX, Windows и рабочих станций Mac а также свичей и роутеров. Обеспечение централизованной регистрации событий - занятие довольно тривиальное, если использовать демон syslog ОС UNIX, но он не лишен некоторых недостатков. Стандартный UNIX демон syslog принимает сообчения открытым текстом по протоколу UDP, что может привести к перехвату данных кем угодно. Модель facility.level довольно ограниченна и поставляемый по умолчанию с большинством систем файл /etc/syslog.conf может накапливать в лог довольно много интересной административной информации. Запись в лог это тоже довольно сомнительный компромис между удобством чтения и возможностью машинной обработки. Демон UNIX syslog не позволяет, для примера, легко выделить из общей информации записи, соответсвующие определенным регулярным выражениям. Поэтому на серверах регистрации событий syslog ведет один общий файл и вся последующая обработка ведется только после закрытия этого файла. Поэтому в организациях, где используются выделенные серверы заменяют стандартный syslog на белее безопасные и гибкие Metalog, msyslog и иже с ними. Одной из популярных замен syslog является свободно распространяемая программа, называемая syslog-ng. В организации может выполнятся syslog-ng на каждой UNIX машине или только на специально предназначенном для этого сервере. Если этот демон запущен только на сервере, то клиенты посылают данные как обычно, по UDP на 514 порт, но на сервере становится возможным более гибкое манипулирование и организация логов. Основная выгода от использования syslog-ng - возможность шифровать канал передачи данных с помощью IPSec или утилиты Stunnel (http://www.stunnel.org/) для того, чтобы предотвратить чтение данных случившимся неподалеку сниффером. При использовании Stunnel в качестве транспортного механизма организация имеет безопасный способ централизовать журнальные сообщения от всех UNIX машин для дальнейшей обработки. В случае syslog-ng, Stunnel работает принимая соединения демона на локальный порт, и передает их по SSL на удаленный сервер регистрации событий, где они соответственно расшифровываются и передаются на стандартный порт демона syslog. А на сервере регистраций уже используется гибкость syslog-ng для парсинга и организации журнальных файлов. В этой статье рассматривается настройка и установка syslog-ng и Stunnel для машин, работающих под управлением Solaris 8 (SPARC Platform Edition), но вся информация применима и для новых и для более старых версий Solaris OS (Sparc или i386). На каждой рассматриваемой здесь машине установлены OpenSSL, tcp wrappers, Solaris 8 /dev/urandom patch, инструменты разработки GNU (gcc, и т.д.) и еще несколько свободно распространяемых пакетов. Машина, выступающая сервером была защищена, так как ей предстоит хранить связанную с защитой информацию от всех машин на сети. Эти машины находятся в сети 192.168.1.0/24 и адрес сервера регистрации 192.168.1.10. Установка Stunnel Первым шагом на пути создания безопасного лог-сервера будет непосредственно установка Stunnel на сервере и клиентах. Stunnel может использоваться и со стандартным демоном syslog (не заменяя его на syslog-ng), но тогда мы не будем иметь необходимой гибкости. Как видно ниже, Stunnel отконфигурирован и собран для работы под собственным пользователем и в своем собственном каталоге с использованием chroot. Для начала создадим пользователя и группу stunnel (UID и GID выбираем произвольно): /usr/sbin/groupadd -g 122 stunnel /usr/sbin/useradd -c stunnel -d /nonexistent -m -g 122 -u 122 stunnel Теперь берем архив Stunnel, распаковываем и конфигурируем. На машинах сети сертификаты OpenSSL хранятся в /usr/local/etc/openssl/certs, и я желаю провести установку в /usr/local. Также установим localstatedir в /var/run/stunnel, так как необходимо и после перезагрузки обеспечить работу только внутри своего каталога. wget http://www.stunnel.org/download/stunnel/src/stunnel-4.05.tar.gz tar zxf stunnel-4.05.tar.gz cd stunnel-4.05 ./configure --localstatedir=/var/run/stunnel \ --with-pem-dir=/usr/local/etc/openssl/certs --datadir=/usr/local make make install Создание файлов сертификатов для syslog-ng поверх Stunnel В процессе установки Stunnel создаются самоподписанные сертификаты, которые Вы можете использовать. Так как у меня выполняется собственный центр авторизации, то я запустил Stunnel тольео для работы с syslog-ng, то я создаю и подписываю собственные syslog-ng-dedicated сертификаты. Дополнительную информацию по установке собственного центра авторизации и подписи сертификатов читайте SSL certificates HOWTO (http://tldp.org/HOWTO/SSL-Certificates-HOWTO/). примем, что у Вас установлен собственный CA или имеется подписанный сертификат. (Пр. пер. Это, конечно весьма большая натяжка. Врядли такая возможность есть у большинства админов. Лучше использовать самоподписанные сертификаты, созданные при установке Stunnel или если есть большое желание, установить OpenCA (http://www.openca.org) - СА c web интерфейсом. Только для установки его на OpenBSD мне пришлось долго плясать с бубном, на другие системы не ставил.) Создаем файлы pem для сервера: openssl req -new -days 3650 -nodes -config stunnel.cnf -out serverreq.pem \ -keyout syslog-ng-server.pem Также создаем передаваемый файл pem для каждого клиента. openssl req -new -days 3650 -nodes -config stunnel.cnf -out clientreq.pem \ -keyout syslog-ng-client.pem Подписываем каждый pem на локальном или публичном СА. Я использую sign.sh из комплекта apache mod_ssl. sign.sh /tmp/serverreq.pem sign.sh /tmp/client1req.pem sign.sh /tmp/client2req.pem sign.sh /tmp/client3req.pem Результатом будет файл crt, содержащий сертификат для каждого передаваемого файла pem. Для сервера требуется файл syslog-ng-server.pem с приватным ключом и сертификатом (скопируйте его из /tmp/serverreq.pem.crt). сервера: -----BEGIN RSA PRIVATE KEY----- MIICXAIBAAKBgQDSAJ0kULvKxIhFtz1ctXlDWY0CcTpIscEAXy90nAuwwvshji39 abZH5Z9PfTOoT/zO6ZyQ0lOJ2LzYcS/JQmR+4wLggf5yi8K3BrBIwaAHbfAya8C9 5g9oINTkjM5Y3zdkMhvPwmivMV+lBa07Qk0SZg8xYblUiafisQplGzjWvwIDAQAB AoGAEqYzTlJNGwixAV/wdxc2maCOQTVE88e1WA8b68Mf1qa6HpS9yM9mfKQLrcd0 mvHfhZCBcur6uDcjLiV/FORsgB7/3wRF0a08ZJdwlMSn9844jeRlSDbEE1wqAcyj pnHwcxnErzA0REDuD+EmH0xsh23/Rn/mv7gBpm5Am/UK86ECQQDs5RmiJzQOprsT ArcTQq3VTmHLtfu7HAQ7+You7XDL+iOVOsbJZWgBKc0oTcNNBpJzkHPrvaOBbFpg dQZKE3BLAkEA4vBLWsojb0tosXiZuFxzMBrcMhzanzzXerOt0v6BbeZKMTXMaJX+ /4wyVc6lanZc/793S4aHY0/VvCDMLp7y3QJBAKPnX3Tx6vK4KXddyY1p9RxAvylT IHi1Sbif49DpAkIfL79wi1mM8AjeAzR/mUER6wJKT+orq5VAgsd6MH/QM0ECQHvw YDclTlTqCjNiehGF7CLJiJiVyZBN2iDZIIWrGWS78KkPiKNVx/4owxS51v1dx0yl dLF6t1Y1s7Ua9GhBxsECQD3+/khj/lzYUC9KaDIHItO7LHkO1IcxZUZJ0YNaukUB v1Vh9B3IK5m2bSsOYtOYxbpjoHL8pZG1Bf1lLH32dqw= -----END RSA PRIVATE KEY----- -----BEGIN CERTIFICATE----- MIICZDCCAc0CAQIwDQYJKoZIhvcNAQEEBQAwcTELMAkGA1UEBhMCVVMxFjAUBgNV BAgTDU1hc3NhY2h1c2V0dHMxEDAOBgNVBAcTB0JldmVybHkxFTATBgNVBAoTDE9j ZWFud2F2ZSBDQTEhMB8GCSqGSIb3DQEJARYScm9vdEBvY2VhbndhdmUuY29tMB4X DTA0MDcxOTEzNTExNVoXDTA1MDcxOTEzNTExNVowgYMxCzAJBgNVBAYTAlVTMRYw FAYDVQQIEw1NYXNzYWNodXNldHRzMRAwDgYDVQQHEwdCZXZlcmx5MSMwIQYDVQQK ExpPY2VhbndhdmUgQ29uc3VsdGluZywgSW5jLjElMCMGA1UEAxMcbG9naG9zdC5v ZmZpcdaub2NlYW53YXZlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA 0gCdJFC7ysSIRbc9XLV5Q1mNAnE6SLHBAF8vdJwLsML7IY4t/Wm2R+WfT30zqE/8 zumckNJTidi82HEvyUJkfuMC4IH+covCtwawSMGgB23wMmvAveYPaCDU5IzOWN83 ZDIbz8JorzFfpQWtO0JNEmYPMWG5VImn4rEKZRs41r8CAwEAATANBgkqhkiG9w0B AQQFAAOBgQAvaaoVvP267QbxBOeBDBeP3CCpOskT5YJUHWQE2QmH5wR/5iwQqvrU Fo8V2JbaaauN9sa5CQutthUK1D3Ub+nHuHgGPFfdkL0Ll+5+LVf1swKXy8H1Q8CA Aiq0dK0EJQ+taQTw+KD7MBOzIJk0OF76uwdNxgaATQEVjxi6M0MG5g== -----END CERTIFICATE----- Также требуется клиентский pem файл, syslog-ng-client.pem, содержащий только сертификат (берем его из файла crt) от подписывающего CA и от каждого клиента (в данном примере их три штуки). -----BEGIN CERTIFICATE----- MIIDJzCCApCgAwIBAgIBADANBgkqhkiG9w0BAQQFADBxMQswCQYDVQQGEwJVUzEW MBQGA1UECBMNTWFzc2FjaHVzZXR0czEQMA4GA1UEBxMHQmV2ZXJseTEVMBMGA1UE ChMMT2NlYW53YXZlIENBMSEwHwYJKoZIhvcNAQkBFhJyb290QG9jZWFud2F2ZS5j b20wHhcNMDIwNjIzMjIyODIxWhcNMTIwNjIwMjIyODIxWjBxMQswCQYDVQQGEwJV UzEWMBQGA1UECBMNTWFzc2FjaHVzZXR0czEQMA4GA1UEBxMHQmV2ZXJseTEVMBMG A1UEChMMT2NlYW53YXZlIENBMSEwHwYJKoZIhvcNAQkBFhJyb290QG9jZWFud2F2 ZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMSqIDhWZDLO2ptG9ebx FUycmXoMNPCLWmsFgRBQKG5vgOQruX8jpXqHOFCxjhO4ZsSUWwd8eO4J/4A9kTao VFzi4P63A8xyN92Gbh4BfvmFecDhLaoZ+5zMNclNOlom2Rda75Fj8iYhtSIrbOcq Mc8KkRriG3+Hl6ptW0XibqznAgMBAAGjgc4wgcswHQYDVR0OBBYEFDlBMdhKkmEm pQkan14xNA3a646MMIGbBgNVHSMEgZMwgZCAFDlBMdhKkmEmpQkan14xNA3a646M oXWkczBxMQswCQYDVQQGEwJVUzEWMBQGA1UECBMNTWFzc2FjaHVzZXR0czEQMA4G A1UEBxMHQmV2ZXJseTEVMBMGA1UEChMMT2NlYW53YXZlIENBMSEwHwYJKoZIhvcN AQkBFhJyb290QG9jZWFud2F2ZS5jb22CAQAwDAYDVR0TBAUwAwEB/zANBgkqhkiG 9w0BAQQFAAOBgQB8Xzn/UioFZV2Osyt0oz8/3Eu1GmQx4Cpaw4o7GBKg52IQA0Sv qfvUmeuFZ6sSDYEI6bC/u6MkyvRwV7pOtqzUoGbvtGDhnFIxdiyiEOfZosdvadBx ilXHU/tYDXffxFBcBoeoFHkYyX1vAY4uFsPBEywF3NBUGuoP5Ed5+AS+rQ== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIICZTCCAc4CAQMwDQYJKoZIhvcNAQEEBQAwcTELMAkGA1UEBhMCVVMxFjAUBgNV BAgTDU1hc3NhY2h1c2V0dHMxEDAOBgNVBAcTB0JldmVybHkxFTATBgNVBAoTDE9j ZWFud2F2ZSBDQTEhMB8GCSqGSIb3DQEJARYScm9vdEBvY2VhbndhdmUuY29tMB4X 0510MDcxOTEzNTc0M1oXDTA1MDcxOTEzNTc0M1owgYQxCzAJBgNVBAYTAlVTMRYw FAYDVQQIEw1NYXNzYWNodXNldHRzMRAwDgYDVQQHEwdCZXZlcmx5MSMwIQYDVQQK ExpPY2VhbndhdmUgQ29uc3VsdGluZywgSW5jLjEmMCQGA1UEAxMdcmVhbHNvb24u b2ZmaWNlLm9jZWFud2F2ZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGB AKKXR7OTQYKDWHvh0jCYSM2Y6gx+Lh2iE1hEVR4xE5UnGNv+/LzgGIYalmD86Vok KkwdI+5cVp0JhF3gIUgL2+OoerE68AEQwv+tpzx4Px4Ze1pRjw9f6UW+17C3PICG P4SpC6avMljj8lnv9Rmb300/Yz8ZzyAIzt8CjNu7lTCFAgMBAAEwDQYJKoZIhvcN AQEEBQADgYEAleB5Xk0BnHu3g6ron5qcjBtDgnOnvzsX3v+KVaFGZiufdWtILCMn 58HrXCV2zoUlUcbnrqHgov47qvZBlh2HR7fT7MQYXFTKOFDXwCdSDfXHTUmmQHzq cctX025yo45obGgI9LWDjip0/PW0k3r4IuVRtfOz+gHf1ZyEVjIuXkE= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIICZDCCAc0CAQQwDQYJKoZIhvcNAQEEBQAwcTELMAkGA1UEBhMCVVMxFjAUBgNV BAgTDU1hc3NhY2h1c2V0dHMxEDAOBgNVBAcTB0JldmVybHkxFTATBgNVBAoTDE9j ZWFud2F2ZSBDQTEhMB8GCSqGSIb3DQEJARYScm9vdEBvY2VhbndhdmUuY29tMB4X DTA0MDcxOTE0MTUwNloXDTA1MDcxOTE0MTUwNlowgYMxCzAJBgNVBAYTAlVTMRYw FAYDVQQIEw1NYXNzYWNodXNldHRzMRAwDgYDVQQHEwdCZXZlcmx5MSMwIQYDVQQK ExpPY2VhbndhdmUgQ29uc3VsdGluZywgSW5jLjElMCMGA1UEAxMcbGl6YXJkby5v ZmZpY2Uub2NlYW53YXZlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA ogtXoF+49I/CoSP+CUZ4jX+pLMsIXvta/MqqKlTuvEgauRSw385Aict7rGIR6B3u BUEBFN4Q+WzuYVJfbBMsUq/A6bilMpq/vbBrPAB9s/BkC5FAx2tMuMpgWn6ZXs/W iRiEWULAHa4k7rgmonXk47r0bBuSVrozdgKd4u2iB6sCAwEAATANBgkqhkiG9w0B AQQFAAOBgQBCCMhUdlfRk5owxpUIgtNLQ6/wfPgyUtIm7M4Mg0tHLD2ILCiaJLie x+Di5+09nciadYxn7fZhFdvnSpsthDX0/P6/H/iLTZnyK3k0PegzYx8Mwo4mnS/X Bt1cOuciRrd1tPHZ+st2Zqz/UO1jhbtEx7RNjtpxypChFQ2SB63wuA== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIICYzCCAcwCAQUwDQYJKoZIhvcNAQEEBQAwcTELMAkGA1UEBhMCVVMxFjAUBgNV BAgTDU1hc3NhY2h1c2V0dHMxEDAOBgNVBAcTB0JldmVybHkxFTATBgNVBAoTDE9j ZWFud2F2ZSBDQTEhMB8GCSqGSIb3DQEJARYScm9vdEBvY2VhbndhdmUuY29tMB4X DTA0MDcxOTE0MTUyMFoXDTA1MDcxOTE0MTUyMFowgYIxCzAJBgNVBAYTAlVTMRYw FAYDVQQIEw1NYXNzYWNodXNldHRzMRAwDgYDVQQHEwdCZXZlcmx5MSMwIQYDVQQK ExpPY2VhbndhdmUgQ29uc3VsdGluZywgSW5jLjEkMCIGA1UEAxMbc2Vrcml0Lm9m ZmljZS5vY2VhbndhdmUuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDG +OMOU6o3rCSyXMRRzwPKO/Yi9SjcT/5uwJh4x4a/iPlVNhbcG15PLpwmIiEvaKQe PTwJNEWAMnDBWyT6bmdN9xa0X1pzCDiLGMKJ2PFzoL6b9VwQSx9zp9fTPinh+mVw 484Hf8nQOSs+HKVAltCvJWcFq04aqbauE817Og369wIDAQABMA0GCSqGSIb3DQEB BAUAA4GBAJ6feAOv8bvGdk01QyupdIJVvp8IBv5ZJD1VLofoj/C4JYLsHWTV0IZI rhw37hI9y9wAiiZVrbEM88N0FgFfHN2hoymvRmvg0Y7l7OuMQWz2vSMJYIyeI2Wb uMWGN+klM77OxRXWseUOWaPp0RqW3MGqMV7+SU8sN9gVdEZdLxnj -----END CERTIFICATE----- Каждый клиент нуждается в его собственном сертификате и секретном ключе в pem файле, syslog-ng-client.pem: -----BEGIN RSA PRIVATE KEY----- MIICXAIBAAKBgQCil0ezk0GCg1h74dIwmEjNmOoMfi4dohNYRFUeMROVJxjb/vy8 4BiGGpZg/OlaJCpMHSPuXFadCYRd4CFIC9vjqHqxOvABEML/rac8eD8eGXtaUY8P X+lFvtewtzyAhj+EqQumrzJY4/JZ7/UZm99NP2M/Gc8gCM7fAozbu5UwhQIDAQAB AoGAGhMErqm44cNKl2NZn+1sD3ysXCCIKLxrOcaLl/Hq4AqLFAzKX0fY5viwkRE+ IvSVy+sIbhtk0H5MOfnNnI46TwCvgelMbb8FtRDpZrwA7AgH9+scnjfpuibVZdoW 9fR2HoOOevffDU9ZfFlthsOKJp+xb7PRFcsxlV3ihla9aKkCQQDNt3gcE9goGyBj kWkgB1Ydmov155xC1ozGpeyEVm3fGtD+sfgIxYuaV1xFhQKZMR2QeEnX3v5mqP31 zf5dnj47AkEAylVB95ZGvG91H4uUXrSW53djD2a5GtVjXNoDWLs7Hp7sbUkbRexa 5cSZ7EFqbyXHYx1xKMgYwqgIhbV1CU2gPwJAZBnMtkzpt8pLXmfZcZ5gRxN223eS T+u6oMcIafTsjc2suOK8wPfvUHEGE0X/169QpYYC2KpHvIiq2zsbdU6VFQJAYibZ yXFs/xxShOsBHrAcREz2ERKT2SCLAw//b5vkIgaWSq2cPV9a+PtWb/WL3D9Hah1u N4pZ+JPrDnHoRIsToQJBAJ4IG4AAgIPkmIVbROXXpt/2YBbP1WQI1suKzWy6r4V4 E0fiwYh1REik4+WRCRBabzjFA7GIDiD2QQGzTa8m0nQ= -----END RSA PRIVATE KEY----- -----BEGIN CERTIFICATE----- MIICZTCCAc4CAQMwDQYJKoZIhvcNAQEEBQAwcTELMAkGA1UEBhMCVVMxFjAUBgNV BAgTDU1hc3NhY2h1c2V0dHMxEDAOBgNVBAcTB0JldmVybHkxFTATBgNVBAoTDE9j ZWFud2F2ZSBDQTEhMB8GCSqGSIb3DQEJARYScm9vdEBvY2VhbndhdmUuY29tMB4X 0510MDcxOTEzNTc0M1oXDTA1MDcxOTEzNTc0M1owgYQxCzAJBgNVBAYTAlVTMRYw FAYDVQQIEw1NYXNzYWNodXNldHRzMRAwDgYDVQQHEwdCZXZlcmx5MSMwIQYDVQQK ExpPY2VhbndhdmUgQ29uc3VsdGluZywgSW5jLjEmMCQGA1UEAxMdcmVhbHNvb24u b2ZmaWNlLm9jZWFud2F2ZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGB AKKXR7OTQYKDWHvh0jCYSM2Y6gx+Lh2iE1hEVR4xE5UnGNv+/LzgGIYalmD86Vok KkwdI+5cVp0JhF3gIUgL2+OoerE68AEQwv+tpzx4Px4Ze1pRjw9f6UW+17C3PICG P4SpC6avMljj8lnv9Rmb300/Yz8ZzyAIzt8CjNu7lTCFAgMBAAEwDQYJKoZIhvcN AQEEBQADgYEAleB5Xk0BnHu3g6ron5qcjBtDgnOnvzsX3v+KVaFGZiufdWtILCMn 58HrXCV2zoUlUcbnrqHgov47qvZBlh2HR7fT7MQYXFTKOFDXwCdSDfXHTUmmQHzq cctX025yo45obGgI9LWDjip0/PW0k3r4IuVRtfOz+gHf1ZyEVjIuXkE= -----END CERTIFICATE----- Каждый клиент также нуждается в pem файле, syslog-ng-server.pem, содержащем сертификат сервера и подписанный СА. -----BEGIN CERTIFICATE----- MIIDJzCCApCgAwIBAgIBADANBgkqhkiG9w0BAQQFADBxMQswCQYDVQQGEwJVUzEW MBQGA1UECBMNTWFzc2FjaHVzZXR0czEQMA4GA1UEBxMHQmV2ZXJseTEVMBMGA1UE ChMMT2NlYW53YXZlIENBMSEwHwYJKoZIhvcNAQkBFhJyb290QG9jZWFud2F2ZS5j b20wHhcNMDIwNjIzMjIyODIxWhcNMTIwNjIwMjIyODIxWjBxMQswCQYDVQQGEwJV UzEWMBQGA1UECBMNTWFzc2FjaHVzZXR0czEQMA4GA1UEBxMHQmV2ZXJseTEVMBMG A1UEChMMT2NlYW53YXZlIENBMSEwHwYJKoZIhvcNAQkBFhJyb290QG9jZWFud2F2 ZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMSqIDhWZDLO2ptG9ebx FUycmXoMNPCLWmsFgRBQKG5vgOQruX8jpXqHOFCxjhO4ZsSUWwd8eO4J/4A9kTao VFzi4P63A8xyN92Gbh4BfvmFecDhLaoZ+5zMNclNOlom2Rda75Fj8iYhtSIrbOcq Mc8KkRriG3+Hl6ptW0XibqznAgMBAAGjgc4wgcswHQYDVR0OBBYEFDlBMdhKkmEm pQkan14xNA3a646MMIGbBgNVHSMEgZMwgZCAFDlBMdhKkmEmpQkan14xNA3a646M oXWkczBxMQswCQYDVQQGEwJVUzEWMBQGA1UECBMNTWFzc2FjaHVzZXR0czEQMA4G A1UEBxMHQmV2ZXJseTEVMBMGA1UEChMMT2NlYW53YXZlIENBMSEwHwYJKoZIhvcN AQkBFhJyb290QG9jZWFud2F2ZS5jb22CAQAwDAYDVR0TBAUwAwEB/zANBgkqhkiG 9w0BAQQFAAOBgQB8Xzn/UioFZV2Osyt0oz8/3Eu1GmQx4Cpaw4o7GBKg52IQA0Sv qfvUmeuFZ6sSDYEI6bC/u6MkyvRwV7pOtqzUoGbvtGDhnFIxdiyiEOfZosdvadBx ilXHU/tYDXffxFBcBoeoFHkYyX1vAY4uFsPBEywF3NBUGuoP5Ed5+AS+rQ== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIICZDCCAc0CAQIwDQYJKoZIhvcNAQEEBQAwcTELMAkGA1UEBhMCVVMxFjAUBgNV BAgTDU1hc3NhY2h1c2V0dHMxEDAOBgNVBAcTB0JldmVybHkxFTATBgNVBAoTDE9j ZWFud2F2ZSBDQTEhMB8GCSqGSIb3DQEJARYScm9vdEBvY2VhbndhdmUuY29tMB4X DTA0MDcxOTEzNTExNVoXDTA1MDcxOTEzNTExNVowgYMxCzAJBgNVBAYTAlVTMRYw FAYDVQQIEw1NYXNzYWNodXNldHRzMRAwDgYDVQQHEwdCZXZlcmx5MSMwIQYDVQQK ExpPY2VhbndhdmUgQ29uc3VsdGluZywgSW5jLjElMCMGA1UEAxMcbG9naG9zdC5v ZmZpcdaub2NlYW53YXZlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA 0gCdJFC7ysSIRbc9XLV5Q1mNAnE6SLHBAF8vdJwLsML7IY4t/Wm2R+WfT30zqE/8 zumckNJTidi82HEvyUJkfuMC4IH+covCtwawSMGgB23wMmvAveYPaCDU5IzOWN83 ZDIbz8JorzFfpQWtO0JNEmYPMWG5VImn4rEKZRs41r8CAwEAATANBgkqhkiG9w0B AQQFAAOBgQAvaaoVvP267QbxBOeBDBeP3CCpOskT5YJUHWQE2QmH5wR/5iwQqvrU Fo8V2JbaaauN9sa5CQutthUK1D3Ub+nHuHgGPFfdkL0Ll+5+LVf1swKXy8H1Q8CA Aiq0dK0EJQ+taQTw+KD7MBOzIJk0OF76uwdNxgaATQEVjxi6M0MG5g== -----END CERTIFICATE----- Удостоверьтесь, что на каждой машине только root может читать файлы сертификатов. chmod 400 /usr/local/etc/openssl/certs/syslog-ng-* chown root:other /usr/local/etc/openssl/certs/syslog-ng-* Конфигурирование Stunnel для работы с syslog-ng На сервере создайте файл конфигурации Stunnel , /usr/local/etc/stunnel/stunnel.conf, содержащий информацию по типу нижеприведенной. В этом примере в файле определяются сертификаты/ключи, сертификаты сервера, пользователь и группа stunnel, каталог chroot. Значение verify, равное 3, говорит о том, что stunnel будет проверять клиента с использованием локально установленных сертификатов. Stunnel пропускает верификацию по умолчанию, поэтому этот параметр необходимо задать явно. В заключительной части файла конфигурации определяется порт для сессии SSL и IP:port, где соединения будут приняты и перенаправлены. Порт 514 - это стандартный порт syslog, а 5140 - свободен и был нами выбран случайно. Для получения дополнительной информации и опций конфигурации обратитесь к странице руководства man stunnel. cert = /usr/local/etc/openssl/certs/syslog-ng-server.pem CAfile = /usr/local/etc/openssl/certs/syslog-ng-client.pem chroot = /var/run/stunnel pid = /run/stunnel.pid setuid = stunnel setgid = stunnel verify = 3 [5140] accept = 192.168.1.10:5140 connect = 127.0.0.1:514 На каждом клиенте файл конфигурации /usr/local/etc/stunnel/stunnel.conf содержит директивы, подобно файлу конфигурации сервера. Значения cert, CAfile, accept и connect меняются местами и добавляется директива client: client = yes cert = /usr/local/etc/openssl/certs/syslog-ng-client.pem CAfile = /usr/local/etc/openssl/certs/syslog-ng-server.pem chroot = /var/run/stunnel pid = /run/stunnel.pid setuid = stunnel setgid = stunnel verify = 3 [5140] accept = 127.0.0.1:514 connect = 192.168.1.10:5140 Теперь Stunnel сконфигурирован и мы готовы к установке и конфигурировании syslog-ng. Если Вы хотите проверить работу Stunnel, или сконфигурировать для использования другого TCP порта или сервиса, таких как IMAP или telnet, то обратитесь к stunnel examples (http://www.stunnel.org/examples/). Установка syslog-ng Стабильная версия syslog-ng требует установки библиотеки libol (http://www.campin.net/syslog-ng/faq.html#libol). Скачиваем. распаковываем и устанавливаем, как указано ниже: wget http://www.balabit.com/downloads/libol/0.3/libol-0.3.14.tar.gz tar zxf libol-0.3.14.tar.gz cd libol-0.3.14 ./configure make make install Теперь дело за получением исходников syslog-ng, распаковкой, конфигурированием и установкой. При сборке мной также была добавлена поддержка tcp wrappers, так как я активно использую это для других демонов. (Пр.п - Что он активно использует - tcp wrappers или syslog-ng со слов автора я не понял.) wget http://www.balabit.com/downloads/syslog-ng/1.6/src/syslog-ng-1.6.5.tar.gz tar zxf syslog-ng-1.6.5.tar.gz cd ../syslog-ng-1.6.5 ./configure --enable-tcp-wrapper make make install Убедитесь, что лишние порты закрыты пакетным фильтром или tcp wrappers. Сервер должен принимать соединения от клиентов на TCP 5140 и UDP 514, если машина будет принимать нешифрованные сообщения syslog. для поддержки расширенного синтаксиса tcp wrappers, добавтье в файл /etc/hosts.deny сервера: syslog-ng : LOCAL 127.0.0.1 192.168.1. : ALLOW В клиентский файл /etc/hosts.deny: syslog-ng : LOCAL 127.0.0.1 : ALLOW Теперь создадим скрипт запуска stunnel/syslog-ng и назовем его /etc/init.d/syslog-ng, для обеспечения автоматического старта после перезагрузки. Этот скрипт базируется на скрипте syslog для Solaris 8 OS: #!/sbin/sh # case "$1" in 'start') if [ -f /usr/local/etc/syslog-ng/syslog-ng.conf -a -x \ /usr/local/sbin/syslog-ng ]; then # # Before syslogd starts, save any messages from previous # crash dumps so that messages appear in chronological order. # /usr/bin/savecore -m if [ -r /etc/dumpadm.conf ]; then . /etc/dumpadm.conf [ "x$DUMPADM_DEVICE" != xswap ] && \ /usr/bin/savecore -m -f $DUMPADM_DEVICE fi # # Start stunnel so logs are sent encrypted # if [ -f /usr/local/etc/stunnel/stunnel.conf \ -a -x /usr/local/sbin/stunnel ]; then echo "Starting stunnel" mkdir -p /var/run/stunnel/run chown stunnel:stunnel /var/run/stunnel/run /usr/local/sbin/stunnel echo "Starting syslog-ng" /usr/local/sbin/syslog-ng fi fi ;; 'stop') if [ -f /var/run/syslog-ng.pid ]; then syspid=`/usr/bin/cat /var/run/syslog-ng.pid` [ "$syspid" -gt 0 ] && kill -15 $syspid && \ echo "Killed syslog-ng" fi if [ -f /var/run/stunnel/run/stunnel.pid ]; then syspid=`/usr/bin/cat /var/run/stunnel/run/stunnel.pid` [ "$syspid" -gt 0 ] && kill -15 $syspid && \ echo "Killed stunnel" fi ;; *) echo "Usage: $0 { start | stop }" exit 1 ;; esac Необходимо удалить скрипты запуска и останова дефолтного демона syslog и создать соответствующие ссылки на syslog-ng: rm /etc/rc*.d/???syslog ln -s /etc/init.d/syslog-ng /etc/rc0.d/K40syslog-ng ln -s /etc/init.d/syslog-ng /etc/rc1.d/K40syslog-ng ln -s /etc/init.d/syslog-ng /etc/rc2.d/S74syslog-ng ln -s /etc/init.d/syslog-ng /etc/rcS.d/K40syslog-ng Конфигурирование syslog-ng Гибкость syslog-ng обусловлена файлом конфигурации. Конфигурационные директивы манипулируют такими понятиями как source, filter, destination и log. Директива source указывает на источник журнальных сообщений - локальный или удаленный. Директива filter позволяет разделять сообщения базируясь на параметрах уровень/приоритет, имя программы, имя хоста или регулярное выражение. Директива destination может быть файлом, каналом, потоком, UDP или TCP соединением, ttys или программой. Директива log обьединяет source, filter и destination, определяя как будет обработано журнальное сообщение. Описание всех доступных директив может быть найдено в справочном руководстве syslog-ng (http://www.balabit.com/products/syslog_ng/reference/book1.html) или syslog-ng FAQ (http://www.campin.net/syslog-ng/faq.html). В следующем примере приводится конфигурационный файл, сохраняющий логи клиентских машин в /var/log и ведущий центральный лог в /var/log/clients/$YEAR/$MONTH/$HOST. Нижеприведенный /usr/local/etc/syslog-ng/syslog-ng.conf поддерживает сообщения с локального хоста, хосты, криптованные по stunnel и обычные UDP хосты. (маленькие роутеры и свичи не могут работать по stunnel). # Options options { use_fqdn(yes); sync(0); keep_hostname(yes); chain_hostnames(no); create_dirs(yes); }; # Sources of syslog messages (both local and remote messages on the server) source s_local { sun-streams("/dev/log" door("/etc/.syslog_door")); internal(); }; source s_stunnel { tcp(ip("127.0.0.1") port(514) max-connections(1)); }; source s_udp { udp(); }; # Level Filters filter f_emerg { level (emerg); }; filter f_alert { level (alert .. emerg); }; filter f_crit { level (crit .. emerg); }; filter f_err { level (err .. emerg); }; filter f_warning { level (warning .. emerg); }; filter f_notice { level (notice .. emerg); }; filter f_info { level (info .. emerg); }; filter f_debug { level (debug .. emerg); }; # Facility Filters filter f_kern { facility (kern); }; filter f_user { facility (user); }; filter f_mail { facility (mail); }; filter f_daemon { facility (daemon); }; filter f_auth { facility (auth); }; filter f_syslog { facility (syslog); }; filter f_lpr { facility (lpr); }; filter f_news { facility (news); }; filter f_uucp { facility (uucp); }; filter f_cron { facility (cron); }; filter f_local0 { facility (local0); }; filter f_local1 { facility (local1); }; filter f_local2 { facility (local2); }; filter f_local3 { facility (local3); }; filter f_local4 { facility (local4); }; filter f_local5 { facility (local5); }; filter f_local6 { facility (local6); }; filter f_local7 { facility (local7); }; # Custom Filters filter f_user_none { not facility (user); }; filter f_kern_debug { filter (f_kern) and filter (f_debug); }; filter f_daemon_notice { filter (f_daemon) and filter (f_notice); }; filter f_mail_crit { filter (f_mail) and filter (f_crit); }; filter f_mesg { filter (f_kern_debug) or filter (f_daemon_notice) or filter (f_mail_crit); }; filter f_authinfo { filter (f_auth) or program (sudo); }; # Destinations: local files, the console, and the client files destination l_authlog { file ("/var/log/authlog"); }; destination l_messages { file ("/var/log/messages"); }; destination l_maillog { file ("/var/log/maillog"); }; destination l_ipflog { file ("/var/log/ipflog"); }; destination l_imaplog { file ("/var/log/imaplog"); }; destination l_syslog { file ("/var/log/syslog"); }; destination l_console { file ("/dev/console"); }; destination r_authlog { file ("/var/log/clients/$YEAR/$MONTH/$HOST/authlog"); }; destination r_messages { file ("/var/log/clients/$YEAR/$MONTH/$HOST/messages"); }; destination r_maillog { file ("/var/log/clients/$YEAR/$MONTH/$HOST/maillog"); }; destination r_ipflog { file ("/var/log/clients/$YEAR/$MONTH/$HOST/ipflog"); }; destination r_imaplog { file ("/var/log/clients/$YEAR/$MONTH/$HOST/imaplog"); }; destination r_console { file ("/var/log/clients/$YEAR/$MONTH/$HOST/consolelog"); }; destination r_syslog { file ("/var/log/clients/$YEAR/$MONTH/$HOST/syslog"); }; destination r_fallback { file ("/var/log/clients/$YEAR/$MONTH/$HOST/$FACILITY-$LEVEL"); }; # Log statements # Local sources log { source (s_local); filter (f_authinfo) destination (l_authlog); }; log { source (s_local); filter (f_mail); destination (l_maillog); }; log { source (s_local); filter (f_local0); destination (l_ipflog); }; log { source (s_local); filter (f_local1); destination (l_imaplog); }; log { source (s_local); filter (f_syslog); destination (l_syslog); }; log { source (s_local); filter (f_emerg); filter (f_user_none); destination (l_console); }; log { source (s_local); filter (f_mesg); filter (f_user_none); destination (l_messages); }; # All sources, since we want to archive local and remote logs log { source (s_local); source (s_stunnel); filter (f_authinfo); destination (r_authlog); }; log { source (s_local); source (s_stunnel); filter (f_mail); destination (r_maillog); }; log { source (s_local); source (s_stunnel); filter (f_local0); destination (r_ipflog); }; log { source (s_local); source (s_stunnel); filter (f_local1); destination (r_imaplog); }; log { source (s_local); source (s_stunnel); filter (f_syslog); destination (r_syslog); }; log { source (s_local); source (s_stunnel); filter (f_emerg); filter (f_user_none); destination (l_console); }; log { source (s_local); source (s_stunnel); filter (f_mesg); filter (f_user_none); destination (l_messages); }; Для клиентского файла syslog-ng.conf фильтры остаются темиже самыми, но все остальной изменяется. # Options options { sync(0); use_fqdn(yes); }; # Sources of syslog messages (only local on clients) source s_local { sun-streams("/dev/log" door("/etc/.syslog_door")); internal(); }; # Destinations: local files, the console, and the remote syslog server destination l_authlog { file ("/var/log/authlog"); }; destination l_messages { file ("/var/log/messages"); }; destination l_maillog { file ("/var/log/maillog"); }; destination l_ipflog { file ("/var/log/ipflog"); }; destination l_imaplog { file ("/var/log/imaplog"); }; destination l_console { file ("/dev/console"); }; destination l_syslog { file ("/var/log/syslog"); }; destination stunnel { tcp ("127.0.0.1", port(514)); }; # Level Filters filter f_emerg { level (emerg); }; filter f_alert { level (alert .. emerg); }; filter f_crit { level (crit .. emerg); }; filter f_err { level (err .. emerg); }; filter f_warning { level (warning .. emerg); }; filter f_notice { level (notice .. emerg); }; filter f_info { level (info .. emerg); }; filter f_debug { level (debug .. emerg); }; # Facility Filters filter f_kern { facility (kern); }; filter f_user { facility (user); }; filter f_mail { facility (mail); }; filter f_daemon { facility (daemon); }; filter f_auth { facility (auth); }; filter f_syslog { facility (syslog); }; filter f_lpr { facility (lpr); }; filter f_news { facility (news); }; filter f_uucp { facility (uucp); }; filter f_cron { facility (cron); }; filter f_local0 { facility (local0); }; filter f_local1 { facility (local1); }; filter f_local2 { facility (local2); }; filter f_local3 { facility (local3); }; filter f_local4 { facility (local4); }; filter f_local5 { facility (local5); }; filter f_local6 { facility (local6); }; filter f_local7 { facility (local7); }; # Custom Filters filter f_user_none { not facility (user); }; filter f_kern_debug { filter (f_kern) and filter (f_debug); }; filter f_daemon_notice { filter (f_daemon) and filter (f_notice); }; filter f_mail_crit { filter (f_mail) and filter (f_crit); }; filter f_mesg { filter (f_kern_debug) or filter (f_daemon_notice) or filter (f_mail_crit); }; filter f_authinfo { filter (f_auth) or program (sudo); }; # Log statements # Log things locally log { source (s_local); filter (f_authinfo); destination (l_authlog); }; log { source (s_local); filter (f_mail); destination (l_maillog); }; log { source (s_local); filter (f_local0); destination (l_ipflog); }; log { source (s_local); filter (f_local1); destination (l_imaplog); }; log { source (s_local); filter (f_syslog); destination (l_syslog); }; log { source (s_local); filter (f_emerg); filter (f_user_none); destination (l_console); }; log { source (s_local); filter (f_mesg); filter (f_user_none); destination (l_messages); }; # Log everything remotely via stunnel log { source (s_local); destination (stunnel); }; Продвинутые пользователи могут включить в syslog-ng инструкции по приему сообщений от принтеров, баз данных, вести почтовые логи. Также полезным будет посылать критически важные сообщения в отдельный лог, с тем чтобы можно было обеспечить его анализ в реальном масштабе времени с использованием swatch ftp://ftp.cert.dfn.de/pub/tools/audit/swatch/ logsurfer http://www.cert.dfn.de/eng/logsurf/ Log Tool http://xjack.org/logtool/ или Logwatch http://www.logwatch.org/ Возможности для автоматизирования процесса мониторинга файлов журналов весьма обширны, так как вывод логов можно организовать достаточно гибко. Ресурсы Software packages on the reference systems: * OpenSSL http://www.openssl.org/ * A HOW-TO for SSL certificates http://tldp.org/HOWTO/SSL-Certificates-HOWTO/ * OpenSSL mailing lists http://www.openssl.org/support/ * tcp wrappers ftp://ftp.porcupine.org/pub/security/ * /dev/urandom patch for the Solaris 8 OS http://sunsolve6.sun.com/search/document.do?assetkey=112438 * GNU gcc http://gcc.gnu.org/ * GNU wget http://www.gnu.org/software/wget/wget.html Stunnel resources: * The latest Stunnel source code http://www.stunnel.org/download/stunnel/src/stunnel-4.05.tar.gz * The Stunnel FAQ http://www.stunnel.org/faq/ * Some Stunnel examples http://www.stunnel.org/examples/ * The stunnel-users mail archive http://marc.theaimsgroup.com/?l=stunnel-users syslog-ng resources: * The syslog-ng home page http://www.balabit.com/products/syslog_ng/ * The latest libol source code http://www.balabit.com/downloads/libol/0.3/libol-0.3.14.tar.gz * The latest syslog-ng source code http://www.balabit.com/downloads/syslog-ng/1.6/src/syslog-ng-1.6.5.tar.gz * The syslog-ng reference manual http://www.balabit.com/products/syslog_ng/reference/book1.html * The syslog-ng FAQ http://www.campin.net/syslog-ng/faq.html * Support packages for syslog-ng http://www.balabit.com/products/support/syslog-ng/ * The syslog-ng mail archive https://lists.balabit.hu/pipermail/syslog-ng/ * The syslog-ng-announce mail archive https://lists.balabit.hu/pipermail/syslog-ng-announce/ Real-time log parsing tools: * swatch ftp://ftp.cert.dfn.de/pub/tools/audit/swatch/ * logsurfer http://www.cert.dfn.de/eng/logsurf/ * Log Tool http://xjack.org/logtool/ * Logwatch http://www.logwatch.org/

<< Предыдущая ИНДЕКС Правка src Установить закладку Перейти на закладку Следующая >>

 Добавить комментарий
Имя:
E-Mail:
Заголовок:
Текст:




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру