ServerAdmin.ru
28.9K subscribers
305 photos
35 videos
13 files
2.63K links
Авторская информация о системном администрировании.

Информация о рекламе: @srv_admin_reklama_bot
Автор: @zeroxzed

Второй канал: @srv_admin_live
Сайт: serveradmin.ru
Download Telegram
Обновил свою очень старую и популярную статью по настройке openvpn. Обновление давно напрашивалось, потому что сама статья была написана еще в 2015 году. Были мелкие правки, и по существу она еще была актуальна, но по безопасности все сильно устарело в плане шифров.

Актуализировал шифры, добавил tls-crypt, немного скриптов для автоматизации. Ну и в целом все проверил и актуализировал в соответствии с новыми версиями софта. Добавил инфу про android. По сути статью написал с нуля заново.

Для тех, кто не очень знаком с openvpn, все может показаться переусложненным. В целом, любая настройка vpn не самая простая задача, так как затрагивает в первую очередь теорию по сетям. Новички постоянно путаются в маршрутах и не понимают, как все должно быть организовано, чтобы была связность. Плюс много нюансов с шифрованием, аутентификацией и т.д. Я сам немного плаваю в этой теме и приходится постоянно погружаться, чтобы вникнуть и разобраться, когда появляется необходимость.

Например, сейчас можно сертификаты генерировать не с помощью старого и известного алгоритма RSA, который все поддерживают, а используя алгоритм на эллиптических кривых (ECDSA). Openvpn сервер поддерживает шифры на базе этого алгоритма. Считается, что он требует меньше вычислительных ресурсов и в целом работает быстрее. Не уверен, что это сильно актуально в случае с openvpn. Я пока оставил все на rsa, чтобы не было проблем с поддержкой старых клиентов. Наверняка найдется что-нибудь, что еще не поддерживает этот алгоритм. У меня была идея провести тестирование производительности, используя разные шифры, но в итоге статья и так получилась очень большая, на нее было потрачено много времени. Решил отложить этот вопрос на потом.

Если хочется быстро запустить vpn на базе openvpn и просто потыкать, можете попробовать готовую сборку pritunl. Бесплатная, удобная, функциональная штука на базе openvpn с web панелью для управления. Но, как это обычно бывает, если хочется изучить и разобраться в софте, надо ставить с нуля и конфигурировать самостоятельно. Потом уже можно использовать готовые панели, когда будет понимание того, как все работает под капотом. Без этого трудно разбираться в проблемах, которые неизменно возникают с любым софтом.

https://serveradmin.ru/nastroyka-openvpn-na-centos/

#openvpn
​​На днях в ленте рекомендаций google (очень люблю эту ленту, работает качественно после обучения) увидел анонс любопытного проекта для организации vpn подключений - Amnezia - https://amnezia.org/
Суть его работы следующая:

1️⃣ Ставите себе на Windows или Mac приложение.
2️⃣ Запускаете его и указываете параметры доступа по ssh к любому VPS.
3️⃣ Приложение подключается, настраивает на VPS софт в Docker для запуска OpenVPN, а потом подключается к серверу.
4️⃣ Вы получаете доступ со своего компьютера в интернет через этот VPN.
5️⃣ У вас есть возможность выбрать в клиенте, заворачивать ли весь трафик в VPN или только выбранные сайты.

Тут сразу встают вопросы безопасности. Проект с открытым исходным кодом - https://github.com/amnezia-vpn/desktop-client Там же рядом репозиторий с openvpn сервером и всеми остальными компонентами. Можно посмотреть, как все это работает.

Я попробовал, завелось все с первого раза. Для корректной работы приложения необходимо открыть tcp порты 1194 и 6789 на внешнем фаерволе, если такой присутствует. На самом сервере приложение все сделает само. У меня отлично встало на бесплатную виртуалку в облаке oracle.

Amnezia все запускает в докере, к хосту ничего не монтирует, логи не пишет. При каждом подключении клиент сам генерирует новый ключ и сертификат для openvpn и с помощью них подключается. Если вы один раз настроили на сервере все необходимое, можете расшарить доступ к этому серверу другим клиентам Amnezia. Себе же или знакомым.

Проект интересный. Не видел и не слышал о подобных реализациях. Основная фишка, как я понял, в максимальной простоте. Но при этом вы имеет свой self-hosted vpn, а не чей-то сервис, который все ваши данные запишет, а потом сольет. Все что вам надо - арендовать vps и в личном кабинете посмотреть ip адрес сервера и root пароль. Больше вам ни с чем разбираться не придется. Приложение все делает само.

