is group or others accessible

Здравствуйте.
Как и обещал, в выкладываю статью по настройке OpenVPN клиента Linux, мы с вами уже настроили OpenVPN сервер, и нам осталось настроить подключение к нему, иначе для чего он нам нужен, если к нему никто не подключается… С данным мануалом настройка будет весьма проста, эта схема была успешно оттестирована в условиях IT компании и работает по сей день.

Установим пакет OpenVPN:

Поднимем права до root:

Теперь нам необходимо создать конфигурационный файл клиента.

Нам остаётся скачать c OpenVPN сервера, где живет наш удостоверяющий центр, 4 файла:

И положить их в директорию /etc/openvpn рядом с файлом client.conf

т.к. это у нас обычный пользователь, то он должен ходить в нашу локальную сеть, а в интрнет через свое подключение, выясним как ходят пакеты для этого выполним трассировку пакета в локальную сеть:

traceroute 172.16.1.20
traceroute to 172.16.1.20 (172.16.1.20), 30 hops max, 60 byte packets
1 172.16.10.1 (172.16.10.1) 4.066 ms 8.001 ms 7.974 ms
2 172.16.1.20 (172.16.1.20) 7.952 ms 7.931 ms 7.910 ms

Видно что пакет ушел на адрес 172.16.10.1 и с интерфеса eth1 в локальную сеть к целевому IP

Выполним трассировку к google.ru, получаем ответ вида:

traceroute google.ru
traceroute to google.ru (173.194.32.159), 30 hops max, 60 byte packets
1 111.111.111.111 (111.111.111.111) 1.360 ms 1.252 ms 1.177 ms
2 46.61.227.225 (46.61.227.225) 1.865 ms 1.271 ms 1.707 ms
3 95.167.90.39 (95.167.90.39) 18.209 ms 95.167.90.37 (95.167.90.37) 18.170 ms 95.167.90.39 (95.167.90.39) 18.496 ms
4 74.125.146.86 (74.125.146.86) 17.827 ms 17.984 ms 17.946 ms
5 216.239.42.97 (216.239.42.97) 17.771 ms 18.058 ms 18.319 ms
6 216.239.42.83 (216.239.42.83) 17.765 ms 216.239.42.49 (216.239.42.49) 19.130 ms 19.004 ms
7 72.14.236.242 (72.14.236.242) 19.287 ms 18.554 ms 18.802 ms
8 173.194.32.159 (173.194.32.159) 18.025 ms 18.269 ms 18.224 ms

Видно что ответ вылетел черз шлюз сети к которой подключен клиент, а не через наш VPN канал

Для обычного пользователя все работает как надо, чтобы проверить под пользователем supersuer нам необходимо положить ключи в директорию openvpn и поменять запись в client.conf указывающих на названия ключа и сертификата

перезапустить OpenVPN клиента и повторить трасисровку пакетов

traceroute 172.16.1.20
traceroute to 172.16.1.20 (172.16.1.20), 30 hops max, 60 byte packets
1 172.16.10.1 (172.16.10.1) 4.066 ms 8.001 ms 7.974 ms
2 172.16.1.20 (172.16.1.20) 7.952 ms 7.931 ms 7.910 ms

В локальную сеть пакеты ходят без изменений, тут ничего не поменялось

traceroute google.ru
traceroute to google.ru (173.194.122.248), 30 hops max, 60 byte packets
1 172.16.10.1 (172.16.10.1) 6.115 ms 11.448 ms 11.500 ms
2 222.222.222.222 (222.222.222.222) 11.614 ms 11.649 ms 11.676 ms
3 10.158.192.1 (10.158.192.1) 11.691 ms 11.705 ms 11.719 ms
4 v811.m9-3.caravan.ru (212.24.42.49) 11.729 ms 11.744 ms 11.751 ms
5 msk-ix-gw1.google.com (195.208.208.232) 11.736 ms 15.341 ms 15.350 ms
6 66.249.94.100 (66.249.94.100) 15.346 ms 5.884 ms 8.451 ms
7 72.14.252.22 (72.14.252.22) 49.777 ms 49.787 ms 49.796 ms
8 173.194.122.248 (173.194.122.248) 49.510 ms 49.620 ms 49.671 m

А тут видно что пакет попал на наш OpenVPN сервер и вылетел во внешний мир через интерфейс eth0
Значит и эта маршрутизация работает правильно

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

Сегодня разберём как подключить Debian к микротику посредствам OpenVPN. Ранее мы уже разбирали как поднять VPN сервер на микротике, поэтому будем разбирать как подключится к нему с Linux.

Установка

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

после установки переходим в каталог /etc/openvpn/client и создаём файлик client.conf следующего содержания:

proto tcp-client # в этой строчке мы указываем адрес в интернете нашего микротика remote 123.123.123.123 dev tap nobind persist-key tls-client #указываем имена публичного CA сертификата ca ca.crt # публичного сертификата клиента cert client.crt # и его закрытый ключ key client.key #каждые 10 секунд проверять туннель, если нет ответа 120 секунд, переподключаться keepalive 10 120 verb 3 #проверка сертификата сервера #https://openvpn.net/index.php/open-source/documentation/howto.html#mitm remote-cert-tls server cipher AES-256-CBC auth SHA1 pull # эта строка задаёт файл с логином-паролем которые мы прописывали в PPP-Secrets на микротике auth-user-pass auth.cfg # в этой части мы задаём настройки сетей которые находятся за микротиком, # в моём случае 192.168.1.0 с маской 255.255.255.0 это сеть, # а 192.168.221.1 это адрес микротика который мы указывали в PPP профиле route-delay 2 route 192.168.1.0 255.255.255.0 192.168.221.1

