You are viewing grey_olli

grey_olli
23 December 2014 @ 06:50 am
Шаргородский Григорий "Заблудшая душа". Весьма динамичный сюжет. Очень неплохо. :)
Tags: ,
 
 
 
grey_olli
Originally posted by metaclass at Новости из сумеречного мира.
Звонит клиент и жалуется: на одном рабочем месте валится ошибка в отчете.
Смотрю логи - дохнет на распаковке gzip ответа от сервера приложений, битые данные.
Добавляю в прогу отладочное сохранение ответа сервера, смотрю логи: идет 60 килобайт gzip, затем бац - распакованный кусок ответа, несколько килобайт.
Перекапываю в интернетах баги jetty, баги клиентской либы - ничего похожего.
Ладно, прошу у клиентов доступ на проблемное рабочее место, скачиваю туда wget/curl/wireshark/sysinternals и начинаю тестировать.
curl пишет такое: "received problem 3 in the chunky parser". На выход пишет тот же самый ад, что у меня в логах, половина gzip, половина ответ.
wget получает данные целыми, WTF
Ладно, думаю, запускаю tshark с фильтрацией моего коннекта, еще раз запускаю curl, получаю битые данные.
Скачиваю дамп разговора curl и сервера себе, открываю - идеальный ответ сервера, chunked encoding, в конце 0 чанк, все как доктор прописал.
В итоге - лезу в драйвера сети, смотрю - а там антивирус ESET ПРОТОКОЛЫ БЛЯДЬ ФИЛЬТРУЕТ.
Включаю все свои проги в исключения, все начинает работать как положено.

Козлопитоны из ESET в драйвере декодят gzip, декодят chunk encoding и успешно поверх этого грохают свой же буфер, придурки лагерные.
 
 
 
grey_olli
14 December 2014 @ 02:55 pm
Расклад с обновлениями сертификатов для weblogic таков:

1) Для старта Admin server weblogic’у нужно указывать alias в keystore для записи типа “PrivateKey”, аналогичные настройки должны быть у всех Managed server’ов и у nodemanager.

2) В то же время для клиента важно чтобы запись была в явовском cacerts ($JAVA_HOME/jre/lib/security/cacerts) с типом “trsustedCertEntry”.

Без первого не стартует Admin server, без второго – managed, поскольку Managed сервера Weblogic запускаются Admin сервер посредством явы, которая отказывает на основании untrusted сертификата.

Сам сертификат подписанный локальным CA получается после генерации посредством openssl private key, в дальнейшем передачей certificate signing request (CSR) полученного посредством команды openssl req –new –key key-file.pem –out cert-cign-request.pm в CA, который в ответ позволяет скачать certificate.pem .

Запись типа private key получается если из сертификата и CSR и private key при помощи openssl сделать keystore типа PKCS12 и из него уже java keytool импортировать собственно private key. Это нужно потому что команды импорта отдельно private key у явовской keytool нету. Сгенерировать пару ключей или только секретный ключ с записью в keystore пожалуйста, а вот импортировать отдельно private key почему-то хрен.

Судя по опциям keytool можно обойтись без openssl одной только этой утилитой сгенерировав им и public и private key и CSR.

Самое забавное, что полученная таким импортом запись типа PrivateKey имеет одинаковый serial с записью с типом “trsustedCertEntry” полученной импортом подписанного сертификата, при попытке импорта которого при имеющейся записи PrivateKey мы получаем от keytool сообщение, что сертификат уже присутствует в keystore с другим alias’ом.

Вот это меня удивляет – сразу возникает вопрос – в чём отличие между PrivateKey и Certificate, если у них одинаковые serial, sha & md5 хэши?

Получается что разницы между ними фактически нет, а появляется она уже в самом хранилище (keystore), которое в зависимости от типа импорта хранит ещё и разные результаты дополнительного обработки одних и тех же данных.


Поскольку каждый запуск certnanny незадолго до устаревания сертификата должен обновлять сертификат, то было бы логичным хранить в одном файле единственную запись сертификата и её обновлять, а объявить один и тот же файл и в качестве trust store и в качестве identity store для weblogic. Но поскольку внутри себя weblogic выступает то клиентом, то сервером при общении между компонентами, то либо придётся иметь две записи на один сертификат с разными alias’ами, либо таки два отдельных keystore (identity и trust). В любом из этих раскладов для обновления всё равно придётся использовать скриптовую обвязку запускаемую по hook’ам.

Ну и наконец дополнительный момент:

3) если даже держать с разными alias’ами в одном keystore один и тот же сертификат с разными типами записи – PrivateKey и trustedCertEntry, то всё равно не получится управлять серверами, поскольку weblogic выбирает клиентский сертификат по alias’у записи типа PrivateKey (а клиенту всегда нужен trustedCertEntry) и разные alias’ы в зависимости от типа обращения client или server не предусмотрены.

