10 нояб. 2010 г.

Расширение сознания через MPLS

До недавнего времни имел очень узкое представление о MPLS как о простой коммутации на основе меток.

На Opennet.ru нашелся замечательный сборник документации по MPLS на русском: http://www.opennet.ru/docs/RUS/mpls/

Читать следует с большой осторожностью, особенно новичкам - ломота в мозге и сны с "облаками" гарантированны.

Всем новичкам MPLS советую ознакомится.

25 авг. 2010 г.

AACSource - сорс клиент для IceCast2

Более двух лет назад, работал на местном радио.
Директор поставил задачу транслировать эфир радио в интернет в формате AAC.

После долгих поисков бесплатного свободного сервера транслирующего поток в формате AAC, решено было самостоятельно написать сорс-клиент для IceCast2.

За основу был взят собственный сорс-клиент IceCast в части формата взаимодействия с сервером.
Поскольку на тот момент у меня небыло опыта компилирования Си-кода под линукс, а также опыта написания системных утилит, пришлось писать на Shell.

Итак, по просьбам некоторых коллег, представляю исходники моего "безобразия" по имени AACSource:
Срипт запуска
Конфигурационный файл
Собственно сам AACSource

9 авг. 2010 г.

OpenNHRP

Обнаружил в сети проект OpenNHRP - открытая реализация протокола OpenNHRP.
Заявляют что "It makes it possible to create dynamic multipoint VPN Linux router using NHRP, GRE and IPsec. It aims to be Cisco DMVPN compatible." :)

Нужно найти время на попробовать.

8 авг. 2010 г.

Пишем анти-спуфинг ACL

Написано дабы самому не забыть и товарищам почитать.


Итак, задача укрепить защиту маршрутизатора напрямую подключенного в Интернет.

Первым делом защитимся от спуфинга - исключим из обработки (попросту отбросим) все пакеты идущие от серых (частных) сетей. Серые сети это сети предназначенные для частного использования и не маршрутизируемые в сети Интернет. Данные сети описаны в RFC1918, это префиксы 10/8, 172.16/12, 192.168/16.

В сети Интернет имеется еще несколько диапазонов адресов, появление которых на интерфейсе подключенном к сети интернет, в нормальных условиях будет по меньшей мере необычным. Данные сети описаны в RFC3330.

Следует понимать, что RFC3330 описывает сети специального назначения. Некоторые из этих сетей успели поменять свое назначение на "Reserved but subject to allocation", т.е. зарезервированы, но могут быть предоставленны в пользование. В общем случае такие сети блокировать не стоит, так как в случае передачи этих сетей в пользование, вы не сможете обмениваться с этой сетью данными.

Итак, составим список сетей которые мы будем блокировать на внешнем интерфейсе:

  • 10.0.0.0/8 - описана в RFC1918;
  • 172.16.0.0/12 - описана в RFC1918;
  • 192.168.0.0/16 - описана в RFC1918;
  • 224.0.0.0/4 - RFC3330, Мультикастовые сети;
  • 127.0.0.0/8 - RFC3330, Лупбэк сеть;
  • 169.254.0.0/8 - RFC3330, RFC3927, Zeroconf адреса;
  • 192.0.2.0/24 - RFC3330, Сеть для тестирования и использования в публикациях;
  • 240.0.0.0/4 - RFC3330, Зарезервировано для будущего использования.


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

На основе полученного списка сетей, составим ACL.
В данном случае я буду использовать extended acl, просто для возможности в будущем фильтровать еще и по адресу назначения.

У меня получился такой список доступа:

#sho ip access-list
Extended IP access list AntiSpoof
10 deny ip host 0.0.0.0 any
20 deny ip 10.0.0.0 0.255.255.255 any
30 deny ip 172.16.0.0 0.15.255.255 any
40 deny ip 192.168.0.0 0.0.255.255 any
50 deny ip host 255.255.255.255 any
60 deny ip 224.0.0.0 15.255.255.255 any
70 deny ip 127.0.0.0 0.255.255.255 any
80 deny ip 169.254.0.0 0.0.255.255 any
90 deny ip 192.0.2.0 0.0.0.255 any
100 deny ip 240.0.0.0 15.255.255.255 any
110 permit ip any any

В данном списке доступа, кроме перечиленных выше префиксов, добавлено еще два хостовых адреса:

  • 0.0.0.0;

  • 255.255.255.255;



Также следует помнить, что на интерфейсах с настроенными туннелями IPSec, ACL повешенный на вход интерфейса проверяет сначала заголовок пакета IPSec, а затем этот же ACL проверяет заголовок шифрованного пакета. Таким образом упоминание в данном ACL частных сетей может нарушить функционирование туннеля.

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

