@ Карта сайта News Автора!

Bog BOS: syslog - сетевой системный журнал

apache inn MySQL nntpcache Cyrus IMAP exim Squid ssh syslog tacacs ProFTPD wu-ftpd xntpd

Последние изменения:
2015.11.18: hard: обновлена статья про ИБП и их мониторинг

Последнее изменение файла: 2015.09.17
Скопировано с www.bog.pp.ru: 2016.12.06

Bog BOS: syslog - сетевой системный журнал

Протокол syslog и программные средства поддержки обеспечивают запись информации о событиях в системный журнал (журналы, системную консоль), а также передачу их на сервер журнализации по сети, сортировку и обработку в зависимости от источника и важности сообщений. В статье описывается протокол syslog, его реализация в Solaris и Linux (syslogd), Cisco IOS, а также вспомогательные средства: logrotate, logwatch.

Оглавление:

Архитектура системы журнализации

Компонентами системы являются генератор сообщений (устройство или процесс), протокол обмена, коллектор сообщений (collector, syslog server), релей (relay, принимает сообщения от одного или нескольких генераторов и передает одному или нескольким коллекторам или следующим релеям). Генератор (или релей при передаче) не знает является ли приемник релеем или коллектором, может передавать одно сообщение нескольким приемникам, может обрабатывать сообщение самостоятельно (например, записывая в файл).

Протокол syslog не содержит никаких средств защиты от подделок сообщений. Хуже того, использование протокола UDP позволяет злоумышленникам посылать сообщения от имени любого хоста. Локальная сеть должна быть защищена экраном (IOS ACL, ipchains) от приема пакетов с поддельными локальными адресами (хотя это не помешает посылать поддельные сообщения изнутри локальной сети) и от приема пакетов снаружи на порт 514/udp. Известны случаи переполнения диска ложными сообщениями.

Протокол syslog и UDP не обеспечивают гарантированной доставки (сообщения могут быть потеряны при перегрузке сети или перехвачены, поврежденные сообщения удаляются без предупреждения), правильной последовательности доставки (сообщение о завершении процесса может придти раньше сообщения о его запуске), приоритетной доставки.

Конфиденциальность сообщений не обеспечивается, так как они передаются открытым текстом.

Если при настройке генератора сообщений указать неправильный адрес коллектора или релея, то никаких сообщений об ошибке не будет - сообщения будут удаляться (или записываться в чужой журнал ;).

Средства защиты от зацикливания передачи сообщений неправильно настроенными релеями не предусмотрены.

RFC 3195 предлагает новый протокол над TCP (syslog-conn, 601), обеспечивающий гарантированную доставку в правильной последовательности. Реализация мне не известна. Чудовищная смесь XML, команд и кодов возврата в стиле SMTP и заголовков MIME (BEEP), в которую заворачиваются сообщения стандартного формата syslog. Используется два режима - RAW (аналог нынешнего UDP протокола) и COOKED (сообщения структурированы по полям). BEEP позволяет обеспечить аутентификацию, целостность и конфиденциальность (SASL, TLS).

Проект RFC syslog-sign предлагает обеспечить аутентификацию, упорядоченность, целостность сообщений и обнаружение пропавших сообщений за счет генерации специальных сообщений, содержащих цифровую подпись (signature) блока предыдущих сообщений с сохранением стандартного протокола и формата syslog и использованием UDP. Используется SHA1, OpenPGP DSA.

Протокол syslog

Для приема сообщений используется порт 514/UDP. Рекомендуется также использовать исходный порт 514 для передачи сообщений. Сообщение представляет собой текстовую строку и не может иметь длину более 1024 байт, в противном случае его разрешается обрезать или даже выбрасывать. Даже неправильно сформированное сообщение, посланное на 514 порт, должно рассматриваться как сообщение syslog. Однако, если релей передает сообщение дальше, то он должен добавить к нему стандартные заголовки (при этом, возможно обрезав его до 1024 байт) - USER, NOTICE, свое локальное время и простое имя источника сообщения.

Сообщение начинается с поля PRI, которое в закодированном виде содержит информацию об источнике сообщения (facility) и уровне серьезности (Severity level) сообщения. За ним записывается время (TIMESTAMP), пробел, имя или IP адрес хоста в десятичной записи (HOSTNAME), пробел, произвольный текст сообщения (MSG) в US-ASCII (0x20 - 0x7e).