#vpn #openvpn
Всех с пятницей и окончанием рабочей недели. Хочу порекомендовать вам посмотреть на досуге любопытный канал, который я недавно нашел и посмотрел несколько видео оттуда. Например, вот это.

https://www.youtube.com/watch?v=avl5rVi-HNo (ссылка тут для тематического превью к заметке 😁)

Автор, судя по всему, как-то связан с IT, так как много роликов из этой сферы, но не только. Я пока ехал с выставки малоэтажного домостроения, посмотрел его ролик, как собирать электрощит для частного дома и вынес для себя несколько полезных советов. Например, повесить на отдельный автомат холодильники. У меня их будет два. Это удобно, когда надо будет обесточить дом во время длительного отъезда, а холодильники оставить включенными.

Видео там на разные тематики, но где-то половина айтишные. Мне понравилась подача материала и сам автор. Есть ролики на тему мотивации, распорядка дня и т.д. Мне близка озвученная позиция.

По нашей теме тоже есть, что посмотреть. Например, наглядно показано как настроить доступ к локальному nextcloud, расположенному дома без внешнего IP, соединив его по vpn с арендуемой виртуальной машиной. Далее через nginx проксируем запросы на этот nextcloud по vpn, настроив доменное имя и https. Для меня всё это не новость, так как я так же к домашним серверам прокидываю доступы, но если вы не умеете это делать, то в видео наглядно все показано и доступно объяснено.

К сожалению, роликов не очень много и я понимаю, почему. Они очень качественно сделаны и отлично проработаны. Времени записать подобный материал надо много. Но с помощью youtube его не получится монетизировать и как-то окупить. А на одном энтузиазме регулярно записывать такие видео не будешь.

Если вы знаете какие-то классные каналы IT тематики, прошу поделиться. Мне кажется, я в ютубе уже все, что можно, разыскал и посмотрел по нашей теме. Люблю что-то познавательное и развивающее в русле своей профессии смотреть, но в ютубе, к сожалению, эта тематика слабо представлена.

#видео
Технический пост, который уже давно нужно было сделать, но всё руки не доходили. На канале много содержательных заметок по различным темам. Иногда сам через поиск ищу то, о чём писал. Ниже набор наиболее популярных тэгов по которым можно найти что-то полезное (и не очень).

#remote - все, что касается удалённого управления компьютерами
#helpdesk - обзор helpdesk систем
#backup - софт для бэкапа и некоторые мои заметки по теме
#zabbix - всё, что касается системы мониторинга Zabbix
#мониторинг - в этот тэг иногда попадает Zabbix, но помимо него перечислено много различных систем мониторинга
#управление #ITSM - инструменты для управления инфраструктурой
#devops - в основном софт, который так или иначе связан с методологией devops
#kuber - небольшой цикл постов про работу с kubernetes
#chat - мои обзоры на популярные чат платформы, которые можно развернуть у себя
#бесплатно - в основном подборка всяких бесплатностей, немного бесплатных курсов
#сервис - сервисы, которые мне показались интересными и полезными
#security - заметки, так или иначе связанные с безопасностью
#webserver - всё, что касается веб серверов
#gateway - заметки на тему шлюзов
#mailserver - всё, что касается почтовых серверов
#elk - заметки по ELK Stack
#mikrotik - очень много заметок про Mikrotik
#proxmox - заметки о популярном гипервизоре Proxmox
#terminal - всё, что связано с работой в терминале
#bash - заметки с примерами полезных и не очень bash скриптов или каких-то команд. По просмотрам, комментариям, сохранениям самая популярная тематика канала.
#windows - всё, что касается системы Windows
#хостинг - немного информации и хостерах, в том числе о тех, кого использую сам
#vpn - заметки на тему VPN
#perfomance - анализ производительности сервера и профилирование нагрузки
#курсы - под этим тэгом заметки на тему курсов, которые я сам проходил, которые могу порекомендовать, а также некоторые бесплатные курсы
#игра - игры исключительно IT тематики, за редким исключением
#совет - мои советы на различные темы, в основном IT
#подборка - посты с компиляцией нескольких продуктов, объединённых одной тематикой
#отечественное - обзор софта из реестра отечественного ПО
#юмор - большое количество каких-то смешных вещей на тему IT, которые я скрупулезно выбирал, чтобы показать вам самое интересное. В самом начале есть шутки, которые придумывал сам, проводил конкурсы.
#мысли - мои рассуждения на различные темы, не только IT
#разное - этим тэгом маркирую то, что не подошло ни под какие другие, но при этом не хочется, чтобы материал терялся, так как я посчитал его полезным
#дети - информация на тему обучения и вовлечения в IT детей
#развитие_канала - серия постов на тему развития данного telegram канала

