Openvpn Логин и Пароль в Конфиге • Настройка яблока
Ключи и сертификаты созданы. Настало время раздать их пользователям, а серверные ключи скопировать в соответствующие каталоги на сервере. OpenVPN — открытая реализация одной из технологий VPN, предназначенная для организации защищенных виртуальных частных сетей между территориально удаленным локальными сетями, а также отдельными клиентами. Он просто скармливает username passwd ncsa_auth у точно также, как и сам Squid и если ncsa_auth отвечает OK , пускаем юзверя.
Openvpn Логин и Пароль в Конфиге
В качестве VPN я долгое время использовал PPP over SSH.
Для одного-двух человек все работало и работает просто отлично (да и настраивается все из подручных материалов за 10 минут). Но когда мне понадобилось VPN решение для 10+ человек, к тому же работающих на Linux/Win, то пришлось поискать что-то другое.
Порывшись в сети и поспрашивая знакомых, решил прикрутить OpenVPN.
Книги, рекомендованые на сайте OpenVPN содержат информацию в разбросанном виде, ровно как и FAQ/HOWTO, именно поэтому я и написал этот конспект.
Отдельно настраивается клиент и сервер. OpenVPN работает через TUN/TAP драйвер. В Win все устанавливается автоматом, для Linux нужно включить поддержку TUN/TAP в ядре (штатное ядро скорее всего уже собрано как надо):
Для старых дистрибутивов без udev/devfs нужно сделать файл устройства:
В исходниках есть все необходимые скрипты для работы с сертификатами, копируем все (у меня все скрипты живут в /usr/local/scripts):
Для большей безопасности лучше хранить все связанное с сертификатами на другой машине.
Генерим как минимум два клиентских ключа, ключ client0 нужен только для отзыва сертификата (об этом ниже), ключи client1, client2 etc — для реальных пользователей:
Для того, чтобы создать список отозванных сертификатов, отзовем client0, просто для того, чтобы создать непустой файл crl.pem (без файла или с нулевым файлом сервер вообще не будет никого авторизовать):
Много воды утекло с момента написания статьи и теперь (начиная с какой-то там версии) openvpn сервер проверяет дату до которой действителен список отозванных сертификатов. По умолчанию это один месяц со дня создания файла. Если список просрочен, то ни один клиент не сможет законнектиться. Будьте вниметельны!
Если вы не планируете раз в месяц обновлять список отозванных сертификатов, рекомендую в файл ./openssl.cnf внести правку:
На сервере создаем каталог для сертификатов и конфигурации
И из каталога /usr/local/scripts/easy-rsa/keys (машина, на которой делали сертификаты) копируем на сервер в /etc/openvpn следующие файлы:
Создаем файл конфигурации для сервера, /etc/openvpn/server.conf:
Иногда бывает нужно пробросить какие-то сетки в сторону клиента. Делается это через ccd примерно так:
/etc/openvpn/server.conf: и, например, для клиента, имеющего сертификат client1 пишем в /etc/openvpn/ccd Но этого недостаточно, сам openvpn теперь завернет сетку нужному клиенту, но система абсолютно ничего не знает куда пересылать пакеты адресованные этой сетке.
Решения вопроса два. Первый это поднять tun0 ДО запуска openvpn и завернуть сетку туда, в rc.local или где там оно у вас добавляем перед запуском openvpn:
Теперь система знает куда отсылать пакеты для 192.168.0.0/24.
Другой вариант использовать up.sh скрипт, добавляем в /etc/openvpn/server.conf:
Теперь после запуска openvpn система опять же будет знать про 192.168.0.0/24
Конспект по установке OpenVPN
Будет удобно если здесь же создадим разделяемый секрет для сервера и клиента. Если следовать мануалу OpenVPN, то разделяемый секрет правильно генерировать командой: Комплект сгенерированных файлов для соответствующего сервера копируем в отдельный каталог kits srv1 и создаём единственный файл конфигурации srv1. Благодаря тому, что клиентам в данном режиме не отсылается широковещательная информация, злоумышленник не сможет получить доступ к большому объёму данных.
Системные требования
Для работы по данному руководству нужен OpenVPN сервер на OpenWrt маршрутизаторе с запущенным OpenWrt 15.05 Chaos Calmer.
Если вы создаёте OpenVPN сервер (любого типа), вы должны создать сертификаты безопасности по нижеприведённым инструкциям. Если вы используете OpenVPN как клиент, требуемые сертификаты должны были быть предоставлены вам с вашими конфигурационными данными.
Вышеприведённые команды создадут сертификат сервера с именем my-server и сертификат клиента с именем my-client.
Путь сохранения сертификатов и ключей по умолчанию /root/pki.
Вы можете создать несколько клиентских сертификатов, запустив easyrsa build-client-full несколько раз и указав разные имена.
Вы можете создать новый набор сертификатов, запустив clean-all и те же команды снова.
OpenVPN — установка и настройка сервера
Конфигурация OpenVPN
OpenVPN может быть настроен как с помощью интерфейса UCI(характерного для OpenWrt), так и с помощью традиционных конфигурационных файлов OpenVPN (*.conf). OpenVPN будет автоматически подгружать все *.conf файлы из /etc/openvpn/.
Пользователи, знакомые с OpenVPN, вероятно, предпочитают использовать файлы конфигурации, и этот выбор, вероятно, будет более простым и удобным для тех кто планирует запускать несколько экземпляров OpenVPN.
Для простоты и последовательности, остальная часть этого руководства будет использовать интерфейс OpenWRT UCI для настройки OpenVPN, как описано ниже. Следует отметить, что раздел Routing Traffic section содержит инструкции для UCI интерфейса (Пользователям, использующим традиционные файлы конфигурации, придется подкорректировать эти команды под свою систему).
Традиционный (TUN) Сервер
Сервер в режиме моста (TAP)
Клиент
Конфигурация клиента очень сильно зависит от настроек сервера. Вам необходимо откорректировать их в соответствии с данными сервера, к которому вы подключаетесь.
Если ваш сервер требует проверки подлинности пароля:
Файл password.txt должен содержать в себе логин на первой строке и пароль на второй. Этот файл следует хранить в безопасном месте.
Вы можете также использовать опцию route.nopull. Это отключит автоматическую маршрутизацию. Имейте ввиду, что вам придётся самостоятельно прописывать все маршруты, к тому же сервер по-прежнему будет сам определять свойства TCP /IP для вашего TUN/TAP устройства:
На этом вы закончили базовую настройку. Запустите OpenVPN:
Содержание
Публикуя свою персональную информацию в открытом доступе на нашем сайте вы, даете согласие на обработку персональных данных и самостоятельно несете ответственность за содержание высказываний, мнений и предоставляемых данных. Мы никак не используем, не продаем и не передаем ваши данные третьим лицам.