News:

Теория- это когда ты знаешь все, но ничего не работает. Практика - это когда все работает, но никто не знает почему.

Main Menu

Проблемы с OpenVPN, медленное подключение к клиентам, обрывы связи

Started by Призрак, 10 May 2019, 21:10

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

Призрак

Ну вот, при вашей схеме у меня есть связь только до 192.168.10.1, но нет связи до 192.168.10.12. Фиг знает почему. В общем, пришлось прописывать маршрут, только тогда всё заработало. Я очень опечален.

Уваров А.С.

Quote from: Призрак on 23 May 2019, 07:39Вы меня прямо удивляете, с каждым днём всё больше. Из статьи, вестимо, человека, которого вы нахваливали, откуда же ещё?

Поэтому я и спрашиваю, вы понимаете, хотя бы в общих чертах, что делаете? В той статье применен один подход к маршрутизации, я вам показал другой и фактически дал готовый конфиг. У вас же смешались в кучу кони, люди...

Призрак

Вот как оно, оказывается, бывает. Как говорится, есть фраза - в чужом глазу соломинку ты видишь, в своём глазу бревна не разглядишь. Я допустил чудовищную ошибку в конфиге, вместо параметра.

push "route 192.168.10.0 255.255.255.0"
В конфиге сервера я написал следующее.

push "route 192.168.0.0 255.255.255.0"
То он у меня и ломился, по несуществующему адресу. Теперь всё работает отлично, всё пингуется. Вот, публикую конфиг сервера, с работы.

proto udp
port 1200
dev tun
tls-server
topology subnet
route-method exe
route-delay 5
dev-node OpenVPN
server 10.8.0.0 255.255.255.0
route-gateway 10.8.0.1
client-config-dir "C:\\Program Files\\OpenVPN\\ccd"
ca  "C:\\Program Files\\OpenVPN\\easy-rsa\\keys\\ca.crt" 
cert "C:\\Program Files\\OpenVPN\\easy-rsa\\keys\\server.crt" 
key  "C:\\Program Files\\OpenVPN\\easy-rsa\\keys\\server.key" 
dh "C:\\Program Files\\OpenVPN\\easy-rsa\\keys\\dh2048.pem"
tls-auth "C:\\Program Files\\OpenVPN\\easy-rsa\\keys\\ta.key" 0
push "route 192.168.10.0 255.255.255.0"
route 192.168.20.0 255.255.255.0 10.8.0.2
route 192.168.30.0 255.255.255.0 10.8.0.3
route 192.168.50.0 255.255.255.0 10.8.0.5
route 192.168.60.0 255.255.255.0 10.8.0.6
cipher BF-CBC
comp-lzo
verb 1
keepalive 5 60
sndbuf 524288
rcvbuf 524288

Маршруты

route 192.168.20.0 255.255.255.0 10.8.0.2
route 192.168.30.0 255.255.255.0 10.8.0.3
route 192.168.50.0 255.255.255.0 10.8.0.5
route 192.168.60.0 255.255.255.0 10.8.0.6

Я прописал, чтобы на будущее, когда всё выправлю, сделать связь между клиентами. Файлы в ccd я очистил. У меня ещё будут вопросы, вот, например мой конфиг, с которым я подключаюсь из дома.

ifconfig-push 10.8.0.7 255.255.255.0
push "dhcp-option DNS 192.168.10.12"
push "dhcp-option DOMAIN xxxx.local"
push "route 192.168.30.0 255.255.255.0"
push "route 192.168.60.0 255.255.255.0"
push "sndbuf 524288"
push "rcvbuf 524288"
iroute 192.168.12.0 255.255.255.0

Я ведь правильно указал там маршруты

push "route 192.168.30.0 255.255.255.0"
push "route 192.168.60.0 255.255.255.0"

Потому - что сервер о них не знает или нет, и их надо убрать? Вроде бы до добавления этих надписей у меня доступа в ту сеть не было!

Иногда выдаёт почему - то такую ошибку.

