В предыдущей главе мы запустили сервер VSCode на удаленном инстансе.
Это победа. Но в текущем виде ваша установка уязвима или, по крайней мере, недостаточно безопасна. Трафик передается в открытом виде (HTTP), а порт 8080 доступен любому, кто сканирует наш IP-адрес.
Чтобы превратить этот прототип в полноценный рабочий инструмент, необходимо настроить Reverse Proxy.
Его задача проста: перехватывать защищенные соединения (HTTPS) на стандартном порту 443 и перенаправлять их локально на наш сервис.
1. Предварительные требования: заблокируйте сетевую часть
Прежде всего необходимо попросить code-server больше не слушать входящие соединения извне, а только те, что поступают с самой машины (от прокси).
Отредактируйте файл конфигурации: nano ~/.config/code-server/config.yaml
Измените строку «bind-addr» следующим образом:
bind-addr: 127.0.0.1:8080
Затем перезапустите сервис.
ubuntu@vscode-server:~$ sudo systemctl restart code-server@$USER |
Это даст гарантию, что vscode-server будет «слушать» только локально и не сможет быть напрямую доступен извне.
2. Реализуем обратный прокси
Здесь у вас есть два варианта:
- nginx — это стандартный выбор на протяжении многих лет;
- Caddy — более простой (но полноценный) и современный подход.
Для этой статьи мы выбрали Caddy в качестве примера, чтобы познакомиться с ним, если вы ещё не знакомы!
Caddy изначально умеет управлять продлением SSL-сертификатов. И всё это с OVHcloud!
Установка (Debian/Ubuntu)
Более подробную документацию для других систем или методов установки можно найти в официальной документации: https://caddyserver.com/docs/install.
ubuntu@vscode-server:~$ sudo apt install -y debian-keyring debian-archive-keyring apt-transport-httpsubuntu@vscode-server:~$ curl -1sLf ‘https://dl.cloudsmith.io/public/caddy/stable/gpg.key’| sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpgubuntu@vscode-server:~$ curl -1sLf ‘https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt’| sudo tee /etc/apt/sources.list.d/caddy-stable.listubuntu@vscode-server:~$ sudo apt update && sudo apt install caddy -y |
Конфигурация: отредактируйте файл /etc/caddy/Caddyfile (очистите его и замените на следующее):
Замените «dev.votre-domaine.fr» на ваше собственное доменное имя с выбранным поддоменом, указывающим на IP инстанса.
- Простая конфигурация только на HTTP (80)
dev.your-domain.uk { reverse_proxy 127.0.0.1:8080} |
- Рекомендуемая конфигурация на HTTPS (443), с использованием домена, размещённого у OVHcloud.
Для создания токенов API OVHcloud обратитесь к этой странице: https://eu.api.ovh.com/createToken/.
|
Более подробно об управлении SSL-сертификатами можно узнать в официальной документации Caddy.
Применение:
ubuntu@vscode-server:~$ sudo systemctl reload caddy |
Теперь, если вы выбрали рекомендуемую конфигурацию на HTTPS, ваше окружение защищено надёжным SSL-шифрованием.
Вы больше не рискуете, что ваш пароль будет перехвачен в общедоступном Wi-Fi, что является важным шагом вперёд к нашей цели.
3. Сеть и брандмауэр
Теперь, когда точка доступа уникальна через URL в HTTPS, остальные порты, кроме SSH, можно закрыть.
Реализуйте базовые правила в брандмауэре. В Ubuntu стандартным инструментом является UFW (Uncomplicated Firewall).
Начните с открытия портов для работающих сервисов.
ubuntu@vscode-server:~$ sudo ufw allow ssh |
Включите брандмауэр:
ubuntu@vscode-server:~$ sudo ufw enable |
Проверка применения правил.
ubuntu@vscode-server:~$ sudo ufw statusTo Action From |
Вы также можете добавить более строгие правила, чтобы явно отклонять всё, что не разрешено на вход, и оставить выход глобально разрешённым.
ubuntu@vscode-server:~$ sudo ufw default deny incoming |
Теперь, если кто-то попытается обратиться к IP на порту 8080, соединение будет просто отклонено.
Только доменное имя в HTTPS является легитимной точкой входа.
Этот полезный небольшой сервер разработки теперь больше напоминает крепость.
Но что произойдёт, если вы решите удалить этот инстанс, чтобы взять более мощный, или остановить его на неопределённый срок, так как ваш проект приостановлен?
Об этом вы узнаете в следующей части: как изолировать ваши данные и конфигурации на постоянном томе хранения, чтобы сделать вашу среду полностью заменяемой, а также как автоматизировать развёртывание этой среды разработки!
Комментарии
Категории
Случайное

Простое руководство по передаче файлов

Как сделать отступ в WordPress:

Освобождаем место на хостинге:

Полный контроль над AI-агентами Hermes
