Общая информация
Данная инструкция описывает настройку подключения с клиентского ПК (Клиент) по SHH по токену к промежуточному серверу (Сервер 1) с последующим подключением по SSH по токену к конечному серверу (Сервер 2)
Сценарий 1: Astra-Astra-Astra С пробросом сокета.
Сценарий 1 подразумевает настройку подключения из Клиента Astra Linux по ssh по токену на Сервер1 Astra Linux с последующим подключение по ssh по токену на Сервер2 ( в этой же сессии). Токен на Сервер1 Сервере 1 работает благодаря пробросу сокета pcscd
с Клиента на Сервер1.
Окружение:Клиент - Сервер 1.
Ниже приведен пример настройки такого подключения между клиентом Astra Linux и двумя серверами Astra Linux.
Параметры окружения
Клиент:
- ОС — Astra Linux 1.7.5 Воронеж;
- пользователь
...
- — client;
- IP
...
- — 192.168.5.150
...
- .
Сервер 1 (промежуточный):
- ОС —
...
- Astra Linux 1.7.5 Воронеж;
- пользователь
...
- — server1;
- IP
...
- — 192.168.5.155
...
- .
Сервер 2 (конечный):
- ОС —
...
- Astra Linux 1.7.5 Воронеж;
- пользователь
...
- — server2;
- IP
...
- — 192.168.5.164.
1. Генерация ключей
...
Настройка подключения
Настройка проходит в несколько этапов: генерация ключей на токене, настройка клиентского ПК, настройка Сервера 1, настройка Сервера 2, перенаправление сокета pcscd на Сервер 1, подключение к Серверу 2.
Генерация ключей
Обновите установленные пакеты:
sudo apt update
sudo apt dist-upgrade
1.2 Устанавливаем библиотеку librtpkcs11ecp.so
(http://www.rutoken.ru/support/download/pkcs/)
Установите библиотеку rtPKCS11ECP для своего дистрибутива из Центра загрузки Рутокен.
Сгенерируйте ключевую пару на Рутокене
...
:
pkcs11-tool --
...
module
/usr/lib/librtpkcs11ecp
.so --keypairgen --key-
type
rsa:2048 -l --
id
...
<id>
В значении опции
--id
задайте произвольный ID ключа (например, 45).Сконвертируйте в формат SSH открытый ключ на Рутокене:
ssh
-keygen -D
/usr/lib/librtpkcs11ecp
.so -I <slot>:<id> >> key.pub
<slot>
— слот, к которому подключен токен;<id>
— ID ключа, который был задан в предыдущем шаге.
Пример команды для токена, подключенного к слоту 0, и ключа с ID 45
...
:
ssh
-keygen -
...
D
/usr/lib/librtpkcs11ecp
.so -I 0:45 >> key.
...
pu
b
2. Настройка *nix-клиента
Настройка Клиента
...
- Установите
openssh-client
:
...
sudo
apt-
...
get
install
openssh-client
2.2 Устанавливаем библиотеку librtpkcs11ecp.so
(http://www.rutoken.ru/support/download/pkcs/)
3. Настройка Сервера1
- Установите библиотеку rtPKCS11ECP для своего дистрибутива из Центра загрузки Рутокен.
Настройка Сервера 1
...
- Установите
openssh-server
:sudo
apt-
...
get
install
openssh-server
...
- Перейдите в каталог
~/.ssh
на сервере. - Скопируйте содержимое файла
key.pub
, полученного в шаге 4 этапа Генерация ключей, в файл~/.ssh/authorized_keys
...
- . Если такого файла нет, его нужно
...
- создать
...
- .
- Измените права доступа к файлу:
chmod
0600 ~/.
ssh
/authorized_keys
...
Настройка
...
Настройка Сервера2 проходит аналогично настройке Сервера1.
5. Подключаем Клиент к Серверу1
5.1 Используйте SSH для перенаправления сокета pcscd на Сервер1. Запустите следующую команду:
...
Сервера 2
Для настройки Сервера 2 повторите шаги настройки Сервера 1.
Перенаправление сокета pcscd на Сервер 1
- C помощью SSH перенаправьте сокет pcscd на Сервер 1:
ssh -R /
...
путь/
...
к/.pcscd.comm:/var/run/pcscd/pcscd.comm -I /usr/lib/librtpkcs11ecp.so
...
<user>@<server_
...
address>
...
<user>@<server_address>
— имя пользователя и адрес
...
Сервера 1;
/путь/к/.pcscd.comm
...
- — путь, где будет находиться файл сокета на
...
- Сервере 1.
Пример готовой команды для Сервера 1 с параметрами, указанными в разделе Параметры окружения:
- Сервере 1.
...
ssh -R /home/
...
server1/.pcscd.comm:/var/run/pcscd/pcscd.comm -I /usr/lib/librtpkcs11ecp.so server1@192.168.5.155
...
- Настройте
...
- переменную окружения
PCSCLITE_CSOCK_NAME
, чтобы указать программе, какой сокет использовать для взаимодействия с pcscd
...
- :
...
export PCSCLITE_CSOCK_NAME=
...
/путь/к/.pcscd.comm
...
/путь/к/.pcscd.comm
...
— путь к файлу .pcscd.comm, который
...
был выбран в предыдущем шаге
...
.
Пример готовой команды для Сервера 1 с параметрами, указанными в разделе Параметры окружения:export PCSCLITE_CSOCK_NAME=/home/server1/.pcscd.comm
Подключение к Серверу 2
Info |
---|
Работа с Рутокеном будет доступна только в той сессии и через ту консоль, через которую осуществлялся проброс сокета pcscd в предыдущем этапе. |
...
Подключитесь по SSH с Сервера 1 к Серверу 2 с помощью Рутокена
...
:
|
|
<user>@<server_address>
— имя пользователя и адрес Сервера 2.
Пример готовой команды для Сервера 2 с параметрами, указанными в разделе Параметры окружения:ssh -I /usr/lib/librtpkcs11ecp.so server2@192.168.5.164
...
Завершение работы
Чтобы завершить сеанс SSH, закройте терминал или выполните команду exit
.
...
Warning |
---|
После завершения работы нужно удалить файл |
|
...
Сервера 1, а при необходимости повторить подключение — перенаправить сокет заново. При попытке создания новой сессии со старым файлом |
...
или |
...
нет токена |
...
Сценарий 2: Windows 10-Astra-Astra
...
Клиент - Windows 10, пользователь - client
Сервер1 - Astra Linux 1.7.5 Воронеж, пользователь - server1
Сервер2 - Astra Linux 1.7.5 Воронеж, пользователь - server2
...
1. Генерация ключей
Info |
---|
Генерацию ключа выполняется на Linux-машине (Astra Linux) |
...
sudo apt update
sudo apt dist-upgrade
1.2 Устанавливаем библиотеку librtpkcs11ecp.so
(http://www.rutoken.ru/support/download/pkcs/)
1.3 Генерируем ключевую пару на Рутокен:
...
pkcs11-tool --module
/usr/lib/librtpkcs11ecp
.so --keypairgen --key-
type
rsa:2048 -l --
id
45
1.4 Конвертируем в формат ssh открытый ключ на Рутокен:
...
ssh
-keygen -D
/usr/lib/librtpkcs11ecp
.so -I 0:45 >> key.pub
2. Настройка Сервера1
2.1 Устанавливаем openssh-server
:
...
sudo
apt-get
install
openssh-server linux-tools-`uname -r`
2.2 Копируем на сервер содержимое полученного на шаге 1.4 файла key.pub
в файл ~/.ssh/authorized_keys
(если такого файла нет, нужно его создать). Для файла с приватными ключами измените права доступа с помощью команды:
...
chmod
0600 ~/.
ssh
/authorized_keys
3. Настройка Сервера2
Настройка Сервера2 проходит аналогично настройке Сервера1.
4. Настройка Windows-клиента
4.1 Скачать и установить драйверы Рутокен: https://www.rutoken.ru/support/download/windows/
Для настройки соединения с Сервером терминалов:
4.2 Откройте приложение Подключение к удаленному рабочему столу.
...
4.3 Введите имя или IP-адрес сервера терминалов.
4.4 Нажмите на кнопку [Показать параметры].
...
4.6 В секции Локальные устройства и ресурсы нажмите на кнопку [Подробнее...].
...
4.7 Установлен флажок Смарт-карты.
4.8 Нажмите на кнопку [OK].
...
Сценарий 3: Astra-Astra-Astra UsbIP
...
Сервер1 - Astra Linux 1.7.5 Воронеж; пользователь - server1; IP - 192.168.5.155
...
1. Генерация ключей
1.1 Обновляем пакеты и устанавливаем необходимые для работы с Рутокен пакеты:
...
sudo apt update
sudo apt dist-upgrade
1.2 Устанавливаем библиотеку librtpkcs11ecp.so
(http://www.rutoken.ru/support/download/pkcs/)
1.3 Генерируем ключевую пару на Рутокен:
...
pkcs11-tool --module
/usr/lib/librtpkcs11ecp
.so --keypairgen --key-
type
rsa:2048 -l --
id
45
1.4 Конвертируем в формат ssh открытый ключ на Рутокен:
...
ssh
-keygen -D
/usr/lib/librtpkcs11ecp
.so -I 0:45 >> key.pub
2. Настройка *nix-клиента
2.1 Устанавливаем openssh-client
:
...
$
sudo
apt-get
install
openssh-client
2.2 Устанавливаем библиотеку librtpkcs11ecp.so
(http://www.rutoken.ru/support/download/pkcs/)
2.3 Вызываем
...
ssh
-agent -P
/opt/aktivco/rutokenecp/amd64/
*
...
sudo apt install linux-tools-`uname -r`
...
sudo modprobe usbip-core
sudo modprobe usbip-host
sudo modprobe vhci-hcd
...
sudo usbipd -D
...
usbip list -l
busid 2-2.2 (0a89:0030)
Aktiv : Rutoken ECP (0a89:0030)
...
sudo usbip bind -b <bus ID устройства>
3. Настройка Сервера1
3.1 Устанавливаем openssh-server
:
...
sudo
apt-get
install
openssh-server linux-tools-`uname -r`
3.2 Копируем на сервер содержимое полученного на шаге 1.4 файла key.pub
в файл ~/.ssh/authorized_keys
(если такого файла нет, нужно его создать). Для файла с приватными ключами измените права доступа с помощью команды:
...
chmod
0600 ~/.
ssh
/authorized_keys
3.3 Загрузить необходимые модули ядра:
...
sudo modprobe usbip-core
sudo modprobe vhci-hcd
...
. |
...
sudo usbip list -r IP-адрес-сервера
...
|
...
3.5 Подключить USB-устройство:
...
sudo usbip attach -r <client ip> -b <bus ID>
...
Для отключения устройства:
Проверить, к какому порту присоединено устройство:
sudo usbip port
...
Отключить устройство (используется номер порта 00, обычный для единственного устройства):
sudo usbip detach -p 00
4. Настройка Сервера2
Настройка Сервера2 проходит аналогично настройке Сервера1.
5. Подключаем Клиент к Серверу1
5.1 Подключиться по ssh с Клиента на Сервер1 с помощью Рутокена.
...
ssh
-I
/usr/lib/librtpkcs11ecp
.so <username>@<server>
...
ssh -I /usr/lib/librtpkcs11ecp.so server1@192.168.5.155
5.2 Далее необходимо подключиться по ssh с Сервер1 на Сервер2 с помощью Рутокена.
...
ssh -I /usr/lib/librtpkcs11ecp.so user@server_address
...
ssh -I /usr/lib/librtpkcs11ecp.so server2@192.168.5.164
Info |
---|
Дополнительную информацию по настройке usbIP, можно прочитать в мануале Astra Linux: |