Источник сообщения кодируется числом от 0 до 23:

Уровень серьезности кодируется числом от 0 до 7:

Номер источника умножается на 8 и складывается с уровнем серьезности, получившееся число заключается в угловые скобки и образует поле PRI.

Время (местное!) записывается в формате: Feb 13 21:12:06. Если номер дня является однозначным числом, то перед ним ставится дополнительный пробел (не 0!). Заметьте отсутствие года и зоны в дате, что необходимо учесть при долговременном хранении. Для того, чтобы время в сообщении было правильным, устройство должно быть синхронизовано (например, по NTP).

Имя хоста (простое, не FQDN!) записывается так, как оно известно генератору сообщения. Если устройство имеет несколько интерфейсов с различными IP-адресами, то в качестве имени или адреса хоста может быть использовано любое из них.

Текст сообщения (MSG) обычно содержит этикетку (TAG), указывающую на программу или процесс, выдавшую это сообщение и тело сообщения (CONTENT). Этикетка может содержать латинские буквы и цифры. Начало тела сообщения определяется по первому специальному символу - обычно двоеточие или открывающая квадратная скобка. Например, Cisco IOS в качестве этикетки использует последовательный номер сообщения и двоеточие, а Unix - простое имя программы (тело сообщения начинается с номера процесса в квадратных скобках и двоеточия).

syslogd - "стандартная" реализация протокола syslog в Unix

syslogd осуществляет прием сообщений с порта 514/UDP и от местных источников (сокет /dev/log), их маршрутизацию в зависимости от источника сообщений и уровня серьезности. Позволяет выводить сообщения в журнал, выводить на консоль, на терминал, посылать на другой сервер. Вводится дополнительный тип источника MARK (регулярные отметки, info)

Каждая строка журнала содержит запись одного сообщения, состоящую из полей, разделенных пробелами:

Параметры запуска:

Используемые файлы:

Реакция на сигналы:

Запускается с правами root. Не меняет права доступа к файлам. Если вынужден создавать файл, то делает его с правами 644. При необходимости ограничить доступ к журналу, соответствующий файл надо создать вручную (или поменять права доступа). Особые проблемы создает logrotate.

Настройка syslog.conf

Представляет собой набор правил маршрутизации сообщений. Комментарии начинаются с символа '#'. Обратная косая черта в конце строки означает продолжение правила на следующей строке. Каждое правило состоит из селектора и действия, которые разделяются табуляциями (в старых системах - Solaris 5) или пробелами (Linux). Получив сообщение для записи в журнал (от klogd, от локальной или удаленной программы), syslogd для каждого правила проверяет не подходит ли сообщение под шаблон, определяемый селектором. Если подходит, то выполняется указанное в правиле действие. Для одного сообщения м.б. выполнено произвольное количество действий (т.е. обработка сообщения не прекращается при первом успехе).

Селектор состоит из двух частей, разделенных точкой: источник сообщения и уровень серьезности. Прописные и строчные буквы не различаются. Можно также использовать числа (см. /usr/include/syslog.h). Кроме определенных в syslog(3) источников, можно указывать mark (регулярные временные метки), security (устаревший синоним для auth). Кроме определенных в syslog.h уровней серьезности можно использовать warn (синоним для warning), error (синоним для err), panic (синоним для emerg). Сообщения с уровнем, равным или выше указанного в селекторе, и источником, равным указанному в селекторе, считается подходящим. Звездочка перед точкой соответствует любому источнику (кроме daemon и syslog!), после точки - любому уровню. Слово none после точки - никакому уровню для данного источника. Можно указывать несколько источников в одном селекторе (через запятую). В этом случае приоритет можно указывать только для последнего источника. В одной строке можно указывать несколько селекторов через ';'. Семантика не ясна: если использовать позитивные селекторы, то выполняется логическое ИЛИ, если негативные (none и восклицательный знак), то логическое И.

В новом syslogd (linux) перед уровнем можно поставить знак равенства - селектору будут соответствовать только сообщения с указанным уровнем (но не с высшим); восклицательный знак - не будут соответствовать сообщения с уровнем равным или большим; восклицательный знак и равенство - не будут соответствовать сообщения с уровнем, равным указанному.

В качестве действия можно указывать:

Особенности syslogd в Linux

Включен в состав пакета sysklogd (RH 6.2: sysklogd-1.3.31-16, RH 7.0: sysklogd-1.3.33-8, RH 7.2: sysklogd-1.4.1-4). Также в этот пакет входит klogd.