В результате для weblogic файлы identity и trust keystore обязательно должны быть разными с одним alias’ом. В identity должен быть тип private key, а в trust – trustedCertEntry . Причём в документации этого момента явно указанным я не нашёл.
 
 
 
grey_olli
10 December 2014 @ 01:53 pm

А чем можно заскриптовать загрузку / выгрузку на ftp в линухах?  Надо работать через прокси, задавать путь откуда и куда.

 
 
 
grey_olli
09 December 2014 @ 08:40 pm
Есть weblogic, нужно чтобы он пользовался сертификатами.

Я сделал ключевую пару openssl, создал cert signing request, залил его в внутренний УЦ компании,
Мне взамен выдал сертификат УЦ нашей корторы, я могу скачать его в форматах der или pem.

Далее я склеиваю ключ и сертификат в один файл и делаю из них PKCS12 keystore:
openssl pkc12 –export –inkey mykey.pem –in склейка –name alias_for_keystore –out pkcs12-store

чтобы при автообновлении сертификатов через certnanny мне не пришлось обновлять сертификаты в двух местах решили обновлять внутри системного явовского cacerts, так что мне надо впихнуть сертификат в системный явовский кейстор и указать этот кейстор для weblogic’а + alias импортированного.

Однако если сделать при помощи java keytool импорт из keystore то импортированное нельзя сделать trusted – нету такой опции у keytool.

В таком раскладе у меня Admin сервер weblogic’а на основании untrusted certificate отказывает в запуске managed серверов, хотя сам Admin сервер стартует, но подключиться к домену через его управляющий порт не получается на том же основании.

Если я делаю просто импорт выданного мне сертификата как trusted, то у меня не стартует уже сам Admin сервер. :)

Всвязи с этим вопросы:

1) Можно ли какой либо утилитой кроме keytool редактировать trusted статус сертификата в cacerts (keystore типа jks , AFAIK)?
Это нужно поскольку импорт из keystore не позволяет одновременно сделать импортируемое trusted.

2) В чём разница между импортом из keystore и просто сертификата?

Если сделать keytool -list на PKCS12 кейсторе который я сделал, то там видно только private key. Если запустить создание 'opensll pkcs12 ..' без файла склейки заменив его только ключом - облом. Получается если я делаю импорт в java jks cacerts только выданного мне .der то я не включаю в импорт private key (т.е. сертификат её не содержит?), но если я делаю импорт из созданного мной pkcs12 keystore, то импортируется и ключ и сертификат?

3) Решит ли проблему включение в caccerts как trusted корневых сертификатов УЦ организации?
 
 
 
grey_olli
03 December 2014 @ 12:02 pm
Когда я прошлый раз постил ссылку про сертификацию для IT большинство решило что это чушь. Так вот собираются ввести это для всех:

http://www.mk.ru/social/2014/12/03/rabotat-tolko-po-specialnosti-mozhet-obyazat-gosduma-rossiyan.html
Tags: , ,
 
 
 
grey_olli
Наткнулся вот на скриншот - консольная смотрелка нагрузки на интерфейсе, довольно наглядная

apt-get install slurm
slurm -i eth0

показывает скорость с которой идут данные и ascii approximation график, мне показалась более удобной чем iftop, хотя если по ней видно перегруз и надо искать чем - придётся использовать iftop.

Надо будет дома глянуть. А то на работе драконовски запрещён ssh наружу. %)
 
 
 
grey_olli
26 November 2014 @ 02:55 pm
Я не так часто пользуюсь awk, нужно было напечатать строку только в начале STDIN, а далее без неё, вот решение подсказали:

awk -- 'BEGIN{print "ibase=16;"}{print $3} |bc

если бы я печатал ibase=16 на каждую строку, то со второй строки это было бы уже не 16, а больше и bc бы ругался на каждую строку. :)
 
 
 
grey_olli
25 November 2014 @ 11:25 am
Мне нужно запустить динамически скомпилённый бинарь. Одна из библиотек находится по нестандартному пути (вернее в системе уже есть аналогичная библиотека, но мне нужна другая версия, которая собрана в отдельном каталоге), в ld.so.conf её не прописать - рута у меня нет. Можно ли как-то скормить бинарю альтернативный ld.so.conf список библиотек не имея рута и если да, то как?

update: подсказали в комментах: http://grey-olli.livejournal.com/881149.html?thread=1834237#t1834237
 
 
 
grey_olli
23 November 2014 @ 07:28 pm
UPDATE `records` SET content = REPLACE(content, "ns3.xo.com", "ns1.xo.com") WHERE content LIKE "ns3.xo.co%"

очень удобно получается. :)

и вот ещё, удалить дубликаты:

DELETE n1 FROM `records` n1, records n2 WHERE n1.id > n2.id AND n1.`name` = n2.`name` AND n1.type='SOA';