Серверы Bastion · 9 min read · Sep 09, 2025

Как настроить сервер Bastion с Warpgate на Debian

Сервер Bastion — это компьютер/машина/сервер, который разработан и настроен специально для защиты от атак на компьютерные сети. Функциональность сервера Bastion аналогична прокси-серверу или балансировщику нагрузки для приложений. Он позволяет вам получать доступ к компьютерам или серверам, расположенным в DMZ-сетях.

Warpgate — это современное решение, которое можно использовать в качестве сервера Bastion. Он написан на Rust и предоставляет веб-интерфейс для администрирования. Вы можете установить его на определённом узле, а затем легко добавить целевые узлы или серверы, расположенные в вашей частной инфраструктуре. В настоящее время Warpgate может использоваться в качестве сервера Bastion для SSH, MySQL/MariaDB и HTTP.

В этом руководстве вы настроите сервер Bastion для SSH и MySQL/MariaDB на сервере Debian 11 с использованием Warpgate. Вы установите и настроите Warpgate на сервере Debian, затем добавите целевой сервер SSH и сервер MySQL в Warpgate. В конце вы убедитесь, что сервер Bastion Warpgate работает, подключившись к целевому хосту SSH и серверу MySQL.

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

Вам понадобятся следующие требования для завершения этого руководства:

  • Сервер Linux с установленным Debian 11 — в этом примере используется сервер с именем хоста ‘warpgate-debian‘ и IP-адресом ‘192.168.5.10‘.
  • Непривилегированный пользователь с правами администратора sudo/root.

Загрузка бинарного файла Warpgate

В этом разделе вы вручную загрузите бинарный файл Warpgate с GitHub, а затем переместите его в системный каталог ‘bin’. Другой способ установки Warpgate — это компиляция из исходного кода или использование версии Warpgate для Docker.

Для начала выполните следующую команду wget, чтобы загрузить бинарный файл Warpgate. Посетите официальную страницу загрузки GitHub для получения последней версии Warpgate.

wget -q https://github.com/warp-tech/warpgate/releases/download/v0.7.0/warpgate-v0.7.0-x86_64-linux

После загрузки переместите бинарный файл Warpgate в ‘/usr/local/bin/warpgate ‘. Затем сделайте его исполняемым, используя команду ‘chmod +x’.

mv warpgate-v0.7.0-x86_64-linux /usr/local/bin/warpgate  
sudo chmod +x /usr/local/bin/warpgate

Затем выполните следующую команду, чтобы найти бинарный файл ‘ warpgate ‘ на вашей системе.

which warpgate

Теперь проверьте версию Warpgate и перечислите доступные параметры команды ‘warpgate’.

warpgate version  
warpgate --help

Вы должны получить вывод, похожий на этот.

warpgate help

Настройка Warpgate как сервера Bastion

С бинарным файлом Warpgate, загруженным, теперь вы настроите и сконфигурируете вашу установку Warpgate. Это можно сделать интерактивно через команду ‘ warpgate ‘.

Выполните следующую команду, чтобы настроить Warpgate как сервер Bastion.

warpgate setup

После выполнения команды вам будет предложено ответить на следующие вопросы:

  • Где вы хотите хранить данные Warpgate? Оставьте по умолчанию в каталоге ‘/var/lib/warpgate’.
  • Конечная точка веб-интерфейса администрирования Warpgate? Оставьте по умолчанию, чтобы запустить Warpgate на вашем внутреннем/публичном IP-адресе с портом 8888.
  • Принимать SSH-соединения? Введите yes, чтобы включить Warpgate как сервер Bastion для SSH.
  • Конечная точка сервера Bastion SSH? Оставьте по умолчанию, чтобы запустить сервер Bastion SSH на внутреннем/публичном IP-адресе с портом 2222.
  • Принимать соединения MySQL? Введите yes, чтобы включить Warpgate как сервер Bastion для MySQL.
  • Конечная точка сервера Bastion MySQL? Оставьте по умолчанию с портом 33306.
  • Записывать пользовательские сессии? Введите yes, чтобы включить эту опцию.
  • Установите пароль для пользователя admin по умолчанию. Введите пароль для вашей установки Warpgate.

setup warpgate

