Различия
Показаны различия между двумя версиями страницы.
| Следующая версия | Предыдущая версия | ||
| сервисы:пользовательский_vpn [2023/09/18 14:48] – создано admin | сервисы:пользовательский_vpn [2023/09/18 15:13] (текущий) – [Инструкция] admin | ||
|---|---|---|---|
| Строка 8: | Строка 8: | ||
| ==== Назначение ==== | ==== Назначение ==== | ||
| - | Задача, техническое задание к сервису, требования если есть, ну или в общих | + | Предоставить возможность пользователям подключаться удаленно к внутренним ресурсам компании с разграничением доступности ресурсов для каждого пользователя |
| - | ссылка | + | |
| ==== Описание ==== | ==== Описание ==== | ||
| - | Каким образом реализована поставленная | + | * OpenVPN сервер и скрипт выпуска клиентских конфигов. |
| - | Ссылки на использованные статьи при решении задачи | + | * IP адреса клиентам выдаются статические через CCD файлы, что позволяет четко идентифицировать каждого клиента по IP и управлять |
| + | * Учет свободных и занятых | ||
| + | Если при генерации нового конфига | ||
| ==== Доступ ==== | ==== Доступ ==== | ||
| - | Есть ли требования к ограничению доступа к сервису? | + | Доступ отзывается/активируется удалением/восстановлением CCD файлов: сервер настроен так, что на каждый конфиг должен присутствовать одноименный CCD файл, удаление CCD деактивирует |
| - | Пример: | + | Дополнительно индивидуальный сетевой доступ клиентов регулируется |
| - | Доступ по IP ограничен согласно [[сеть:сегментация | + | |
| - | Доступ на уровне пользователей | + | |
| - | Доступ | + | |
| - | Изменения вносить в [[#журнал изменений доступа]] в конце страницы | + | |
| + | {{drawio> | ||
| ==== Инструкция ==== | ==== Инструкция ==== | ||
| - | Ссылка на инструкцию для пользователей | + | <code bash> |
| - | Инструкция для отдела | + | / |
| - | * как предоставить доступ | + | </ |
| - | * как отозвать доступ | + | Создает новый конфиг для // |
| + | * taburetka_pupkin_ii.conf - для linux | ||
| + | * taburetka_pupkin_ii.ovpn - для windows клиента | ||
| + | |||
| + | Содержимое файлов | ||
| + | При создании смотрит какой первый адрес свободен в подсети местной площадки | ||
| + | * прописывает его в CCD для пользователя pupkin_ii | ||
| + | * прописывает в инвентори комментарий для занятого IP (название VPN конфига) - тем самым " | ||
| + | * если в инвентори есть пользователь pupkin_ii - привязывает к нему занятый IP | ||
| + | |||
| + | Созданный CCD находится в папке с конфигом и называется **ccd**, по умолчанию туда прописывается только назначение IP адреса клиенту, но содержание можно изменить по своему усмотрению. | ||
| + | |||
| + | === Активация доступа === | ||
| + | По умолчанию новый конфиг не активирован | ||
| + | <code bash> | ||
| + | / | ||
| + | </ | ||
| + | или | ||
| + | Конфигурация сервера такова, что | ||
| + | а скрипт делает линк / | ||
| + | |||
| + | === Отзыв | ||
| + | <code bash> | ||
| + | / | ||
| + | </ | ||
| + | или | ||
| + | а скрипт удаляет линк / | ||
| + | |||
| + | === Пересборка CCD === | ||
| + | Может понадобиться при появлении новых сетей | ||
| + | Удалить существующий ccd файл и | ||
| + | <code bash> | ||
| + | / | ||
| + | </ | ||
| + | или **_renew** в папке конфига | ||
| + | |||
| + | При этом закрепленный за пользователем IP сохранится | ||
| + | |||
| + | ==== Отказоустойчивость ==== | ||
| + | Не предусмотрена | ||
| + | |||
| + | ==== Резервное копирование ==== | ||
| + | RPO - достаточно ежедневной копии папки / | ||
| + | RTO - на усмотрение заказчика | ||
| + | |||
| + | ==== Мониторинг ==== | ||
| + | В zabbix-agent зарегистрирована метрика **ovpn.users.online** | ||
| + | /// | ||
| + | <code ini> | ||
| + | UserParameter=ovpn.users.online[*],/ | ||
| + | </ | ||
| + | |||
| + | Который | ||
| + | # | ||
| + | |||
| + | f=$1 | ||
| + | |||
| + | userlist=`cat $f | sed -n '/ | ||
| + | rtable=`cat $f | sed -n '/ | ||
| + | |||
| + | echo " | ||
| + | while read userline; do | ||
| + | username=`echo $userline|cut -d, -f1` | ||
| + | since=`echo $userline|cut -d, -f5` | ||
| + | utcsince=`date --date=" | ||
| + | localutc=$(( $utcsince + 18000 )) | ||
| + | localsince=`date --date=" | ||
| + | localip=`echo " | ||
| + | echo $username, | ||
| + | done | ||
| + | </ | ||
| + | ==== Логирование ==== | ||
| + | Логи расположены по пути | ||
| + | / | ||
| + | / | ||
| + | Хранить не менее 60 дней | ||
| ==== Отказоустойчивость ==== | ==== Отказоустойчивость ==== | ||