Остальные тэги публикую общим списком без комментариев, так как они про конкретный софт, понятный из названия тэга:
#docker #nginx #mysql #postgresql #gitlab #asterisk #openvpn #lxc #postfix #bitrix #икс #debian #hyperv #rsync #wordpress #zfs #grafana #iptables #prometheus #1с #waf #logs #netflow
​​На днях настраивал openvpn сервер по своей статье и решил поделиться информацией. Статья полностью актуальная, можно настраивать копипастом на любом клоне Centos. Помимо многих очевидных плюсов openvpn, о которых я так или иначе уже писал, хочу рассказать ещё об одном, за который люблю эту программу.

Openvpn без проблем запускает на одной и той же машине любое количество тоннелей с разными настройками. Просто кладёте рядом конфиг очередного сервера и запускаете через systemd новый экземпляр с этим конфигом.

У меня на одном сервере запросто живут следующие конфигурации openvpn:
 протокол udp с шифрованием для общих случаев, порт любой;
 протокол tcp для подключения микротиков, порт любой;
 протокол tcp и 443 порт для подключения из мест, где остальные порты закрыты.
и т.д.

Создаются одновременно любые конфигурации с разными протоколами, наличием или отсутствием сжатия, различными протоколами шифрования и т.д. SIP юзеров в один тоннель сажаем, админов в другой, обычных юзеров в третий, филиалы в четвёртый и т.д. У каждого тоннеля своя подсеть, под которую создаются правила firewall. Я стараюсь максимально сегментировать подключения. Так безопаснее и удобнее управлять.

Отмечу до кучи остальные особенности openvpn, за которые я её люблю:
Простой и удобный механизм передачи маршрутов клиенту. Все настраивается и управляется централизованно с сервера. Считаю это основным преимуществом openvpn.
 Есть клиенты под все популярные платформы и системы. Конфигурация передается в одном файле.
Популярный и проверенный временем продукт. Легко настраивается, легко решаются проблемы. Хорошее логирование на стороне клиента. Легко дебажить проблемы.

Для организации vpn всегда выберу openvpn, если он подходит под технические условия задачи. А вы на чём предпочитаете строить vpn сети?

#openvpn #vpn
​​Для веб интерфейса OpenVPN сервера есть отличное родное решение - Access Server. У него есть только один минус - это платный продукт. Есть бесплатная версия с суровым ограничением - не больше двух vpn подключений к серверу. Это позволяет его использовать только для одной цели - личный сервер для единоличного использования. Да и то, лично мне двух подключений не хватит.

Если для вас такое ограничение не критично - то смело пользуйтесь. Ничего лучше нет. Можно установить на свой сервер или арендованную VPS. У многих хостеров есть готовые шаблоны, чтобы сразу развернуть установленный продукт и начать использовать.

Основные возможности:
- управление через веб интерфейс, cli, api
- создание нового клиента и конфигурации для него в один клик
- ограничение доступа клиентов по ip
- возможность настройки протокола и порта, на котором будет работать openvpn сервер
- логи с информацией о подключениях клиентов
- различные способы аутентификации: ldap, radius, AD, pam

Побудило меня написать эту заметку информация о том, что для данного решения есть лекарство, которое позволяет снять ограничение бесплатной версии. Я настоятельно не рекомендую использовать подобное где-то в продакшене. В этом нет большой необходимости, так как есть аналоги, а рисков возникает много. А для личного использования можно и попробовать.

Сайт - https://openvpn.net/access-server/

#openvpn #vpn
​​Вчера в комментариях к заметке об OpenVPN был упомянут любопытный российский продукт Рутокен VPN. Меня он очень заинтересовал, так что решил его сразу же проверить. Это Open Source продукт на базе OpenVPN с веб панелью для управления.

В репозитории есть инструкция по установке. В ней указано, что сервис предназначен для работы в Ubuntu 20. Не знаю, с чем связана привязка к конкретной системе. Наверное поленились оформить поддержку остальных. Хотя бы в Docker контейнер всё это поместили бы, чтобы работало на любом Linux.

Взял Ubuntu 20.04 и установил на неё по инструкции. Там всё очень просто и быстро, не буду приводить шаги по установке. После перезагрузки зашёл по внешнему IP на веб интерфейс. Указал типовые настройки, необходимые для работы сервера OpenVPN и сгенерировал корневой сертификат.

