Openvpn. инструкция по применению

Работа с прокси

OpenVPN без проблем может работать через http и socks прокси.http-proxy < server port > — указываем адрес и порт прокси-сервера.
http-proxy 192.168.0.12 8080
Если требуется авторизация на прокси-сервере:http-proxy < server port authfile > — где authfile — файл содержащий две строки (имя пользователя и пароль) или stdin (будет запрошено имя пользователя и пароль).
Так же после authfile требуется указать метод авторизации. Можно оставить auto для автоматического выбора метода авторизации или указать явно через auth-method.
auth-method может быть трех видов «none», «basic» или «ntlm».
Используется в OpenVPN начиная с версии 2.1.http-proxy-retry — переподключаться, если соединение было разорвано.http-proxy-timeout < seconds > — считать соеденение с прокси-сервером разорванным после n-секунд неактивности. Например:
http-proxy-timeout 5socks-proxy < server port > — указываем сокс-прокси сервер. Пример:
socks-proxy 192.168.0.12 8080socks-proxy-retry — переподключаться, если соединение было разорвано.auto-proxy — автоматически определять прокси-сервер. Требуется версия OpenVPN 2.1 и выше. 

Теория

Что такое VPN

VPN-соединение создаётся за счёт связки клиент-серверной архитектуры. Клиенты подключаются к серверу VPN, объединяются в виртуальную сеть, безопасно обмениваются данными. Для подключения к Интернету клиент обращается к серверу VPN, а тот, в свою очередь, получает данные из глобальной сети и передаёт их обратно клиенту.

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

OpenVPN

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

Пара ключей шифрования

  • Публичный ключ – сертификат, который может быть в свободном доступе, производит шифрование данных (email сообщения, проверка ЭЦП).
  • Приватный ключ – хранящийся в ограниченном доступе, только у заинтересованных лиц, расшифровывает данные, зашифрованные публичным ключом.

Для того чтобы такая пара ключей работала, они должны быть подписаны центром авторизации (certification authority, CA). При этом CA имеет свой сертификат и приватный ключ, которые нужны для идентификации созданной пары ключей.

Что нужно для работы OpenVPN

Для настройки VPN необходим виртуальный частный сервер (virtual private server, VPS/VDS). В  качестве ОС будет использоваться Ubuntu — один из самых популярных и стабильных серверных дистрибутивов на базе Linux.

VPS можно арендовать у подходящего хостинг-провайдера

При выборе виртуального сервера важно, чтобы он подходил под следующие условия:

  • Оперативная память (RAM) — не менее 512 МБ.
  • Скорость сетевого интерфейса — 100 мб/сек или выше.
  • Физический сервер должен находиться максимально близко к будущему пользователю. Это обеспечит минимальную задержку (пинг) и позволит соответствовать местным законам.

Такие факторы, как объём постоянной памяти и тип накопителя, практически не имеют значения.

Создание сертификатов

Новая версия OpenVPN позволяет создавать сертификаты на основе Easy RSA 3, старая работает на базе 2-й версии. Наши действия будут различаться в зависимости от данной версии. Рассмотрим процесс формирования сертификата с использованием как RSA3, так и RSA2.

а) Создание сертификатов с RSA 3

1. Переходим в папку установки OpenVPN (по умолчанию, C:\Program Files\OpenVPN) и создаем каталог ssl.

2. После переходим в папку C:\Program Files\OpenVPN\easy-rsa, переименовываем файл vars.example в vars, открываем его на редактирование и правим одну строку:

set_var EASYRSA_TEMP_DIR «$EASYRSA_PKI/temp»

* мы снимаем комментарий и добавляем temp в конце $EASYRSA_PKI. Если это не сделать, то при попытке сформировать корневого сертификата мы получим ошибку Failed create CA private key.

3. Запускаем командную строку от имени администратора:

4. Переходим в каталог easy-rsa:

cd %ProgramFiles%\OpenVPN\easy-rsa

5. Запускаем команду:

EasyRSA-Start.bat

Мы окажемся в среде EasyRSA Shell.

6. Инициализируем PKI:

./easyrsa init-pki

Мы должны увидеть:

init-pki complete; you may now create a CA or requests.
Your newly created PKI dir is: C:/Program Files/OpenVPN/easy-rsa/pki

7. Генерируем корневой сертификат (CA):

./easyrsa build-ca

