OpenVPN

Настройка, программирование, распределённые вычисления

Модераторы: Olej, bellic, vikos

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

OpenVPN

Непрочитанное сообщение Olej » 30 июл 2015, 10:07

Понадобилось повозиться с IPsec, VPN и OpenVPN в частности ... в связи с проектом Implementing a Distributed Firewall.

Собираю здесь в теме только ссылки, которые оказались полезными при работе:

Static key configurations offer the simplest setup, and are ideal for point-to-point VPNs or proof-of-concept testing.

OpenVPN HOWTO
Перевод М. Альхименко при помощи OmegaT и GoldenDict.
OpenVPN - настройка в Windows и Linux

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: OpenVPN

Непрочитанное сообщение Olej » 30 июл 2015, 13:59

Код: Выделить всё

olej@mint1 ~ $ apt search vpn
p   gadmin-openvpn-client           - GTK+ configuration tool for openvpn (clien
p   gadmin-openvpn-client-dbg       - GTK+ configuration tool for openvpn (debug
p   gadmin-openvpn-server           - GTK+ configuration tool for openvpn (serve
p   gadmin-openvpn-server-dbg       - GTK+ configuration tool for openvpn (debug
p   kvpnc                           - Интерфейс к клиентам VPN для KDE4
p   kvpnc-data                      - data files for KVpnc
p   kvpnc-dbg                       - vpn clients frontend for KDE4 - debugging
p   l2tp-ipsec-vpn                  - control your L2TP IPsec VPN connections
p   l2tp-ipsec-vpn-daemon           - daemon for L2tpIPsecVpn GUI
p   libnm-glib-vpn-dev              - платформа управления сетью (интерфейс GLib
i   libnm-glib-vpn1                 - платформа управления сетью (разделяемая би
p   network-manager-openvpn         - network management framework (OpenVPN plug
p   network-manager-openvpn-gnome   - network management framework (OpenVPN plug
p   network-manager-vpnc            - инфраструктура управления сетевыми подключ
p   network-manager-vpnc-gnome      - network management framework (VPNC plugin
p   neutron-plugin-vpn-agent        - фиктивный пакет для обновления
p   neutron-vpn-agent               - Neutron is a virtual network service for O
p   openvpn                         - служба виртуальной частной сети
p   openvpn-auth-ldap               - OpenVPN LDAP authentication module
p   openvpn-auth-radius             - OpenVPN RADIUS authentication module
p   openvpn-auth-radius-dbg         - debugging symbols for openvpn-plugin-radiu
p   openvpn-blacklist               - list of blacklisted OpenVPN RSA shared key
p   vpnc                            - Cisco-compatible VPN client
p   vpnc-scripts                    - Network configuration scripts for VPNC and
p   zentyal-openvpn                 - Zentyal — VPN-сервис

Код: Выделить всё

olej@mint1 ~ $ apt depends openvpn
openvpn
 |Зависит: debconf
  Зависит: <debconf-2.0>
    cdebconf
    debconf
  Зависит: libc6
  Зависит: liblzo2-2
  Зависит: libpam0g
  Зависит: libpkcs11-helper1
  Зависит: libssl1.0.0
  Зависит: initscripts
  Зависит: iproute2
  Предлагает: openssl
  Предлагает: resolvconf
    openresolv
  Предлагает: easy-rsa
http://packages.ubuntu.com/trusty/i386/openvpn/filelist

Код: Выделить всё

/etc/bash_completion.d/openvpn
/etc/default/openvpn
/etc/init.d/openvpn
/etc/network/if-down.d/openvpn
/etc/network/if-up.d/openvpn
/etc/openvpn/update-resolv-conf
/usr/include/openvpn/openvpn-plugin.h
/usr/lib/openvpn/openvpn-plugin-auth-pam.so
/usr/lib/openvpn/openvpn-plugin-down-root.so
/usr/sbin/openvpn
/usr/share/doc/openvpn/AUTHORS
/usr/share/doc/openvpn/COPYING.gz
/usr/share/doc/openvpn/COPYRIGHT.GPL.gz
/usr/share/doc/openvpn/NEWS.Debian.gz
/usr/share/doc/openvpn/PORTS
/usr/share/doc/openvpn/README
/usr/share/doc/openvpn/README.Debian.gz
/usr/share/doc/openvpn/README.IPv6
/usr/share/doc/openvpn/README.auth-pam
/usr/share/doc/openvpn/README.down-root
/usr/share/doc/openvpn/README.polarssl
/usr/share/doc/openvpn/changelog.Debian.gz
/usr/share/doc/openvpn/copyright
/usr/share/doc/openvpn/examples/sample-config-files/README
/usr/share/doc/openvpn/examples/sample-config-files/client.conf
/usr/share/doc/openvpn/examples/sample-config-files/firewall.sh
/usr/share/doc/openvpn/examples/sample-config-files/home.up
/usr/share/doc/openvpn/examples/sample-config-files/loopback-client
/usr/share/doc/openvpn/examples/sample-config-files/loopback-server
/usr/share/doc/openvpn/examples/sample-config-files/office.up
/usr/share/doc/openvpn/examples/sample-config-files/openvpn-shutdown.sh
/usr/share/doc/openvpn/examples/sample-config-files/openvpn-startup.sh
/usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz
/usr/share/doc/openvpn/examples/sample-config-files/static-home.conf
/usr/share/doc/openvpn/examples/sample-config-files/static-office.conf
/usr/share/doc/openvpn/examples/sample-config-files/tls-home.conf
/usr/share/doc/openvpn/examples/sample-config-files/tls-office.conf
/usr/share/doc/openvpn/examples/sample-config-files/xinetd-client-config
/usr/share/doc/openvpn/examples/sample-config-files/xinetd-server-config
/usr/share/doc/openvpn/examples/sample-keys/README
/usr/share/doc/openvpn/examples/sample-keys/ca.crt
/usr/share/doc/openvpn/examples/sample-keys/ca.key
/usr/share/doc/openvpn/examples/sample-keys/client.crt
/usr/share/doc/openvpn/examples/sample-keys/client.key
/usr/share/doc/openvpn/examples/sample-keys/dh1024.pem
/usr/share/doc/openvpn/examples/sample-keys/pass.crt
/usr/share/doc/openvpn/examples/sample-keys/pass.key
/usr/share/doc/openvpn/examples/sample-keys/pkcs12.p12
/usr/share/doc/openvpn/examples/sample-keys/server.crt
/usr/share/doc/openvpn/examples/sample-keys/server.key
/usr/share/doc/openvpn/examples/sample-scripts/auth-pam.pl
/usr/share/doc/openvpn/examples/sample-scripts/bridge-start
/usr/share/doc/openvpn/examples/sample-scripts/bridge-stop
/usr/share/doc/openvpn/examples/sample-scripts/ucn.pl
/usr/share/doc/openvpn/examples/sample-scripts/verify-cn
/usr/share/doc/openvpn/management-notes.txt.gz
/usr/share/man/man8/openvpn.8.gz
/usr/share/openvpn/verify-cn

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: OpenVPN

Непрочитанное сообщение Olej » 31 июл 2015, 19:07

Неприятность OpenVPN состоит в том, что большинство описаний его в Интернет ориентированы на Windows.
А нам этого добра не нужно.
Приходимтся тщательно сортировать то, что относится к Linux.

Простая настройка OpenVPN с фиксированными адресами клиентов
13-02-2013
В этой заметке подробно описана процедура настройки OpenVPN (virtual private network — виртуальная частная сеть), в рамках модели сервер-клиент и способ фиксации адресов клиентов в виртуальной сети, на базе сертификатной аутентификации. Эта технология позволяет быстро и экономично поднимать виртуальные локальные сети на базе существующих физических или интернета.
Описание команд и параметров OpenVPN
08.09.2013

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: OpenVPN

Непрочитанное сообщение Olej » 31 июл 2015, 19:50

Устанавливаем...
Нет смысла бодаться с любой другой установкой, когда есть в репозитории:

Код: Выделить всё

olej@nvidia ~ $ apt show openvpn
Пакет: openvpn
Новый: да
Состояние: не установлен
Версия: 2.3.2-7ubuntu3.1
Приоритет: необязательный
Раздел: net
Сопровождающий: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Архитектура: i386
Размер в распакованном виде: 1 030 k
Зависимости: debconf (>= 0.5) | debconf-2.0, libc6 (>= 2.15), liblzo2-2,
                        libpam0g (>= 0.99.7.1), libpkcs11-helper1 (>= 1.05),
                        libssl1.0.0 (>= 1.0.0), initscripts (>= 2.88dsf-13.3),
                        iproute2
Предлагает: openssl, resolvconf, easy-rsa
Описание: служба виртуальной частной сети
 OpenVPN — это приложение для создания безопасного IP-туннеля через единый UDP-
 или TCP-порт. Он может быть использован для доступа к удаленным сайтам, сделать
 безопасными подключения "точка-точка", повысить безопасность беспроводной сети
 и т.д.

 OpenVPN использует все возможности шифрования, аутентификации и сертификации
 библиотеки OpenSSL (любой шифр, размер ключа или пакет HMAC).

 OpenVPN может использовать статические, предустановленные ключи или обмен
 динамическими ключами на основе TLS. Он также поддерживает соединения VPN с
 динамическими удалёнными узлами (DHCP или клиенты dial-up), туннели поверх NAT
 или через полноценный межсетевой экран (например, iptables в Linux).
Сайт: http://www.openvpn.net/

Код: Выделить всё

olej@nvidia ~ $ apt install openvpn
[sudo] password for olej:
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Будут установлены следующие дополнительные пакеты:
  libpkcs11-helper1
Предлагаемые пакеты:
  easy-rsa
НОВЫЕ пакеты, которые будут установлены:
  libpkcs11-helper1 openvpn
...
Настраивается пакет openvpn (2.3.2-7ubuntu3.1) …
 * Restarting virtual private network daemon(s)...                                                                                       *   No VPN is run
Processing triggers for libc-bin (2.19-0ubuntu6.6) ...
Processing triggers for ureadahead (0.100.0-16) ...

Код: Выделить всё

olej@nvidia /etc/init.d $ ls -l /etc/init.d/openvpn
-rwxr-xr-x 1 root root 10098 февр.  4  2014 /etc/init.d/openvpn
Естественно, всё это должно быть проинсталлированог, как минимум, на 2-х компьютерах, между котогрыми будет устанавливаться туннель.
Я делаю это себе в среде VirtualBox, одним из концов VPN pead-to-pear будет хост компьютер:

Код: Выделить всё

olej@nvidia /etc/openvpn $ uname -a
Linux nvidia 3.13.0-37-generic #64-Ubuntu SMP Mon Sep 22 21:30:01 UTC 2014 i686 i686 i686 GNU/Linux
olej@nvidia /etc/openvpn $ lsb_release -ircd
Distributor ID:	LinuxMint
Description:	Linux Mint 17.1 Rebecca
Release:	17.1
Codename:	rebecca

Другой конец VPN - VM:

Код: Выделить всё

olej@mint1 ~ $ uname -a
Linux mint1 3.16.0-38-generic #52~14.04.1-Ubuntu SMP Fri May 8 09:44:48 UTC 2015 i686 i686 i686 GNU/Linux
olej@mint1 ~ $ /usr/bin/lsb_release -ircd
Distributor ID: LinuxMint
Description:    Linux Mint 17.2 Rafaela
Release:        17.2
Codename:       rafaela
Эта VM имеет 2 сетевых адаптера: 1 в режиме bridge в LAN и далее в Интернет, а 2-й - виртуальный адаптер хоста, связь с хост-машиной, подсеть 192.168.56.0/24.
IP хост-машины 192.168.56.1, IP VM - 192.168.56.101.
Вот к этой подсети и пристроим VPN.
Вложения
vm.png

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: OpenVPN

Непрочитанное сообщение Olej » 31 июл 2015, 19:56

Существует много вариантов использования VPN, точнее управления SSL-сертификатами для разных клиентов.
Но меня интересует только испытательный стенд для своих работ, т.е. вполне достаточно pear-to-pear соединения 2-х хостов со статическим ключом.
Генерируем это ключ (произвольный файл static.key):

Код: Выделить всё

olej@nvidia ~/2015_WORK/HISTORY.nvidia/07/31 $ openvpn --genkey --secret static.key
olej@nvidia ~/2015_WORK/HISTORY.nvidia/07/31 $ ls -l static.key 
-rw------- 1 olej olej 636 июля  31 19:50 static.key
Вот так тестируем что всё получилось (вывод очень большой!)

Код: Выделить всё

olej@nvidia ~/2015_WORK/HISTORY.nvidia/07/30 $ openvpn --test-crypto --secret static.key
Thu Jul 30 14:36:20 2015 OpenVPN 2.3.2 i686-pc-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [PKCS11] [eurephia] [MH] [IPv6] built on Dec  1 2014
Thu Jul 30 14:36:20 2015 OpenVPN 2.3.2 i686-pc-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [PKCS11] [eurephia] [MH] [IPv6] built on Dec  1 2014
Thu Jul 30 14:36:20 2015 Entering OpenVPN crypto self-test mode.
Thu Jul 30 14:36:20 2015 TESTING ENCRYPT/DECRYPT of packet length=1
Thu Jul 30 14:36:20 2015 TESTING ENCRYPT/DECRYPT of packet length=2
Thu Jul 30 14:36:20 2015 TESTING ENCRYPT/DECRYPT of packet length=3
Thu Jul 30 14:36:20 2015 TESTING ENCRYPT/DECRYPT of packet length=4
Thu Jul 30 14:36:20 2015 TESTING ENCRYPT/DECRYPT of packet length=5
Thu Jul 30 14:36:20 2015 TESTING ENCRYPT/DECRYPT of packet length=6
Thu Jul 30 14:36:20 2015 TESTING ENCRYPT/DECRYPT of packet length=7
Thu Jul 30 14:36:20 2015 TESTING ENCRYPT/DECRYPT of packet length=8
Thu Jul 30 14:36:20 2015 TESTING ENCRYPT/DECRYPT of packet length=9
...

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: OpenVPN

Непрочитанное сообщение Olej » 31 июл 2015, 20:42

После установки OpenVPN для ручного запуска у вас ничего (в конфигурациях) не будет готово (хотя там море example-ов будет установлено чтоб разобраться легко). Конфигурационный каталог пустой:

Код: Выделить всё

olej@mint1 ~ $ ls -l /etc/openvpn/
итого 4
-rwxr-xr-x 1 root root 1301 Дек  2  2014 update-resolv-conf
1. на обоих хостах копируем сгенерированный ключевой файл (один и тот же):

Код: Выделить всё

olej@mint1 ~/2015_WORK/31.07 $ sudo cp static.key /etc/openvpn
olej@mint1 ~/2015_WORK/31.07 $ ls -l /etc/openvpn
итого 8
-rw------- 1 root root  636 Июл 31 13:21 static.key
-rwxr-xr-x 1 root root 1301 Дек  2  2014 update-resolv-conf
2. создаём там же конфигурацию для своего статического соединения...

- на VM:

Код: Выделить всё

mint1 openvpn # touch /etc/openvpn/static.conf
mint1 openvpn # cat static.conf
remote 192.168.56.1
dev tun
ifconfig 10.3.1.2 10.3.1.1
secret static.key
ping 10
verb 3
mute 10
- на хост-машине (реальной):

Код: Выделить всё

olej@nvidia /etc/openvpn $ sudo touch /etc/openvpn/openvpn.conf
olej@nvidia /etc/openvpn $ sudo cat /etc/openvpn/openvpn.conf
remote 192.168.56.101
dev tun
ifconfig 10.3.1.1 255.255.255.0
secret static.key
ping 10
verb 3
mute 10
Почему разные имена одинаковых по сути файлов?
А как назвалось, так и получилось ;-)

Т.е. над открытым каналом 192.168.56.1 -> 192.168.56.101 я надстраиваю закрытый VPN канал 10.3.1.1 -> 10.3.1.2

Всё! Старт (показываю с одной стороны, с другой то же самое):

Код: Выделить всё

nvidia openvpn # openvpn --config openvpn.conf
Fri Jul 31 14:48:08 2015 OpenVPN 2.3.2 i686-pc-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [PKCS11] [eurephia] [MH] [IPv6] built on Dec  1 2014
Fri Jul 31 14:48:08 2015 WARNING: --ping should normally be used with --ping-restart or --ping-exit
Fri Jul 31 14:48:08 2015 Static Encrypt: Cipher 'BF-CBC' initialized with 128 bit key
Fri Jul 31 14:48:08 2015 Static Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Fri Jul 31 14:48:08 2015 Static Decrypt: Cipher 'BF-CBC' initialized with 128 bit key
Fri Jul 31 14:48:08 2015 Static Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Fri Jul 31 14:48:08 2015 Socket Buffers: R=[163840->131072] S=[163840->131072]
Fri Jul 31 14:48:08 2015 TUN/TAP device tun0 opened
Fri Jul 31 14:48:08 2015 TUN/TAP TX queue length set to 100
Fri Jul 31 14:48:08 2015 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
Fri Jul 31 14:48:08 2015 /sbin/ip link set dev tun0 up mtu 1500
Fri Jul 31 14:48:08 2015 /sbin/ip addr add dev tun0 local 10.3.1.1 peer 10.3.1.2
Fri Jul 31 14:48:08 2015 UDPv4 link local (bound): [undef]
Fri Jul 31 14:48:08 2015 UDPv4 link remote: [AF_INET]192.168.56.101:1194
Fri Jul 31 14:48:08 2015 Peer Connection Initiated with [AF_INET]192.168.56.101:1194
Fri Jul 31 14:48:09 2015 Initialization Sequence Completed
...
Вот он, новый интерфейс VPN:

Код: Выделить всё

olej@nvidia ~/2015_WORK/HISTORY.nvidia/07/30 $ ifconfig tun0
tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet addr:10.3.1.1  P-t-P:10.3.1.2  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

olej@nvidia ~/2015_WORK/HISTORY.nvidia/07/30 $ route
Таблица маршутизации ядра протокола IP
Destination Gateway Genmask Flags Metric Ref Use Iface
default         192.168.1.3     0.0.0.0         UG    0      0        0 eth0
10.3.1.2        *               255.255.255.255 UH    0      0        0 tun0
192.168.1.0     *               255.255.255.0   U     1      0        0 eth0
192.168.56.0    *               255.255.255.0   U     0      0        0 vboxnet0
И простейшая проверка (показываю с встречной стороны):

Код: Выделить всё

olej@mint1 ~/2015_WORK/31.07 $ ping -Itun0 10.3.1.1
PING 10.3.1.1 (10.3.1.1) from 10.3.1.2 tun0: 56(84) bytes of data.
64 bytes from 10.3.1.1: icmp_seq=1 ttl=64 time=1.09 ms
64 bytes from 10.3.1.1: icmp_seq=2 ttl=64 time=0.475 ms
64 bytes from 10.3.1.1: icmp_seq=3 ttl=64 time=0.491 ms
^C
--- 10.3.1.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 0.475/0.686/1.094/0.289 ms

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: OpenVPN

Непрочитанное сообщение Olej » 31 июл 2015, 20:58

Olej писал(а): И простейшая проверка (показываю с встречной стороны):
Это были служебные ICMP пакеты...
Для более осмысленной проверки закытого канала хочу попользовать telnet. Но поскольку telnetd (сервер) на реальном хосте подключённом в Интернет - это уж слишком, то сервером telnet делаем виртуальную машину, а клиент будет запрашивать с реальной.
Поехали...

С клиентом на хост-машине у нас по дефаулту всё в порядке:

Код: Выделить всё

olej@nvidia ~ $ which telnet
/usr/bin/telnet
olej@nvidia ~/2015_WORK/HISTORY.nvidia/07/30 $ route
Таблица маршутизации ядра протокола IP
Destination Gateway Genmask Flags Metric Ref Use Iface
default         192.168.1.3     0.0.0.0         UG    0      0        0 eth0
10.3.1.2        *               255.255.255.255 UH    0      0        0 tun0
192.168.1.0     *               255.255.255.0   U     1      0        0 eth0
192.168.56.0    *               255.255.255.0   U     0      0        0 vboxnet0
А вот telnetd сервер по дефаулту не ставится (совершенно резонно).

Код: Выделить всё

olej@mint1 ~ $ apt search telnet
p   dcap-tunnel-telnet              - Telnet tunnel for dCache
p   inetutils-telnet                - Клиент telnet
p   inetutils-telnetd               - Сервер telnet
p   libnet-telnet-cisco-perl        - Additional functionality to automate Cisco
p   libnet-telnet-perl              - Perl module to script telnetable connectio
p   libtelnet-dev                   - Small library for parsing the TELNET proto
p   libtelnet-utils                 - Small library for parsing the TELNET proto
p   libtelnet2                      - Small library for parsing the TELNET proto
p   mactelnet-client                - Console tools for telneting and pinging vi
p   mactelnet-server                - Telnet daemon for accepting connections vi
i   telnet                          - клиент telnet
v   telnet-client                   -
v   telnet-server                   -
p   telnet-ssl                      - telnet client with SSL encryption support
p   telnetd                         - служба telnet
p   telnetd-ssl                     - telnet server with SSL encryption support

Код: Выделить всё

olej@mint1 ~ $ sudo apt install telnetd
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Будут установлены следующие дополнительные пакеты:
  openbsd-inetd
НОВЫЕ пакеты, которые будут установлены:
  openbsd-inetd telnetd
...
Настраивается пакет openbsd-inetd (0.20091229-2ubuntu3) …
 * Stopping internet superserver inetd
 * Not starting internet superserver: no services enabled
Processing triggers for ureadahead (0.100.0-16) ...
Настраивается пакет telnetd (0.17-36build2) …
Добавление пользователя telnetd в группу utmp
Очень умно, что вместе с telnetd устанавливается суперсервер inetd (в какой-то своей из форм: openbsd-inetd, inetd, xinetd).
Вспоминаем, что telnetd (в отличие от всех серверов и служб) не может запускаться автономно (разве только в отладочном режиме), а запускается всегда по сокетному запросу суперсервером.

Код: Выделить всё

olej@mint1 ~ $ service openbsd-inetd status
 * inetd is running

olej@mint1 ~ $ ps -A | grep inet
 4978 ?        00:00:00 inetd
Нужно ещё проверить:

Код: Выделить всё

olej@mint1 ~ $ cat /etc/inetd.conf
...
#:STANDARD: These are standard services.
telnet          stream  tcp     nowait  telnetd /usr/sbin/tcpd  /usr/sbin/in.telnetd
...
Но там всё в порядке :!:

Всё. Проделываем сессию telnet по закрытому VPN каналу:

Код: Выделить всё

olej@nvidia ~/2015_WORK/HISTORY.nvidia/07/30 $ telnet 10.3.1.2
Trying 10.3.1.2...
Connected to 10.3.1.2.
Escape character is '^]'.
Linux Mint 17.2 Rafaelamint1 login: olej
Password:
Welcome to Linux Mint 17.2 Rafaela (GNU/Linux 3.16.0-38-generic i686)
Welcome to Linux Mint
 * Documentation:  http://www.linuxmint.com
olej@mint1 ~ $ uname -n
mint1
olej@mint1 ~ $ uname -a
Linux mint1 3.16.0-38-generic #52~14.04.1-Ubuntu SMP Fri May 8 09:44:48 UTC 2015 i686 i686 i686 GNU/Linux
olej@mint1 ~ $ /usr/bin/lsb_release -ircd
Distributor ID: LinuxMint
Description:    Linux Mint 17.2 Rafaela
Release:        17.2
Codename:       rafaela
olej@mint1 ~ $ ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 08:00:27:5c:fc:c8 brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 08:00:27:bb:89:ca brd ff:ff:ff:ff:ff:ff
6: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN mode DEFAULT group default qlen 100
    link/none
olej@mint1 ~ $ ifconfig tun0
tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet addr:10.3.1.2  P-t-P:10.3.1.1  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:148 errors:0 dropped:0 overruns:0 frame:0
          TX packets:99 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:8741 (8.7 KB)  TX bytes:6714 (6.7 KB)
olej@mint1 ~ $ ^]
telnet> quit
Connection closed.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: OpenVPN

Непрочитанное сообщение Olej » 31 июл 2015, 21:12

Обращаем внимание на то, что OpenVPN - это альтернатива IPsec (в рамках тех потребностей, о которых я вскользь сказал в начале).

Сравнение OpenVPN и IPsec.
Fri 02 November 2012
Меня тут вовсю спрашивали насчёт сравнения OpenVPN и IPsec. Я не буду сравнивать уровни безопасности, потому что я в это всё равно ничего толком не понимаю. Я просто просуммирую то, что читал, слышал, видел. Где-то я, безусловно, могу ошибаться, но уверен, что я ошибаюсь существенно меньше, чем многие другие писатели статей в блогах.
Существуют два варианта организации VPN: IPsec и OpenVPN. (я не беру в расчёт всякие проприетарные штуки, для которых требуются специальные клиенты и которые стоят малых и немалых денег).
IPsec обычно используется в трёх конфигурациях: туннель (нет возможности пробиться за NAT, поскольку шифруется весь пакет, а nat его корёжит), транспорт (шифруется содержимое пакета, может идти за NAT) и транспорт + PPTP (L2TP), где IPsec занимается шифрованием трафика, идущего в туннеле образованного другой программой.

По сути, как таковой технологии "IPsec" не существует, есть только набор RFC которые описывают отдельные её части, как-то установление соединение, обмен ключами, как и чем шифровать. Причём алгоритм шифрования у IPsec свой. И, судя по записям в сети, в нём достаточно часто находят какие-то уязвимости.
В Linux существует два стека драйверов (NETKEY, встроенный в ядро, и KLIPS, который написали разработчики OpenSwan), и несколько userspace приложений которые позволяют использовать эти драйверы. KLIPS чуть более совершенная версия стека IPsec, но поддерживается только openswan.
OpenVPN может тоже работать в двух режимах, но имеет решающее преимущество - намного более качественная работа за NAT. Причём, в отличие от IPsec, обе стороны могут находиться за фаерволами, лишь бы был открыт тем или иным образом udp/1194.
Да и с точки зрения шифрования OpenVPN более привлекателен. Обмен ключами происходит аналогично IPsec при помощи алгоритма Диффи-Хелмана, а дальше весь трафик шифруется при помощи SSL, который и в браузере есть и где угодно.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: OpenVPN

Непрочитанное сообщение Olej » 01 авг 2015, 14:51

Olej писал(а):Устанавливаем...
Следующий (и последний ;-) ) вопрос, который меня занимает с OpenVPN - это управление VPN с помощью аплата Network Manager (а на самом деле службы Network Manager).
По крайней мере, потому что я настраивал себе с помощью NM реальный VPN канал в сеть крупной международной софтверной компании, когда с ними работал, ... при, естественно, параноидальном уровне отношения к безопасности со стороны их тех. служб. Где-то это в форуме описано ... относительно темы компиляции и использования Cisco VPN Client.

Итак ... поехали:

Код: Выделить всё

olej@nvidia ~ $ apt search network-manager-openvpn
i   network-manager-openvpn         - network management framework (OpenVPN plug
i   network-manager-openvpn-gnome   - network management framework (OpenVPN plug

Код: Выделить всё

olej@nvidia ~/2015_WORK/HISTORY.nvidia/07/31 $ sudo apt install network-manager-openvpn
[sudo] password for olej:
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Рекомендуемые пакеты:
  network-manager-openvpn-gnome plasma-widget-networkmanagement
НОВЫЕ пакеты, которые будут установлены:
  network-manager-openvpn
обновлено 0, установлено 1 новых пакетов, для удаления отмечено 0 пакетов, и 246 пакетов не обновлено.
Необходимо скачать 21,2 kБ архивов.
После данной операции, объём занятого дискового пространства возрастёт на 112 kB.
Получено:1 http://ftp.tu-chemnitz.de/pub/linux/ubuntu/ trusty/universe network-manager-openvpn i386 0.9.8.2-1ubuntu4 [21,2 kB]
Получено 21,2 kБ за 0с (72,8 kБ/c)
Выбор ранее не выбранного пакета network-manager-openvpn.
(Чтение базы данных … на данный момент установлено 225856 файлов и каталогов.)
Preparing to unpack …/network-manager-openvpn_0.9.8.2-1ubuntu4_i386.deb ...
Unpacking network-manager-openvpn (0.9.8.2-1ubuntu4) ...
Настраивается пакет network-manager-openvpn (0.9.8.2-1ubuntu4) …
После всяких таких манипуляций (например и создание нового соединения) службу NM нужно перезапускать. Часто об этом забывают, а потом кричат в форумах что "NM - это отстой" (но кто там отстой - это вопрос обычно спорный :lol: ). Но этому делу легко помочь:

Код: Выделить всё

olej@nvidia ~/2015_WORK/HISTORY.nvidia/07/31 $ service network-manager status
network-manager start/running, process 943
olej@nvidia ~/2015_WORK/HISTORY.nvidia/07/31 $ sudo service network-manager restart
network-manager stop/waiting
network-manager start/running, process 9157
Создаём в NM новое VPN соединение:
vpn0.png
vpn1.png
vpn1.png (20.81 КБ) 5661 просмотр
И создав такое соединение, а потом повозившись с его настройкой, убеждаемся :-o , что это какое-то виндоузное говно, с их NT-доменами прочими радостями..
Милости просим, но мне такого не надо. :lol:

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: OpenVPN

Непрочитанное сообщение Olej » 01 авг 2015, 22:17

Olej писал(а):Милости просим, но мне такого не надо. :lol:
То что нам нужно - это:

Код: Выделить всё

olej@nvidia ~/2015_WORK/HISTORY.nvidia/07/31 $ sudo apt install network-manager-openvpn-gnome
[sudo] password for olej:
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
НОВЫЕ пакеты, которые будут установлены:
  network-manager-openvpn-gnome
обновлено 0, установлено 1 новых пакетов, для удаления отмечено 0 пакетов, и 246 пакетов не обновлено.
Необходимо скачать 131 kБ архивов.
После данной операции, объём занятого дискового пространства возрастёт на 1 256 kB.
Получено:1 http://ftp.tu-chemnitz.de/pub/linux/ubuntu/ trusty/universe network-manager-openvpn-gnome i386 0.9.8.2-1ubuntu4 [131 kB]
Получено 131 kБ за 25с (5 065 Б/c)
Выбор ранее не выбранного пакета network-manager-openvpn-gnome.
(Чтение базы данных … на данный момент установлено 225866 файлов и каталогов.)
Preparing to unpack …/network-manager-openvpn-gnome_0.9.8.2-1ubuntu4_i386.deb ...
Unpacking network-manager-openvpn-gnome (0.9.8.2-1ubuntu4) ...
Настраивается пакет network-manager-openvpn-gnome (0.9.8.2-1ubuntu4) …
vpn4.png
После этого у нас появляется новая позиция для создания коннектов в NM - совместимость с OpenVPN.
Теперь можем создавать новое соединение:
vpn1.png
Но там есть одна очень неприятная фишка ... про которую я забыл с прошлой возни с OpenVPN, Но тога была Fedora и несколько отличающийся визуально интерфейс NM :-o
В этот раз я на этой забывчивости снова убил часов 5 времени :-(
Состоит она в том, что NM, создавая интерфейс tun для VPN (можно и другой заказать) по умолчанию делает его дефаултным шлюзом хоста..
И тогда он вам молча подправить таблицу роутинга как-то так:

Код: Выделить всё

olej@nvidia ~ $ ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether f4:6d:04:60:78:6f brd ff:ff:ff:ff:ff:ff
4: vboxnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN mode DEFAULT group default qlen 1000
    link/ether 0a:00:27:00:00:00 brd ff:ff:ff:ff:ff:ff
12: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN mode DEFAULT group default qlen 100
    link/none

olej@nvidia ~ $ route
Таблица маршутизации ядра протокола IP
Destination Gateway Genmask Flags Metric Ref Use Iface
default         *               0.0.0.0         U     0      0        0 tun0
10.2.2.2        *               255.255.255.255 UH    0      0        0 tun0
192.168.1.0     *               255.255.255.0   U     1      0        0 eth0
192.168.1.3     *               255.255.255.255 UH    0      0        0 eth0
192.168.56.0    *               255.255.255.0   U     0      0        0 vboxnet0
192.168.56.101  *               255.255.255.255 UH    0      0        0 vboxnet0
Здесь создался tun0 интерфейс с IP=10.2.2.1, но весь трафик роутится через созданный интерфейс на "шлюз" 10.2.2.2. И вы тут же теряете Интернет ... и многое другое. (к счастью, если в NM просто остановить этот интерфейс, то он грамотно восстановит вашу старую таблицу роутинга).
Это свойство NM может быть очень полезно для установки VPN на интерфейсе в Интернет, это самый частый случай ... и не будет создавать проблем для новичков ... но это не то что нам надо для экспериментов.
Для этой фишки на совсем другой вкладке "Параметры IPv4" создания (или редактирования) интерфейса есть такое неприметное место "Маршруты":
vpn3.png
И в дополнениях флажок:
vpn2.png
vpn2.png (22.53 КБ) 5653 просмотра
Вот теперь с созданным коннектом можно экспериментировать...

Ответить

Вернуться в «Сети»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 11 гостей