#conf t
#int f0/0
#ip access-group AntiSpoof
#end


Такая настройка внешних интерфейсов поможет избежать атаки с подделаных адресов.


Источники:

  1. Cisco Systems: Infrastructure Protection Access Control Lists;

  2. Материалы сайта AntiCisco.ru

29 июл. 2010 г.

Еще один шаг к CCNP

Сегодня сдал BSCI.

Остается еще TSHOOT и можно ждать письмо с сертификатом :)
Теперь коплю на экз.

22 июл. 2010 г.

Citrix Reciever for Linux in non-English envinronments

Нет, я не стал писать на английском :)
Всего лишь получилось так что заголовок состоит только из терминов.

Тестируем Citrix Reciever for Linux и Citrix XenDesktop Evaluation.

Сегодня пользователь пожаловался что символы "S" и "Ы" набираются только большими буквами.
Долго искал инфу, копался во внутреннностях этой поделки. Даже собрал волю в кулак и написал на их форум на ломаном аглицком.

А потом уже нашел вот этот документ:
http://support.citrix.com/article/CTX103576

Получается они не транслируют нажатия клавишь, а пытаются передать уже готовые символы.. оченно интересный подход... Появляется ощущение, что индусы в цитриксе никогда не пользовались отличными от En-Us раскладками.

20 мая 2010 г.

Hitn: XenDesktop и ошибка "MFCOM"

Устанавливал Citrix XenDesktop Delivery Controller.

После установки при запуске консоли получил ошибку:

Citrix MFCOM Service did not respond as expected. Check the version of Citrix Desktop Delivery Controller on the server and make sure that a compatible version of Citrix MFCOM Service is installed and running.


Решение оказалось простым - Ставить нужно, внимательно читая руководство. Версия ОС оказалась неподходящей, поставил MS Win 2003 SP1 x64, а нужен SP2. И главное инсталятор ничего не сказал, просто поставил не все компоненты и все...

12 мая 2010 г.

Ubuntu: скрещиваем exim с clamav

Установить и настроить совместную работу MTA Exim4 и Clamav очень просто:

#apt-get install exim4-daemon-heavy clamav-daemon

После этого в системе установлены и настроены MTA Exim4, демон Clamav и демон обновления для Clamav - Freshclam. Настройку они имеют базовую, но для совместной работы у них уже почти все есть.

Недостает следующего:

  1. В файле /etc/exim4/conf.d/acl/40_exim4-config_check_data необходимо раскоментировать строки:

    # Deny if the message contains malware. Before enabling this check, you
    # must install a virus scanner and set the av_scanner option in the
    # main configuration.
    #
    # exim4-daemon-heavy must be used for this section to work.
    #
    deny
    malware = *
    message = This message was detected as possible malware ($malware_name).

  2. В файле /etc/exim4/conf.d/main/02_exim4-config_options необходимо указать путь к fifo демона clamav:
    av_scanner = clamd:/var/run/clamav/clamd.ctl

  3. Для доступа clamav к содержимому писем, необходимо добавить пользователя clamav в группу Debian-exim:
    #gpasswd --add clamav Debian-exim
    Если этого не выполнить в логе экзима получим:
    malware acl condition: clamd: ClamAV returned /var/spool/exim4/scan/1OC8Uk-0001pI-N3: lstat() failed: Permission denied. ERROR

  4. перезапустить демоны exim4 и clamav:
    #service exim4 restart
    #service clamav-daemon restart


После всех этих манипуляций в нашей системе Exim проверяет всю почту на вирусы с помощью демона Clamav.

В данной заметке умышленно опущены все тонкие настройки MTA Exim, такие как защита от Спам и др.

4 мая 2010 г.

Xubuntu 10.04 - Продолжение

За время использования полноценной Ubuntu очень привык к Compiz, особенно в части плагина "Negative". В течение рабочего дня глаза очень сильно устают и пялится в белый экран с мелкими серыми буквами уже тяжело - без "Негатива" никуда...

А тут оказалось его нет :)
Пришлось ставить. Поставил на скорую руку по руководству http://wiki.eeeuser.com/ubuntu:eeexubuntu:compiz_on_eeexubunto

Автозапуск компиза пришлось допиливать самому - файлов обозначенных в инструкции у меня не оказалось.
Методом "Научного тыка" обнаружил что теперь эти настройки указываются в файле /etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml.
В нем и заменяем xfwm4 на compiz.