Процедура запуска, остановки, перезапуска (syslogd и klogd): /etc/rc.d/init.d/syslog (символьные ссылки на нее из директорий /etc/rc.d/rc?.d/). Ключи запуска считывает из файла /etc/sysconfig/syslog (начиная с RH 7.2). Статус определяется по наличию файла /var/lock/subsys/syslog. Номер процесса хранится в /var/run/syslogd.pid.

rsyslog - усовершенствованный сервер syslog

rsyslog - это один из претендентов на замену "стандартного" сервера sysklogd в Linux (может быть полностью с ним совместим). Продвигается фирмой Red Hat (в частности, в RHEL5.2 (2.0.0) и Fedora 8 (1.19.6 и 2.0.2) как вариант; в Fedora 10 (3.21.9) по умолчанию). Имеется платная поддержка (Adiscon). Лицензия - GPLv3. Работает под Linux (Red Hat, Debian, Ubuntu, OpenSUSE, Gentoo), FreeBSD, Solaris, AIX. Среди улучшений:

Имеет модульную структуру (загрузка модулей производится директивой "$ModLoad имя-модуля"):

Между модулем ввода (imtcp) и подлежащим транспортным уровнем можно поместить драйвер потока (Network Stream Drivers), который обеспечивает последовательность, аутентификацию и секретность:

Параметры запуска (/etc/sysconfig/rsyslog, /etc/rc.d/init.d/rsyslog):

Используемые файлы:

Реакция на сигналы:

В отличие от sysklogd синхронизация выключена по умолчанию. Формат временных отметок при записи в файл по умолчанию изменён. При передаче сообщений на удалённый сервер они предваряются именем хоста (как это обрабатывается logwatch?!), рекомендуется обеспечить совместимость следующим образом:

$template sysklogd,"<%PRI%>%TIMESTAMP% %syslogtag%%msg%"
*.* @192.168.0.1;sysklogd

Принимаемые сообщения могут складываться в главную очередь сообщений (MainMsg, параметры собираются по всему файлу настройки) перед обработкой правил (есть и другие очереди перед каждым действием - Action, отдельная очередь для каждого действия, параметры должны быть определены до описания действия). Типы очередей (QueueType):

Количество потоков обработки очереди выбирается автоматически в зависимости от заполнения очереди (QueueWorkerThreadMinimumMessages, QueueWorkerThreads). Ненужные более потоки уничтожаются при истечении времени неактивности (QueueWorkerTimeoutShutdown). При катастрофическом переполнении очереди (QueueDiscardMark) менее приоритетные сообщения (QueueDiscardSeverity) выкидываются. При длительном переполнении очереди приём новых сообщений останавливается полностью (QueueTimeoutEnqueue) и все входящие сообщения могут выкидываться. Скорость обработки можно замедлять паузами между обработкой сообщений (QueueDequeueSlowdown).

Не меняет права доступа к имеющимся файлам.

Настройка rsyslog.conf

Файл представляет собой набор общих директив, директив модулей и правил маршрутизации сообщений. Комментарии начинаются с символа '#'. Обратная косая черта в конце строки означает продолжение правила на следующей строке. Максимальная длина строки - 4KB. Директивы начинаются с символа '$'.

Общие директивы (параметры, описывающие действие должны быть до активизации действия; при задании размера можно использовать суффиксы: k, m, g, t (двоичные) и K, M, G, T (десятичные)):

Директивы модуля imudp:

Директивы модуля imtcp (возможно шифрование и аутентификация с помощью stunnel, gtls или imgssapi):

Директивы модуля imklog:

Директивы модуля immark:

Директивы модуля imuxsock:

Директивы модуля imfile (каждая строка считается сообщением, файл может быть динамически дополняться и подменяться (ротация), можно мониторить до 100 файлов):

Директивы модуля imrelp

Директивы модуля ommail (аутентификация SMTP не поддерживается, вызывается в форме: ":ommail:;имя-шаблона-для-тела-письма", рекомендуется фильтровать сообщения и использовать $ActionExecOnlyOnceEveryInterval):

Директивы модуля omsnmp (версии протокола SNMP - SNMPv1 и SNMPv2c, сообщение заворачивается в OCTED STRING, вызывается в форме: ":omsnmp:"):