Thu May 23 22:47:59 2019 TLS Error: local/remote TLS keys are out of sync: [AF_INET]xxx.xxx.xxx.xxx:1200

Уваров А.С.

Эти маршруты нужны не серверу, а вашему клиенту, чтобы он знал, что делать с пакетами к сетям 30 и 60.

Призрак

Скажите ещё пожалуйста, в таком случае, строчка выделенная красным вообще нужна в конфиге клиента, если у меня в конфиге сервера есть такая строчка?

push "route 192.168.10.0 255.255.255.0"
dev tun
proto udp
port 1200
remote XX.XXX.XXX.XXX
tls-client
remote-cert-tls server
route-method exe
route-delay 10
route 192.168.0.0 255.255.255.0  (кстати, эта строчка и неправильная, нужно 10.0!)
pull
ca "C:\\Program Files\\OpenVPN\\keys\\ca.crt"
cert "C:\\Program Files\\OpenVPN\\keys\\xx.crt"
key "C:\\Program Files\\OpenVPN\\keys\\xx.key"
tls-auth "C:\\Program Files\\OpenVPN\\keys\\ta.key" 1
cipher BF-CBC
comp-lzo
verb 1
keepalive 5 60

Призрак

Кстати, я больше стал любить Linux и ненавидеть Windows и антивирусное программное обеспечение. Нужно было срочно поставить шлюз, в один из филиалов. Поставил Windows Server, накатил антивирус, все (!!!) патчи, включаю, только начинаю настраивать, хоп, прилетело! Уже служба маршрутизации не работает DHCP отпал, просто кошмар! Касперский стоит таких денег, даже для организации, как он мог такое вообще допустить, полное непонимание. Неизвестные службы, неизвестные скрипты в temp. Ладно, занюханная рабочая станция, но сервер!

В общем, проклиная всё и вся, я снёс эту мерзость, поставил Debian Linux. Буквально всё поднялось, сразу, заработало. И никаких проблем. Настроил клиента по этой статье.

https://interface31.ru/tech_it/2016/09/organizaciya-kanalov-mezhdu-ofisami-pri-pomoshhi-openvpn-na-platforme-linux.html

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

STALKER_SLX

Quote from: Призрак on 24 May 2019, 09:15Хочется узнать, как на Debian Linux настроить брандмауэр по нормальному и уже чтобы ни о чём не беспокоиться.

Начните от сюда:
https://serveradmin.ru/debian-nastroyka-servera/
https://serveradmin.ru/nastroyka-internet-shlyuza-na-debian/
https://serveradmin.ru/nastroyka-seti-v-debian/


Там на русском языке и с подробным описанием того, что и как для Debian 8, но практически ВСЁ применимо и для 9-й версии! А дальше уже посмотрите, какие сервисы у Вас там крутятся и какие правила Вам добавлять/удалять и какие порты нужно открывать/закрывать!


Уваров А.С.

Quote from: Призрак on 24 May 2019, 07:31Скажите ещё пожалуйста, в таком случае, строчка выделенная красным вообще нужна в конфиге клиента, если у меня в конфиге сервера есть такая строчка?

Не нужна. Вы уже передаете этот маршрут с сервера.


Quote from: Призрак on 24 May 2019, 09:15Хочется узнать, как на Debian Linux настроить брандмауэр по нормальному и уже чтобы ни о чём не беспокоиться.

Кажется уже сто раз обсуждали этот вопрос. Берите хоть статью про микротик, хоть про роутер: https://interface31.ru/tech_it/2014/02/ubuntu-server-nastraivaem-router-nat-dhcp-squid3.html - там приведен базовый набор правил, которые обеспечивают необходимый минимум, т.е. нормально открытый брандмауэр для внутренней сети и нормально закрытый для внешней. А далее - дорабатываем под собственные потребности.


Призрак

Рано я радовался. Возникают вот такие ошибки