Далее создал пользователей. Там идея такая, что пользователи могут сами заходить на веб интерфейс, генерировать себе конфигурацию, скачивать её вместе с клиентом. Сам клиент тоже Open Source, называется Рутокен VPN клиент. Он нестандартный, так как поддерживает работу с фирменным USB токеном Рутокен ЭЦП. Веб интерфейс довольно простой, как и сам функционал. Можно менять настройки сервера и управлять клиентами. Хотя у всех примерно так же, потому что это типовой функционал OpenVPN Server.

Дальше меня ждал сюрприз. Когда зашёл новым пользователем в веб интерфейс, заметил, что мне предлагают подготовить Рутокен ЭЦП для установки на него сертификата, либо сделать конфиг для смартфона. То есть идея в том, что этот продукт заточен под работу со своими родными токенами.

Тут я немного приуныл, потому что привязка к токенам резко сужает круг вероятных пользователей. Хотя если вам нужно именно это, то решение отличное. Токен сейчас стоит порядка 2500р. Неплохое решение для удалённых корпоративных пользователей, которых, кстати, можно импортировать из AD.

Потом прикинул, что формат конфигов openvpn одинаковый, что для смартфона, что для компьютера. Сделал конфигурацию для смарта, поставил на комп обычный OpenVPN Client и скормил ему этот конфиг. Без проблем подключился к серверу и вышел в интернет с его ip адресом. Отправлять весь трафик клиента через VPN - опция, которую можно указать через веб интерфейс.

В целом, нормальное решение. Для использование токенов вообще отличное, потому что работает всё из коробки и ничего придумывать не надо. Для всего остального не лучше и не хуже, чем все другие. Базовый функционал есть - управление пользователями, отслеживание активных соединений, просмотр логов. Показывается трафик и ip адрес, с которого подключился клиент.

Всё это бесплатно и от разработчика в РФ.

Сайт - https://www.rutoken.ru/products/all/rutoken-vpn/
Исходники - https://github.com/AktivCo/Rutoken-VPN-Community-Edition-Server

#отечественное #openvpn #vpn
Регулярно вижу сообщения на тему того, что OpenVPN работает медленно. Чаще всего это результат каких-то локальных проблем, а не распространённого мнения о том, что openvpn это медленный туннель. Всё познаётся в сравнении, а максимальная производительность туннеля зачастую больше всего зависит от сложности шифрования, которое используется.

В общем случае, при канале интернет в 100-200 мегабит в секунду вы не заметите проблем со скоростью в туннеле OpenVPN, если он будет поднят на базе PC, а не какого-то роутера с маломощным железом. По крайней мере я не сталкиваюсь с проблемами, когда на виртуальных машинах использую OpenVPN для объединения сетей через интернет.

Если вы видите, что ваше OpenVPN соединение работает значительно ниже исходного канала в интернет, то проверять стоит следующие вещи:
Сжатие. Попробуйте его отключить, если включено, и посмотрите, как это повлияет на скорость.
Если у вас используется TCP транспорт, поменяйте на UDP и проверьте скорость.
Попробуйте более простой шифр, например AES-128-CBC вместо AES-256-CBC. Для верности можно вообще что-то совсем простое поставить и проверить, действительно ли из-за шифра проседает скорость.
Посмотрите загрузку ядер процессора во время тестирования канала. Есть вероятность упереться в производительность одного ядра.

Далее идут более сложные вещи, в которые можно погрузиться, чтобы решить проблему с быстродействием:
Иногда могут возникать проблемы с буферами. Гуглите параметры sndbuf и rcvbuf. Пробуйте их менять или отключать управление со стороны OpenVPN. Тема большая, гуглится хорошо, всё найдёте. Не забудьте, что эти параметры можно не только поменять на сервере, но и передать их клиенту. Это суперспособность OpenVPN - передавать практически любые настройки клиенту.
Попробуйте поменять MTU с помощью параметра tun-mtu. Часто в этом может быть причина неадекватно низкой скорости туннеля.
Попробуйте поменять параметр длины очереди отправки txqueuelen. В общем случае дефолтное значение трогать не обязательно, но если ничего из вышеприведённого не помогло, можно попробовать изменить. Я видел ситуации, когда это помогало.

Само собой получился чек лист по исправлению проблем производительности OpenVPN туннеля. Можно забрать в закладки. Изначально хотел написать, как можно ускорить VPN туннели, в том числе и на базе OpenVPN, с помощью готового решения, но отложу это на завтра.

Почему я чаще всего использую OpenVPN - Подробный ответ.

#openvpn