Octelium: современная самостоятельная альтернатива Teleport, ngrok, Tailscale и VPN

Полный обзор Octelium - современной, самохостинговой FOSS-альтернативы популярным решениям для удаленного доступа. Узнайте, как настроить Octelium для безопасного доступа к вашим домашним серверам.

Не указано

Введение в Octelium

Octelium v0.24 — это современная, самохостинговая, свободная и открытая система, объединяющая функции нескольких популярных инструментов для удаленного доступа.

# Просто вывод информации о Octelium
echo 'Octelium v0.24 - современная система для удаленного доступа'

Проверка предварительных требований

Перед установкой убедитесь, что ваша система соответствует минимальным требованиям: Linux (Ubuntu 20.04+ или CentOS 8+), процессор x86_64 или ARM64, минимум 512 МБ оперативной памяти, 1 ГБ дискового пространства, доступ к порту 443 и доменному имени или публичному IP.

# Проверка операционной системы
lsb_release -a
# или
cat /etc/os-release

# Проверка архитектуры
uname -m

# Проверка доступной памяти
free -h

Установка через Docker

Установка через Docker является рекомендуемым способом.

# Установка Docker, если он не установлен
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

# Добавление пользователя в группу docker
sudo usermod -aG docker $USER

# Скачивание Docker Compose файла
curl -sSL https://github.com/octelium/octelium/releases/download/v0.24/docker-compose.yml -o docker-compose.yml

# Создание директорий
mkdir -p ~/octelium/config
mkdir -p ~/octelium/logs

# Запуск Octelium
docker-compose up -d

Первоначальная настройка

После установки выполните первичную конфигурацию Octelium.

# Редактирование конфигурационного файла
docker exec -it octelium octelium config edit

# или для бинарной установки
sudo nano /opt/octelium/config/config.yaml

# Основные параметры конфигурации:
server:
  host: 0.0.0.0
  port: 8443
  ssl:
    enabled: true
    cert_file: /path/to/cert.pem
    key_file: /path/to/key.pem

Настройка SSL/TLS

Для production рекомендуется использовать сертификаты от доверенного CA.

# Установка Certbot
sudo apt install certbot

# Получение сертификата
sudo certbot certonly --standalone -d your-domain.com

# Настройка Octelium для использования Let's Encrypt
sudo sed -i 's|cert_file: .*|cert_file: /etc/letsencrypt/live/your-domain.com/fullchain.pem|' /etc/octelium/config.yaml
sudo sed -i 's|key_file: .*|key_file: /etc/letsencrypt/live/your-domain.com/privkey.pem|' /etc/octelium/config.yaml

Установка агента

Для предоставления доступа к удаленным ресурсам установите Octelium Agent на целевых машинах.

# Определение архитектуры
ARCH=$(uname -m)
if [ "$ARCH" = "x86_64" ]; then
    ARCH="amd64"
elif [ "$ARCH" = "aarch64" ]; then
    ARCH="arm64"
fi

# Скачивание агента
curl -sSL https://github.com/octelium/octelium/releases/download/v0.24/octelium-agent-linux-$ARCH -o /tmp/octelium-agent
chmod +x /tmp/octelium-agent

# Создание пользователя и директорий
sudo useradd -r -s /bin/false -d /opt/octelium-agent octelium-agent
sudo mkdir -p /opt/octelium-agent/bin /opt/octelium-agent/config /opt/octelium-agent/logs
sudo mv /tmp/octelium-agent /opt/octelium-agent/bin/
sudo chown -R octelium-agent:octelium-agent /opt/octelium-agent

Генерация токена и настройка агента

Сгенерируйте токен для регистрации агента и настройте его.

# Генерация токена через CLI
octelium auth token create --user admin --scope "agent:*" --expires 24h

# Конфигурация агента
sudo tee /opt/octelium-agent/config/config.yaml > /dev/null <<EOF
server:
  address: https://your-octelium-server:8443

token: YOUR_AGENT_TOKEN

logging:
  level: info
  file: /opt/octelium-agent/logs/agent.log

resources:
  - name: "web-server"
    type: tcp
    host: 192.168.1.100
    port: 80
EOF

Установка клиента и подключение

Установите Octelium Client на машине пользователя и подключитесь к ресурсам.

# Установка клиента для Linux
curl -sSL https://github.com/octelium/octelium/releases/download/v0.24/octelium-client-linux-amd64 -o /usr/local/bin/octelium
chmod +x /usr/local/bin/octelium

# Аутентификация
octelium auth login --username admin --password your_password

# Подключение к ресурсу
octelium tcp connect web-server