Openvpn log file linux

Настройка OpenVPN клиента

В данной инструкции подробно описан процесс настройки клиента OpenVPN на примере операционных систем Windows и Linux. Также, с ее помощью можно настроить скиента на Android.

Установка

Windows

Заходим на официальную страницу загрузки openvpn и скачиваем клиента для нужной Windows:

Запускаем скачанный файл и устанавливаем программу, нажимая «Далее».

Linux CentOS

Устанавливаем репозиторий EPEL:

yum install epel-release

yum install openvpn

Linux Ubuntu

apt-get install openvpn

Android

Установка выполняется из Google Play. Набираем в поиске OpenVPN Connect — нажимаем установить и принимаем условия.

Настройка

После установки программы конфигурационный файл не создается автоматически и его нужно создать вручную.

В системах Windows создаем файл config.ovpn в папке %programfiles%\OpenVPN\config.

* имя файла может быть любым, расширение должно быть .ovpn.

Для создания конфигурационного файла в Linux выполняем команду:

* чтобы служба openvpn автоматически выполняла соединение, необходимо, чтобы конфигурационный файл назывался client.conf.

Пример конфигурационного файла

client
dev tun
proto udp
remote 192.168.0.15 443
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
dh dh2048.pem
tls-client
tls-auth ta.key 1
float
keepalive 10 120
comp-lzo
verb 0

Параметры конфигурационного файла

Параметр Значения Описание
client Строка говорит о том, что конфигурационный файл описывает клиентское подключение (программа сама устанавливает соединение, а не ждет, как сервер).
dev tap или tun Выбор виртуального сетевого драйвера. TUN — сетевой уровень модели OSI, оперирует IP-пакетами. TAP — эмулирует Ethernet устройство и работает на канальном уровне модели OSI, оперируя кадрами Ethernet. Настраивая OpenVPN клиента, в большинстве случаев, необходимо выбирать tun. TAP необходимо использовать для работы определенных сервисов, например DHCP.
dev-node любая строка Параметр используется в системах Windows в случаях, если имеется несколько сетевых интерфейсов. Значение этого параметра должно содержать название сетевого подключения, через который должен работать OpenVPN.
proto udp или tcp Указывает, какой протокол использовать для передачи данных. В большинстве случаев, лучше использовать UDP, так как данный протокол создает меньше нагрузки на сеть.
remote VPN-сервер и порт Задает сервер, к которому должен подключаться клиент, а также сетевой порт (по умолчанию 1194), на котором OpenVPN принимает запросы. Можно указать несколько строк.
remote-random Если указано несколько строк remote, данный параметр говорит, что необходимо подключаться к удаленным серверам в случайном порядке.
resolv-retry количество секунд или infinite Используется в тех случаях, когда в качестве сервера указано доменное имя. Параметр задает время в секундах для повторного переподключения, если не удалось узнать имя сервера. infinite — держать связь с сервером постоянно.
nobind Клиент использует динамический порт для подключения.
user учетная запись Задает определенного пользователя для работы клиента (только для UNIX-систем).
group группа Задает определенную группу для работы клиента (только для UNIX-систем).
persist-key Не перечитывает ключи при перезагрузке сервиса OpenVPN.
persist-tun Не перечитывает параметры туннеля при перезагрузке сервиса OpenVPN.
http-proxy сервер прокси и порт Использовать прокси-сервер для подключения.
http-proxy-retry Переподключаться к прокси-серверу, если связь была разорвана.
http-proxy-timeout количество секунд Время, через которое выполнять попытки переподключения к прокси-серверу.
mute-replay-warnings Параметр стоит задавать при использовании беспроводного соединения. Он отключит дублирование предупреждений пакетов.
ca пут к сертификату Корневой сертификат удостоверяющего центра. Генерируем на сервере.
cert пут к сертификату Открытый ключ клиента. Генерируем на сервере.
key пут к сертификату Закрытый ключ клиента. Генерируем на сервере.
dh пут к сертификату Ключ с алгоритмом Diffie-Hellman (Диффи-Хеллмана).
remote-cert-tls сервер Исключает возможность mitm атаки, включая верификацию сертификата сервера.
tls-client Указание на то, что это клиент TLS.
tls-auth ta.key 1 Дополнительный уровень аутентификации посредством ключа TLS.
float Удаленный хост может менять IP-адрес в процессе соединения, при этом последнее не будет разорвано.
keepalive секунд1 секунд2 Пинговать каждые секунд1 сервер и если в течение секунд2 не будут получены ответные пакеты, перезапустить подключение.
cipher алгоритм Указывает алгоритм шифрования. Примеры: AES-256-CBC, AES-128-CBC, BF-CBC, DES-EDE3-CBC.
comp-lzo Использовать сжатие.
verb число от 0 до 9 Уровень детализации лога. 0 отключает отладочную информацию.
mute число Указывает сколько лог-сообщений может отображаться для каждой категории события.
auth-user-pass ничего или путь к файлу Говорит клиенту, что необходима аутентификация. Если не указан путь к файлу, клиент выкинет окно для авторизации, иначе прочитает данные из файла.
ipchange команда или путь к скрипту Выполняет команду при смене IP.
connect-retry секунд Переподключиться к серверу через указанное количество секунд, если соединение было разорвано.
connect-retry-max число Сколько раз повторять соединение, если оно было разорвано.
shaper байт Задает максимальную скорость передачи данных для исходящего трафика.
tun-mtu число Задает MTU.
status путь к файлу Путь к фалу хранения статуса.
log путь к файлу Путь к лог-файлу.
askpass путь к файлу Путь к файлу с паролем для приватного ключа (private key password).