Директивы модуля ommysql (при вызове ":ommysql:имя-сервера,имя-БД,имя-пользователя,пароль[;имя-шаблона]" выполняется SELECT с подставленным значением шаблона):

Директивы модуля omlibdbi (при вызове ":omlibdbi:[;имя-шаблона]" выполняется SELECT с подставленным значением шаблона):

Директивы модуля omrelp (при вызове использовать :omrelp:имя-сервера:порт;имя-шаблона)

Каждое правило маршрутизации состоит из селектора и действия, которые разделяются табуляциями или пробелами. Каждое сообщение из главной (входной) очереди проверяется селектором каждого правила. Если подходит, то выполняется указанное в правиле действие. Для одного сообщения м.б. выполнено произвольное количество действий (т.е. обработка сообщения не прекращается при первом успехе). Перед действием отфильтрованные сообщения преобразуются с использованием шаблона вывода (либо шаблона по умолчанию, указанного в директиве, либо явно указанного по имени через точку с запятой после описания действия). Шаблон также может использоваться для генерации самого текста действия с указанием символа '?' перед именем шаблона. Шаблон должен быть определён до использования, иначе селектор будет проигнорирован.

Встроенные шаблоны:

Описание шаблона заключается в кавычки. Обратная косая черта обеспечивает специальное действие следующего символа вида \7 или \n. Текст описания шаблона выводится в результат как есть, кроме переменных (property replacer), заключённых в знаки процента. Внутри знаков процента после имени переменной могут идти начальная и конечная позиция и опции, разделённый двоеточиями. Имена переменных:

Простейший шаблон для использования с модулем ommysql (однако, рекомендуется использовать встроенную схему, совместимую с phpLogCon, createDB.sql):

"insert into syslog(message) values ('%msg%')"