В остальном вроде пока ничего нового, разве что система немного более отзывчива и не лагает так сильно.

По времени работы от батареи тоже изменения не ощущаются - eeePC продолжает от батареи работать до 4,5 часов.

2 мая 2010 г.

Xubuntu 10.04

Поставил на своем нетбуке Xubuntu 10.04.

Задумал переезд давно по причине того, что производительность нетбука перестала устраивать. Толи Ubuntu сам по себе слишком прожорлив, толи правда виноват не слишком быстрый SSD в моем ASUS eeePC 900...

Окончательно на переустановку настроился незадолго до выхода 10.04 и ждал момента "Х".

Момент "Х" настал вчера.
Итак мои первые впечатления:
  • система по сравнению с Ubuntu 9.10 работает значительно быстрее;
  • более минималистична по наличию установленных пакетов, но мне пока стандартных компонентов хватило и это радует;
  • приятной неожиданностью для моих глаз стала темная тема оформления.
Поставил как всегда mc, ipcalc, nmap и wavemon.

Появился еще один неоспоримый плюс переезда - я наконец-то поставил на свой usb-hdd загрузчик и настроил загрузку из iso-образов! :) Именно с него и ставил Xubuntu :)

Теперь пополняю список iso "На все случаи жизни" и добавляю их в меню загрузки.

