воскресенье, 11 августа 2013 г.

Endian Firewall Community. OpenVPN с использованием X.509 certificate

В одной из "статей" на нашем форуме Перенос OpenVPN сервера на Endian Firewall Community, "Твики" настройки EFW 2.5.1 мы писали о том как перенести существующий OpenVPN сервер на EFW, использовав при этом tls-auth. Сегодня я расскажу о том, как правильно сконфигурировать OpenVPN сервер на Endian'е с поддержкой аутентификации по X.509 certificate, а также как избежать распространенной ошибки: TLS_ERROR: BIO read tls_read_plaintext error: error:140890B2:SSL routines:SSL3_GET_CLIENT_CERTIFICATE:no certificate returned, т.е.:

Предположим что мы создали все ключи и сертификаты, также экспортировали серверный ключ и сертификат (server.key, server.crt), а также ca.crt в PKCS12 и получили server.p12, который успешно загрузили в наш EFW. Под ОС Windows это можно сделать с помощью bat'ника build-key-pkcs12.bat в комплекте Easy RSA Tools. После чего создаем клиентские ключи, конфиги и убеждаемся в том, что клиент не коннектится к EFW из-за пресловутой TLS Error: TLS handshake failed. А всё почему ... в конфигах сервера (посмотреть можно /etc/openvpn/openvpn.conf) стоит опция ns-cert-type client. Т.е. клиентский сертификат должен обязательно в поле Тип сертификата Netscape содержать - "SSL-проверка подлинности клиента (80)". Обратите внимание на картинку:


Как же сгенерировать клиентский сертификат таким образом, чтобы он обеспечивал SLL проверку подлинности клиента? Нет ничего проще. Вносим изменения в наш openssl.cnf, дописывая туда строки:

[ client ]
basicConstraints=CA:FALSE
nsCertType = client
nsComment = "OpenSSL Generated Server Certificate"
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid,issuer:always

После чего, в bat'нике для генерации клиентского серфтификата и ключа build-key.bat при генерации сертификата дописываем ключ -extensions client, т.е. вот так:

openssl ca -days 3650 -out %KEY_DIR%\%1.crt -in %KEY_DIR%\%1.csr -extensions client -config %KEY_CONFIG%

И нам остается только создать правильный клиентский конфиг (client.ovpn):

# OpenVPN Config File (c) Decker 
dev tap 
# dev-node "OpenVPN"  
proto udp  
remote mydomain1.org 8888  
route-delay 3  
client  
#tls-client  
ns-cert-type server  
ca .\\ca.crt  
cert .\\user1.crt  
key .\\user1.key  
#tls-auth .\\ta.key 1  
comp-lzo  
tun-mtu 1500  
tun-mtu-extra 32  
mssfix 1450  
ping-restart 60  
ping 10  
# status .\\openvpn-status.log  
# log C:\\OpenVPN\\log\\openvpn.log  
verb 3  

После этого клиент успешно соединится с OpenVPN сервером на EFW:




среда, 7 августа 2013 г.

Установка сервера 1С Предприятие 8.2 на Linux

Данный пост - это не полноценная статья, скорее компиляция некоторой полезной информации и ссылок, касающихся установки сервера 1С:Предприятие 8.2 на ОС Linux. Для начала несколько ссылок, которые существенно облегчат жизнь:
Ну и так как все это добро может в один прекрасный день невзначай кануть в /dev/null позволю себе выложить приведенные в списке мануалы в архиве, в виде mht-файлов (т.е. web-страниц, сохраненных полностью). Скачать все три мануала одним архивом.

В нашем случае пришлось столкнуться с установкой сервера 1С Предприятие на CentOS x64, дистрибутив которой можно взять на http://mirror.yandex.ru/, а если конкретнее, то - CentOS-6.4-x86_64-LiveDVD.iso, либо в виде торрент-файла. Установка CentOS x64 практически ничем не отличается от установки любого другого Linux дистрибутива. Единственное, после выбора языка системы, если вы выбираете русский, полезно знать что настройка для переключения раскладки клавиатуры по-умолчанию - два шифта, т.е. левый и правый shift одновременно.

Ну а теперь про сложности, трудности и т.п. и т.п. За основу при установке сервера мы взяли первый мануал с Хабра, т.к. в нем наиболее подробно рассмотрены все возможные варианты, возникающие ошибки, описание настройки samba и масса других вещей. Единственное, т.к. у нас была x64 версия ОС, то для подключения доп. репозитариев - RPMforge, EPEL, ATrpms, мы воспользовались следующими командами:

su -c 'rpm -Uvh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm'
su -c 'rpm -Uvh http://mirror.yandex.ru/epel/6/x86_64/epel-release-6-8.noarch.rpm'
su -c 'rpm -Uvh http://dl.atrpms.net/all/atrpms-repo-6-6.el6.x86_64.rpm'

Пакет postgresql-9.0.3-3.1C.src.rpm скачался, поставился и от'rpmbuild'ился без каких-либо проблем.

yum install icu libicu libicu-devel
yum install rpm-build wget glibc-devel bison flex readline-devel zlib-devel openssl-devel pam-devel gettext gcc make 
wget http://v8.1c.ru/overview/postgresql_patches/9-0-3/postgresql-9.0.3-3.1C.src.rpm
rpm -ihv postgresql-9.0.3-3.1C.src.rpm
ln -s /usr/lib64/libicui18n.so /usr/local/lib64/libicui18n.so.46 && ln -s /usr/lib64/libicudata.so /usr/local/lib64/libicudata.so.46 && ln -s /usr/lib64/libicuuc.so /usr/local/lib64/libicuuc.so.46
rpmbuild -bb --define 'runselftest 0' ~/rpmbuild/SPECS/postgresql-9.0-1C.spec
cd /root/rpmbuild/RPMS/x86_64/

