Ник Пост Дата
dark(water)

Всех приветствую друзья!
Поделителесь пожалуста информацией по следующему вопросу:
Дано - впс-сервер с настроенным Stunnel и OpenVPNserver и клиент с настроенным Stunnel и OpenVPNserver. При подключении клиента через Stunnel и OpenVPN, клиент видит только других клиентов в сети, сервер и др ресурсы в сети OpenVPN, доступа в интернет нет… Пробовал настраивать таким же методом на различных ВПС разных повайдеров (vpsag, cloud.ru), результат один… Работать данная связка перестала где-то 2-3 месяца назад, не могу понять почему. Если кто знает подскажите плиз, почему такое происходит?
client_ovpn.conf (305 байтов)
client_stunnel.conf (159 байтов)
srv_stunnel.conf (173 байта)
svr_ovpn.conf (342 байта)

2024-05-16T13:37:54.781Z
ValdikSS

Таким — это каким?
Вероятно, у вас блокируются транзитные пакеты firewall’ом, либо маршрутизация не включена вовсе (net.ipv4.ip_forward).

2024-05-16T16:22:06.417Z
dark(water)

Я имею ввиду конфиги настроены, таким же образом сейчас, до того, как обрубило все. На сервере net.ipv4.ip_forward=1, на клиенте net.ipv4.ip_forward=0. На клиенете поставил 1, но не завелось. По поводу firewall’а, он не включен:
на клиенте >>
cyber@yodo:~$ sudo ufw status
Status: inactive
на сервере >>
user1@vpn:/etc/openvpn/server$ sudo ufw status
Status: inactive

маршруты выглядят так:
клиент >>
cyber@yodo:~$ route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.8.0.1 128.0.0.0 UG 0 0 0 tun0
default router.lan 0.0.0.0 UG 100 0 0 ens18
10.8.0.0 0.0.0.0 255.255.255.0 U 0 0 0 tun0
ns1.onlime.ru router.lan 255.255.255.255 UGH 100 0 0 ens18
ns2.onlime.ru router.lan 255.255.255.255 UGH 100 0 0 ens18
localhost router.lan 255.255.255.255 UGH 0 0 0 ens18
128.0.0.0 10.8.0.1 128.0.0.0 UG 0 0 0 tun0
192.168.88.0 0.0.0.0 255.255.255.0 U 100 0 0 ens18
router.lan 0.0.0.0 255.255.255.255 UH 100 0 0 ens18

server >>
user1@vpn:/etc/openvpn/server$ route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default _gateway 0.0.0.0 UG 100 0 0 enp3s0
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 enp3s0
10.8.0.0 0.0.0.0 255.255.255.0 U 0 0 0 tun0
169.254.169.254 10.0.0.2 255.255.255.255 UGH 100 0 0 enp3s0

2024-05-16T16:54:43.128Z
Xunlei

Помимо настройки самого тунеля необходимо настроить машрутизацию между сетями, например, с помощью firewalld добавив policy с настроенными ingress-zone и egress-zone.

2024-05-16T17:06:06.883Z
dark(water)

это разве обязательно? 2 мес назад работало все с дефолтными правилами.

2024-05-16T17:09:24.447Z
Xunlei

Не знаю, я не пользуюсь квик инсталлами, компилирую и копирую вручную и всегда прописываю машрутизацию вручную. Мне нравится для этого использовать firewalld — высокоуровневая надстройка над nftables.

2024-05-16T17:12:14.421Z
ValdikSS

Ну а туннель-то сам стабильно работает? Когда вы пингуете клиентов внутри сети, вы можете делать это продожительное время без проблем?
Если так, то ищите проблему на стороне сервера: либо в правилах маршрутизации, либо в файрволле.
Отлаживайте добавлением правил файрволла и просмотром счётчиков на них, а также с помощью tcpdump.
Также проверьте DNS — убедитесь, что ваш 10.9.0.1 действительно отвечает на запросы.

2024-05-16T17:19:09.832Z
dark(water)

внутренняя сеть работает хорошо (сужу по работе 1с), проблем нет. Провайдеры пишут, что у них все ок, они ничего не меняли))
Знакомый сказал, что РКН блочит, но как? если блочил бы, то вся сеть неверное бы падала.
Может кто платно помочь разобраться\донастроить?

2024-05-16T17:21:52.977Z
Xunlei

Бесплатный пример конфига на всякий случай (iptables ufw должны быть удалены чтобы не мешались):

Создаём зону внешнего интерфейса с интернетом:
	sudo firewall-cmd --permanent --new-zone="mine_external"
Добавляем интерфейс к зоне:
	sudo firewall-cmd --permanent --zone="mine_external" --add-interface=ens33
Создаём зону виртуального интерфейса тунеля:
	sudo firewall-cmd --permanent --new-zone="mine_ikev2"
Добавляем интерфейс к зоне:
	sudo firewall-cmd --permanent --zone="mine_ikev2" --add-interface=tun
Настройка SNAT для внешней зоны
	sudo firewall-cmd --permanent --zone="mine_external" --add-masquerade
