Установка КриптоПРО на openSUSE

За статью спасибо https://t.me/JIeKapb_CJLupToM

Из распакованного каталога с пакетами запустить от root install скрипт:

sudo ./install.sh

После завершения установки из скрипта не выходя из каталога

sudo zypper in cprocsp-rdr-rutoken-64-4.0.0-4.x86_64.rpm ifd-rutokens-1.0.1-1.x86_64.rpm cprocsp-rdr-pcsc-64-4.0.0-4.x86_64.rpm lsb-cprocsp-pkcs11-64-4.0.0-4.x86_64.rpm

В случае, если необходимо использования Криптопро ЭЦП Browser Plugin

sudo zypper in cprocsp-rdr-gui-gtk-64-4.0.0-4.x86_64.rpm libpangox

Работает только в Firefox ESR, т. к. нужна поддержка NPAPI, в ESR будет поддерживаться до конца 2018 года, потом выпилят вообще.

Просмотр лицензии

/opt/cprocsp/sbin/amd64/cpconfig -license -view

Установка лицензии

sudo /opt/cprocsp/sbin/amd64/cpconfig -license -set СерийныйНомер

Просмотр корневых сертификатов

/opt/cprocsp/bin/amd64/certmgr -list -store root

Установка корневых сертификатов

sudo /opt/cprocsp/bin/amd64/certmgr -inst -store root -file /путь/до/сертификата

Создаем хранилище ключей на HDD

sudo /opt/cprocsp/sbin/amd64/cpconfig -hardware reader -add HDIMAGE store

Узнаем какие контейнеры у нас есть (разумеется флешка или токен уже торчит в USB)

/opt/cprocsp/bin/amd64/csptest -keyset -enum_cont -verifycontext -fqcn

Должны получить нечто подобное

CSP (Type:80) v4.0.9014 KC1 Release Ver:4.0.9842 OS:Linux CPU:AMD64 FastCode:READY:AVX. 
AcquireContext: OK. HCRYPTPROV: 9224835 
\\.\FLASH\УИД контейнера или его имя
OK. 
Total: SYS: 0,020 sec USR: 0,120 sec UTC: 0,190 sec 
[ErrorCode: 0x00000000]

Копируем контейнер на HDD, делается это от того пользователя под которым будут подписываться документы, если выполнить эту команду от root, то контейнер будет работать только по root. Контейнеры хранятся в папке /var/opt/cprocsp/keys/имя пользователя

/opt/cprocsp/bin/amd64/csptest -keycopy -contsrc '\\.\FLASH\УИДконтейнераИлиЕгоИмя' -contdest '\\.\HDIMAGE\Vasyan'

В папке /var/opt/cprocsp/keys/username должен появиться каталог с ключами Vasyan.000

Проверяем видит ли его КриптоПРО

/opt/cprocsp/bin/amd64/csptest -keyset -enum_cont -verifycontext -fqcn
CSP (Type:80) v4.0.9014 KC1 Release Ver:4.0.9842 OS:Linux CPU:AMD64 FastCode:READY:AVX. 
AcquireContext: OK. HCRYPTPROV: 9224835 
\\.\FLASH\УИДконтейнераИлиЕгоИмя
\\.\HDIMAGE\Vasyan #вот он
OK. 
Total: SYS: 0,020 sec USR: 0,120 sec UTC: 0,190 sec 
[ErrorCode: 0x00000000]

Ассоциация сертификата с контейнером

sudo /opt/cprocsp/bin/amd64/certmgr -inst -file /путь/до/сертификата/сертификат.cer -cont '\\.\HDIMAGE\Vasyan'

Список установленных сертификатов

/opt/cprocsp/bin/amd64/certmgr --list

Смотрим строки

PrivateKey Link     : Yes #если Yes то можно подписыват, No - связи нет, и использовать такой контейнер для подписи не удастся.

Container           : HDIMAGE\\Vasyan.000\A123 #Как и задуманно, сертификат пренадлежит этому контейнеру. 

Репозиторий packman для opensuse опять упал..

