вторник, 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'

среда, 30 декабря 2009 г.

xneur gxneur установка (аналог Punto Switcher)

доустанавливаем пакеты
yum install -y libX11-devel aspell-devel gstreamer-devel pcre-devel xosd xosd-devel libnotify-devel libglade2-devel
в каталоге сирцов xneur
./configure && make && make install
ln -s /usr/local/lib/pkgconfig/xnconfig.pc /usr/lib/pkgconfig
в каталоге сирцов gxneur (фронтенд для гнома для кедов kxneur(для четвертых пока нет!))
./configure && make && make install

среда, 23 декабря 2009 г.

Восстановление данных и файловых систем

Восстановление разделов (елси они не видятся fdisk) testdisk & hdparm (http://man-linux.ru/notes/solve/testdisk/, http://rlab.ru/forum/topic,405.0
scalpel - также программа для восстановления данных
1). ext3
сначала отмонтировать раздел (пакет ext3grep)
# ext3grep /dev/sda1 --dump-names - список файлов для восстановления
# ext3grep /dev/sda1 --restore-file /home/user/work/file.txt - файла
# ext3grep /dev/sda1 --restore-file /home/user/work/ - каталога
# ext3grep /dev/sda1 --restore-all --after=1231543545 - всех с момента (секунды с начала эпохи Unix)
2). ntfs (http://man.linux-ntfs.org/ - описание всех утилит)
пакет ntfsprogs
# ntfsundelete /dev/sda5
6006 FN.. 21% 2007-07-11 152579024 Dd705
6013 FR.. 100% 2007-03-29 574 make
3 колонка - % сохранности файла, если 100% можно восстановить
# ntfsundelete -p 100 /dev/sda5 - вывести только с 100% сохранностью
# ntfsundelete /dev/sda5 -p 100 -t 2d - тоже + удаленные за последние 2 дня
востановим файл с inode (1 колонка) 6013 в каталог /undelete
# ntfsundelete /dev/sda5 -u -i 6013 -d /undelete
# ntfsundelete /dev/sda5 -u -m "*.doc" - восстановление по маске
# ntfsundelete /dev/sda5 -S 5k-6m - восстановление по длине
# ntfsundelete /dev/sda5 -u -m "*" -d /undelete - все файлы
3). FAT, UFS, EXT3
# photorec - выбирает диск, потом выбираем пункт меню Intel, раздел, тип файловой системы, каталог восстановления, Y
Недостатки - имена не восстанавливает, дает сбои (битые файлы), вдобавок к нему нужно комплект утилит Sleuth Kit:
Просмотр удаленных файлов
# fls -rd /dev/sda7 (-r - рекурсивно по каталогам, -d - показывать только удаленные файлы)
r/r * 1214015(realloc): andrey/.xauthFPV1Nv-n
d/r * 4472833: test
4472833 - номера инод, а realloc - означает что файл можно восстановить (3 строка),
Пример использования:
# fls -rd /dev/sda7 | grep -v '(realloc)' | less (конкретный файл grep 1.jpg)
Восстановление файла
# icat -r /dev/sda7 1213725 >/home/vova/Downloads/1.doc
Восстановление всех файлов:
# for i in 'fls -rd /dev/sda7 | grep -v '(realloc)' | awk {'print $3'} | tr -d [:]'; do icat -r -f fat /dev/sdb1 $i > /home/andrey/tmp/inode-$i ; done
4). Починка файловых систем
fsck.vfat - FAT12, FAT16, FAT32
fsck.ufs - UFS, UFS2, FFS
ntfsfix - NTFS
К сожалению, ntfsfix не способна полностью вылечить NTFS. Она лишь исправляет некоторые из ее проблем и устанавливает флаг принудительной проверки файловой системы, так что следующая перезагрузка в Windows повлечет за собой запуск chkdsk для полной проверки ФС. Используя виртуальную машину, мы можем избежать необходимости перезагрузки в Windows. Для ЭТОГО:
1. Запускаем виртуальную машину и устанавливаем винду на виртуальный жесткий диск.
2. Отмонтируем раздел, содержащий файловую систему NTFS.
3. Запускаем виртуальную машину, в качестве первого жесткого диска которой указываем виртуальный диск с Windows, а второго — наш настоящий жесткий диск.
4. С помощью стандартных средств Windows запускаем проверку NTFS-раздела.
5). Копирование разделов
на новом диске создается раздел, идентичный по размерам источнику, и выполняется команда «dd if=раздел1 of=раздел2 bs=1m». Таким же образом можно скопировать и NTFS-раздел, но в пакете ntfsprogs для этой цели есть более подходящая утилита. Программа ntfsclone идентична по функциональности команде dd за исключением двух особенностей. Во-первых, она не копирует незанятые участки файловой системы, и перемещение происходит быстрее, а образ раздела (если ты создаешь образ) занимает меньше места. Во-вторых, ntfsclone способна хранить образ в специальном сжатом файле, который удобно передавать на другие машины. Для клонирования раздела:
# ntfsclone --overwrite /dev/hda1 /dev/hdb1
А для создания образа:
# ntfsclone --save-image --output backup.img /dev/hda1
Утилита ntfsclone особенно удобна, если ты решил скопировать установленный Windows на целый парк других машин (учебный класс или офис). Для этого достаточно установить Windows на одну машину и создать образ, который затем можно выложить в шару и с помощью Linux LiveCD залить на другие машины. Чтобы они смогли загружаться, придется также скопировать MBR-запись диска:
# sfdisk -d /dev/sda > /share/sda-sfdisk.dump
# dd if=/dev/sda bs=512 count=1 of=/share/sda-mbr.dump
А затем записать ее на диск всех машин:
# sfdisk /dev/sda < /share/sda-sfdisk.dump
# dd if=/share/sda-mbr.dump of=/dev/sda
6). Перенос данных
Если ты решил полностью перейти на Linux, но не хочешь использовать различные ухищрения и ntfs-3g для доступа к своим старым данным, расположенным на NTFS-разделе? Ведь этот раздел может занимать большую часть диска, и нет никакой возможности просто скопировать его содержимое на новый раздел, отформатированный в ext3/ext4. В этом случае тебе на помощь опять придут утилиты из пакета ntfsprogs, а точнее одна из них — ntfsresize, которая позволит копировать данные небольшими порциями в новую файловую систему с последующим уменьшением размера NTFS-раздела и увеличением ехt3/ехt4-раздела. Для этого тебе понадобится какой-нибудь LiveCD, содержащий ntfsprogs и e2fsprogs версии не ниже 1.41 (для поддержки ext4, если ты, конечно, собираешься переносить данные на нее). Также очень желательно, чтобы LiveCD содержал свеженький gparted, потому что изменять размер вручную трудно и опасно (кроме изменения размера самой ФС, предстоит менять размер раздела с помощью fdisk, одна ошибка и всю операцию придется начинать сначала). Загружаемся с LiveCD и монтируем разделы жесткого диска. Допустим, его размер составляет 120 Гб. Из них 80 Гб — под завязку набитый NTFS-раздел, а остальные 30 Гб (да, именно 30, после перевода маркетинговых гигабайт в настоящие объем диска оказывается равным примерно 111 Гб) — это раздел с установленным Linux, занятость которого составляет 5 Гб. Значит, наше «окно» равно примерно 25 Гб. Перемещаем файлы с NTFS-раздела на ext3/ext4- раздел до тех пор, пока их совокупный размер не станет равен размеру окна. В результате последний оказывается полностью заполненным, а первый «худеет» на 25 Гб. Отмонтируем оба раздела и запускаем gparted. Выбираем NTFS-раздел, жмем вторую кнопку мыши, выбираем Resize/Move и уменьшаем раздел на размер окна, выбираем ехt3/ехt4-раздел и увеличиваем его на тот же размер окна (раздел придется сдвинуть к началу диска, а затем увеличить). Так мы получаем еще 25 Гб освободившегося места, что позволит нам скопировать часть файлов, а затем вновь изменить размер. Четыре таких прохода, и мы полностью удаляем NTFS-раздел, а раздел ext3/ext4 расширяем на весь диск.