В резульате в /root/rpmbuild/RPMS/x86_64/ мы получили все необходимые для дальнейшей установки rpm пакеты (собственно и поставили их в рекомендуемом порядке):


rpm -ihv postgresql-9.0.3-3.1C.x86_64.rpm postgresql-contrib-9.0.3-3.1C.x86_64.rpm postgresql-devel-9.0.3-3.1C.x86_64.rpm postgresql-docs-9.0.3-3.1C.x86_64.rpm postgresql-libs-9.0.3-3.1C.x86_64.rpm postgresql-server-9.0.3-3.1C.x86_64.rpm postgresql-test-9.0.3-3.1C.x86_64.rpm

Далее конфигурирование PostgreSQL согласно первому мануалу, создание символических ссылок, смена пароля PostgreSQL и перезапуск сервера. Для установки сервера 1С Предприятия, кстати, можно было, находясь в папке с распакованными rpm'ами, выполнить команду:

yum localinstall ./*.rpm 

Ну а уже далее переходить к установке шрифтов и решению проблем с запуском /opt/1C/v8.2/i386/utils/config_server. Перед установкой шрифтов и первым запуском ./config_server лучше всего сделать:

yum install ImageMagick glib2-devel unixODBC
yum install ttf2pt1
yum install rpm-build cabextract
yum install ttmkfdir
yum install glibc.i686

Последняя строчка также необходима, несмотря на то что у нас x64 дистрибутив ОС. Это поможет избежать многих проблем при запуске config_server. Все эти "полезности" есть также в файле man.txt в архиве с мануалами, выложенном в начале этого поста.

Еще важный момент (!), когда будете задавать hostname для linux сервера, проследите чтобы ПК с таким NETBIOS именем, если вы используете рабочую группу, не было в сети. Имя выбирайте заранее. Потому как, если вы потом решите зачем-то сменить имя хоста с Linux OS - то это чревато множественными проблемами и ошибками. Лучше сразу выбрать имя и впоследствии его не менять!

воскресенье, 4 августа 2013 г.

Первые айтишные олимпийские игры

Середина лета в этом году ознаменовалась несколькими значимыми событиями в сфере IT. О грустных (например, о вступлении с 1 августа в силу закона о произвольной блокировке сайтов) мы уже писали на страницах нашего блога и форума, теперь пора перейти к более радостным. По традиции, в день системного администратора, в последнюю пятницу июля неподалеку от базы отдыха "Лаврово-Песочня" под Калугой прошел 8-й Всероссийский Слет Системных Администраторов. Лично у меня посетить это мероприятие в "полном объеме" в этом году не получилось, хотя я участник ДСА с 2008 года ... как-то и времени не особенно много было, да и погода, честно говоря, подвела. На поляну слета мы приезжали только в первый день - "осмотреться" и найти знакомых, с которыми мы периодически встречаемся в рамках этого мероприятия. К сожалению, найти их не удалось, а вот порядком "поваляться в грязи" мы успели. Т.к. поляна слета в этом году представляла собой непроходимое для людей и техники глиняное поле и сапоги, пожалуй, были предметом первой необходимости собравшихся на поляне системных администраторов. К такому повороту событий мы оказались явно не готовы (сапогов, естественно, у нас с собой не было), а посему, после некоторых безуспешных поисков знакомых и просмотра выступления Кукрыниксов - мы вынуждены были уехать. Больше, из-за внезапно обрушившейся на нас работы, вернуться туда не получилось. Надеемся, что все присутствовавшие на ДСА 2013 сисадмины и им сочувствующие все-таки получили удовольствие от праздника, отдохнули и хорошо провели время, несмотря на такие капризы природы. От нас всех и меня лично, поздравляем вас с уже прошедшим профессиональным праздником!

Ну а второе событие, о котором я хотел сегодня рассказать. Это очередной, ежегодный конкурс системных администраторов от компании Ideco (Айдеко). В этом году Конкурс IT Starz 2013 стартовал в двух номинациях: конкурс для системных администраторов и конкурс для разработчиков (при регистрации на сайте конкурса пользователю предлагается выбрать специализацию, в зависимости от которой - ему предстоит пройти соответствующий тест).


Субъективно, т.е. по нашим собственным впечатлениями, тест в этом году действительно стал лучше, а вопросы интереснее. Наши специалисты участвовали в прохождении теста и за системных администраторов и за разработчиков / программистов. И там, и там есть вопросы, которые заставляют не на шутку расшевелиться серые клеточки и применить максимум опыта, знаний и сообразительности для поиска ответов. Честно говоря, я и сам до сих пор под небольшим впечатлением, особенно от последнего вопроса теста для системных администраторов про обновление программы у пользователя и контент-фильтр. Решение простое и логичное, однако и сказать что оно лежит на поверхности нельзя. Вообщем, отдельное спасибо организаторам из компании Ideco за данный конкурс, а также за интересные вопросы! Всем, кто считает себя системным администратором, либо программистом настоятельно рекомендуется попробовать принять участие и оценить свои знания. Тем более, что каждую неделю среди участников со статусами Гуру и Профи проводится розыгрыш айпадов.

Главный приз для победителей Квеста – поездка в Грецию на двоих. Команда, которая займёт первое место по итогам гонки, получит квадракоптер. Кроме того, уже скоро, 5 августа стартует следующий этап состязаний - квест, обещающий быть не менее интересным по сравнению с прошлым годом. Главный приз айтишных олимпийских игр в этом году - поездка в Грецию. Впрочем. помните, что главное не победа, а участие! Возможность проверить свои знания, навыки, опыт, и найти достойных оппонентов в лице системных администраторов и программистов со всей России и не только. Искренне желаю всем участникам успехов!