… после ввода Enter обязательно задаем пароль дважды. На запрос ввести Common Name можно просто нажать ввод или написать свое имя:

Common Name (eg: your user, host, or server name) :

8. Создаем ключ Диффи-Хеллмана:

./easyrsa gen-dh

9. Для создания сертификата сервера необходимо сначала создать файл запроса:

./easyrsa gen-req cert nopass

* на запрос ввода Common Name просто вводим Enter.

… и на его основе — сам сертификат:

./easyrsa sign-req server cert

После ввода команды подтверждаем правильность данных, введя yes:

  Confirm request details: yes

… и вводим пароль, который указывали при создании корневого сертификата.

10. Сертификаты сервера готовы и находятся в каталоге pki. Переносим в C:\Program Files\OpenVPN\ssl следующие файлы:

  • ca.crt
  • issued/cert.crt
  • private/cert.key
  • dh.pem

б) Создание сертификатов с RSA 2

1. Переходим в папку установки OpenVPN (по умолчанию, C:\Program Files\OpenVPN) и создаем каталог ssl.

2. После переходим в папку C:\Program Files\OpenVPN\easy-rsa, создаем файл vars.bat, открываем его на редактирование и приводим к следующему виду:

* в каталоге easy-rsa уже есть файл vars.bat.sample — можно переименовать и использовать его.
** значение HOME не меняем, если оставили путь установки программы по умолчанию; KEY_DIR — каталог, куда будут генерироваться сертификаты; KEY_CONFIG может быть разным — его лучше посмотреть в файле vars.bat.sample или по названию соответствующего файла в папке easy-rsa; KEY_NAME желательно, чтобы соответствовал полному имени VPN-сервера; остальные опции можно заполнить произвольно.

3. Запускаем командную строку от имени администратора:

4. Переходим в каталог easy-rsa:

cd %ProgramFiles%\OpenVPN\easy-rsa

4. Запускаем vars.bat:

vars.bat

5. Чистим каталоги от устаревшей информации:

clean-all.bat

* данная команда выполняется один раз, когда на сервере нет информации по ранее созданным сертификатам.

6. Снова запускаем vars.bat (после clean переопределяются некоторые переменные):

vars.bat

Переходим к созданию ключей.

7. Генерируем последовательность центра сертификации:

build-ca.bat

На все запросы нажимаем Enter.

8. Запускаем build-dh.bat (сертификат с использованием алгоритма Диффи-Хеллмана):

openssl dhparam -out keys\dh.pem 2048

* команда может выполняться долго — это нормально.

9. Генерируем сертификат для сервера:

build-key-server.bat cert

* где cert — имя сертификата; на все запросы нажимаем Enter. В конце подтверждаем два раза корректность информации вводом y.

10. После переносим из папки C:\Program Files\OpenVPN\easy-rsa\keys в C:\Program Files\OpenVPN\ssl следующие файлы:

  • ca.crt
  • cert.crt
  • cert.key
  • dh.pem

Команды и параметры при работе с сертификатами x509 и параметрами шифрования

cipher < alg > — указываем алгоритм шифрования. Например:
cipher AES-256-CBC
Рекомендуется использование шифров в режиме CBC (Cipher Block Chaining).keysize < n > — размер ключа в битах. Например:
keysize 128auth < alg > — алгоритм хэширования. Пример:
auth SHA1df < file > — файл с ключем Диффи-Хелманаca < file > — файл сертификата для CAcert < file > — сертификат локальной машиныkey < file > — локальный ключ машиныtls-server — явно указывает, что данный хост является tls-servertls-client — соответственно tls-clientpkcs12 < file > — указываем файл (PKCS12), который содержит в себе сертификат, ключ и CA в одном файле. Пример:
pkcs12 /filecrl-verify < file > — список отозванных сертификатов, т.е. blacklist.no-replay — отключает защиту OpenVPN от атаки повторного воспроизведения (replay attack). Крайне не рекомендуется отключать!no-iv — отключает использование вектора инициализации шифра (IV). Крайне не рекомендуется отключать!
Последние две опции очень сильно снижают безопасность OpenVPN, крайне не рекомендуется их использование.secret < file > — включает режим шифрования и аутентификации на статических ключах. В качестве параметра использует заранее сгенерированный, командой —genkey, файл. Например:
secret key.txt
Все доступные алгоритмы шифрования можно просмотреть выполнив из командной строки:openvpn —show-ciphers
Алгоритмы хэширования:openvpn —show-digests
Показать все доступные TLS-шифры (TLS используется только для шифрования канала управления)openvpn —show-tls
Показать все доступные крипто-устройства в системе (если такие имеются):openvpn —show-engines
Для улучшения безопасности рекомендовано запускать все сервисы с минимальными правами. Следующими двумя командами мы укажем с правами какого пользователя и группы будет работать openvpn:user nobodygroup nogroup
Где, соответственно, nobody и nogroup имена пользователя и группы.