Tue May 28 09:39:03 2019 XXX.XXX.217.205:1200 TLS Error: local/remote TLS keys are out of sync: [AF_INET6]::ffff:XXX.XXX.217.205:1200 [1]
Tue May 28 09:39:03 2019 XXX.XXX.217.205:1200 TLS Error: local/remote TLS keys are out of sync: [AF_INET6]::ffff:XXX.XXX.217.205:1200 [1]

Призрак

Ещё перестал подключаться один из клиентов, из дома. Входящих нет исходящие есть.

Уваров А.С.

Quote from: Призрак on 28 May 2019, 07:40TLS Error: local/remote TLS keys are out of sync

На UDP это нормально. Пояснения от разработчиков: https://openvpn.net/archive/openvpn-users/2004-12/msg00022.html

В вашем случае я бы вообще убрал tls-auth, или у вас в нем есть реальная необходимость? Данная опция дополнительно подписывает пакеты, неподписанные пакеты отбрасываются без обработки. Это позволят снизить нагрузку на сервер и защититься от ряда атак на отказ в обслуживании. Для большинства локальных систем это неактуально, нужно преимущественно публичным серверам с большим количеством клиентов.

Призрак

Большое спасибо, всё получилось. Только остался ещё важный вопрос - не сломается ли у меня репликация? Вообще, можно ссылку на грамотную статью, как она проходит и как её правильно настроить? У нас остался один сервер, когда мы перенесём всё на новый я хотел бы вплотную заняться этими важными вопросами. Чтобы больше никогда не было проблем.

Уваров А.С.

Quote from: Призрак on 29 May 2019, 08:56Только остался ещё важный вопрос - не сломается ли у меня репликация?

А почему она должна сломаться? Может на надо пытаться чинить то, что не сломано?

IP-связность сети осталась? Осталась. DNS-доступны? Доступны. В остальном контроллеры разберутся сами.

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

Призрак

Всё, я внедрил решение на работе. Стало гораздо быстрее всё работать, удобнее настраивать. Огромная благодарность за помощь. Из дома клиенты подключаются без проблем, всё доступно, маршрутизация работает.

Призрак

Буквально сегодня начались проблемы. В связи с чем пришлось мне выключить tls-auth, всё заработало. Просто достали уже эти сообщения, связь рвётся постоянно, пинги пропадают. Что же это за опция такая, деструктивная. Мне говорят, что нужно проверить дату на устройствах. Везде дата нормальная.

Уваров А.С.

Я вам уже писал, что такое  tls-auth и для чего она нужна. В корпоративных сценариях данная опция скорее не нужна, чем нужна.

Призрак

Почему - то всё равно не прокатило, ошибки те же, причём добавились ещё такие

TLS Error: local/remote TLS keys are out of sync: [AF_INET6]::ffff:89.250.217.204:1200 [1]
TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
TLS handshake failed

При этом всё прекрасно пинговалось, всё работало, я имею в виду белые адреса. Серые вырубились напрочь, удаленные. Не понимаю, почему такое случилось. При этом я удивился ещё тому, что это произошло аккурат во время добавления контроллера домена в существующем домене, BG81-DC-02. Я проделывал это два раза, для починки репликации (выводил и перезаводил снова) и в обоих случаях такая ситуация.

Я ведь отключил авторизацию, может дело в опции tls-client? И, соответственно, на сервере?

Призрак

Вот ещё на клиенте какая ошибка

Unroutable control packet received from [AF_INET]XX.XXX.XXX.XXX:1200 (si=3 op=P_CONTROL_V1)

Призрак

Коллеги, простите, всё равно проблема. Соединение рвётся и восстанавливается не сразу, при этом в логах ничего нет, практически, по проблеме. Вот конфиги

Сервера