Те кто юзают замечательный Arch Linux радуются тому что у них есть универсальный репозиторий в котором можно найти почти всё. комьюнити OpenSuSe почесав тыковку сделали свой универсальный репозиторий, даже не заморачивались с названием — Packman.
Официальная wiki говорит что этот репозиторий обитает по адресу http://ftp.gwdg.de/pub/linux/misc/packman/suse/ (кстати если подняться немного выше то там есть и для федоры и для дебиана).
Однако этот сервак постоянно падает, раз по пять за год, а то и больше.
Решение проблемы банально: так как я не могу / не хочу (нужное подчеркнуть) связываться с теми кто его держит (им наверное и без меня хватает) то на своих тачках я подключил зеркало этого репозитория на mirror.yandex.ru. Обновления на него подтягиваются с совсем небольшой задержкой, зато не падает никогда..

Аналог apt install -f в OpenSUSE

zypper patch
zypper inr

Не прошло и года, решение проблемы неработающего SSH на OpenSUSE с ESET NOD32 antivirus

sudo nano /etc/ssh/sshd_config
#UsePrivilegeSeparation sandbox
UsePrivilegeSeparation yes
sudo systemctl restart sshd.service

Спасибо тех поддержке eset за помощь. Долго думали но всё же решили.

OpenVPN сервер на OpenSuSe 13.2

Зачем? А зачем вообще нужен vpn?

Чтобы никто не влез в ваше соединение и не стыбрил файлик с суперсекретной информацией, чтобы сидеть ВКонтактике с домашнего провайдера если на работе/учёбе злые админы прикрыли доступ к этому сайту, чтобы пользоваться дома ресурсами сервера на работе у которого нет прямого выхода в глобальную сеть. Да мало ли что ещё придумает ваша больная фантазия!

И так:

  • Установим сам openvpn (одним пакетом поставляется и клиент и сервер):
sudo zypper in openvpn
  • Логинимся в рута:
sudo su
  • Качаем тулзу для генерации сертификатов:
wget -O easy-rsa-2.x.tar.gz https://github.com/OpenVPN/easy-rsa/archive/release/2.x.tar.gz
  • Расспаковываем:
tar xvf easy-rsa-2.x.tar.gz

 

  • Копируем в папку с конфигами openvpn:
cp -r easy-rsa-release-2.x/easy-rsa /etc/openvpn/
  • Переходим в папку с которой будем работать:
cd /etc/openvpn/easy-rsa/2.0/
  • И редактируем файл vars:
nano /etc/openvpn/easy-rsa/2.0/vars
  • Запускаем vars:
./vars
  • Запускаем clean-all:
./clean-all
  • Запускаем build-ca
./build-ca
  • Генерируем сертификат сервера
./build-key-server server
  • Запускаем скрипты генерации и отвечаем на вопросы, если [да/нет] то отвечаем утвердительно, пароли можно не создавать, но если вы боитесь что сертификаты попадут в чужие руки то всё таки стоит:
./build-key client1
./build-key client2
./build-key client3

.. столько клиентов сколько вам надо

./build-dh
  • создаём файл /etc/openvpn/client.conf
client
remote IP_ВАШЕГО_СЕРВЕРА 1194
ca ca.crt
cert client1.crt
key client1.key
comp-lzo yes
dev tap
proto udp
nobind
auth-nocache
script-security 2
persist-key
persist-tun
user nobody
group nobody
remote-cert-tls server
  • переходим в папку с ключами и копируем их на место
cd /etc/openvpn/easy-rsa/2.0/keys
cp ca.crt ca.key dh2048.pem server.crt server.key /etc/openvpn
  • Копируем дефолтный файл конфигурации сервера:
cp /usr/share/doc/packages/openvpn/sample-config-files/server.conf /etc/openvpn/
  • И меняем в нём dh1024.pem на dh2048.pem;
  • Так же комментируем dev tun и раcкомментируем dev tap;
  • Добавляем службу в автозапуск и делаем её загружаемой при запуске:
systemctl start openvpn@server.service
systemctl enable openvpn@server.service
  • Теперь копируем ca.crt client.crt client.key на клиентскую тачку и конфиг (для linux конфиг с расширением .conf а для windows с расширением .ovpn);
  • Готово, подключаемся и пользуем.