среда, 31 октября 2018 г.

OpenSSL готовим сертификат и закрытый ключ для импорта на Cisco ASA

Допустим у нас есть сертификат и закрытый ключ, оба в формате PEM
Нам нужен PCKS12 в BASE64

Но у меня тестовый уже в pfx (mycertandkey.pfx) но без промежуточного внутри, так что сначала получим из pfx - pem:

openssl pkcs12 -in mycertandkey.pfx -nocerts -out mycert.key

Вводим пароль на pfx, потом вводим пароль  на новый файл
Получаем файл с ключом но зашифрованный

openssl pkcs12 -in mycertandkey.pfx  -clcerts -nokeys -out mycert.pem
Получаем наш сертификат без корневого и промежуточного

openssl rsa -in mycert.key -out mycert.npkey 
Делаем закрытый сертификат без пароля (не зашифрованный).

Проверка соответствия закрытого ключа сертификату:

openssl rsa -noout -modulus -in mycert.npk | openssl md5

openssl x509 -noout -modulus -in mycert.pem | openssl md5

Хэши должны совпадать.

Далее нам нужен сертификат + промежуточный + корневой + закрытый ключ в base64

Сначала собираем все в pfx (потребуется создать пароль)
openssl pkcs12 -export -out certandinterandcaandkey.pfx -inkey mycert.npkey -in mycert.pem -certfile CaAndIntermediate.pem

CaAndIntermediate.pem - этофайл где лежат один за одним промежуточный сверху и корневой снизу (просто в notepad копируем в один файл эти два сертификата в формате pem)

И теперь получаем это все в Base64:
openssl base64 -in certandinterandcaandkey.pfx -out certandinterandcaandkey.base64

Теперь на Cisco ASA можно его импортировать:

crypto ca trustpoint TESTCAT
  enrollment terminal
  exit

crypto ca  import  TESTCAT pkcs12 и тут пароль на тот самый base64 файл
Вставляем сюда текст из файла
потом набираем quit


понедельник, 3 сентября 2018 г.

ACTi ACD-2100 multicast sdp файл

При настройках:
RTP over multicast
Порт Multicast Video 5000
IP вещания 239.10.6.10
И MPEG4 видео,
SDP файл выглядит примерно так (делается путем сначала включения режима RTP over UDP в unicast режиме, открытия потока через rtsp и выдергивания SDP данных WireShark'ом):

v=0
c=IN IP4 239.10.6.10
m=video 5000 RTP/AVP 96
a=rtpmap:96 MP4V-ES/90000
a=fmtp:96 profile-level-id=245;config=000001B003000001B50900000100000001200086C400670C5A1120518F


среда, 11 июля 2018 г.

Простое получение соседей по CDP таблицей с IP адресами и всем необходимым

Исполняемый файл под Windows и readme.txt тут
https://1drv.ms/u/s!AgUTm7x5KvPAkSE1Yd5xw9N7LpLQ

Исходники тут:
https://github.com/OlegPowerC/cdpn

Утилита для быстрого просмотра соседей по протоколу CDP.
Заменяет набор комманд в консоли, выводит сразу все необходимое.
Использует протокол SNMP для получения информации 
(Библиотека от Zoho WebNMS)

Пример вывода:
cdpn -v v3 -u SNMPUSER1-U -a SHA -w testpass123 -pp AES-128 
-s testpass123 192.168.1.10
Host IP: 192.168.1.10
Hostname: Switch.powerc.local
Platform: Cisco IOS Software, C2960 Software (C2960-LANBASEK9-M), 
Version 12.2(55)SE10, RELEASE SOFTWARE (fc2)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2015 by Cisco Systems, Inc.
Compiled Wed 11-Feb-15 11:46 by prod_rel_team


Local Port        Neighbor ID                     Neighbor Port          
---------------   ---------------                 ---------------       
Gi0/5             esxi1.powerc.local              vmnic1                
Gi0/6             WLCv                            GigabitEthernet0/0/1
Gi0/44            APc471.feb3.ce22.POWERC.LOCAL   GigabitEthernet0.1
Gi0/45            SEP002290BAD777                 Port 1             
Правее будет (тут не влазит :- ) 
и в windows надо сделать пошире окно CMD):
Neighbor Platform          Neighbor IP
--------------------       ---------------
VMware ESX                 0.0.0.0
AIR-CTVM-K9                192.168.1.192
GigabitEthernet0.1     cisco AIR-LAP1252AG-E-K9   192.168.1.164
Port 1                 Cisco IP Phone 7906        192.168.1.168
Принимает параметры: -v версия, если v3 то нужно указать -u имя пользователя
-a тип хэша -w пароль на хэширование -pp протокол шифрования
-s пароль на шифрование
обязательный параметр: IP адрес коммутатора.

Работает с коммутаторами Cisco включая Nexus

Парсер логов Cisco WSA (ACL Log)

WSA при экспорте в PDF или CSV не показывает длинные URL (точнее их обрезает)
Иногда бывает нужно их посмотреть.
Это можно сделать заглянув в ACL log но вот он обычно мегабайт 100 и что то там найти не так то просто.
Да плюс еще и время в формате Unix.
Пришлось быстро сделать примитивную Cli утилиту на Go, которая разбирает файл ACL log и ищет там нужное а именно:
1. Можно указать время начали и конца поиска
2. можно указать имя пользователя
3. или IP адрес ПК
4. и например часть URL
5. Обязательным параметром является -f имя файла ACL log

В целом в Readme все расписано.