proto udp
port 1200
dev tun
tls-server
topology subnet
route-method exe
route-delay 5
dev-node OpenVPN
server 10.8.0.0 255.255.255.0
route-gateway 10.8.0.1
client-config-dir "C:\\Program Files\\OpenVPN\\ccd"
ca  "C:\\Program Files\\OpenVPN\\easy-rsa\\keys\\ca.crt" 
cert "C:\\Program Files\\OpenVPN\\easy-rsa\\keys\\server.crt" 
key  "C:\\Program Files\\OpenVPN\\easy-rsa\\keys\\server.key" 
dh "C:\\Program Files\\OpenVPN\\easy-rsa\\keys\\dh2048.pem"
;tls-auth "C:\\Program Files\\OpenVPN\\easy-rsa\\keys\\ta.key" 0
push "route 192.168.10.0 255.255.255.0"
route 192.168.20.0 255.255.255.0 10.8.0.2
route 192.168.30.0 255.255.255.0 10.8.0.3
route 192.168.50.0 255.255.255.0 10.8.0.5
route 192.168.60.0 255.255.255.0 10.8.0.6
cipher AES-256-CBC
comp-lzo
verb 1
keepalive 5 60
sndbuf 524288
rcvbuf 524288

ccd

ifconfig-push 10.8.0.3 255.255.255.0
push "route 192.168.20.0 255.255.255.0"
push "route 192.168.50.0 255.255.255.0"
push "route 192.168.60.0 255.255.255.0"
push "sndbuf 524288"
push "rcvbuf 524288"
iroute 192.168.30.0 255.255.255.0

Клиента

dev tun
proto udp
port 1200
remote 89.250.XXX.XXX
tls-client
dev-node OpenVPN
remote-cert-tls server
route-method exe
route-delay 5
route 192.168.0.0 255.255.255.0
pull
ca "C:\\Program Files\\OpenVPN\\keys\\ca.crt"
cert "C:\\Program Files\\OpenVPN\\keys\\bg81.crt"
key "C:\\Program Files\\OpenVPN\\keys\\bg81.key"
;tls-auth "C:\\Program Files\\OpenVPN\\keys\\ta.key" 1
cipher AES-256-CBC
comp-lzo
verb 1
keepalive 5 60

Честно, ничего не понимаю.

Уваров А.С.

Quote from: Призрак on 07 June 2019, 12:49Коллеги, простите, всё равно проблема. Соединение рвётся

Рваться оно может по самым разным причинам. В том числе и внешним.

Quoteвосстанавливается не сразу


Вам это ни о чем не говорит?

keepalive 5 60

Призрак

Quote from: Уваров А.С. on 07 June 2019, 16:44Вам это ни о чем не говорит?

каждые 5 секунд посылать ping на удаленный хост, и, если за 60 секунд не было получено ни одного пакета - то перезапускать туннель.

Увеличить или уменьшить счётчик?

Кстати, добавил в конфиг сервера

persist-key
persist-tun

Вроде бы стало стабильнее.

tls-auth я убрал, как Вы и советовали. Больше ничего не стоит трогать?

Во вложении текущий лог журнала сервера. natokris это сотрудница, которая работает из дома, а ghost, это, соответственно, я, из дома. Остальное всё это филиалы.


Уваров А.С.

Quote from: Призрак on 07 June 2019, 21:23каждые 5 секунд посылать ping на удаленный хост, и, если за 60 секунд не было получено ни одного пакета - то перезапускать туннель.

Quote from: Призрак on 07 June 2019, 21:23Увеличить или уменьшить счётчик?

Ну если надо переподключать быстрее, то уменьшить.


Призрак

Осталась одна проблема, даже проблемой её назвать трудно. Когда я добавляю маршрут в конфиг сервера и перезапускаю службу, то клиент на debian не подключается до тех пор, пока не выполню команду sudo /etc/init.d/openvpn restart.

Призрак

Надоел мне уже до чёртиков этот протокол udp. Каждый божий день рвётся соединение, по непонятной причине, с двумя филиалами, на Hyper-V которые! Надо, наверное, переходить на tcp. При этом самое подлое, что в логах либо ничего нет, либо в логах пишет опять ошибка синхронизации tls! Проверял все логи, всё бесполезно. Причина нестабильной работы vpn мне непонятна. Говорят, нужно время проверять. Я сто раз всё проверял, время одинаковое! Я даже на esxi проверял, в vcenter проверял, всё синхронизируется.

