Сброс логов Cisco на сервер syslogd
Во время настройки и отладки работы Cisco бывает полезным вести логи не только на самом устройстве, но и сохранять их на какой-то внешний сервер. В моем случае это будет сервер под управлением FreeBSD 8.2-RELEASE с работающим syslogd – демоном для сбора системных сообщений. Для ротации лога будет использоваться newsyslog – программка для управления файлами системных логов. |
Сперва подготовим сервер под управлением FreeBSD к приему логов от Cisco. Для этого внесем некоторые изменения в rc.conf для запуска демонов по-умолчанию:
# nano -w /etc/defaults/rc.conf ... syslogd_enable="YES" # Run syslog daemon (or NO). syslogd_program="/usr/sbin/syslogd" # path to syslogd, if you want a different one. #syslogd_flags="-s" # Flags to syslogd (if enabled). syslogd_flags="-4 -b 192.168.200.2" ...
В файле по пути /etc/defaults/rc.conf найдите строки, относящиеся к syslogd. Обязательно закомментируйте (удалите флаг -s) строку syslogd_flags=”-s”, иначе syslogd не будет принимать сообщения от удаленных хостов! Так же мы обозначили некоторые флаги, с которыми необходимо запустить syslogd:
- -4 – использовать только IPv4 адресное пространство;
- -b 192.168.200.2 – указали сетевой интерфейс сервера, на котором необходимо принимать сообщения от удаленных хостов.
Теперь необходимо внести некоторые изменения в конфигурационный файл syslogd:
# nano -w /etc/syslog.conf ... local1.* /var/log/cisco.log ...
Этой строкой мы указали, что все сообщения, типа local1, будут заносится в файл /var/log/cisco.log. Создадим его и присвоим определенные права (чтение/запись только для root):
# touch /var/log/cisco.log # chmod 0600 /var/log/cisco.log # ls -Al /var/log/ | grep cisco -rw------- 1 root wheel 0 28 фев 14:24 cisco.log
Перезапустим syslogd и проверим его работу некоторыми командами:
# /etc/rc.d/syslogd restart Stopping syslogd. Starting syslogd. # ps aux | grep syslogd root 97906 0,0 0,0 9256 1560 ?? Ss 14:16 0:00,01 /usr/sbin/syslogd -l /var/run/log -l /var/named/var/run/log -4 -b 192.168.200.2 # netstat -p udp -an | grep 514 udp4 0 0 192.168.200.2.514 *.* # logger -p local1.info "Test" # less /var/log/cisco.log Feb 28 14:28:25 freebsd user: Test
Вы должны увидеть примерно то же самое…
Внесем в конфигурационный файл программки newsyslog по пути /etc/newsyslog.conf некоторые изменения:
# nano -w /etc/newsyslog.conf /var/log/cisco.log 600 7 * @T00 JC
Данная строка означает следующее: каждый день в 00:00:00 будет создаваться файл /var/log/cisco.log с правами 0600, а старый лог будет сжат с помощью bzip2 и ему присвоят имя типа cisco.0.bz2. И так до 7 раз. Более ранние логи будут затираться. Вы можете изменить эти параметры согласно своим требованиям.
Нам осталось только настроить файерволл (если он у вас имеется). На моем сервере используется pf:
# nano -w /etc/pf.conf ... pass in quick on em0 proto udp from 192.168.200.0/24 to 192.168.200.2 port 514 ... # /etc/rc.d/pf reload Reloading pf rules.
Где:
- em0 – внутренний сетевой интерфейс;
- 192.168.200.0/24 – локальная подсеть;
- 192.168.200.2 – ip адрес внутреннего интерфейса.
На этом подготовительный этап на принимающей стороне (сервере под управлением freebsd) мы закончили. Приступим к администрированию cisco.
Подключитесь с cisco по telnet или ssh, войдите в конфигурационный режим:
Using username "user". Using keyboard-interactive authentication. Password: cisco#conf t Enter configuration commands, one per line. End with CNTL/Z. cisco(config)#logging on cisco(config)#logging message-counter syslog cisco(config)#logging buffered 51200 warnings
Этими командами мы включили логирование, установили размер локального буфера для сообщений уровня warnings, включили в лог порядковый номер сообщения.
Теперь дадим команды для логирования на наш подготовленный внешний сервер с работающим syslogd:
cisco(config)#logging trap notifications cisco(config)#logging origin-id hostname cisco(config)#logging facility local1 cisco(config)#logging source-interface FastEthernet0/1 cisco(config)#logging host 192.168.200.2 cisco(config)#exit cisco#wr mem Building configuration... [OK]
Данными командами мы:
- установили уровень логируемых сообщений – уведомления (severity=5);
- добавили в качестве ID имя хоста cisco к каждому сообщению (полезно, если вы собираете логи с нескольких устройств cisco);
- установили тип local1 для логируемых сообщений (по-умолчанию – local7);
- установили сетевой интерфейс для исходящих log-сообщений;
- и, наконец, указали ip адрес нашего сервера syslogd;
- осуществили выход из режима конфигурирования и сохранили в память сделанные нами изменения.
Вот, в принципе, и все. Проверить работу loggin на cisco вы можете командой show logging. Результатом ее работы будет что-то типа этого:
cisco#sh logging Syslog logging: enabled (0 messages dropped, 21587 messages rate-limited, 0 flushes, 0 overruns, xml disabled, filtering disabled) No Active Message Discriminator. No Inactive Message Discriminator. Console logging: level debugging, 93089 messages logged, xml disabled, filtering disabled Monitor logging: level debugging, 0 messages logged, xml disabled, filtering disabled Buffer logging: level warnings, 37202 messages logged, xml disabled, filtering disabled Logging Exception size (4096 bytes) Count and timestamp logging messages: disabled Persistent logging: disabled Trap logging: level notifications, 71087 message lines logged Logging to 192.168.200.2 (udp port 514, audit disabled, authentication disabled, encryption disabled, link up), 71087 message lines logged, 0 message lines rate-limited, 0 message lines dropped-by-MD, xml disabled, sequence number disabled filtering disabled Log Buffer (51200 bytes):
А на сервере syslogd в файле /var/log/cisco.log, вы увидите уведомления (сразу же о вашей активности на устройстве cisco):
# less /var/log/cisco.log ... Feb 28 15:12:52 192.168.200.1 71098: cisco: Feb 28 15:12:20: %SYS-5-CONFIG_I: Configured from console by USER on vty1 (192.168.200.5) Feb 28 15:21:21 192.168.200.1 71099: cisco: Feb 28 15:20:49: %SYS-5-CONFIG_I: Configured from console by USER on vty1 (192.168.200.5) Feb 28 15:22:11 192.168.200.1 71100: cisco: Feb 28 15:21:39: %SSH-5-SSH2_CLOSE: SSH2 Session from 192.168.200.5 (tty = 1) for user 'USER' using crypto cipher 'aes256-cbc', hmac 'hmac-sha1' closed ...
Удачи!