За инструцией по настройке загрузки с iso-образов идем на opennet (http://www.opennet.ru/tips/info/2339.shtml).

6 апр. 2010 г.

STP/RSTP как они сходятся

Петр Лапухов на http://www.ine.com опубликовал обширный документ "Understanding STP and RSTP Convergence".

Всем готовящемся к сдаче BCMSN и всем кто администрирует сети использующие STP/RSTP.

31 мар. 2010 г.

Краткий обзор возможностей по распростренению настроек на IP-телефоны Nortel по DHCP и TFTP

В одной из предыдущих заметок я описывал механизм передачи первичных параметров на телефоны Nortel.

В данной заметке я хочу продолжить это краткое ознакомление.

IP-телефоны Nortel могут быть конфигурированы следующими способами:
  1. Ручной - напрямую с клавиатуры телефона;
  2. LLDP - телефон получает часть настроек напрямую от коммутатора (например голосовой вилан и вилан данных);
  3. DHCP - получение настроек вместе с другими параметрами с DHCP-сервера;
  4. TFTP - чтение настроек из файлов на TFTP-сервере;
  5. UNIStim.

Сейчас рассмотрим конфигурирование через DHCP и TFTP.

По DHCP телефону можно передать множество различных настроек:
  • s1ip - Primary server IP address;
  • p1 - Primary server port number;
  • a1 - Primary server action code;
  • r1 - Primary server retry count;
  • zone - Zone ID (Character string up to 8 characters);
  • menulock - Menu lock mode (f - for full lock, p - for partial,u - for unlock);
  • unid - Unique network identification (Character string up to 32 characters);
  • blt - Backlight timer (IP Phone 1100 series and 2007);
  • ssh - Enable Secure Shell (SSH);
  • sshid - SSH ID;
  • sshpwd - SSH password.
Здесь приведены только самые востребованные опции.

Еще более тонкая настройка доступна через файлы настроек на TFTP-сервере. В этих файлах могут указываться теже параметры и используется во многом схожий синтаксис.

Имеется возможность передавать настройки по следующим типам:
  1. Специфичные для конкретного экземпляра устройва - файл {DEVICE}.PRV;
  2. Специфичные для зоны, в которой распологаются устройва - {ZONE}.PRV;
  3. Специфичные для конкретной модели устройв - {TYPE}.PRV, например для модели 1165E настраивается Bluetooth;
  4. Общесистемный настройки - SYSTEM.PRV.
Для того чтобы телефон знал с какого сервера загружать файлы настроек, в DHCP указывается опция 066 "Boot Server Host Name", которая указывает адрес TFTP-сервера.

Таким образом, у нас есть возможность выделить в своей сети несколько зон и указывать для них раздельные настройки, например указать отдельный севрер для нашего удаленного офиса.

Полное руководство по настройке телефонов содержит Nortel CS 1000: IP Phones Fundamentals.

12 мар. 2010 г.

Меняем кодировку файлов

Возникла необходимость перекодировать пару десятков файлов из cp1251 в UTF-8.

Погуглив немного, нашел в форумах упоминание утилиты "recode".
Сам я не приветствую установку дополнительных утилит, но если других вариантов нет, пришлось ставить.

Recode оказалась в репозитории Ubuntu, поэтому делаем:

$sudo apt-get install recode
...и пользуемся.

Для быстрого перекодирования группы файлов родился мини-скрипт:

mkdir 1
ls -1 | (
while read file;
do
cat "./$file" | recode CP1251..UTF-8 > "./1/$file";
done;
)

9 мар. 2010 г.

Бродкаст-адрес в качестве ip helper-address

В больших сетях с развитой адресацией часто DHCP-сервер находится в другой, возможно очень отдаленной, подсети от клиента которому необходимы сетевые настройки.

И в таком случае администраторы на интерфейсе клиентского вилана прописывают ip helper-address - адрес на который пересылаются udp-бродскасты (по умолчанию это порты: 37, 42, 49, 53, 67, 68, 69, 137 и 138).

В таком случае если DHCP-сервер изменяет свой адрес (например, мигрировал на другой сервер) необходимо будет изменить на всех интерфейс-виланах ip helpter-address.

В свою очередь DHCP-сервер тоже находится в отдельной подсети, и эта подсеть имеет свой бродкастовый адрес. Допустим наш DHCP-сервер расположен в подсети 10.1.1.0, его адрес 10.1.1.1, маска подсети будет 255.255.255.248 и соответственно бродкастовый адрес подсети 10.1.1.7.
Конфигурация SVI вилана DHCP-серверов:

int vlan 5
description DHCP_SERVERS
ip address 10.1.1.6 255.255.255.248
end

Логично предположить, что прописывая на SVI клиентского вилана не юникастовые, а бродкастовые ip helper-address можно дать себе возможность при необходимости добавлять/удалять сервера из пула (в нашем случае из сети 10.1.1.0/29) без перенастройки клиентских виланов.

Для примера возьмем клиентский вилан 100, в котором расположена сеть 10.1.2.0/24:
int vlan 100
ip address 10.1.2.1 255.255.255.0
ip helper-address 10.1.1.7
end


Однако данная конфигурация не работает.
На коммутаторах Cisco для обеспечения трансляции пакетов поступивших на бродкастовый адрес подсети извне этой сети, необходимо указать команду ip directed-broadcast. После чего коммутатор будет транслировать поступающие бродкасты в физические порты вилана.

Окончательная конфигурация серверного вилана выглядит следующим образом:
int vlan 5
description DHCP_SERVERS
ip address 10.1.1.6 255.255.255.248
ip directed-broadcast
end

Ссылки:
IP Addressing and Services Commands

6 мар. 2010 г.

Впечатления от сдачи экзамена Cisco TSHOOT Beta (643-832)

Вчера сдавал экзамен Cisco TSHOOT Beta (643-832).

Из положительного:
  • Новый GUI - понравилось что теперь время отсчитывается назад и ты всегда знаешь сколько осталось;
  • всего 12 вопросов, остальное практические задания;
  • Времени дали 3 часа

Из отрицательного:
  • Команды IOS попрежнему реализованы не все - например, очень не хватало "show int status";
  • Практика решается в форме ответа на вопросы, конфигурацию изменять для проверки своей гопотезы нельзя - одно задание не смог решить, так как небыло нужного варианта ответа, потратил на него 45 минут;
  • Есть опечатки как в топологии, так и в выводе команд - у меня один раз адреса выводились неправильные.
При подготовке к экзамену рекомендую изучить TSHOOT (642-832) Practical Exam Demo & Tutorial.

2 мар. 2010 г.

Превращаем Cisco Catalyst 6500 в кабельный тестер

Открыл для себя очень удобную фенечку 65ой каталисты - некоторые карты имеют встроенный "кабельный тестер" Time Domain Reflectometry (TDR)!

TDR может использоваться для определения обрывов в кабеле, неверно обжатых коннекторов, повреждений изоляции и др.

TDR поддерживается следующими медными линейными картами:
• WS-X6748-GE-TX (48 port CEF720 10/100/1000 line card)
• WS-X6548-GE-TX/45AF (48 port CEF256 10/100/1000 line card)
• WS-X6148A-GE-TX/45AF (48 port Classic 10/100/1000 line card)
• WS-X6148-GE-TX/45AF (48 port Classic 10/100/1000 line card)
• WS-X6148A-RJ-45/45AF (48 port Classic 10/100 line card)

Для тестирования кабеля необходимо выполнить две команды:
1. Первая - команда на тестирование порта:
6K-LV2-CL3# test cable-diagnostics tdr interface g1/3
TDR test started on interface Gi1/3
A TDR test can take a few seconds to run on an interface
Use 'show cable-diagnostics tdr' to read the TDR results.

2. Вторая - вывод данных тестирования:
6K-LV2-CL3# show cable-diagnostics tdr interface g1/3
TDR test last run on: March 5 10:22:06
Interface Speed Pair Cable length Distance to fault Channel Pair status
--------- ----- ---- ------------------- ------------------- ------- ------------
Gi1/3 1000 1-2 1 +/- 6 m N/A Pair B Terminated
3-4 1 +/- 6 m N/A Pair A Terminated
5-6 1 +/- 6 m N/A Pair C Terminated
7-8 1 +/- 2 m N/A Pair D Short


в данном тесте обнаружено к-з на паре 7-8 .

Ссылки:
http://www.cisco.com/en/US/prod/collateral/switches/ps5718/ps708/prod_white_paper0900aecd805457cc.html

24 февр. 2010 г.

PPTP Connection-tracking в Линукс

Наверное многих администраторов pptp-серверов линукс вводила в замешательство и заставляла долго ходить по форумам в поисках лекарства проблема с подключением windows-клиентов. Так случилось у меня.

Поставил и настроил pptp-сервер, с подключением из линукс нет проблем, но первый же windows-клиент говорит "подключаюсь и авторизуюсь, но сразу же выкидывает"...

На форумах находил или темы без ответа или бредовые идеи что все дело в DNS-сервере...
Когда накопал костыль "поставить правило явно пропускающее весь GRE до всех сonnection-tracking правил" неповерил, но время поджимало и попробовал. Помогло, коллега с виндовым ноутом смог нормально работать.

Такое решение не устраивало. Даже в скрипт файервола прописывать не стал.
Добрый человек Hando на форуме anticisco.ru открыл глаза - Для правильного автоматического трекинга соединений по протоколу PPTP необходимо в загрузку добавить модуль nf_conntrack_pptp.

Итак, прописываем nf_conntrack_pptp в /etc/modules.d и наслаждаемся.

8 февр. 2010 г.

Сертификационные экзамены в VUE

На Хабре опубликована заметка на тему "Оплата сертификационных тестов через VUE".

Для меня достаточно злободневная тема.
Отличное руководство для новичков сертификации! :)