После завершения процесса настройки вы должны получить вывод, похожий на этот. Вы также увидите файл конфигурации Warpgate ‘/etc/warpgate.yaml’ и каталог данных ‘/var/lib/warpgate’, созданные в процессе.

setup finished

Теперь выполните следующую команду, чтобы показать содержимое файла ‘/etc/warpgate.yaml’ и список доступных файлов и каталогов в ‘/var/lib/warpgate’.

cat /etc/warpgate.yaml  
ls /var/lib/warpgate

Ниже приведён вывод, который будет напечатан в вашем терминале.

warpgate config files and directories

Теперь выполните следующую команду, чтобы запустить Warpgate. Вы увидите вывод ‘ Warpgate is now running ‘ и открытые TCP-порты для SSH, MySQL и HTTP-соединений.

warpgate --config /etc/warpgate.yaml run

running warpgate

Откройте ваш веб-браузер и перейдите по IP-адресу Warpgate с портом 8888 (т.е: https://192.168.5.10:8888/). При успешном подключении вы должны увидеть страницу входа в Warpgate.

accessing warpgate

Вернитесь в терминал и нажмите Ctrl+c, чтобы завершить процесс Warpgate.

Запуск Warpgate как службы Systemd

В этом разделе вы настроите и сконфигурируете Warpgate для работы с Systemd. Это позволяет вам запускать Warpgate в фоновом режиме и проще управлять с помощью утилиты командной строки systemctl.

Создайте новый файл юнита systemd ‘/etc/systemd/system/warpgate.service’ с помощью следующей команды редактора nano.

sudo nano /etc/systemd/system/warpgate.service

Добавьте следующие конфигурации юнита systemd в файл.

[Unit]  
Description=Warpgate  
After=network.target  
StartLimitIntervalSec=0  
  
[Service]  
Type=notify  
Restart=always  
RestartSec=5  
ExecStart=/usr/local/bin/warpgate --config /etc/warpgate.yaml run  
  
[Install]  
WantedBy=multi-user.target

Сохраните файл и выйдите из редактора, когда закончите.

Выполните следующую команду, чтобы перезагрузить менеджер systemd и применить изменения.

sudo systemctl daemon-reload

Затем запустите и включите службу Warpgate, используя следующую утилиту командной строки systemctl.

sudo systemctl start warpgate  
sudo systemctl enable warpgate

wearpgate systemd

После этого проверьте статус службы Warpgate, чтобы убедиться, что служба работает.

sudo systemctl status warpgate

Вывод ниже подтверждает, что служба Warpgate работает.

warpgate service status

Если вы проверите список открытых портов на вашем сервере, вы увидите несколько портов 2222, 8888 и 33306 в состоянии LISTEN. Выполните команду ss ниже.

ss -tulpn

Вывод:

check open ports

Настройка UFW

В этом разделе вы установите, запустите и включите UFW на вашем сервере Debian. Вы также откроете порты, используемые Warpgate.

Установите UFW, выполнив следующую команду apt.

sudo apt install ufw

Когда будет предложено, введите y для подтверждения и нажмите ENTER.

install ufw

После установки UFW выполните следующую команду, чтобы открыть службу OpenSSH и порты Warpgate 2222, 8888 и 33306.

sudo ufw allow OpenSSH  
sudo ufw allow 8888/tcp  
sudo ufw allow 2222/tcp  
sudo ufw allow 33306/tcp

Затем запустите и включите UFW, используя команду ниже. Введите y, когда будет предложено, и нажмите ENTER, чтобы продолжить.

sudo ufw enable

После выполнения следующей команды UFW должен быть запущен и включен, что означает, что UFW будет автоматически запускаться при старте системы.

setup ufw

Теперь введите следующую команду, чтобы проверить статус UFW. Вы должны увидеть, что UFW имеет ‘Статус: Активен’ с добавленной службой OpenSSH, портами 2222, 8888, и 33306.

sudo ufw status

Вывод:

verify ufw

Вход в Warpgate

С работающим Warpgate как службой systemd и запущенным UFW, теперь вы получите доступ к установке Warpgate.

Откройте ваш веб-браузер и перейдите по IP-адресу сервера, за которым следует порт 8888 (т.е: https://192.168.5.20:8888 /), и вы увидите страницу входа в Warpgate.

Введите пользователя по умолчанию ‘admin‘ и пароль, который вы настроили. Затем нажмите Войти, чтобы продолжить.

Warpgate login as admin

После входа как ‘admin‘, нажмите на меню ‘Управление Warpgate‘.

manage warpgate

Теперь вы должны увидеть панель управления пользователем Warpgate.

warpgate dashboard

На этом этапе вы завершили установку Warpgate как сервера Bastion для SSH и MySQL на сервере Debian. Теперь вы готовы добавить ваш сервер и сервер MySQL в Warpgate.

Добавление целевого сервера SSH

В этом разделе вы добавите сервер Linux с IP-адресом 192.168.5.25 и именем хоста ‘node1‘ к серверу Bastion Warpgate. Для этого вам нужно добавить открытый ключ SSH Warpgate на ваш целевой сервер.

На панели управления Warpgate нажмите меню SSH, и вы увидите открытые и закрытые ключи SSH Warpgate, которые будут использоваться для входа на целевой сервер.

Скопируйте открытый ключ SSH в вашу заметку.

list ssh keys

Теперь войдите на целевой сервер, создайте новый каталог ‘~/.ssh‘, затем создайте файл ‘authorized_keys‘ с помощью следующей команды редактора nano.

mkdir -p ~/.ssh/  
nano ~/.ssh/authorized_keys

Добавьте открытый ключ SSH Warpgate в него.

add SSH key to node

Затем перейдите на панель управления Warpgate и нажмите меню Конфигурация, затем нажмите ‘Добавить цель‘.

add target server

Введите имя хоста целевого сервера, выберите тип SSH, затем нажмите Создать цель.

create target

Измените IP-адрес целевого сервера и пользователя, который будет использоваться для входа на сервер. Что касается аутентификации, выберите ‘Закрытые ключи Warpgate‘. Затем вы должны включить роль ‘warpgate:admin’ в разделе ‘Разрешить доступ для ролей‘.

Когда закончите, нажмите ‘Обновить конфигурации‘.

details target ssh

Таким образом, целевой сервер ‘node1‘ добавлен в Warpgate. Теперь вы можете подключиться к ‘node1‘ через сервер Bastion Warpgate.

Выполните следующую команду ssh, чтобы подключиться к ‘node1‘ через сервер Bastion Warpgate. В этой команде используется формат ‘role: server-name’ с IP-адресом сервера Bastion 192.168.5.10 и портом 2222.

ssh 'admin:[email protected]' -p 2222

Введите yes, чтобы подтвердить и добавить отпечаток SSH целевого сервера. Когда будет предложено ввести пароль, введите пароль пользователя ‘ admin ‘ сервера Bastion.

Когда соединение будет успешным, вы должны получить вывод, такой как ‘Warpgate connected‘. И вы будете залогинены на целевом сервере ‘node1‘.

Введите следующую команду, чтобы проверить текущий сервер, на который вы вошли. Вы увидите, что вы вошли на сервер ‘node1‘ через сервер Bastion SSH Warpgate.

id  
hostname

Вывод:

connect to target server via Warpgate bastion Server

Если вы проверите на панели веб-администрирования Warpgate, вы должны увидеть отпечаток вашего целевого сервера SSH.

list known hosts

Добавление целевого сервера MySQL/MariaDB

В этом разделе вы добавите сервер MariaDB к серверу Bastion Warpgate. Перед этим вы настроите сервер MariaDB для работы на частном/внутреннем IP-адресе, а также создадите нового пользователя MariaDB для удалённых соединений.

Войдите на сервер MariaDB и откройте файл конфигурации ‘/etc/mysql/mariadb.conf.d/50-server.cnf’ с помощью следующей команды редактора nano.

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

Раскомментируйте параметр ‘bind-address‘ и измените значение на ваш внутренний IP-адрес. В этом примере сервер MariaDB будет работать на частном IP-адресе ‘192.168.5.25‘.

bind-address            = 192.168.5.25

Сохраните файл, затем выйдите из редактора.

Введите следующую команду, чтобы перезапустить службу MariaDB и применить изменения. После перезапуска MariaDB должен работать на IP-адресе ‘192.168.5.25’, а не на localhost по умолчанию.

sudo systemctl restart mariadb

Затем войдите в оболочку MariaDB как пользователь root, чтобы настроить и создать нового пользователя.

sudo mariadb -u root -p

Введите следующие запросы, чтобы создать нового пользователя MariaDB ‘appuser’ и разрешить пользователю доступ ко всем базам данных на сервере MariaDB. Также обязательно измените пароль в следующем запросе.

CREATE USER 'appuser'@'%' IDENTIFIED BY 'p4@@w0rd';  
GRANT ALL PRIVILEGES ON *.* TO 'appuser'@'%' IDENTIFIED BY 'p4@@w0rd';  
FLUSH PRIVILEGES;  
EXIT;

Затем вы установите пакет клиента MariaDB на машине, которая будет использоваться для подключения к серверу MariaDB.

create mariadb server

Установите пакет ‘mariadb-client‘ с помощью следующей команды. Введите y, когда будет предложено, и нажмите ENTER, чтобы продолжить.

sudo apt install mariadb-client

install mariadb client

Теперь перейдите на сервер Warpgate, измените рабочий каталог на ‘/var/lib/warpgate‘, затем скопируйте сертификаты TLS Warpgate на вашу клиентскую машину MariaDB.

cd /var/lib/warpgate/  
sudo scp tls.certificate.pem tls.key.pem [email protected]:/etc/mysql/

copy tls certificates to mariadb client

Теперь вернитесь на клиентскую машину и откройте конфигурацию клиента MariaDB ‘/etc/mysql/mariadb.conf.d/50-client.cnf’ с помощью следующей команды редактора nano.

sudo nano /etc/mysql/mariadb.conf.d/50-client.cnf

Добавьте следующие конфигурации в раздел ‘[client]‘, чтобы включить безопасное клиентское соединение.

[client]  
....  
ssl-cert=/etc/mysql/tls.certificate.pem  
ssl-key=/etc/mysql/tls.key.pem

Сохраните файл, затем выйдите из редактора, когда закончите.

Теперь на панели управления Warpgate нажмите меню ‘Конфигурация’, затем нажмите ‘Добавить цель‘.

add target warpgate

Введите имя сервера MariaDB, выберите тип ‘MySQL‘, затем нажмите Создать цель.

add target mysql server

Измените детали хоста, пользователя и пароля на данные вашего пользователя MariaDB. Обязательно отключите опцию ‘Проверить сертификат‘, если у вас есть сертификаты TLS по умолчанию, затем включите роль ‘warpgate:admin‘ в разделе ‘Разрешить доступ для ролей‘.

Нажмите ‘Обновить конфигурацию‘, когда закончите.

setup target server

С добавленным сервером MariaDB в Warpgate вы теперь можете получить доступ к серверу MariaDB через сервер Bastion MySQL Warpgate.

С клиентской машины MariaDB введите следующую команду, чтобы подключиться к серверу MariaDB. Когда будет предложено, введите пароль пользователя администратора Warpgate.

mysql -u 'admin#mysql1' --host '192.168.5.10' --port 33306 --ssl -p

При подключении вы должны увидеть приглашение оболочки MariaDB, такое как ‘MySQL [(dbname)]>‘. Введите следующие запросы, чтобы убедиться, что пользователь, которого вы используете, доступен на сервере MariaDB.

SELECT host, user, plugin, authentication_string from mysql.user;  
SHOW GRANTS FOR appuser@'%';

Вывод:

connect to MySQL server via Warpgate Bastion Server

Таким образом, вы теперь подключены к серверу MariaDB через сервер Bastion MySQL/MariaDB Warpgate.

Заключение

В этом руководстве вы установили и настроили сервер Bastion Warpgate на Debian 11. Вы настроили Warpgate для работы с systemd и брандмауэром UFW. Кроме того, вы настроили Warpgate как сервер Bastion для SSH и MySQL/MariaDB, добавили целевой сервер SSH и также добавили целевой сервер MySQL/MariaDB.

С этим в виду, вы теперь можете настраивать новых пользователей, роли и добавлять новые соединения к вашему серверу Bastion Warpgate. И вы можете централизовать пользовательские соединения и доступы через один централизованный сервер Bastion. Чтобы узнать подробности о Warpgate, посетите официальную документацию Warpgate.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.