live cd с данными утилитами можно взять www.sysresccd.org

источник http://forum.http-soft-soft.ru/vosstanavlivaem-dannye-s-t52.html

Другие утилиты
1). Magic Rescue (magicrescue-1.1.9)
Папка восстановления должна быть на другом диске (флешка например)
рецепты восстановления в папке recipes (или искать в инете)
hdparm -d1 -c -u1 /dev/device - включения прямого доступа к устройству (делается сначала - можно обойтись без нее но время восстановления увеличится)
минимальный запуск указываем рецепт и директорию восстановления
magicrescue -d directory -r recipe device 
magicrescue -d /mnt/external -r /usr/local/share/magicrescue/recipes/zip /dev/sda2 (можно обойтись без полного пути просто zip)
Можно задать поиск для многих форматов указанием директории что содержит все рецепты для этих форматов. Дополнительные ключи
-M io - выводит результаты работы в консоль
-b blocksize - ограничение результатов в файлы, которые начинаются на разных размерах блоков (стандартный 512)
Если прервали Ctrl+c (ниже пример вывода утилиты где она это подсказывает) то можно продолжить с этого места
magicrescue: killed by signal 2 at offset 0x95D334D68 in file /dev/sda2
Use the -O option to resume from this offset later
пример
-O = 0x95D334D68 (-O [+|-|=][0x]offset, где - до позиции + после нее)
В папке /usr/local/share/magicrescue/tools/ для подальшей организации найденных файлов есть утилиты.
2). File Ripper - file formats: PNG, HTML, GIF, ZIP, LBM, PBM, ANM, BAT, BAS, RTF, HLP, WAV, WRI, JPG, ARJ, EXE, ANS, ZZT, FRM, text BAS, BMP, MZB, FLI, MSP, DOC, MZX, GDM, IT, S3M, SAV, BRD, LZH/LHA, MOD, XM, VOC, SVX, ABM, QUETZAL, and certain obscure MBBS-related formats corresponding to the files CALLERS, USERS.DAT and CONFIG
http://home.minlos.no/~peter.munsterhjelm/km
даже если дисковый образ или файловая система повреждены.
3). http://www.cgsecurity.org/wiki/PhotoRec общее ознакомление
качаем http://www.cgsecurity.org/wiki/TestDisk_Download
использование оригинальное
http://www.cgsecurity.org/wiki/PhotoRec_Step_By_Step
переведенное
http://www.cgsecurity.org/wiki/PhotoRec_Шаг_за_шагом

