Сообщения

Статья на Хабре

 Спустя наверное 20 лет чтения Хабра, стал его полноправным членом. Если честно я к Хабру отношусь сложно… Но других площадок подобного рода в Рунете считай нет. Так что буду писать и туда иногда (если не забанят :-)) Вот ссылка на статью: https://habr.com/ru/articles/1032766/

Поучавствовал в конференции Корпоративные Сети 2026

Изображение
Да, конференция Eltex, пригласили, прочитал доклад, познакомился с приятными людьми лично. Скромное но приятное мероприятие. Скоро будут материалы на их сайте.  Выдали такую табличку :-)   Доклады пока посмотреть можно тут: https://www.youtube.com/playlist?list=PLfUUSx4OYMe3ohIxsTiJpNCMTZaM6DdPM  

Собираем промышленные коммутаторы Eltex в кольцо ERPS

Изображение
Первое что надо сделать - хоть и не хочется это выключить spanning-three no spanning-tree Почему не хочется и почему хотелось бы чтоб было немного иначе поясню на примере Cisco и протокола REP. Первое и главное, мы должны защитится от петель на access портах, а при выключенном STP нам придется применить чтото другое. Для Eltex это loopback-detection Второе, это то что если у нас полукольцо, подключается к сегменту сети с STP, то могут возникать ситуации, когда MAC адрес какого то устройства с сегменте кольца, со стороны сегмента с STP "виден" через например порт G1/0/1, но после разрыва в полукольце, он доступен через другой порт, но сегмент STP об этом узнать может только если: 1. Коммутатор примет кадр от устройства и поправит запись в MAC таблице 2. Истечет таймаут хранения MAC записи, и кадр в адрес устройства будет разослан во все порты с определенным VLAN. 3. Если кольцевой коммутатор поддерживает работу и STP и кольцевого протокола, и может отправить в STP порт сообщен...

Сбор данных о звонках с Avaya Aura (CDR)

Сборщик Avaya CDR (логов звонков) с сохранением их в базу данных MySQL. Опубликован на Github https://github.com/OlegPowerC/avayacdrparce  

Я опубликовал свою SNMP библиотеку на Github

  https://github.com/OlegPowerC/powersnmpv3

openssl для сетевого администратора

