Найти тему

Строим свой PAM на основе Teleport

Есть задача внедрить Teleport как замена PAM менеджера Delinea SecretServer

Download Teleport: Secure and Easy Infrastructure Access | Teleport

Буду использовать эту страницу как записную под эту задачу.

Сначала надо поставить систему (типа Debian) и изменить конфиг SSH

nano /etc/ssh/sshd_config
systemctl restart sshd

Рекомендую поставить:

apt-get install curl
apt-get install mc

Далее в ней установить сам Teleport:

curl https://cdn.teleport.dev/install.sh | bash -s 16.4.7

Первично надо провести конфигурирование:

teleport configure

Создастся первичная настройка

После запуск самого Teleport:

teleport start

Есть хорошая статья, как его внедряли в Wildberries с аналогичным названием этой статьи: https://habr.com/ru/companies/wildberries/articles/829388/

Есть десктоп история https://goteleport.com/desktop-access/

Есть тоже статья на хабре 'Как подружить Windows, Lens и Teleport' , где человек прикручивал это к использованию одного сервиса https://habr.com/ru/articles/774858/

Из него мне понравилось что на Windows и используется Powershell, что я люблю:

Итак, качнем виндовый Teleport Connect

Teleport connet доступен по Windows
Teleport connet доступен по Windows

На второй из списка Norton ругается:

-2

https://cdn.teleport.dev/Teleport%20Connect%20Setup-16.3.0.exe и разберем все по шагам:

  1. Для работы с прокси Teleport вам понадобится утилита tsh. Та, которую вы, возможно, уже установили в WSL2 не пойдет, нужно будет установить утилиту для Windows. Инструкция доступна на официальном сайте, но я также продублирую ее здесь. Для установки tshв Windows выполните следующие команды в PowerShell (эти команды не будут работать в Windows cmd.exe): Установите уровень TLS на TLS 1.2 (требуется в Windows Server 2016 и более ранних версиях).
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

Получите ожидаемую контрольную сумму для пакета Windows tsh. Версия клиента teleport должна быть не ниже, чем установлена на сервере!

$Resp = Invoke-WebRequest https://get.gravitational.com/teleport-v16.3.0-windows-amd64-bin.zip.sha256

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

[System.Text.Encoding]::UTF8.getstring($Resp.Content)

<контрольная сумма> <имя файла>

Вывод команд выше
Вывод команд выше

Invoke-WebRequest -OutFile teleport-v16.3.0-windows-amd64-bin.zip -Uri https://cdn.teleport.dev/teleport-v16.3.0-windows-amd64-bin.zip
certUtil -hashfile teleport-v16.3.0-windows-amd64-bin.zip SHA256

SHA256 hash of teleport-v16.3.0-windows-amd64-bin.zip: <контрольная сумма> CertUtil: -hashfile command completed successfully.

Загрузка Teleport
Загрузка Teleport

После того, как вы убедились в совпадении контрольных сумм, вы можете извлечь архив. Исполняемый файл будет доступен по адресу teleport-v16.3.0-windows-amd64-bin\teleport\tsh.exe

Expand-Archive teleport-v-v16.3.0-windows-amd64-bin.zip
cd teleport-v16.3.0-windows-amd64-bin\teleport
.\tsh.exe version

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

После установки tsh перейдите на страницу вашего Teleport (Это видимо сам портал) и как его ставить есть тут:

Installing Teleport | Teleport Docs

А для подключения используется Teleport Connect
Для его настройки выполните действия в командной строке согласно указанным инструкциям.

-5

2. Дальше мне пока не нужно, но пусть будет, для примера. Переделать:

Пример настройки сервиса

В указанной директории должен лежать конфиг примерно такого содержания:

apiVersion: v1
clusters:
- cluster:
certificate-authority-data: ${CLUSTER_CA}
server: ${TELEPORT_ENDPOINT}
tls-server-name: ${TELEPORT_ENDPOINT}
name: ${CLUSTER_NAME}
contexts:
- context:
cluster: ${CLUSTER_NAME}
user: ${USER_NAME}
name: ${CONTEXT_NAME}
current-context: ${CONTEXT_NAME}
kind: Config
preferences: {}
users:
- name: ${USER_NAME}
user:
exec:
apiVersion: client.authentication.k8s.io/v1beta1
args:
- kube
- credentials
- --kube-cluster=${KUBE_CLUSTER}
- --teleport-cluster=${CLUSTER_NAME}
- --proxy=${TELEPORT_HOST}:${TELEPORT_PORT}
command: C:\Users\user\teleport-v12.4.23-windows-amd64-bin\teleport\tsh.exe
env: null
provideClusterInfo: false

Если у вас уже настроен доступ к ресурсам из вашего WSL2, можно скопировать конфиг оттуда, заменив только секцию command для вызова вашего tsh-клиента.

Теперь у вас должен быть доступ, где вы сможете просматривать, управлять и анализировать ресурсы кластера, а также работать над вашими приложениями. Не забывайте делать коннект к tsh после каждой перезагрузке системы. Думаю, это очевидно, но мало ли 😄

Обратите внимание, что для работы через прокси Teleport вам необходимо иметь соответствующие права доступа в Teleport