Настройка транзитного трафика между зонами
	sudo firewall-cmd --permanent --new-policy="_ikev2_to_exernal"
	sudo firewall-cmd --permanent --policy="_ikev2_to_exernal" --set-target ACCEPT
	sudo firewall-cmd --permanent --policy="_ikev2_to_exernal" --add-ingress-zone="mine_ikev2"
	sudo firewall-cmd --permanent --policy="_ikev2_to_exernal" --add-egress-zone="mine_external"

Ну там ещё можно настроить открытие порта тунеля:

	sudo firewall-cmd --permanent --new-service=mine_tunnel
	sudo firewall-cmd --permanent --service=mine_tunnel --set-description=Mine Tunnel service
	sudo firewall-cmd --permanent --service=mine_tunnel --add-port=1234/tcp
	sudo firewall-cmd --permanent --zone="mine_external" --add-service="mine_tunnel"

если по умолчанию стоит отброс пакетов:

	sudo firewall-cmd --permanent --zone="mine_external" --set-target=DROP
2024-05-16T17:37:43.757Z
dark(water)

Спасибо, не знаю на сколько он актуален в моем случае)) Но в любом случае пригодится.

2024-05-16T18:36:06.074Z
dark(water)

Я погуглил сейчас и вижу, что в моем случае для предоставления доступа к интернету компам из сети необходимо, чтобы net.ipv4.ip_forwarding=“1” было, но оно и так было, в остальных случаях, все пакеты, которые залетают на сервер и не подпадают под правила, по умолчанию в такое случае ACCEPT правило применяется. По этому с правилами все ок. (если в чем-то ошибаюсь поправьте плиз).
По поводу DNS, стоит 10.9.0.1, ранее при таком подходе не работал инет, менял на 8.8.8.8 все заводилось, не знаю почему так…

2024-05-16T20:28:39.824Z
Dhohbr

Наверно потому что надо указывать 10.8.0.1 в качестве днс, у вас же OpenVPN эту сеть выдает. Откуда у вас взялся 10.9.0.1?
Если пинговать IP, например 8.8.8.8, тоже интернета нет?

Покажите ещё вывод sysctl -p

2024-05-16T21:08:03.561Z
dark(water)

не обязательно 10.8.0.1, я настраивал на 10.9.0.1 (не суть в данном случае).
если 8.8.8.8 указать в конфиге клента (dhcp-option DNS 8.8.8.8) - инета все равно нет…
на серваке выполня. sysctl -p, в ответ ничего не выдает… Но если:
user1@vpn:/etc/openvpn/server$ cat /proc/sys/net/ipv4/ip_forward
1
З.Ы. Настраиваю на Ubuntu 20.04, где-то читал, что 20 ubuntu не работает должным образом… Завтра попробую в качестве сервака 22 накатить попробовать.

2024-05-16T23:13:43.972Z
dark(water)

Раскоментировал параметр на сервере
user1@vpn:/etc/openvpn/server$ sudo nano /etc/sysctl.conf
user1@vpn:/etc/openvpn/server$ sysctl -p
sysctl: permission denied on key “net.ipv4.ip_forward”, ignoring
user1@vpn:/etc/openvpn/server$ sudo sysctl -p
net.ipv4.ip_forward = 1

На клиенте рестартанул openvpn-client, поигрался с DNS адресом в конфиге ovpn, интеренета нет)

2024-05-16T23:23:16.173Z
Dhohbr

Если у вас в /etc/sysctl.conf параметр записан так: net.ipv4.ip_forward=1, то попробуйте прописать так net.ipv4.ip_forward = 1, затем выполнить sudo sysctl -p
У меня недавно на свежеустановленном дебиане похожая проблема была, мне добавление пробелов помогло, хотя и так и так должно работать, возможно в моем случае был касяк с каким-то скрытым символом, т.к. я копипастил эту строку с какого-то форума.

2024-05-17T02:34:37.863Z
dark(water)

Да, бывает такое. Но проблема не решилась)

2024-05-17T07:26:57.781Z
Uporoty(Uporoty)

Дело точно не в блокировке РКН, если была бы блокировка, то у вас бы вообще связности с локалкой (сервером) не было.

Я кстати что-то упустил, у вас OpenVPN выдает адреса 10.8.x.x, а на сервере или где-то дальше для 10.8.0.0/24 NAT наружу настроен? Иначе как вы клиентов вообще в интернет выпускать собираетесь?

2024-05-18T15:04:30.866Z
dark(water)

Здравствуйте! NAT не трогал… Все по дефолту… Если подскажите, что сделать, буду признателен, т.к. в этой области пробел, который устранить еще не успел…

2024-05-20T07:33:22.566Z
Uporoty(Uporoty)

Простого ответа нет, все очень сильно зависит от того, какая у вас сеть, что у вас на сервере, и т.д.

Если просто VPS на котором крутятся какие-то сервисы, то смотрите обычную инструкцию по настройке MASQUERADE, их обычно упоминают в инструкциях по настройке VPN. С iptables это будет что-то типа How to configure iptables for openvpn (arashmilani.com)

Возможно вы уже даже это делали когда настраивали, все работало, а потом сервер перезагрузился, и правил снова нет :slight_smile:

2024-05-20T08:42:16.839Z