Какие программные роли нужны шлюзу OpenVPN без экрана
Небольшому шлюзу OpenVPN нужны продуманная служба туннеля и путь администрирования, а не каждая необязательная роль сервера. Отделите туннель от SSH и PKI.
Машине, выделенной под шлюз OpenVPN, нужна поддерживаемая установка сервера и программное обеспечение для задач, которые она действительно выполняет. Меню установщика с SSH, веб-хостингом и другими ролями сервера — не список требований OpenVPN. Развёртывание без экрана вполне разумно. Главное — разделить три задачи: перенос туннеля, администрирование хоста и выдачу учётных данных.
Вот порядок инвентаризации, которым я пользуюсь, с проверкой, закрывающей каждый шаг.
1. Дайте туннельной службе собственный пакет и профиль
Руководство по серверу OpenVPN для Ubuntu использует пакет openvpn дистрибутива с командной строкой и конфигурацией службы. Тот же пакет служит клиентом Linux, а роль выбирает конфигурация.
Это значит, что установка клиентского GUI не превращает хост в сервер, а его удаление не делает хост безэкранным. Запишите, какой профиль читает запущенный экземпляр, потому что второй файл конфигурации в том же каталоге может загрузиться незаметно, и демон в обоих случаях сообщает об успехе. Когда профилей два, какой победит, решает менеджер служб, и это решение принадлежит вашим заметкам, а не догадке.
2. Выберите путь администрирования до туннеля
OpenSSH поставляется отдельным пакетом openssh-server и работает как собственная служба. Он полезен, когда администратор должен попадать на машину по SSH, но OpenVPN не нуждается в SSH-сервере для обмена пакетами VPN. Локальная консоль или одобренный канал управления платформой — другой допустимый путь. Решите, на какой вы полагаетесь, прежде чем менять маршрутизацию или фильтрацию, потому что новый туннель никогда не должен быть единственным непроверенным способом починить себя.
3. Выдавайте учётные данные у одобренного владельца
Пример Ubuntu устанавливает easy-rsa рядом с OpenVPN, чтобы построить небольшой PKI, а это роль выдачи учётных данных, а не работающая туннельная служба. Если у организации уже есть одобренный процесс выдачи, используйте его вместо создания несвязанного CA только потому, что он есть в руководстве. Держите собственный закрытый ключ и сертификат шлюза отдельно от ключа подписи CA и осознанно выбирайте место для подписи и резервной копии. Копирование каждого файла PKI на каждый хост — не программное требование.
4. Оставьте настольные плагины настольным компьютерам
Редактор NetworkManager или плагин импорта имеет смысл на машине, которая использует этот рабочий процесс. Это не дополнительная функция сервера, нужная потому, что шлюз говорит по OpenVPN.
Выберите одного владельца подключения и не запускайте вторую, управляемую с рабочего стола копию того же профиля.
5. Примите шлюз настоящим клиентом
Меньше пакетов — ещё не готовый шлюз. Серверу по-прежнему нужны одобренный слушатель, идентичности, маршруты, пересылка там, где нужно, узкая политика брандмауэра и предполагаемый обратный путь. Запишите, где появляются его журналы и как применяются обновления, потому что эти два ответа определяют, как позже будет диагностироваться сбой.
Проект с выходом в интернет и проект с доступом к частной сети имеют разные требования к пересылке, поэтому решите, что именно вы строите, прежде чем что-то открывать. Поднимите одного одобренного клиента и проверьте целевой ресурс, а не индикатор туннеля. Затем перезапустите службу контролируемым образом и подтвердите путь автоматического запуска, потому что шлюз, который поднимается только пока кто-то смотрит, ещё не развёрнут.