Двигаемся далее — защищенное соединение

Так что для организации защищенного соединения между клиентом и серверов минимальный набор будет состоять из:

  • Сертификат УЦ (CA);
  • Сертификат сервера;
  • Сертификат клиента;
  • Закрытый ключ УЦ;
  • Закрытый ключ сервера;
  • Закрытый ключ клиента;

Переходим в директорию с программой и идем в папку easy-rsa (у меня она находится в E:\OpenVPN\easy-rsa).

Там у нас куча скриптов (которые у меня несколько криво работали), но я составил из них один скрипт (не люблю когда куча файлов), в котором есть всё необходимое и которым Можете воспользоваться и Вы.

Создайте текстовый файлик под названием, например, generate-all, вставьте туда следующее содержимое:

@echo off
rem SETLOCAL enabledelayedexpansion
rem fullfill the vars under '-------' lines
:START
rem -------------VARS--------------
rem Edit this variable to point to
rem the openssl.cnf file included
rem with easy-rsa.
set PATH="E:\program files\OpenVPN"
set KEY_CONFIG=%PATH%\easy-rsa\openssl-1.0.0.cnf
rem Edit this variable to point to
rem your soon-to-be-created key
rem directory.
rem
rem WARNING: clean-all will do
rem a rm -rf on this directory
rem so make sure you define
rem it correctly!
set KEY_DIR=E:\certs
rem Increase this to 2048 if you
rem are paranoid. This will slow
rem down TLS negotiation performance
rem as well as the one-time DH parms
rem generation process.
set KEY_SIZE=1024
rem These are the default values for fields
rem which will be placed in the certificate.
rem Change these to reflect your site.
rem Don't leave any of these parms blank.
set KEY_COUNTRY=RU
set KEY_PROVINCE=CA
set KEY_CITY=Moscow
set KEY_ORG=barnak-VPN
set KEY_EMAIL=mail
set KEY_CN=barnak-CA
set KEY_NAME=name
set KEY_OU=ou
set PKCS11_MODULE_PATH=path
set PKCS11_PIN=pin
rem ----------------------------------------
rem ------------INIT SCRIPT-----------------
rem delete the KEY_DIR and any subdirs quietly
IF NOT EXIST %KEY_DIR% mkdir %KEY_DIR%
IF NOT EXIST %KEY_DIR%\index.txt (
rem copy in a fesh index file so we begin with an empty database
copy index.txt.start %KEY_DIR%\index.txt
rem copy in a fresh serial file so we begin generating keys at index 01
copy serial.start %KEY_DIR%\serial. 
)
rem -----------------------------------------
echo.
echo Enter action:
echo 1 - Create CA certificate
echo 2 - Create DH file
echo 3 - Create Server Certficate
echo 4 - Create Client Certficate
echo 0 - Exit
set /P act=""
IF %act% == 1 (
 goto GEN-CA
) else IF %act% == 2 (
 goto GEN-DH
) else IF %act% == 3 (
 goto SRV-CRT
) else IF %act% == 4 (
 goto CLIENT-CRT
) else IF %act% == 0 (
 goto EXIT
) else (
 echo ERROR: Invalid action!
 goto START
)

:GEN-CA
rem build a cert authority valid for ten years, starting now
%PATH%\bin\openssl req -days 3650 -nodes -new -x509 -keyout %KEY_DIR%\ca.key -out %KEY_DIR%\ca.crt -config %KEY_CONFIG%
if ERRORLEVEL 0 echo CA certificate succesfully created
goto START

:GEN-DH
rem build a dh file for the server side
%PATH%\bin\openssl dhparam -out %KEY_DIR%/dh%KEY_SIZE%.pem %KEY_SIZE%
if ERRORLEVEL 0 echo DH file succesfully created
goto START

