воскресенье, 30 декабря 2012 г.

Проверка сервера через сертификаты

Итак, я пересаживаюсь на новую машину, захожу по ssh на сервер и вижу знакомую надпись:

authenticity of this host is can`t be established
key fingerprint is xxxxxxxxxxxx
are you sure?

и хз, как отвечать. откуда ж я помню какой фингерпринт был на каждом сервере. А чужих серверов в округе полно, и вбивать свой пароль неизвестной машине очень не хочется.

Можно хранить фингерпринты где-нибудь в интернете, в доступном месте. Можно завести dns-записи, но для этого нужен свой dns-сервер, ибо я еще не видел сервисов умеющих заводить их. И, наконец, можно подписать ключи серверов ключом центра авторизации, и тогда на клиентской машине нужно будет добавить только одну строчку в known_hosts и мы автоматически начинаем доверять всем своим серверам.

создаем ключ CA

ssh-keygen -t ecdsa -f /etc/ssh/ca-key

при этом создается обычная пара ssh ключей: ca-key (приватный) и ca-key.pub (открытый, он нам понадобится на клиентских машинах)

подписываем хост-ключи сервера

ssh-keygen -s /etc/ssh/ca-key -h -I server.com /etc/ssh/ssh_host_ecdsa_key.pub

получаем файл /etc/ssh/ssh_host_ecdsa_key-cert.pub

настраиваем sshd

в файле /etc/ssh/sshd_config добавляем строку

HostCertificate /etc/ssh/ssh_host_ecdsa_key-cert.pub

перезапускаем ssh

настраиваем клиент

содержимое ca-key.pub (это одна строка) копируем в known_hosts. В начале этой строки добавляем @cert-authority server_name

при этом ключи самого сервера добавлять не нужно.

таким образом подписав нашим ca-key ключи всех серверов, мы сможем проверять валидность их ключей без изменения known-hosts

понедельник, 6 августа 2012 г.

загрузочная флешка с линуксом

Вчера встала задача поднять вайфай на ноутбуке. Система стояла openbsd, в которой драйверов на карточку нету даже в планах. Проводная сеть работает. Под линукс нужные дрова есть. Остается загрузить линукс. Сидирома нет - исошки не прокатят. Пытаюсь найти образ загрузочной флешки (кстати, с опенбсд такая нашлась на первой странице гугла), но везде только инструкции, как создать ее самому. Для создания требуются утилиты, которые под опенкой не работают/отсутствуют.

Вобщем, сплошное разочарование :( Вайфая я так и не получил.

Сегодня, придя на работу, первым делом создал загрузочную флешку с установочным образом генты.

выкладываю тут на всякий случай - gentoo_usb.img

для заливки - dd if=gentoo_usb.img of=/dev/sdc

или как там флешка определилась. флешка нужна на 500 мб или больше

и для лучшего поиска - gentoo liveusb flash скачать, без смс, без регистрации :)

вторник, 31 июля 2012 г.

panic in ghc

Написал маленький но полезный скрипт на хаскеле. И он прекрасно компилировался и работал на домашнем буке. Но после копирования на рабочую машину ghc сказал:
$ ghc
ghc: panic! (the 'impossible' happened)
  (GHC version 6.12.3 for i386-unknown-openbsd):
        too few bytes. Failed reading at byte position 10861
 
Оно, конечно, дома то уже 7-ая версия стоит, и я подумал, а не изменился ли синтаксис?
Но попытка скомпилировать программу с одной строчкой и той контстантой не привела к успеху
 
Зато как обычно гугл почти сразу дал ответ - 
надо почистить ~/.ghc
Похоже туда он сваливает временные файлы для ускорения компиляции и после обновления системы формат их изменился

четверг, 26 апреля 2012 г.

заведение виртуального почтового ящика

используются exim + courier imapd

в /etc/exim/auths добавляем строку:

vmailbox@vdomain: password

в /etc/exim/domains/vdomain добавляем строку:

vmailbox

(пожалуй, этот вместо этого можно использовать файл с паролями, но я скорее перейду на ldap)

Теперь imap.

создаем папку для ящика:

mkdir /home/vdomain/vmailbox

генерируем структуру:

maildirmake /home/vdomain/vmailbox

выставляем права:

chmod -R vdomain:vdomain /home/vdomain/vmailbox

добавляем запись в базу паролей:

userdb "vmailbox@vdomain" set home=/home/vdomain mail=/home/vdomain/vmailbox uid=vdomain gid=vdomain

задаем пароль:

userdbpw -md5 | userdb "vmailbox@vdomain" set imappw   - для IMAP

userdbpw -md5 | userdb "vmailbox@vdomain" set pop3pw  - для POP3

компилируем базу паролей:

makeuserdb

в последних версиях OpenBSD почему-то makeuserdb ругается No such file or directory
это лечится через

ln -s /usr/local/libexec/makedatprog /usr/local/libexec/courier-authlib/

ну или сам скрипт makeuserdb поправить - он на перле