Наиболее полный и актуальный список параметров для OpenVPN можно получить командой openvpn —help (в Linux и Windows).

Сертификаты

Клиентские сертификаты генерируются на стороне сервера. Процедура следующая.

Источник

Установка OpenVPN на Ubuntu 18.04 LTS. Часть 2 из 12

Файл конфигурации сервера

По умолчанию в директории /etc/openvpn/ конфигурационных файлов нет, но есть две директории для них — server и client . Файл конфигурации нужно создать самостоятельно и поместить в директорию server (для сервера) или client (для клиента). Образец файла конфигурации OpenVPN можно взять из документации:

Приведем файл конфигурации к следующему виду:

Директива server является макрокомандой и имеет синтаксис:

Она будет преобразована по следующему алгортиму:

Директива route-gateway используется совместно с директивой route и задает шлюз по умолчанию для VPN-сети. Если параметр gateway директивы route не задан — он будет получен из директивы route-gateway .

Директива topology приобретает смысл совместно с dev tun и предусматривает три варианта: net30 , p2p , subnet .

Универсальным решением для VPN-сервера является net30 — это значение по умолчанию. Сервер будет работать со всеми версиями Windows, Linux, Mikrotik. Недостатком топологии является избыточное расходование адресного пространства — четыре ip-адреса на каждого VPN-клиента. Топология net30 фактически «устарела» и сохраняется исключительно для поддержки старых Windows клиентов.

Значение subnet рекомендуется для VPN-сервера, клиентами которого являются Linux и Windows 8.2 и выше. Устройство tun настроено на использование ip-адреса и маски сети как «традиционная» широковещательная сеть. Сетевой и широковещательный ip-адреса не должны использоваться — хотя tun не имеет понятия о широковещании, клиенты Windows не смогут правильно использовать эти адреса. Все остальные ip-адреса в сети доступны для использования.

Значение p2p не может использоваться в системах Windows и не подходит, если сервер или любой клиент может быть Windows. В этой топологии все узлы настроены как настоящие двухточечные ссылки — каждый ip-адрес может использоваться, включая первый и последний. Другими словами, в сети 10.8.0.0/24 в топологии p2p можно использовать все 256 ip-адресов. Но Windows считает первый и последний ip-адреса сетевым и широковещательным адресами.

Директивы persist-key и persist-tun обеспечивают правильную работу после понижения прав, т.е. при использовании nobody и nogroup .

Директива keepalive является макрокомандой и будет преобразована в директивы ping и ping-restart

Кроме того, эта макрокоманда отправит две директивы на клиент (так что в файле конфигурации клиента они не нужны)

Все готово, можно запускать VPN-сервер (подробности здесь):

Здесь config — это имя файла конфигурации в директории server , но без расширения .conf . Чтобы VPN-сервер запускался при загрузке системы:

Смотрим статус запущенной службы:

Смотрим наличие сетевого интерфейса tun0 :

Файл конфигурации клиента

Первым делом нужно установить пакет OpenVPN:

Создаем директорию keys и копируем ключи:

Копируем образец файла конфигурации клиента:

Приведем файл конфигурации к следующему виду:

Все готово, можно запускать VPN-клиент (подробности здесь):

Здесь config — это имя файла конфигурации в директории client , но без расширения .conf . Чтобы VPN-клиент запускался при загрузке системы:

Смотрим статус запущенной службы:

Смотрим наличие сетевого интерфейса tun0 :

Пингуем сервер по адресу 10.8.0.1 :

Дополнительные настройки сервера

1 Если нужно использовать VPN-туннель для маршрутизации всего трафика клиентов, добавляем в файл конфигурации еще три строки.

Теперь клиенты будут использовать туннель VPN в качестве шлюза по умолчанию и DNS-сервера 208.67.222.222 и 208.67.220.220 . В этом случае надо внести изменения и в файл конфигурации клиента. Какие изменения — зависит от того, используется systemd-resolved или нет.