в этой же папке создаём файл auth.cfg куда записываем логин-пароль

Сюда же скидываем сертификаты: клиента, CA и секретный ключ клиента. После того как все файлы готовы можно запускать службу. В 9 дебиане это делается через systemd

Тут добавлю немножко деталей. openvpn-client — значит запустить конфиг из папки /etc/openvpn/client, а @client значит запустить конфиг с названием client. Соответственно таким же образом мы можем все файлы накидать в папку server и запуститься командой systemctl start openvpn-server@client. В какую именно папку закидывать конфиг и как запускаться зависит только от Вас.

Проверяем всё ли в порядке командой ifconfig, должен появится новый интерфейс

Если интерфейса нет, смотрим лог файлы

Эта ошибка означает что у вас сгенерирован сертификат с использованием md5, что сейчас считается небезопасным, обновите скрипт который генерировал сертификат и создайте заново всю цепочку ca-server-client. Проверял начиная с 2.4.6 используется sha256, не знаю как более ранние, но более поздние точно нормально генерируют.

Если же всё в порядке добавляем службу в автозапуск

На этом всё.
Как и прежде любые вопросы или пожелания можно оставлять ниже в комментариях.

Добрый день. Делал все по инструкции (на винде работает хорошо ovpn), но интерфейс tap не создается. В чем может быть проблема, из лога видно, как будто он не понимает сертификатов? Попробовал изменить права на сертификаты, выставил 600, не помогло.

В конфиге у вас тоже dev tap, но в проверке вы пишите, что должен появиться tun0, просто опечатка?

ну так а лог то где, или погадать на кофейной гуще предлагаете?
картинка от другого конфига )
я tap не настраиваю почти никогда, это самый просто и самый негибкий вариант.

Вот лог:
Mon Oct 1 22:04:31 2018 WARNING: Ignoring option ‘dh’ in tls-client mode, please only include this in your server configuration
Mon Oct 1 22:04:31 2018 WARNING: file ‘/etc/openvpn/client-keys/admin.key’ is group or others accessible
Mon Oct 1 22:04:31 2018 WARNING: file ‘/etc/openvpn/client-keys/ta.key’ is group or others accessible
Mon Oct 1 22:04:31 2018 OpenVPN 2.4.6 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [PKCS11] [MH/PKTINFO] [AEAD] built on Jul 30 2018
Mon Oct 1 22:04:31 2018 library versions: OpenSSL 1.1.0h 27 Mar 2018, LZO 2.08
Mon Oct 1 22:04:31 2018 OpenSSL: error:140AB18E:SSL routines:SSL_CTX_use_certificate:ca md too weak
Mon Oct 1 22:04:31 2018 Cannot load certificate file /etc/openvpn/client-keys/admin.crt
Mon Oct 1 22:04:31 2018 Exiting due to fatal error

Если вы не настраиваете tap, то как перенастроить через tun?

а файл то /etc/openvpn/client-keys/admin.crt вообще существует?

Конечно существует. Этот же файл используется на винде.

давайте конфиг тогда на https://pastebin.com, и сюда ссылку, посмотрим что там,
и туда же ls -lh в папке /etc/openvpn/client-keys/
и сам серт cat /etc/openvpn/client-keys/admin.crt.
на ошибку is group or others accessible можно не обращать особо внимания.

Fri Oct 5 17:24:11 2018 WARNING: Ignoring option ‘dh’ in tls-client mode, please only include this in your server configuration
Fri Oct 5 17:24:11 2018 WARNING: cannot stat file ‘/etc/openvpn/client-keys/ta.key’: No such file or directory (errno=2)
Options error: —tls-auth fails with ‘/etc/openvpn/client-keys/ta.key’: No such file or directory (errno=2)
Options error: Please correct these errors.
Use —help for more information.

А вот лог, если добавить в папку с ключами файл ta.key

Fri Oct 5 17:33:17 2018 WARNING: Ignoring option ‘dh’ in tls-client mode, please only include this in your server configuration
Fri Oct 5 17:33:17 2018 OpenVPN 2.4.6 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [PKCS11] [MH/PKTINFO] [AEAD] built on Jul 30 2018
Fri Oct 5 17:33:17 2018 library versions: OpenSSL 1.1.0h 27 Mar 2018, LZO 2.10
Fri Oct 5 17:33:17 2018 OpenSSL: error:140AB18E:SSL routines:SSL_CTX_use_certificate:ca md too weak
Fri Oct 5 17:33:17 2018 Cannot load certificate file /etc/openvpn/client-keys/admin.crt
Fri Oct 5 17:33:17 2018 Exiting due to fatal error

Запуск произвожу через команду:
systemctl start openvpn-client@client

у вас сертификат использует md5 вместо sha1 если я всё правильно понимаю, это считается не секурно, вот он и жалуется, можно исправить, но если есть возможность лучше сертификаты перегенерировать под sha1

client
dev tap
dev-type tap
persist-tun
persist-key
proto tcp-client
cipher BF-CBC
auth SHA512
remote vpn1. .ru
port 8217
ca /home//.cert/217/ca.crt
tls-auth /home//.cert/217/ta.key 1
tls-client
comp-lzo yes
key /home//.cert/217/.key
cert /home//.cert/217/.crt

  • Вопрос задан более двух лет назад
  • 848 просмотров

ERROR: Linux route add command failed: external program exited with error status: 2

клиент опенвпн добавляет маршруты в таблицу маршрутизации на что требуются права админа.

Источник: computermaker.info

Техника и Гаджеты
Добавить комментарий