:SRV-CRT
set /P SRV_NAME="Enter Server Name: "
IF  == [] (
echo ERROR: Server name must not be empty!
goto SRV-CRT
)
set KEY_CN=%SRV_NAME%
rem build a request for a cert that will be valid for ten years
%PATH%\bin\openssl req -days 3650 -nodes -new -keyout %KEY_DIR%\%SRV_NAME%.key -out %KEY_DIR%\%SRV_NAME%.csr -config %KEY_CONFIG%
rem sign the cert request with our ca, creating a cert/key pair
%PATH%\bin\openssl ca -days 3650 -out %KEY_DIR%\%SRV_NAME%.crt -in %KEY_DIR%\%SRV_NAME%.csr -extensions server -config %KEY_CONFIG%
rem delete any .old files created in this process, to avoid future file creation errors
del /q %KEY_DIR%\*.old
IF NOT ERRORLEVEL 0 echo ERROR!
goto START

:CLIENT-CRT
set /P CLIENT_NAME="Enter Client Name: "
IF  == [] (
echo ERROR: Client Name must not be empty!
goto CLIENT-CRT
)
set KEY_CN=%CLIENT_NAME%
rem build a request for a cert that will be valid for ten years
%PATH%\bin\openssl req -days 3650 -nodes -new -keyout %KEY_DIR%\%CLIENT_NAME%.key -out %KEY_DIR%\%CLIENT_NAME%.csr -config %KEY_CONFIG%
rem sign the cert request with our ca, creating a cert/key pair
%PATH%\bin\openssl ca -days 3650 -out %KEY_DIR%\%CLIENT_NAME%.crt -in %KEY_DIR%\%CLIENT_NAME%.csr -config %KEY_CONFIG%
rem delete any .old files created in this process, to avoid future file creation errors
del /q %KEY_DIR%\*.old
IF NOT ERRORLEVEL 0 echo ERROR!
goto START

:EXIT

После этого сохраните скрипт как .bat файл (либо просто поменяйте ему расширение на .bat).

Прописываем маршрут OpenVPN

Теперь самое главное. Мы не сможем подключиться к общей папке, пока не пропишем маршрут на Debian. Т.к. наш VPN клиент знает куда подключаться, а наша виртуалка не знает куда отвечать (если только ваш VPN сервер не является шлюзом по умолчанию для всех компов, к которым вы хотите подключаться).

В моем примере VPN сервер не является шлюзом по умолчанию, так что маршрут нужен.

Добавляем следующую строчку:

route add -net 10.10.20.0/24 gw 192.168.94.2

Эта команда означает, что мы хотим для любого адреса из сети 10.10.20.0 255.255.255.0 отправлять все пакеты на шлюз 192.168.94.2.

Теперь закиньте что-нибудь в общую папку или просто создайте текстовый файлик, чтобы проверить, что все доступно, например так:

echo 12345 > /home/user/testshare/test.txt

После этого тестируем нашу общую папку:

Вводим учетные данные нашего Samba пользователя и видим, что всё доступно :)

А сейчас давайте несколько усложним задачу. Помимо файлового хранилища, мы хотим перенести наш VPN сервер на вторую виртуалку с Debian ( :) ) и к тому же мы хотим, чтобы весь трафик шел через него.

Разные вопросы

В. Чем отличаются виртуальные устройства tun и tap?О. TUN — туннель, соединение по которому указывается по типу: локальный IP < — > удаленный IP. Например, при явном указании ifconfig:
—ifconfig 10.3.0.2 10.3.0.1
в этом примере 10.3.0.2 — локальный IP, 10.3.0.1 — удаленный IP
TAP — эмулирует виртуальную ethernet карточку, для которой требуется указывать локальный IP и маску подсети. Например:
—ifconfig 10.3.0.2 255.255.255.0

В. Для чего нужны файлы serial и index.txt при генерации ключей с easy-rsa?О. Эти два файла используются в качестве временной базы данных, используемой при генерации ключей. Должны находиться в том каталоге, где и ключи.

Авторизуйтесь для добавления комментариев!

Описание команд и параметров