Призрак

Кстати, я ещё больше запутался. дело в том, что в логах выходит периодически сообщение

Process for C:\Program Files\OpenVPN\config\bg81.ovpn exited. Restarting in 10 sec.
Кстати, запускать или openvpn legacy service либо openvpn service. Что поставить на запуск?

Уваров А.С.

Quote from: Призрак on 11 June 2019, 07:42При этом самое подлое, что в логах либо ничего нет, либо в логах пишет опять ошибка синхронизации tls!

Вроде бы уже писали - убирайте tls. И что вы хотите увидеть в логах от протокола без подтверждения доставки. Есть старый анекдот:

QuoteЯ знаю отличную шутку про UDP, но не факт, что она до вас дойдет.

Если все равно рвет - проверяйте канал, смотрите ошибки на сетевых интерфейсах.

Про логи, при verb 1 там довольно мало отладочной информации, поднимайте уровень отладки (поддерживается от 0 до 11) и анализируйте.

Quote from: Призрак on 11 June 2019, 09:29Кстати, запускать или openvpn legacy service либо openvpn service. Что поставить на запуск?

Слово legacy ничего не говорит?

Призрак

Quote from: Уваров А.С. on 11 June 2019, 10:55Вроде бы уже писали - убирайте tls. И что вы хотите увидеть в логах от протокола без подтверждения доставки. Есть старый анекдот:

Так я же убрал строчку из файла tls-auth "C:\\Program Files\\OpenVPN\\easy-rsa\\keys\\ta.key" 0 и на клиентах 1, что ещё убрать то?

Quote from: Уваров А.С. on 11 June 2019, 10:55Если все равно рвет - проверяйте канал, смотрите ошибки на сетевых интерфейсах.

Про логи, при verb 1 там довольно мало отладочной информации, поднимайте уровень отладки (поддерживается от 0 до 11) и анализируйте.

Хорошо, сделаю. Мне знакомый говорит, что на Hyper-V иногда бывают обрывы связи, но непонятно почему.

Quote from: Уваров А.С. on 11 June 2019, 10:55Слово legacy ничего не говорит?

Читал, что это старая служба. Само слово Legaсy переводится как наследие.

Призрак

Вот ещё что мне клиент интересненькое на линуксе выдаёт. Приходится вручную перезапускать клиента.



Призрак

Всё, вроде разобрался. Убрал с сервера tls-server а на клиентах tls-client заменил на client.

Призрак

Нет, опять 25. Клиенты не подключаются, теперь, именно те, которые на Hyper-V. Мне это всё уже, честное слово, до чёртиков надоело. Я отключил ему tls авторизацию, ну скажите по человечески, что этой псине ещё нужно? Во вложении ещё и полный лог сервера.

Призрак

В общем, что мы имеем.

1. Вырубаются только те подключения, которые в Hyper-V.

2. Всё мне пришлось вернуть на круги своя, tls-server и tls-client, без этого ни в какую не подключались.

3. включил verb5, красота опять в логи посыпалась. Отсутствие синхронизации плюс ещё плохие пакеты. Как отключить tls я не имею понятия, я сделал то, что сделал, в 64 посту, перестали подключаться клиенты.

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

Уваров А.С.

Quote from: Призрак on 11 June 2019, 14:50Отсутствие синхронизации плюс ещё плохие пакеты.

А это значит, что вы где-то накосячили с маршрутизацией. Вот это откуда и зачем?

route 192.168.20.0 255.255.255.0 10.8.0.2
route 192.168.30.0 255.255.255.0 10.8.0.3
route 192.168.50.0 255.255.255.0 10.8.0.5
route 192.168.60.0 255.255.255.0 10.8.0.6

Самодеятельность я выделил.

Призрак

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

Призрак

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

Идет связь до

10.8.0.2
10.8.0.3
10.8.0.5
10.8.0.6

До соответствующих им сетей отклик не идёт. Всё пропало, маршрутизация сломалась. Окончательно.