19 апреля 2014 | Метки:

Пришлось озадачиться борьбой с письмами, содержащими загрузчиков троянов.
Если посмотреть на заголовки такого письма, то можно увидеть что-то приблизительно подобное:

From [email protected] Thu Jan  1 00:00:01 1970
Received: from [182.64.116.230] (helo=ABTS-North-Dynamic-230.116.64.182.airtelbroadband.in) by
 mx02.acme.ru with esmtp (Exim 4.80.1 (FreeBSD)) (envelope-from <[email protected]>)
 id 1Veqof-000O0U-MS for [email protected]; Fri, 08 Nov 2013 22:30:02 +0400
Received: from [125.210.224.222] (port=61185 helo=[192.168.3.60]) by
 182.64.116.230 with asmtp id 1rqLaL-00098-00 for [email protected]; Fri, 8 Nov 2013 23:59:56 +0530
Message-ID: <[email protected]>
Date: Fri, 8 Nov 2013 23:59:56 +0530
From: Voice Mail <[email protected]>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:7.0.1) Gecko/20110929 Thunderbird/7.0.1
MIME-Version: 1.0
To: <[email protected]>

Такие письма проходят проверку поля “envelope-from”, поскольку в этом поле содержится относительно валидный адрес. Проверка на forged «envelope-from» осуществляется таким ACL:

domainlist relay_to_domains = acme.ru

acl_check_mail:
 drop hosts = !+relay_from_hosts:*
 condition = ${if match_domain{$sender_address_domain}{ $primary_hostname:+local_domains:+relay_to_domains } {true}{false}}
 message = 550 Rejected

Но в это же время, в теле письма, “From:” содержит адрес из целевого домена (в данном случае из домена acme.ru), разумеется в целях социальной инженерии.
Здесь используется другой ACL:

acl_check_data:
drop message = Rejected
     hosts = !+relay_from_hosts
     condition = ${if match{${domain:$h_from:}}{^acme\.ru\$}{yes}{no}}
16 октября 2013 | Метки:

Одна из очень приятных вещей NX-OS — профили для port-channel.
В топологиях где их много(PC) — незаменимая вещь.

Настраивается просто.

Сначала объявляется сам профиль:

port-profile type port-channel TRUNK
  switchport mode trunk
  switchport trunk allowed vlan 1, 50, 60-61, 70-71, 74-75, 90, 710, 740, 850, 878-879, 900
  state enabled

Далее на нужном port-channel профиль нужно унаследовать:

interface port-channel21
  inherit port-profile TRUNK
  description PC-to-CR01
  switchport mode trunk
  spanning-tree guard root
  speed 10000

При необходимости изменить конфигурацию, настройки необходимо поменять только в самом профиле. Все унаследовавшие этот профиль port-channels, применят эти настройки автоматически.

20 июля 2013 | Метки: , ,

Случайно обнаружил что в HEAD появился svnlite.
Порадовало, ибо теперь не нужно тратить время на компиляцию svn и кучу зависимостей.
Судя по ldd, svnlite действительно lite:

/usr/bin/svnlite:
        libbsdxml.so.4 => /lib/libbsdxml.so.4 (0x800afc000)
        libz.so.6 => /lib/libz.so.6 (0x800d22000)
        libcrypt.so.5 => /lib/libcrypt.so.5 (0x800f37000)
        libmagic.so.4 => /usr/lib/libmagic.so.4 (0x801157000)
        libcrypto.so.7 => /lib/libcrypto.so.7 (0x801370000)
        libssl.so.7 => /usr/lib/libssl.so.7 (0x80175b000)
        libthr.so.3 => /lib/libthr.so.3 (0x8019c4000)
        libc.so.7 => /lib/libc.so.7 (0x801be9000)

Дальше…

19 июля 2013 | Метки:

