Сервер защищается запуском SSH Service на нём и регистрацией в кластере Airlock. RBAC контролирует доступ, а журнал аудита фиксирует действия.

SSH Service открывает обратный SSH-туннель к Proxy Service; клиентский трафик проходит через этот туннель — аналогично схеме bastion-хоста.

Не запускайте SSH Service как pod Kubernetes для доступа к узлам кластера — pod может оказаться не на том сервере, к которому нужен доступ.

Предварительные требования

  • Linux-хост (Ubuntu 20.04, CentOS 8, Debian 10 и т.п.) — будущий узел Airlock.
  • Работающий кластер Airlock и airctl на административной машине.
  • Временно открытый порт 22 для первоначальной настройки.

Шаг 1 из 4. Установка Airlock на сервере

На целевом хосте:

curl https://deckhouse.ru/downloads/airlock/install.sh | bash -s

Шаг 2 из 4. Добавление сервера в кластер

Создание join-токена

На рабочей станции сохраните токен в файл:

airctl tokens add --type=node --format=text > token.file

Подключение сервера

Скопируйте token.file на сервер в защищённый каталог и сгенерируйте конфигурацию (замените airlock.example.com):

sudo airlock node configure \
  --output=file:///etc/airlock.yaml \
  --token=/path/to/token.file \
  --proxy=airlock.example.com:443

Запустите SSH Service:

sudo systemctl enable airlock
sudo systemctl start airlock
sudo systemctl status airlock

Пользователь для веб-интерфейса

airctl users add myuser --roles=editor,access,reviewer --logins=root,ubuntu

Перейдите по ссылке из вывода команды, задайте пароль и MFA. Сервер появится в веб-интерфейсе на вкладке Servers.

Шаг 3 из 4. SSH на сервер

Вход в кластер

airsh login --proxy=airlock.example.com --user=myuser

Пример профиля:

Profile URL:      https://airlock.example.com:443
Logged in as:     myuser
Cluster:          airlock.example.com
Roles:            access, editor, reviewer
Logins:           root, ubuntu

Список узлов

airsh ls
Node Name        Address        Labels
---------------- -------------- --------------------------------------
bastion-host     ⟵ Tunnel
web-server       127.0.0.1:3022 env=prod, hostname=web-server

Подключение

airsh ssh root@web-server

Эквивалент через стандартный ssh:

airsh config > ssh_config_airlock
ssh -F ssh_config_airlock root@web-server.airlock.example.com

Все команды записываются в журнал аудита.

Шаг 4 из 4. Обзор ресурсов кластера

airctl nodes ls

Фильтр по метке:

airsh ls env=prod

Выполнение команды на всех узлах с меткой:

airsh ssh root@env=prod ls

Усиление защиты (опционально)

После настройки закройте порт 22 на сервере — доступ останется через airsh ssh. На хосте Proxy Service порт 22 также можно закрыть.