Жаль только не сказано что можно сделать тестовому центру, который специально не публикует свое рассписание - заставляет переплачивать около 50% стоимости экзамена...

28 янв. 2010 г.

Voice-VLAN на Cisco Catalyst для Nortel IP Phone

Как удалось выяснить и опробовать сегодня на практике, Cisco Catalyst может передавать информацию о Voice-VLAN на IP-телефоны Nortel! :)

Для этого на коммутаторе достаточно включить протокол LLDP и прописать voice-vlan на порту телефона:
#conf t
#lldp run
#int fa1/0/1
#switchport voice-vlan 10

И конечно нужно чтобы на телефоне тоже был включен LLDP, указано тэгировать Voice-VLAN и конфигурировать его автоматически. Также на телефоне необходимо отключить тэгирование в Data-VLAN.

Тестирование проводилось на коммутаторе Catalyst 3750-24TS (IOS 12.2(46)) и телефонах Nortel 1110 и 1120.
Изрядно намучался с настройкой телефонов - русский перевод меню просто Ужасный!
Меню телефонов вообще неудобное, очень. Видимо нужно учится конфигурировать эти телефоны по сети.

Честно говоря, мне до последнего не верилось что Cisco включит передачу Voice-VLAN в реализацию LLDP. но я очень рад что компания пошла по пути унификации.

Ссылки:

Michael McNamara - LLDP with Cisco 3750

LLDP-MED and Cisco Discovery Protocol
Configuring LLDP and LLDP-MED

14 янв. 2010 г.

SVN и http-301-error

Возможно для многих не новость, но у меня эта проблема отняла два дня работы и добрую половину мозга :)

Оказалось, что если при выполении, например:
$ svn list http://svn-server/group1/repo

Вы получаете:
svn: Repository moved permanently to 'http://svn-server/group1/repo'; please relocate

А при этом доступ к веб-странице репозитория через браузер есть, то нужно всего-лишь поправить DocumentRoot, как написано тут: http://subversion.tigris.org/faq.html#http-301-error!

Но к этому я пришел только после того как отключил LDAP-аутентификацию.
При включеной - я получал следующее:
#svn import http://svn-server/group1/repo --username="user" --password="pass" --non-interactive
svn: OPTIONS of 'http://svn-server/group1/repo': authorization failed: Could not authenticate to server: rejected Basic challenge (http://svn-server).