вторник, 26 января 2010 г.

cisco debug and packet logging

Для переключения логирования на виртуальный терминал telnet:
    terminal monitor
Для включения сообщений отладки:
    undebug all
    conf t
    logging monitor debugging
    logging on
    exit
Теперь можно включить вывод отладочных сообщений какой либой функции роутера, к примеру isdn:
    debug isdn events   
    debug ip http url
    debug frame-relay packet interface Serial0/1:1.1 dlci 99 (поинформативней)
Как все вернуть обратно?
    undebug all
    terminal no monitor
    conf t
    no logging monitor
    exit

Важно:
1). no logging console - лучше использовать когда дебуг идет не в консоль
2). Включение msec временных штампов:
           router(config)#service timestamps debug datetime msec
                router(config)#service timestamps log datetime msec
Добавляется временные штампы в debugs в формате MMM DD HH:MM:SS согласно системных часов, если они не
установлены, то (*) будут.
3). Ограничение дебуга ip пакетов создать access-list на debug. Только пакеты попавшие под критерии access-list будут дебужиться. Его не нужно вешать ни на какой интерфейс, но применить на операции дебуга.
Перед debugging ip packet, не забываем за режим роутера по умолчанию CEF (или fast-switching), это означает что пакеты не попадают в процессор и дебуг не покажет ничего. Надо cef вирубить - no ip cef (no ip route-cache (for unicast packets) or no ip mroute-cache (for multicast packets)). Будет применено на интерфейсах где трафик предположительно проходить (flow). Проверте show ip route командой.
Отключение cef на загруженном роутере приведет к почальной ситуации. Не используйте это на роутерах с MPLS, посольку MPLS не работает без CEF.

Пример
access-list 105 permit icmp host 10.10.10.2 host 13.1.1.1
access-list 105 permit icmp host 13.1.1.1 host 10.10.10.2
router_122(config)#interface virtual-template 1
router_122(config-if)#no ip route-cache
router_122(config-if)#end
debug ip packet detail 105
http://www.cisco.com/en/US/tech/tk801/tk379/technologies_tech_note09186a008017874c.shtml
Пример дебуга тригерного
debug serial interface
traxbol#debug interface serial 3
    Condition 1 set
Используйте данну команду для проверки условий дебуга
    traxbol#show debug condition
    Condition 1: interface Se3 (1 flags triggered)
    Flags: Se3
    traxbol#
undebug interface - выключение (лучше undebug all)
http://www.cisco.com/en/US/docs/ios/12_3/debug/command/reference/dbg_02g.html - еще примеры


Включение/выключение режима монитора:
terminal monitor / terminal no monitor
Выключение режима дебуга
no debug all

Одна из опций использовать log или log-input параметры в конце ACL. Основное отличие между ними, что log-input показывает вх. интерфейс принятых пакетов и MAC-адрес источника. (оба этих параметра отключают CEF switching, который серйозно воздествует на производительность. Потому, используйте функцию логирования для to идентифицировать атаку включая жертву и атакующего а потом уберите log или log-input параметры с ACL).
Пример:
Router(config)# access-list 100 deny icmp any any echo reply log-input
Лучше вырубить логированние в консоль и включить логирование в буфер (поскольку консольный интерфейс будет в шоке от количества событий)
Особенности:
1). включение логирования не стоит делать на роутерах с загрузкой процессора >80% особенно при ACL на высокоскоростных интерфейсах.
2). если команда show access-list выводит совпадения в списках ACl и при добавлении log параметра в ACL ничего нет, нужно попробовать очистить route cache (clear arp-cache) для форсирования пакетов process-switched вместо cef (для уменьшения проблем при перестройке кеша на сильно загруженных роутерах используйте девайсы с поддержкой cef)
3). ACL logging не показывает каждый пакет, что подпадает под ACL, по крайнет мере будет виден первый в сессии и через определенные периоды. Cisco IOS испльзует rate limiting для предотвращения перегрузки логированием процессора. То есть вы не будете видеть пакеты подпадающие под ACL при включенном логировании.
4). когда много рефлекторов (атакующих) ACL устанавливается на одного из них и логинг включается для него, поскольку очень много информации.
Будь конкретен в своих ACL листах когда анализируешь DoS атак. Используй log-input для получения информации об интерфейсе с которого идет атака. Если есть несколько интерфейсов эта информация будет включать MAC адреса next-hop маршрутизатора; используй show ip arp MAC_address команду для узнавания IP адреса маршрутизатора.

Поскольку ACL очень грузят роутер можно задействовать механизм netflow
1). включаем его на интерфейсе, где планируется атака
Router(config)# interface type [slot_#/]port_#
Router(config-if)# ip route-cache flow
или при поддержке роутером distributed switching (7500 with RSP and VIP модулями)
Router(config-if)# ip route-cache distributed
2). експорт данных netflow
Router(config)# ip flow-export IP_address UDP_port_# [version 5]
3). проверка
Router# show ip cache [prefix mask] [type number] [verbose] flow
обратите внимание номера портор в 16-тиричной системе
rcIf SrcIPaddress DstIf DstIPaddress Pr SrcP DstP Pkts (4)
Et1 200.1.1.1 Et0 192.1.1.1 01 0000 0800 5
очиста статистики - clear ip flow stats (всегда нужно делать перед исследованием)

источник http://www.informit.com/articles/article.aspx?p=345618

четверг, 21 января 2010 г.

saslauth CENTOS (REDHAT) проблемы авторизации

Добавить в /etc/sysconfig/saslauthd параметр
FLAGS="-r"
Без него saslauthd будет передавать MySQL параметры так
Query SELECT password FROM mailbox WHERE username = 'admin' (то есть не будет передавать "@домен")
Поскольку в базе сохранен полный адресс то нужен ключ -r и тогда будет передавать полный електронный адресс
Query SELECT password FROM mailbox WHERE username = 'admin@example.org'