- Alt linux openvpn client
- 59.2.3. Настройка VPN-подключения по протоколу OpenVPN в Network Manager
- Alt linux openvpn client
- 71.2.3. Настройка VPN-подключения по протоколу OpenVPN в Network Manager
- VPN с помощью OpenVPN
- Одно VPN соединение клиент-сервер
- Несколько VPN соединений
- Настроим сервер
- Настроим клиента
- Создание дополнительного ключа пользователя
- См. также
- Cсылки
Alt linux openvpn client
59.2.3. Настройка VPN-подключения по протоколу OpenVPN в Network Manager
Для настройки VPN-подключения по протоколу OpenVPN в Network Manager, следует выполнить следующие действия:
Нажать левой кнопкой мыши на значок NetworkManager , в меню выбрать Соединения VPN → Добавить VPN-соединение :
В списке выбора типа соединения выбрать пункт OpenVPN и нажать кнопку Создать :
Если имеется файл конфигурации клиента, в списке выбора типа соединения можно выбрать пункт Импортировать сохраненную конфигурацию VPN и указать этот файл, параметры соединения будут настроены согласно этому файлу.
Нажать кнопку Дополнительно чтобы указать параметры подключения. Настройки соединения находятся на разных вкладках, например на вкладке Защита можно указать алгоритм шифрования:
скопируйте ранее сгенерированные ключи и сертификаты в каталог /etc/openvpn/keys/ и укажите их в /etc/openvpn/client.conf ;
в файле /etc/openvpn/client.conf в поле remote укажите IP-адрес OpenVPN сервера, другие параметры приведите в соответствие с настройками сервера, например:
remote 192.168.0.102 1194 ca /etc/openvpn/keys/my-ca.crt cert /etc/openvpn/keys/client.crt key /etc/openvpn/keys/client.pem #remote-cert-tls server cipher grasshopper-cbc tls-cipher GOST2012-GOST8912-GOST8912
# openvpn /etc/openvpn/client.conf
Alt linux openvpn client
71.2.3. Настройка VPN-подключения по протоколу OpenVPN в Network Manager
Для настройки VPN-подключения по протоколу OpenVPN в Network Manager, следует выполнить следующие действия:
Открыть окно настроек Управление сетью , нажав кнопку Настроить сетевые соединения в области уведомлений.
В списке выбора типа соединения выбрать пункт OpenVPN и нажать кнопку Создать :
Если имеется файл конфигурации клиента, в списке выбора типа соединения можно выбрать пункт Импортировать VPN соединение и указать этот файл, параметры соединения будут настроены согласно этому файлу.
Нажать кнопку Дополнительно чтобы указать параметры подключения. Настройки соединения находятся на разных вкладках, например на вкладке Защита можно указать алгоритм шифрования:
скопируйте ранее сгенерированные ключи и сертификаты в каталог /etc/openvpn/keys/ и укажите их в /etc/openvpn/client.conf ;
в файле /etc/openvpn/client.conf в поле remote укажите IP-адрес OpenVPN сервера, другие параметры приведите в соответствие с настройками сервера, например:
remote 192.168.0.102 1194 ca /etc/openvpn/keys/my-ca.crt cert /etc/openvpn/keys/client.crt key /etc/openvpn/keys/client.pem #remote-cert-tls server cipher grasshopper-cbc tls-cipher GOST2012-GOST8912-GOST8912
# openvpn /etc/openvpn/client.conf
VPN с помощью OpenVPN
Вводное слово смотреть в статье Создание vpn туннеля.
Устанавливаем из репозитория сам OpenVPN и документацию к нему. Для дистрибутивов поддерживающих пакет APT команда может выглядеть так:
# apt-get install openvpn openvpn-docs
Если нужно настроить всего одно подключение, т.е. связать два компьютера (шлюза сетей), то настройка будет попроще, для подключения многих клиентов к одному серверу — чуть посложнее.
Одно VPN соединение клиент-сервер
Эта инструкция составлена на базе официальной краткой инструкции и по сути ещё более краткий её перевод.
# openvpn --genkey --secret static.key
— Копируем созданный ключ на сервер и клиент в каталог /etc/openvpn.
— Создаём конфигурационный файл на сервере /etc/openvpn/server.conf:
dev tun ifconfig 10.11.11.1 10.11.11.2 secret /etc/openvpn/static.key # Use compression on the VPN link comp-lzo # Make the link more resistent to connection failures keepalive 10 60 ping-timer-rem persist-tun persist-key # Run OpenVPN as a daemon and drop privileges to user/group nobody user nobody group nobody daemon # Allow client to reach entire server subnet route 10.9.0.0 255.255.255.0 # Set logging log-append /var/log/openvpn.log status /var/log/openvpn-status.log
— Создаём конфигурационный файл на клиенте /etc/openvpn/client.conf:
remote 81.81.81.1 dev tun ifconfig 10.11.11.2 10.11.11.1 secret /etc/openvpn/static.key # Use compression on the VPN link comp-lzo # Make the link more resistent to connection failures keepalive 10 60 ping-timer-rem persist-tun persist-key # Run OpenVPN as a daemon and drop privileges to user/group nobody user nobody group nobody daemon # Allow client to reach entire server subnet route 10.0.0.0 255.255.255.0 # Set logging log-append /var/log/openvpn.log status /var/log/openvpn-status.log
У пользователя nobody может быть другая группа. Проверим командой:
# id nobody uid=99(nobody) gid=99(nobody) groups=99(nobody)
— Запускаем openvpn демон на сервере и клиенте:
-Проверяем доступность сетей командой ping. Добавляем openvpn в автозапуск:
Несколько VPN соединений
Копируем директорию со скриптами /usr/share/doc/openvpn-docs-2.0.9/easy-rsa для AltLinux или /usr/share/doc/openvpn/examples/easy-rsa для Debian в /etc/openvpn/ для более удобного использования. Редактируем файл с переменными /etc/openvpn/easy-rsa/vars и создаём главный единый для всех сертификат (master Certificate Authority (CA) ), которым затем будем подписывать остальные сертификаты:
# source ./vars # ./clean-all # ./build-ca
Скрипт вызывает openssl с соответсвующими ключами и параметрами, создавая подкаталог keys с сертификатом и ключом.
Чтобы создать сертификат вручную нужно было бы запустить команду:
# openssl req -nodes -new -x509 -keyout ca.key -out ca.crt
Создаём для сервера сертификат с ключом и параметры Диффи Хелмана:
# ./build-key-server server # ./build-dh
Создаём сертификат и ключ для клиента:
Вместо server и client можно указать имена компьютеров, чтобы потом не путаться, т.к. ключи не имеют отношения к роли хоста, и сервер в одном соединении, используя те же ключи, может быть клиентом в другом.
Настроим сервер
В качестве транспортной сети будем использовать 10.11.11.0/24. То есть из этой подсети будут выделяться адреса для хостов, образующих VPN. В нашем случае один сервер и один клиент.
Скопируем в /etc/openvpn/keys/ созданные файлы ca.crt, dh1024.pem, server.crt, server.key. В Debian вместо расширений crt и key используется pem.
Скопируем в /etc/openvpn/ шаблонный конфигурационный файл /usr/share/doc/openvpn/sample-config-files/server.conf и отредактируем его. У меня без комментариев остались следующие строки:
port 1194 proto udp dev tun server 10.11.11.0 255.255.255.0 ca /etc/openvpn/keys/ca.crt cert /etc/openvpn/keys/server.crt key /etc/openvpn/keys/server.key dh /etc/openvpn/keys/dh2048.pem user nobody group nobody persist-key persist-tun ifconfig-pool-persist /var/log/openvpn-ipp.txt client-config-dir /etc/openvpn/ccd route 10.11.11.0 255.255.255.0 route 10.9.0.0 255.255.255.0 status /var/log/openvpn-status.log log-append /var/log/openvpn.log client-to-client tun-mtu 1500 tun-mtu-extra 32 mssfix 1450 keepalive 15 120 comp-lzo verb 4 mute 20
У пользователя nobody может быть другая группа. Проверим командой:
# id nobody uid=99(nobody) gid=99(nobody) groups=99(nobody)
Если планируется подключение нескольких клиентов, то для индивидуальной настройки каждого создаём каталог /etc/openvpn/ccd (для Alt Linux см дальше) и в нём файл с именем Common Name сертификата клиента, которое мы указывали при создании сертификата. Уточнить это имя можно посмотрев в созданном сертификате поле CN в строке
Certificate: Data: . Subject: C=RU, ST=GR, L=Gorod, O=Kontora, CN=OrgName/emailAddress=user@domain.ru
или просто подключиться к серверу и посмотреть в журнале кто подключился. Пусть это будет OrgName, тогда в файле /etc/openvpn/ccd/OrgName указываем:
iroute 10.9.0.0 255.255.255.0 push "route 10.0.0.0 255.255.255.0"
Команды из этого файла будут выполняться при подключении клиента. Первая строка должна добавить маршрут к сети клиента на стороне сервера, вторая наоборот — на клиентской стороне добавить маршрут к сети находящейся за сервером VPN. Если же у нас будет только одно подключение, то обе эти строки могут быть указаны и в главном конфигурационном файле /etc/openvpn/server.conf
В Alt Linux openvpn чрутится, поэтому нужно создать ссылку на /etc/openvpn/ccd:
# ln -s /var/lib/openvpn/etc/openvpn/ccd /etc/openvpn/ccd
То, что он чрутиться именно сюда можно узнать в стартовом скрипте /etc/init.d/openvpn, найдя переменную CHROOTDIR, или выполнив этот скрипт глянуть параметр —chroot в информации о процессе:
Настроим клиента
Скопируем в /etc/openvpn/client-name/ созданные файлы ca.crt, client.crt, client.key.
Скопируем в /etc/openvpn/ шаблонный конфигурационный файл /usr/share/doc/openvpn-docs-2.0.9/sample-config-files/client.conf и отредактируем его. У меня без комментариев остались следующие строки:
client dev tun proto udp remote 81.81.81.1 1194 resolv-retry infinite nobind user nobody group nobody persist-key persist-tun ca /etc/openvpn/client_name/ca.crt cert /etc/openvpn/client_name/client.crt key /etc/openvpn/client_name/client.key comp-lzo verb 4 mute 20 status /var/log/openvpn-client_name-stat.log log-append /var/log/openvpn-client_name.log
Если у нас на этом компьютере больше нет openvpn серверов или клиентов, то можно запустить инициализирующий (стартовый) скрипт:
Если же есть, то запускаем отдельной командой:
# openvpn /etc/openvpn/client.conf &
Если не указывать амперсент (&), то запустив команду мы потереям контроль над консолью, а указав, запустим команду в фоновом режиме. Остановить можно, удалив процесс:
# ps ax | grep vpn 12468 ? Ss 0:28 /usr/sbin/openvpn /etc/openvpn/client.conf # kill -9 12468
Для диагностики могут помочь следующие команды:
# ps ax | grep vpn # route | grep tun # /etc/init.d/openvpn status
Последняя команда работает в Alt Linux, в Debian и Suse нет.
После подключения можно проверить, что именно, какие пакеты ходят через наш тунель:
Также необходимо проверить, что все маршруты поднялись корректно:
и если нет, то добавить их вручную для проверки тунелля, а после всё же разобраться и сделать, чтобы они добавлялись автоматически:
# route add -net 10.9.0.0/24 gw 10.11.11.2
здесь мы добавили маршрут в сеть 10.9.0.0 (255.255.255.0) через виртуальный интерфейс 10.11.11.2, созданный OpenVPN.
Создание дополнительного ключа пользователя
После того как всё установлено и созданы сертификаты и ключ сервера, каждый новый ключ пользователя создаётся командой:
cd /usr/share/doc/openvpn/examples/easy-rsa/2.0 source ./vars ./build-key ClientName
Примечание: Путь к скрипту build-key может отличаться в разных дистрибутивах
См. также
Создание vpn туннеля — Общая информация по созданию VPN с перечислением нескольких способов.