Каждый параметр (man openvpn) имеет свое значение и описание. Рассмотрим их более детально:

  • client – означает, что конфигурационным файлом описывается подключение клиента, то есть установлено соединение самой программой, при этом ожидание от сервера исключено;
  • dev (tap и tun) – используется для выбора виртуального сетевого драйвера. Значение tun указывает на сетевой уровень модели OSI, а tap требуется для эмуляции Ethernet устройства и работы на канальном уровне модели OSI;
  • dev-node – актуален для систем Виндовс, когда присутствует несколько сетевых интерфейсов. В параметре должно быть название сетевого подключения для OpenVPN;
  • proto (udp или tcp) – определение протокола, используемого для информационной передачи. Как правило, используется именно udp, поскольку он меньше загружает сеть;
  • remote (VPN-сервер и порт) – указывает на сервер для клиентского подключения, а также на порт, в рамках которого принимаются запросы для OpenVPN;
  • remote-random – необходимость подключения к удаленным серверам рандомно;
  • resolv-retry (секунды или infinite) – сервер имеет доменное имя, а сам параметр задается в секундах для повторного подключения. Infinite означает постоянную связь с сервером;
  • nobind – применение динамического порта для подключения;
  • user – выбор конкретного пользователя для клиентской работы;
  • group – выбор определенной группы для клиентской работы;
  • persist-key – исключает перечитывание ключей, если перезагружается сервис OpenVPN;
  • persist-tun – исключает перечитывание параметров туннеля при перезагрузке сервиса OpenVPN;
  • http-proxy – использование прокси для установки подключения;
  • http-proxy-retry – в случае разрыва связи переподключение к прокси;
  • http-proxy-timeout – временной интервал, через который начинается переподключение;
  • mute-replay-warnings – актуален при беспроводном соединении, поскольку отключается дублирование пакетных предупреждений;
  • ca – корневой сертификат, генерация происходит на сервере;
  • cert – открытый клиентский ключ, генерация происходит на сервере;
  • key – закрытый клиентский ключ, генерация происходит на сервере;
  • dh – ключ с алгоритмом Диффи-Хеллмана;
  • remote-cert-tls – защита от mitm атаки с учетом верификации сертификата сервера;
  • tls-client – определяет клиента TLS;
  • tls-auth (ta.key 1) – дополнительный уровень идентификации с помощью tls;
  • float – можно изменить IP удаленным хостом во время соединения, если оно не разрывается;
  • keepalive (секунды) – пинговка через определенное количество секунд и перезапуск подключения, если в течение какого-либо времени не принимаются ответные пакеты;
  • cipher – алгоритм шифрования;
  • comp-lzo – применение сжатия;
  • verb (0-9) – уровень детализации лога;
  • mute – сколько лог-сообщений отображается в каждой категории;
  • auth-user-pass – необходимость провести аутентификацию;
  • ipchange – выполнение команды при смене адреса IP;
  • connect-retry – через какое время переподключаться к серверу, если был разрыв соединения;
  • connect-retry-max – количество повторений соединения при его разрыве;
  • shaper – определение максимальной скорости передачи данных для исходящего потока;
  • tun-mtu – задает MTU;
  • status – путь к файлу статусного хранения;
  • log – путь к лог-файлу.

Абсолютно все команды OpenVPN с соответствующими параметрами по OpenVPN для ОС Windows и Linux вы можете получить, воспользовавшись опцией openvpn —help.

Ищете надёжный VPN-Сервис?

Тогда у нас для вас есть отличное предложение. CactusVPN предлагает высококачественные VPN-услуги, среди которых шифрование на военном уровне, круглосуточная поддержку, функция Kill Switch, более 30 высокоскоростных серверов с неограниченной пропускной способностью, а также до шести VPN-протоколов на выбор. Более того, мы не записываем ваши данные, и наш Сервис работает на нескольких платформах.

И если вы захотите попробовать другие способы разблокировки веб-сайтов, мы также предлагаем услугу Smart DNS, которая открывает доступ к более 300 сайтов. Кроме всего прочего, все наши VPN-серверы дополняются прокси-серверами.

Introduction to OpenVPN

James Yonan started the OpenVPN open source project in 2001, and released the first open source version of OpenVPN in 2002.  James set out to create a protocol for a virtual private network (VPN) tunnel program that would be secure, free, fast, and work on standard TCP and UDP protocols across the internet. With OpenVPN, you can create a virtual network that securely connects computers over existing networks by encrypting all of the data in transit. This encryption ensures that you can use an OpenVPN tunnel over the public internet and no one can intercept the data in the tunnel.

Francis Dinha and James Yonan co-founded the OpenVPN, Inc. company. Today’s OpenVPN team is made up of a global workforce working together with the open source community to create and maintain a VPN solution that can be used on a wide variety of devices and systems. The open source project still remains strong, while OpenVPN Inc. provides business enterprise solutions based on the OpenVPN code. OpenVPN Connect, OpenVPN Access Server, and OpenVPN Cloud are the commercial products that include extra features and are supported by a team of professionals around the world, ready to answer your questions or assist with problems.