Исходники тут:
https://github.com/OlegPowerC/wsalogparcer

Архив с исполняемым файлом и readme тут:
https://1drv.ms/u/s!AgUTm7x5KvPAkSA4_QX_kbmnK9iS

вторник, 10 июля 2018 г.

Python и Go как средство автоматизации

Добрый день коллеги.
Сегодня поговорим о том что сетевому инженеру в современных реалиях, придется изучать питон.
Во первых он теперь даже на IOS, но даже там где его нет - он может помочь.
1. Мы можем писать всякие скрипты для работы по SSH с железом.
2. Мы можем что то собирать по SNMP.

Так что я задумал цикл статей: "Python для CCNA"
Буду стараться рассказывать про сам язык и сопутствующие вещи, ну и приводить примеры использования.

Что касается Go:
Крайне простой язык, много библиотек и в обще много вкусного.
Но во первых он компилируется в исполняемый файл что и хорошо и плохо, а во вторых мне после Python C++ и ADA как то ужасно непривычно с ним работать но кое что уже сделал.

Про него буду стараться тоже что то написать.

Спасибо за внимание.
PS:
Не забывайте читать cisco support community - там тоже много интересного.

среда, 6 декабря 2017 г.

Сертификаты подписанные центром в домене .local

Браузер chrome не желает признавать доверенными сертификаты, выданные узлам с адресами <какой то хост>.local

Причина давняя почитать про это можно тут:
https://blog.comodo.com/e-commerce/phase-ssl-certs-internal-names-reserved-ip/
https://casecurity.org/2014/07/18/what-to-do-when-you-rely-on-internal-names-in-tlsssl-certificates/
https://productforums.google.com/forum/#!topic/chrome/zVo3M8CgKzQ;context-place=topicsearchin/chrome/category

Мы рассмотрим ситуацию, когда у вас в инфраструктуре есть корпоративный центр сертификации (Enterprise CA). Обсуждение самой инфраструктуры PKI выходит за замки данного поста, напишу как нибудь в следующий раз.

Сертификат должен быть с расширением SAN (subject alternative name) и подчиненные ему поля должны содержать как минимум FQDN узла, но для удобства можно добавить и IP адрес.

Нам необходимо создать запрос к центру сертификации, на выпуск нам сертификата, с этим расширением.
Будем использовать утилиту openssl на CentOS.
Для начала включим расширения:

nano /etc/pki/tls/openssl.cnf

Ищем закоментированную строку

#req_extensions = v3_req # The extensions to add to a certificate request

убираем #

req_extensions = v3_req # The extensions to add to a certificate request

Теперь создаем файл cert.in, с таким содержимым:

[ req ]
default_bits = 2048
prompt = no
encrypt_key = no
default_md = sha256
distinguished_name = dn
req_extensions = req_ext

[ dn ]
CN = srv-example.mydomain.local
O = CoolCompany
OU = Default
L = Saint-Petersburg
ST = NA
C = RU

[ req_ext ]
subjectAltName = DNS: srv-example.mydomain.local,IP:192.168.0.100

Создаем запрос и за одно сохраняем закрытый ключ:

openssl req -new -config cert.in -keyout cert.key -out cert.crs

По запросу cert.crs наш центр сертификации выпускает для нас сертификат.
Мы его должны сохранить в формате Base 64 в файл cert.cert

Теперь мы можем экспортировать сертификат с закрытым ключом в формате PKCS12:

openssl pkcs12 -inkey cert.key -in cert.cert -export -out cert.cert.pfx

Вводим пароль и файл готов.



пятница, 27 октября 2017 г.

vWLC и старые точки

Возникла небольшая проблема с vWLC 8.0. Не регистрируются точки.
Все манипуляции с разрешением просроченных сертификатов не помогают.
В логах видим вот такой набор сообщений:

*spamApTask0: Oct 27 12:45:30.613: %DTLS-3-HANDSHAKE_FAILURE: openssl_dtls.c:841 Failed to complete DTLS handshake with peer xx.xx.xx.xx

*spamApTask0: Oct 27 12:43:20.515: %LOG-3-Q_IND: spam_lrad.c:1695 Ignoring discovery request received on a wrong VLAN (48) on interface (1) in L3 LWAPP mode from AP xx:xx:xx:xx:xx:xx

*spamApTask0: Oct 27 12:43:10.502: %LWAPP-3-DISC_INTF_ERR2: spam_lrad.c:1695 Ignoring discovery request received on a wrong VLAN (48) on interface (1) in L3 LWAPP mode from AP xx:xx:xx:xx:xx:xx

Нам понадобится обновить ПО на точке.
Для этого прописываем на ПК IP адрес 10.0.0.2 маска 255.0.0.0 шлюз не нужен как и DNS.
Запускаем TFTP сервер

Кладем на него файл: c1250-rcvk9w8-tar.153-3.JA12.tar но его надо переименовать в: c1250-k9w7-tar.default

Затем выключаем питание точке, зажимаем кнопку и включаем. Так ждем секунд 30 потом отпускаем.
Если подключена консоль то проще - там видим сообщение что ожидаем отпускания кнопки.
Точка должна забрать файл, и перезагрузится.

После этого она должна найти контроллер и зарегистрироваться.

Теперь про 2 важных момента установки vWLC на ESXi.
1. Нужно создать виртуальный коммутатор, у которого никуда не подключен порт. И на нем сделать порт-группу к которой подключить Service порт vWLC (это первый порт VM)
2. На порт группе которая будет служить для WiFi доступа нужно разрешить Promiscous mode.