Часто что-то надо сделать с сертификатами но поскольку это не каждый день то ключи openssl забываются, тут немного полезных команд: Проверить соответствие закрытого ключа и сертификата (у них у обоих общий модуль (это то огромное число, разложив которое на его простые множители, можно сразу вычислить секретную экспоненту и получить закрытый ключ, благо для ключей 2048 бит это вроде как пока невозможно (эта операция называется факторизация)). Ну а сравнивать проще по хэшу модуля:  openssl rsa -noout -modulus -in <фай с ключом>   | openssl md5 openssl x509 -noout -modulus -in  <фай с сертификатом>  | openssl md5  Теперь представим что вам нужно разобрать сертификат и закрытый ключ в одном PKCS12 формате (обычно это файл с расширением PFX) на сертификат и закрытый ключ Тут стоит сделать замечание: Данные сертификатов хранятся в формате ASN.1  а именно его варианта кодирования DER. Однако довольно часто нужен формат который можно представить в виде ...

Инспекция SIP на Cisco ASA ну или SIP ALG

 Для того чтоб SIP АТС, будучи за Inside интерфейсом, могла работать с внешней АТС за Outside интерфейсом, необходимо чтобы ASA после трансляции адресов заменила некоторые поля в пакете SIP и SDP.  В принципе это работает из коробки, так как по умолчанию этот функционал включен: policy-map global_policy  class inspection_default   inspect dns preset_dns_map   inspect ftp   inspect h323 h225   inspect h323 ras   inspect rsh   inspect rtsp   inspect esmtp   inspect sqlnet   inspect skinny   inspect sunrpc   inspect xdmcp   inspect sip   inspect netbios   inspect tftp   inspect ip-options   inspect icmp   inspect icmp error   inspect ipsec-pass-thru   Он включается строкой   inspect sip  в policy-map. Это может быть и не дефолтная политика а та которая применяться к интерфейсу но это уже не по умолчанию. Так вот работает это только с не шифрованным SIP (то либо...

Обновление Cisco Nexus 5596 и прошивка Power sequencer

У некоторых Cisco Nexus (например 5596) есть проблема, в течении срока эксплуатации, происходит видимо деградация параметров каких то компонентов, и система управления последовательностью подачи питания (секвенсер), перестает корректно работать. Это баг CSCun66310 и он описан у Cisco. Cisco исправила такое поведение корректировкаой программного обеспечения этих секвенсоров (сами они производства TI). Чем баг опасен: Опасен он тем, что коммутатор работает, но после перезагрузки ии снятия питания может больше не загрузится. И тогда, все перечисленное ниже выполнять уже поздно. Как понять подвержен ли ваш нексус этому багу? Посмотрите: show sprom sup | inc H/W Если H/W Version : 1.0 то надо обновить пока не стало поздно, если же 1.1 то скорее всего вас этот баг не коснется. Но тут есть проблема,   nuova-or-dplug-mzg  должен быть именно для вашей версии IOS. А обновится и потом обновить секвенсеры не получится - при обновлении ему придется перезагрузится и возможно это будет ...

ASA и LDAP over SSL

Видимо начиная с какой то версии ПО на Cisco ASA, работа с LDAP сервером с использованием SSL(TLS) невозможна без импорта на ASA сертификата LDAP сервера (либо его, либо того кем он подписан, например корневого доменного). как узнать какой у вас на сервере сертификат  кем он подписан: Ну например при помощи openssl openssl s_client -showcerts -connect <адрес LDAP сервера> :636  Далее надо получить сертификат в формате BASE64 И добавить его на ASA, например через CLI: crypto ca trustpoint ROOTCA  enrollment terminal  no ca-check crypto ca authenticate ROOTCA  <вставляем base64 текст>  quit  yes  В aaa-server <имя> (INSIDE) host <адрес LDAP сервера> добавляем ldap-over-ssl enable И тестируем test aaa-server authentication <имя> host <адрес LDAP сервера> Вводим имя пользователя Вводим пароль    

Фильтрация трафика на коммутаторах Huawei, например S5735

Есть несколько способов, рассмотрим способ с помощью traffic-policy Итак нам нужно сначала создать ACL Например у нас есть Vlan 2 (192.168.1.0/24) и мы хотим чтоб все ПК в этом VLAN могли ходить куда угодно кроме сети 192.168.2.0/24. Создадим такой ACL: acl number 3200   rule 10 deny ip destination 192.168.2.0 0.0.0.255   rule 40 permit ip source 192.168.1.0 0.0.0.255 Теперь нужно создать классификатор ну и описать поведение:   traffic classifier 3200 operator or   if-match acl 3200 traffic behavior 3200   statistic enable  traffic policy 3200   classifier  3200  behavior  3200   И применить политику к VLAN: vlan 2   description PC   name PC   traffic-policy 3200 inbound

Поддержка ANSI кодов цева в командной строке (и PowerShell) Windows

 Если вы используете каку либо утилиту, использующую управляющие коды ANSI для окраски вывода, но видите вместо этого чтото типа ←[0m то необходимо в реестре поправить (или создать) параметр: \HKEY_CURRENT_USER\Consol e VirtualTerminalLevel DWORD 1 

Установка системы на Usergate D200 через LOM интерфейс

 Для начала нужно скачать файл ISO usergate_light_image.iso  и файл для чистой установки, например ngfw7-x86-hdd.bz2 Далее при помощи утилиты Rufus   записать образ  usergate_light_image.iso на USB диск. Затем  в папку utm_image на этом диске скопировать файл  ngfw7-x86-hdd.bz2   Затем снять имидж с usb диска утилитой USB Image Tool ,  Должен получится файл с расширением img, например ug7wi.img Далее заходим на LOM (это как iLO только LOM :-)) из браузера. Там HTTPS на 443 порту. Вводим логин пароль, по умолчанию имя и пароль admin Далее жмем кнопку Remote Control Launch. Скачивается файл  jviewer.jnlp Считаем что у вас установлена 32 битная JRE и в java control pannel (javacpl.exe) во вкладке Security в списке Exception Site List добавлен адрес вашего LOM. Открываем командную строку, переходим в папку загрузок, и выполняем  javaws.exe jviewer.jnlp Только если у вас не одна JRE то укажите полный путь к 32 битной, например у м...

Настройка аутентификации и авторизации через RADIUS на коммутаторах хуавей

Из режима system-view создать шаблон радиус сервера: radius-server template SRV_RADIUS   radius-server shared-key cipher <общий секретный ключ>   radius-server authentication <адрес радиус сервера> <порт> source <интерфейс (SVI) с которого   будут отправляться запросы>    undo radius-server user-name domain-included Далее aaa   authentication-scheme RADSH     authentication-mode radius local domain default_admin   authentication-scheme RADSH   accounting-scheme default   radius-server SRV_RADIUS У пользователя в нстройках на радиус сервере нужно прописать атрибут: Huawei-Exec-Privilege = <например 15 для администраторов>

ASA и AnyConnect пользователи и маршруты

При подключении пользователя по AnyConnect, ASA добавляет в таблицу маршрутизации маршрут /32 с метрикой: Known via "static", distance 1, metric 0 (connected) В таблице маршрутизайии он будет отмечен как V (VPN) Зачем это нужно и почему /32? Если два пользователя с одним и тем же пулом, подключаться к разным внешним интерфейсам то будет два разных маршрута, и все будет работать. Но вот чтоб этот маршрут передать кудато еще, нужно завести статический маршрут на весь пул, например 192.168.2.0/25 на null или на внешний какой то один интерфейс. И уже его анонсировать в другие протоколы маршрутизации. Хотя если у вас ASA маршрутизатор основной, и у всех за ней маршрут по умолчанию на нее, то и этого не требуется.    

Определение состояния пользователя в AD - заблокирован/выключен

 Итак есть атрибут userAccountControl И вроде бы у него есть все нужные биты (флаги): PASSWORD_EXPIRED 0x800000 LOCKOUT    0x0010 ACCOUNTDISABLE 0x0002  Выключаем пользователя и видим что флаг  ACCOUNTDISABLE  установлен. Теперь вводин несколько раз (согласно политике) неправильный пароль, и видим что флаг  LOCKOUT    не установлен. При этом атрибут  lockoutTime имеет не нулевое значение, что указывает на то что учетная запись таки заблокировалась. Так вот, с Windows 2003 есть еще один атрибут: msDS-User-Account-Control-Computed И в нем флаг LOCKOUT установлен. Вот по нему (или по lockoutTime ) и можно ориентироваться.  

Двухфакторная аутентификация на VPN шлюзах для всех

Двухфакторная аутентификация с использованием одноразовых паролей, является одним из самых надежных методов защиты от несанкционированного доступа к внутренним ресурсам компании, так как с одной стороны делает утечку логина/пароля не достаточной для того чтоб злоумышленник смог получить доступ, и с другой делает невозможной перебор паролей, так как перебирать нужно одновременно логин, пароль и одноразовый пароль, а он все время разный. Одноразовый пароль можно например отправить по СМС или по электронной почте, или можно его сгенерировать при помощи программного или аппаратного токена что наиболее удобно и бесплатно. Поставщиков программного обеспечения для двухфакторной аутентификации великое множество, как облачных так и тех кто позволяет развернуть его внутри компании. Для примера приведем несколько подобных: DUO SafeNet MFASoft Multifactor multiOTP   Большинство подобных продуктов состоит, как минимум из следующих компонентов: 1. Radius сервера, который взаимодействует с ш...

Статические маршруты и петли маршрутизации

 Допустим у вас есть маршрутизатор, он является шлюзом по умолчанию для ПК. Пусть сеть ПК будет 192.168.0.0 255.255.255.0 Так же у вас есть сеть принтеров 192.168.1.0 255.255.255.0 И предположим есть файрвол, он связан с маршрутизатором PtP сетью например 10.0.0.0 255.255.255.252 Сети у вас иногда добавляются но их немного и вам нет смысла поднимать динамическую маршрутизацию. Но вы на файрволе прописали маршрут на сети 192.168.0.0 255.255.0.0 через маршрутизатор 10.0.0.1 А на маршрутизаторе маршрут по умолчанию на файрвол. И теперь если мы пинганем принтер 192.168.1.5 то если он существует мы увидим ответ а если его нет то будет таймаут. А вот если мы пинганем адрес 192.168.2.5 то мы увидим ответ от маршрутизатора что истек TTL потому что у маршрутизатора адрес 192.168.2.5 попадает в маршрут по умолчанию на файрвол, а у файрвола он же в маршрут на сети 192.168.0.0 255.255.0.0 на маршрутизатор. Так они и шлют трафик друг другу пока не истечет TTL. Что делать? 1. Прописать маршруты ...

Собираем в L2 домен пару портов в BDI и порты на Switch карте на Cisco 4331

Допустим у нас есть потребность связать в один L2 домен пару SFP портов на шасси, и плюс ко всему мы еще и модуль NIM-ES2-4 используем и подключаем к нему тоже например коммутатор. Что нам потребуется: 1. Настроить BDI и VLAN интерфейсы 2. Настроить на портах на шасси параметры добавления удаления тегов dot1q  3. Настроить Vlan'ы Пример: vlan 2  name MGMT ! vlan 3  name PC ! interface GigabitEthernet0/0/0  no ip address  negotiation auto  service instance 2 ethernet   encapsulation dot1q 2   rewrite ingress tag pop 1   rewrite egress tag push dot1q 2   l2protocol peer stp   bridge-domain 2  !  service instance 3 ethernet   encapsulation dot1q 3   rewrite ingress tag pop 1   rewrite egress tag push dot1q 3   l2protocol peer stp   bridge-domain 3  ! interface GigabitEthernet0/0/1  no ip address  negotiation auto  service instance 2 ethernet   encapsulation dot1q 2   rewr...

N3Com который Raisecom и похожее железо и Voice VLAN

 Немного теории: Если мы хотим по каким то причинам, чтоб голосовой трафик передавался внутри отдельного VLAN, (или отдельной? VLAN это ведь сеть, а она женского рода), то мы можем подключить телефон к прту коммутатора в режиме Access с нужным VLAN. Но если телефон с коммутатором и к нему подключен ПК то и его трафик попадет в голосовой VLAN. Чтоб отделить одно от другого есть глобально два метода: 1. Телефон шлет голосовой трафик с тегом dot1q, а трафик с ПК без тега. 2. Коммутатор смотрит на часть MAC адреса, ту что называется OUI и определяет производителя оборудования, и понимая что это телефон, помещает его кадры в нужный VLAN Первый вариант реализуем такими способами как: 1. Передать телефону параметры голосового VLAN в опции DHCP (например для телефонов Avaya эта опция будет 242 , и часть строки отвечающая за голосовой VLAN будет например такая: L2QVLAN=2,L2Q=1 , где первая часть указывает голосовой VLAN ID, а вторая что трафик должен быть тегирован) 3. Настроить все вручну...

Дополнение PKCS5

При шифровании и дешифровке данных блочными шифрами, если ваши данные не кратны размеру блока, нужно их дополнить чем то до размера кратного блоку. Часто применяется дополнение PKCS7 (ну или PKCS5 при размере блока 64 бита). Суть метода очень проста, для блока в 8 байт: 1. Если данные короче чем размер блока, дополняем их байтами значения которых равны их количеству. например у нас блок из данных 0x01 0x02 0x03 0x04, не хватает четырех байт, дополняем четырьмя байтами значение которых равно 4 , получаем 0x01 0x02 0x03 0x04 0x04 0x04 0x04 0x04 2. Если данные кратны блоку то все равно дополняем восемью восьмерками. При дешифровке и удалении дополнения мы смотрим на последний байт, его значение и будет то количество байт которое нужно удалить, именно для этого нужно дополнение когда данные итак уже кратны размеру блока.