Использование начальной и конечной позиции позволяет выделять подстроку. Нумерация символов начинается с 1. Символ "$" означает конец строки. Если в качестве начальной позиции указать символ "R", то конечная позиция должна содержать регулярное выражение. В конце регулярного выражения необходимо дописать "--end". Имеются модификаторы типа регулярного выражения и что делать при отсутствии совпадения, подробности в документации (property_replacer.html). Если в качестве начальной позиции указать символ "F", то конечная позиция должна содержать номер требуемого поля (нумеруются с 1, разделителем по умолчанию является символ табуляции, можно изменить указав после символа "F" запятую и десятичное значение символя-разделителя. Тема UNICODE не раскрыта.

Опции позволяеь форматировать результат обработки шаблона специальным образом (можно указать несколько опций, разделяя их запятыми):

Селектор состоит из двух частей, разделенных точкой: источник сообщения и уровень серьезности. Прописные и строчные буквы не различаются. Можно также использовать числа (см. /usr/include/rsyslog.h). В качестве источников, можно указывать фuth, authpriv, cron, daemon, kern, lpr, mail, news, syslog, user, uucp, mark (регулярные временные метки), security (устаревший синоним для auth) и от local0 до local7. В качестве уровней серьезности можно использовать debug, info, notice, warning, warn (синоним для warning), err, error (синоним для err), crit, alert, emerg, panic (синоним для emerg). Сообщения с уровнем, равным или выше указанного в селекторе, и источником, равным указанному в селекторе, считается подходящим. Звездочка перед точкой соответствует любому источнику, после точки - любому уровню. Перед уровнем можно поставить знак равенства - селектору будут соответствовать только сообщения с указанным уровнем (но не с высшим); восклицательный знак - не будут соответствовать сообщения с уровнем равным или большим; восклицательный знак и равенство - не будут соответствовать сообщения с уровнем, равным указанному. Можно использовать слово none после точки - селектору не будут соответствовать сообщения никакого уровня для данного источника. Можно указывать несколько источников в одном селекторе (через запятую). В этом случае приоритет можно указать только для последнего источника. В одной строке можно указывать несколько селекторов через ';'. Семантика не ясна (не описана): если использовать позитивные селекторы, то выполняется логическое ИЛИ, если негативные (none и восклицательный знак), то логическое И.

В качестве действия можно указывать:

Правила маршрутизации могут быть выделены в блоки, предварительно отфильтровывающие неподходящие сообщения на основе имени выдавшей сообщения программы и имени хоста, для этого в качестве селектора указывается (мутно описано и реализовано, не советую использовать):

В качестве селектора можно использовать значения переменных (property) в следующем формате:
:имя-переменной,[!]{contains|isequal|startswith|regex},"строка"
Прописные и строчные буквы различаются. Обратная косая черта маскирует последующий символ (в текущей реализации - '"' и '\').

В качестве селектора можно использовать выражения на бестиповом скриптовом языке RainerScript (Rainer - фамилия разработчика rsyslog) с использованием логических (not, and, or), арифметических (*, /, %, +, -) и строковых (contains, contains_i, startswith, startswith_i, &) операций, а также сравнений (==, !=, <>, <, >, <=, >=) с учётом приоритетов и скобок в следующем формате:
if выражение then действие
Значения переменных извлекаются использованием символа '$', за которым указывается имя переменной.

Специальный селектор '&' повторяет действие предыдущего селектора.

Жаль, что авторы не уделили времени проектированию перед началом реализации, а исходили из списка пожеланий пользователей.

Особенности syslogd в Solaris

При разборе файла конфигурации syslogd сравнивает адрес loghost (определяется в /etc/hosts, не через DNS) с адресом своего компьютера и при совпадении определяет переменную LOGHOST. После этого syslog.conf пропускается через макропроцесссор m4(1). В основном, это используется для того, чтобы один и тот же конфигурационный файл можно было использовать на клиентских и серверном (с точки зрения syslog) хостах.

Процедура запуска и остановки: /etc/init.d/syslog (ссылки на нее из директорий /etc/rc?.d). Номер процесса хранится в /etc/syslog.pid.

Использование syslog в Cisco IOS

Использование syslog в Cisco IOS.

klogd - журнализация сообщений ядра

klogd читает сообщения ядра (либо через /proc/kmsg, либо с помощью системных вызовов), определяет уровень, преобразует адреса команд в имена программ и передает сообщение syslogd.

Параметры запуска:

Уровни сообщений ядра (определяется по цифре в угловых скобках и преобразуется в уровень серьезности syslog, при выводе в файл не изменяется):

Реакция на сигналы:

Номер процесса хранится в /var/run/klogd.pid.

Слит в sysklog. Заменён в rsyslog.

logger - утилита записи в журнал

logger - запись сообщения в журнал из командной строки (sh, bash и др.). Входит в состав пакета util-linux. Параметры:

syslog API

Инициализация записи в журнал: openlog - указывается стандартный префикс, добавляемый ко всем последующим сообщениям (обычно имя программы, номер процесса в квадратных скобках и двоеточие); источник и опции. closelog - завершить запись в журнал. syslog - запись в журнал (указывается источник, уровень серьезности и формат строки как в printf).

logrotate или "что делать со старыми журналами?"

logrotate (версия 3.2-1/3.3.2-1/3.5.9/3.6.9/3.7.1) - борьба с растущими журналами: ротация (создание версий), сжатие, удаление и отправка по почте. Запускается ежедневно cron-ом (/etc/cron.daily/logrotate) и позволяет обрабатывать журналы, если они превысили указанный размер или с указанным временным интервалом. Позволяет обрабатывать не только журналы syslog, но и любых других программ. Параметры:

Конфигурационный файл определяет глобальные параметры (по одному на строке), задающие параметры по умолчанию для всех журналов. Для каждой серии обрабатываемых журналов задаются локальные параметры: указывается базовое имя файла, а затем в фигурных скобках локальные параметры по одному на строке. Имя файла может быть заключено в кавычки по правилам shell, если оно содержит пробелы и другие специальные символы. Можно указывать несколько имен файлов или шаблонов имен файлов через пробел (шаблоны также по правилам shell). Обработка каждой секции рассматривается как единое действие. Строки, начинающиеся с символа "#" являются комментариями. Параметры, указанные в следующем конфигурационном файле перекрывают значение параметров, указанных в предыдущем файле. Локальные параметры имеют приоритет над глобальными. Порядок файлов в конфигурационной директории не определен.

Параметры:

В поставке RH /etc/logrotate.conf описывает глобальные параметры и параметры для /var/log/wtmp и /var/log/lastlog и ссылается на директорию /etc/logrotate.d, в которую каждый пакет записывает локальные параметры для своих журналов.

logwatch или "как извлечь полезную информация из кучи мусора?"

logwatch представляет собой платформу (framework) для написания программ (называемых фильтрами) извлечения полезной информации из многочисленных, больших и разноформатных журналов (не только syslog).

Фильтры могут быть написаны на любом языке программирования, но автор пакета предпочитает perl. Фильтры должны быть написаны так, что читают данные с stdin и выводят результат на stdout. Перед вызовом фильтра устанавливаются переменные окружения: LOGWATCH_DATE_RANGE, LOGWATCH_DETAIL_LEVEL, LOGWATCH_TEMP_DIR, LOGWATCH_DEBUG. Основная программа также написана на perl: /etc/log.d/scripts/logwatch.pl (/etc/log.d/logwatch, /usr/sbin/logwatch и /etc/cron.daily/00-logwatch - это символьные ссылки на нее).

Старая версия logwatch размещает настроечные файлы в каталоге /etc/log.d/, новая - в /usr/share/logwatch/. Описана старая версия.

Каталог /etc/log.d/conf/logfiles/ содержит конфигурационные файлы групп журналов, в которых хранятся записи обслуживаемых сервисов. Каждая группа описывается отдельным файлом имя-группы.conf, в котором задаются:

Директория /etc/log.d/conf/services/ содержит конфигурационные файлы сервисов, чьи записи в журналах logwatch будет обрабатывать. Каждый сервис описывается отдельным файлом имя-сервиса.conf, в котором задаются:

Директория /etc/log.d/scripts/logfiles/ содержит фильтры обработки групп журналов: при обработке группы журналов все файлы в директории /etc/log.d/scripts/logfiles/имя-группы используются как фильтры.

Директория /etc/log.d/scripts/services/ содержит фильтры обработки записей конкретных сервисов.

Директория /etc/log.d/scripts/shared/ содержит общие фильтры, используемые в конфигурационных файлах групп журналов:

Параметры по умолчанию хранятся в файле /etc/log.d/conf/logwatch.conf (/etc/log.d/logwatch.conf есть символьная ссылка на него) или /etc/logwatch/conf/logwatch.conf (/usr/share/logwatch/default.conf/logwatch.conf), комментарии в котором позволяют понять смысл параметров:

Параметры запуска:

Основной способ использования состоит во включении файла 00-logwatch (начинается с "00", чтобы выполняться до logrotate) в директорию /etc/cron.daily, что вызывает ежедневное выполнение logwatch с параметрами по умолчанию.

К сожалению, все фильтры рассчитаны на то, что журналы записываются на том же хосте, на котором работает сервис.

Местные особенности

Все журналы ведутся на одном компьютере (если есть параноидальные наклонности, то можно записывать журналы сразу на двух серверах).

Соответствие между формальным именем источника и реальным устройством или программой:

На сервере должен быть открыт экран для порта 514/udp (можно ограничить исходные адреса пакетов, но это поможет только от случайностей). Запуск syslogd (параметры в /etc/rc.d/init.d/syslog или /etc/sysconfig/syslog) должен быть с ключами "-r -m 0" (и еще "-x", если на этом же компьютере работает сервер DNS). Запуск klogd с ключами "-2 -c 1". Настройка syslog.conf:

На клиентских компьютерах настраиваем syslog так, чтобы все сообщения передавались на сервер syslog, сообщения об ошибках дублировались в /var/log/syslog, сообщения о критическом состоянии дублировались на консоль, терминалы пользователей. На компьютерах с linux также сбрасывать в локальный файл сообщения о загрузке (local7, boot.log). Запасной сервер syslog должен принимать сообщения критического уровня из сети и записывать их в файл (дырка в экране, ключ запуска "-r").

logrotate: хранить вечно, менять версии по возможности реже (ежемесячно, кроме squid), сбрасывать в отдельные директории (кроме squid) и сжимать (в отложенном режиме, кроме ftpd, linuxconf, sendfax), [ошибки и удаляемые файлы посылать мне]. Привести в соответствие параметры для файла syslog.

Настроить /etc/logwatch/scripts и /usr/share/logwatch/.

Ссылки

@ Карта сайта News Автора!

Bog BOS: syslog - сетевой системный журнал

apache inn MySQL nntpcache Cyrus IMAP exim Squid ssh syslog tacacs ProFTPD wu-ftpd xntpd

Последние изменения:
2015.11.18: hard: обновлена статья про ИБП и их мониторинг

TopList
карты навител Украина карты СитиГид Украина
Copyright © 1996-2016 Sergey E. Bogomolov; www.bog.pp.ru (КГБ знает все, даже то что у Вас на диске ;)