Есть задача внедрить Teleport как замена PAM менеджера Delinea SecretServer
Буду использовать эту страницу как записную под эту задачу.
Сначала надо поставить систему (типа 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
На второй из списка Norton ругается:
https://cdn.teleport.dev/Teleport%20Connect%20Setup-16.3.0.exe и разберем все по шагам:
- Для работы с прокси 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-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 (Это видимо сам портал) и как его ставить есть тут:
А для подключения используется Teleport Connect
Для его настройки выполните действия в командной строке согласно указанным инструкциям.
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