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

ManageEngine Password Manager Pro установка на Linux

Ставим как описано но! в папку /opt/ManageEngine/PMP/
Тогда проблем не будет.
Далее:
/opt/ManageEngine/PMP/bin/pmp.sh install
Далее генерируем сертификат подписанный вашим CA с ASN с FQDN и IP:

cd /opt/ManageEngine/PMP/jre/bin

Закрытый ключ:
./keytool -genkey -alias pmp -keyalg RSA -keysize 2048 -sigalg SHA256withRSA -keypass <какой нибудь пароль> -storepass <какой нибудь пароль> -validity 365 -ext SAN=DNS:pmp.yourdomain.local,DNS:pmp,IP:XX.XX.XX.XX -keystore pmp.keystore

Запрос - отдаем CA:
./keytool -certreq -keyalg RSA -alias pmp -keypass <какой нибудь пароль> -storepass  <какой нибудь пароль> -file pmp.csr -ext SAN=DNS:pmp.yourdomain.local,DNS:pmp,IP:XX.XX.XX.XX -keystore pmp.keystore

Импортируем корневой сертификат:
keytool -import -alias pmp -keypass <какой нибудь пароль>-storepass <какой нибудь пароль> -keystore pmp.keystore -trustcacerts -file <выш корневой сертификат.pem>

Копируем pmp.keystore в например /opt/ManageEngine/PMP/conf
И прописываем это хранилище в двух файлах:
/opt/ManageEngine/PMP/conf/server.xml
и
/opt/ManageEngine/PMP/conf/gateway.conf

В  /opt/ManageEngine/PMP/conf/server.xml
ищем строки наподобие:
<Connector SSLEnabled="true" URIEncoding="UTF-8" acceptCount="100" ciphers="<тут всякие протоколы>" clientAuth="false" debug="0" disableUploadTimeout="true" enableLookups="false" keystoreFile="<тут пишем наш keystore - например conf/pmp.keystore>" keystorePass="<тут пишем наш пароль>" keystorePassEncrypted="false" keystoreType="JKS" maxHttpHeaderSize="32768" maxSpareThreads="75" maxThreads="150" minSpareThreads="25" port="7272" protocol="com.adventnet.passtrix.security.PMPHttp11Nio2Protocol" scheme="https" secure="true" server="PMP" sslProtocol="TLS" truststoreFile="jre/lib/security/cacerts" truststorePass="changeit" truststoreType="JKS" useBodyEncodingForURI="true"/>

И вторая строчка такая же только порт другой - 7070.

А в файле
/opt/ManageEngine/PMP/conf/gateway.conf
Ищем:
keyStore=<тут пишем наш keystore - conf/pmp.keystore>
keyStorePassword="<тут пишем наш пароль>"


Готово.

среда, 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

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