Спрятал блог за Cloudflare, дабы получить все приятные бесплатные профиты этого сервиса.
Сразу же обнаружилась проблема, запросы стали приходить не от реальных адресов клиентов, а от адресов проксирующих серверов Cloudflare.
При этом реальные адреса Cloudflare передаёт в X-Forwarded-For.
У меня на целевом хосте стоит связка nginx+php-fpm. nginx умеет показывать переданные ему реальные адреса через модуль http_realip.
Список своих публичных адресов Cloudflare отдаёт тут
Сделал скрипт который будет вызываться по cron с некоторой периодичностью. В server {} добавил «include cloudflare.inc;»(данную конструкцию можно добавить в контексты http/server/location).

#!/bin/sh

cp /usr/local/etc/nginx/cloudflare.inc /usr/local/etc/nginx/cloudflare.inc.bak
fetch -q -o - "https://www.cloudflare.com/ips-v4" | awk '{ print "set_real_ip_from " $1 ";" }' > /usr/local/etc/nginx/cloudflare.inc
echo "real_ip_header X-Forwarded-For;" >> /usr/local/etc/nginx/cloudflare.inc
/usr/local/etc/rc.d/nginx restart
10 июля 2013 | Метки:

Cisco порадовали подводным камнем.
Если воткнуть GLC-T в 2232PP — работать ничего не будет. Даже с GLC-T наисвежайших ревизий.
FEX будет яростно материться на «SFP validation failed».
Решение поражает своей логикой — нужно прописать на порту «speed 1000», перед тем как вставлять модуль.
Судя по всему, кодеры у Cisco живут в параллельном от железячников измерении.

15 июня 2013 | Метки: ,

Попался CP-3905 с дефектом CSCue07538. Телефон принципиально не хотел загружаться, получать IP и скачивать прошивку.
После общения с TAC, получили файл vmlinuz и инструкцию:

1. Run any TFTP server application (Like TFTPd32) on the PC and assign the IP address to as 192.168.1.100
2. Modify the DHCP server – Option 150 settings (TFTP server IP Address) to be 192.168.1.100 and also make sure that your IP Phones can reach the TFTP server
3. Keep the extracted vmlinuz file in the tftp folder ( File is attached with this email )
4. Reboot the phone so that it downloads the vmlinuz file
5. Once phone boots up, you can connect the phone in production network

По факту можно сказать следующее:

  1. Инструкция верная, метод рабочий.
  2. У нас получилось без указания Option 150
11 марта 2013 | Метки: , , ,

Случайно в одном из блогов сетевой тематики увидал ссылочку на IETF-овский драфт EIGRP.
Само по себе появление драфта очень сильно радует и внушает оптимизм. Протокол то в целом отменный.
Надеюсь что скоро EIGRP появится в Qugga и железках не от Cisco. И в итоге можно будет забыть про кривые и костыльные дизайны вида EIGRP-OSPF(RIP)-EIGRP
Помимо всего прочего, драфт великолепно использовать как учебник по EIGRP.

28 февраля 2013 | Метки: , , ,

В первый раз столкнулся с этой проблемой пару лет назад когда организовывали доступ одного из клиентов к нашему сервису. Но тогда не хватило ума спросить у сетевика на дальней стороне в чем крылась проблема. Теперь вылезло уже с нашей стороны.
Суть проблемы в том что цисковский роутер при NAT радостно считает весь трафик на 2000-й порт как SCCP, трафик подпадает под ALG и в итоге начинается крайне весёлая и доставляющая карусель.
Лечится достаточно просто:

no ip nat service skinny tcp port 2000
13 февраля 2013 | Метки: , ,

Дабы самому не забыть и может кому пригодится.

Статический маршрут с тэгом. Тэг позволяет добиться пущей гибкости при выборе маршрутов для редистрибьюции:

routing-options {
    static {
         route 192.168.117.0/24 {
            next-hop 10.160.22.222;
            tag 878;
        }
    }
}

Дальше…

14 января 2013 | Метки:

Поглядывая на статистику заблокированных спам-сообщений, посылаю создателям Akismet кучу лучей добра. По моему, сравнить можно разве что с гугловским почтовым спам-фильтром, настолько же качественно.
Процент промахов просто впечатляет. Из 6783 спам-сообщений, пропущено только 3(!). Везде бы так спам фильтровался.