При подключении к серверу сетевые настройки клиента будут изменяться, а при отключении от сервера — настройки будут возвращаться в нормальное состояние, как было до подключения. Скрипт update-resolv-conf доступен сразу после установки пакета openvpn , чтобы получить скрипт update-systemd-resolved — надо установить пакет openvpn-systemd-resolved .

2 По умолчанию сервер OpenVPN использует порт 1194 и протокол UDP — но это всегда можно изменить.

При переключении протокола на TCP, нужно изменить значение директивы explicit-exit-notify с 1 на 0, так как эта директива используется только для UDP. Иначе, при использовании TCP, эта директива вызовет ошибки при запуске службы.

Кроме того, при изменении протокола и порта сервера в файле конфигурации сервера, надо внести изменения в файл конфигурации клиента — указать тот же порт и протокол.

3 По умолчанию клиенты сети VPN могут «общаться» только с сервером OpenVPN. Для того, чтобы клиенты могли взаимодействовать друг с другом через сеть VPN необходимо в конфигурационном файле раскомментировать соответствующую директиву:

4 Сервер динамически выдает клиентам свободные ip-адреса из заданного диапазона. Наличие директивы ifconfig-pool-persist указывает, что перед тем как выдать клиенту свободный адрес из пула, сервер должен свериться с файлом ipp.txt , в котором прописывается привязка Common Name сертификата к ip-адресу.

5 Директива client-config-dir предписывает читать файлы конфигураций клиентов в указанной директории. Имена файлов конфигурации в этой директории совпадают с Common Name сертификатов клиентов. Директивы из каждого файла конфигурации применяются только для конкретного клиента.

6 Директива ccd-exclusive — VPN-клиент, имеющий сертификат с Common Name «sergey-ivanov», может подключиться к VPN-серверу, только если существует файл с именем sergey-ivanov в директории client-config-dir . Этот файл может быть даже пустым — но он должен существовать.

7 Директива duplicate-cn разрешает одновременное подключение нескольких клиентов с одинаковым Common Name. В отсутствие этой директивы сервер отключит экземпляр клиента при подключении нового клиента с таким же Common Name.

Чтобы избежать ошибки Could not determine IPv4/IPv6 protocol. Using AF_INET при запуске VPN-сервера, нужно явно указать версию протокола:

Источник

Учёт трафика по каждому подключенному юзеру openvpn

Вопрос по OpenVPN: как вести учёт трафика по каждому подключенному юзеру openvpn (отдельному сертификату)❓

Желательно с помощью функционала самого openvpn, а не внешнего софта (как проверить сколько утилизировал трафика конкретный юзер за конкретную дату?).

status.log считает трафик только онлайн текущей сессии, а openvpnlog.log считает подключения за всё время, но не трафик.

или надо что-то уровня isp?

openvpn-monitor — это имелось ввиду? https://github.com/furlongm/openvpn-monitor Могу ли я с помощью monitora проверить потребленный трафик любого юзера openvpn за любую дату?

Openvpn сам не умеет такую статистику вести?

Актуально, есть ли на портале гуру openvpn?

дежавю просто. Ну вот не верю я, что это разные люди при получении одинаковых ответов задают одинаковые вопросы на форумах.

Могу ли я с помощью monitora проверить потребленный трафик любого юзера openvpn за любую дату?

Со времени задания этого вопроса на опеннете (или где еще?) уже можно было попробовать. Ну, это если действительно нужно.

Если не подходит, то можно парсить лог, складывать его в базу и смотреть, допустим, через графану. Примеры подобного тоже есть на гитхабе.

Openvpn сам не умеет такую статистику вести?

а ему оно надо? Вон у вас запросы смотреть что угодно за любую дату. Тут и веб сервер понадобится, и база данных — зачем это в vpn сервере?

А зачем openvpn умеет вести логи разных видов? Вот затем.

Если openvpn умеет вести в приципе логи, то почему (я не уверен, думаю умеет и персональную статистику и спрашиваю как настроить конфиг) самый важный лог пфпф..

For clients or instances running in point-to-point mode, it will contain the traffic statistics.

А зачем openvpn умеет вести логи разных видов?

потому что может. Вести логи и подсчитывать на их основании статистику — это несколько разные вещи.

про самый важный лог было написано еще в самом топике, только вам же не сырой лог нужен

Своими словами если дополнить вывод?

Подредактировать какой-то конфиг openvpn и будет нужный лог со статистикой вестись, в этом направлении копать?

выполняя cmd(запись даты подключения) при —client-connect и cmd(запись даты отключения + статистикку) при —client-disconnect можно вести учёт трафика по каждому подключенному юзеру.

Источник

Читайте также:  Восстановление системы windows 10 код ошибки
Оцените статью