пятница, 18 декабря 2009 г.

состояния tcp-соединений

1). INVALID - пакеты, пришедшие вне пределов TCP-окна.
2). CLOSING - клиент отправляет FIN-пакет серверу, затем получает FIN-пакет от сервера и отсылает подтверждение закрытия -- FIN/ACK-пакет (одновременное закрытие соединения)
3). TIME_WAIT - CLOSING + прохождения заключительного FIN/ACK-пакета от сервера (одновременное закрытие соединения). чтобы дать время на прохождение "опоздавших" пакетов. "Опоздавшие" пакеты могут появиться в результате нарушения порядка прохождения пакетов по сети, т.е. в конечную точку пакеты приходят не в том порядке в каком они были отправлены. По истечении этого таймаута запись в таблице трассировщика, соответствующая закрытому соединению, уничтожается и соединеиние переводится в состояние CLOSED.
4). CLOSE-WAIT - от клиента получен FIN-пакет и в ответ отправлен FIN/ACK-пакет
5). LAST-ACK - CLOSE-WAIT + клиенту передан FIN-пакет со стороны сервера
6). ESTABLISHED - все соединения, которые благополучно миновали процедуру установления соединения, и по которым не было передано ни одного FIN-пакета
7). FIN-WAIT-1 - устанавливается после того как серверу будет передан FIN-пакет
8). FIN-WAIT-2 - FIN-WAIT-1 + получения FIN/ACK-пакета от сервера. Если от сервера FIN-пакет приходит раньше, чем FIN/ACK-пакет (ситуация "одновременного закрытия соединения"), вместо состояния FIN-WAIT-2 устанавливается состояние CLOSING.
9). LAST-ACK - сервер отправил FIN-пакет клиенту после получения FIN-пакета от клиента и передачи ему FIN/ACK-пакета. Это состояние устанавливается после CLOSE-WAIT состояния, когда ожидается прибытие заключительного FIN/ACK-пакета, после чего запись в таблице трассировщика уничтожается, и устанавливается состояние CLOSED.
10). LISTEN - это начальное состояние всех сокетов.
11). NONE - через трассировщик проходит первый пакет, то соединению присваивается этот статус.
12). SYN-SENT - клиент передаст SYN-пакет и перейдет в ожидание ответного SYN/ACK-пакета. Состояние SYN-SENT предшествует состоянию SYN-RCVD или ESTABLISHED, которое наступает после приема пакета SYN/ACK.
13). SYN-RECEIVED (SYN-RCVD или SYN-RECV) - наступает вслед за состоянием LISTEN или SYN-SENT после того, как сервер принял пакет SYN и ответил на него SYN/ACK-пакетом. Это состояние предшествует состоянию ESTABLISHED, которое, в свою очередь, наступает после получения, завершающего процедуру установления соединения, ACK-пакета.
14). Состояния UDP пакетов - Когда приходит первый UDP пакет, то он получает статус NEW, а как только через трассировщик пройдет обратный пакет -- UDP-соединению присваивается статус ESTABLISHED, но таймаут продолжает действовать. После того, как через соединение пройдет туда-обратно несколько UDP-пакетов, то для него, в таблице трассировщика, устанавливается флаг ASSURED (уверенное соединение прим. перев.) и таймаут перестает действовать.

четверг, 17 декабря 2009 г.

Roundcube прикручивание плагинов и т.д.

1). Для прикручивание плагина нужно его загрузить в папку plugins, а потом в файле /config/main.inc.php в строке $rcmail_config['plugins'] = array('userinfo','markasjunk','contextmenu'); - здесь userinfo,contextmenu - название папки с плагином

вторник, 8 декабря 2009 г.

ntlm-Авторизация под Linux на ISA

Качаем ntlmaps
Правим server.cfg
Listen port: 5865
Parent Proxy: your.proxy.com (e.g. enter the name or address of your proxy, do not enter the port as "your.proxy.com:number" as this will be taken care of in the next step)
Parent Proxy Port: port_number (usually 8080)
NT Windows Domain: domain_name (your domain)
NT Windows Username: user_name (the user name you will authenticate with)
NT Windows Password: password
(the password you will use to authenticate with the ISA Proxy)
запускаем (для автоматического запуска прописываем в rc.local)
./main.py 1>/dev/null 2>&1 &
или если пакет в виде сервиса service ntlmaps start
Ходим через локальный прокси 127.0.0.1:5865 (вместо loopback интерфеса любой действующий ip адрес)