Подготовка Ubuntu

Обновляем кэш для установки пакетов:

apt update

Устанавливаем утилиту для синхронизации времени:

apt install chrony

Разрешаем ее автозапуск и стартуем сервис:

systemctl enable chrony —now

Установим правильную временную зону:

timedatectl set-timezone Europe/Moscow

* в данном примере московское время.

Если в нашей системе используется брандмауэр, открываем порт, на котором будет слушать OpenVPN:

iptables -I INPUT -p udp —dport 443 -j ACCEPT

* в данной инструкции предполагается, что мы настроим VPN-сервер на UDP-порту 443, однако, по-умолчанию, OpenVPN работает на порту 1194.

Для сохранения правила используем iptables-persistent:

apt install iptables-persistent

netfilter-persistent save

Настройка сервера

Для установки OpenVPN-сервера выполните:

emerge openvpn

Подготовка ключей и сертификатов

Создайте директорию сертификатов:

mkdir /etc/openvpn/keys

Скопируйте созданные ранее PKI-ключи и сертификаты. Если сервер OpenVPN находится на той же машине, где создавались ключи, выполните:

cp /var/calculate/easy-rsa/pki/ca.crt /etc/openvpn/keys/

cp /var/calculate/easy-rsa/pki/dh.pem /etc/openvpn/keys/

cp /var/calculate/easy-rsa/pki/issued/server.crt /etc/openvpn/keys/

cp /var/calculate/easy-rsa/pki/private/server.key /etc/openvpn/keys/

cp /var/calculate/easy-rsa/pki/ta.key /etc/openvpn/keys/

Настройка сервера

Отредактируйте файл настроек OpenVPN-сервера следующим образом:

/etc/openvpn/openvpn.conf

# порт, протокол, устройство, метод сжатия
port 1194
proto udp
dev tun
compress lzo
# ключи и сертификаты
ca keys/ca.crt
cert keys/server.crt
key keys/server.key
dh keys/dh.pem
tls-auth keys/ta.key 
# диапазон выделяемых IP, маршрут по умолчанию, DNS
server 192.168.10.0 255.255.255.0
# топология сети
topology subnet
push "redirect-gateway def1"
push "dhcp-option DNS 8.8.8.8"
# перезапуск туннеля при необходимости
keepalive 10 120
# права демона openvpn
user openvpn
group openvpn
# оставлять без изменений устройство и файлы ключей при перезапуске туннеля
persist-tun
persist-key
# информация о текущих соединениях
status /var/log/openvpn-status.log

При использовании OpenVPN-клиенты будут направлять DNS-запросы через VPN, а VPN-сервер должны уметь обрабатывать их. Это может быть достигнуто путем передачи подключающимся клиентам адреса DNS-сервера, который заменит их обычные настройки для DNS-сервера, пока VPN будет оставаться активным. В примере конфигурационного файла за это отвечает , где адрес 8.8.8.8 — DNS Google.

Важно

Многие подсоединенные к Интернет машины с OpenVPN-клиентом будут периодически взаимодействовать с сервером DHCP, чтобы возобновить аренду своих IP-адресов. Опция может мешать клиенту связаться с локальным DHCP-сервером (потому что DHCP-сообщения будут направляться через VPN), приводя к потере аренды IP-адреса.

Запустите сервер и добавьте в автозапуск:

/etc/init.d/openvpn start

rc-update add openvpn

Настройка маршрутизации

Разрешите пересылку пакетов между сетевыми интерфейсами:

/etc/sysctl.conf

net.ipv4.ip_forward = 1

Для принятия изменений выполните:

sysctl -p /etc/sysctl.conf

Передача клиенту опции заставит весь IP-трафик, порождаемый на клиентской машине, пройти через сервер OpenVPN. Сервер должен быть настроен на обработку этого трафика — например, путем отправки в Интернет через NAT. Чтобы направить трафик клиента в Интернет через NAT, выполните:

iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eth0 -j MASQUERADE

Вместо eth0 укажите локальный сетевой интерфейс сервера.

Сохраните правила маршрутизации и добавьте их в автозапуск:

/etc/init.d/iptables save

rc-update add iptables

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Работатека
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: