LINUX.ORG.RU
решено ФорумAdmin

Centos 8, openvpn шлюз

 , ,


0

1

Добрый вечер.

Исходные данные:

CentOS Linux release 8.1.1911 (Core)
OpenVPN 2.4.8 x86_64-redhat-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [PKCS11] [MH/PKTINFO] [AEAD] built on Nov  1 2019
library versions: OpenSSL 1.1.1c FIPS  28 May 2019, LZO 2.08

Сертификаты генерируются с помощью easyrsa.

Суть проблемы

Решил тестово перенести инфраструктуру с centos 7 на centos 8. На сервере используется шлюз openvpn, который позволяет обходить блокировки (т.е. пропускает через себя весь траффик). Перенес весь конфиг и openvpn успешно запустился. Клиент на windows успешно подключается, получает ip адрес. В консоли клиента windows ping и tracert до всех ресурсов работает, но в браузере ссылки не открываются (ошибка, что ссылки недоступны). То есть с подключением к openvpn проблем нет, просто не перебрасывается траффик через шлюз. Подскажите пожалуйста в чем может быть проблема или куда можно покопать?

Что было сделано:

  1. Установлен openvpn
  2. Добавлена следующая конфигурация
port 15861
proto udp
dev tun
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/ovpn-srv-crt-dron-vps.crt
key /etc/openvpn/keys/ovpn-srv-crt-dron-vps.key
dh /etc/openvpn/keys/dh.pem
crl-verify /etc/openvpn/keys/crl.pem
tls-auth /etc/openvpn/keys/ta.key 0
server 10.8.1.0 255.255.255.0
ifconfig-pool-persist ipp.txt
keepalive 10 120
cipher AES-256-CBC
persist-key
persist-tun
log-append /var/log/openvpn.log
verb 3
explicit-exit-notify 1
push "redirect-gateway def1"
comp-lzo
  1. Отключил selinux:
getenforce
Disabled

sestatus
SELinux status:                 disabled
  1. Включил перенаправление на уровне ядра:

Добавил строку net.ipv4.ip_forward=1 в vi /etc/sysctl.conf и выполнил sysctl -p /etc/sysctl.conf

  1. Добавил правила в firewalld (правило для порта openvpn добавил отдельно):

tun0 - интерфейс openvpn

ens3 - внешний интерфейс с белым ip

firewall-cmd --direct --permanent --add-rule ipv4 nat POSTROUTING 0 -o ens3 -j MASQUERADE

firewall-cmd --direct --permanent --add-rule ipv4 filter FORWARD 0 -i tun0 -o ens3 -j ACCEPT

firewall-cmd --direct --permanent --add-rule ipv4 filter FORWARD 0 -i ens3 -o tun0 -m state --state RELATED,ESTABLISHED -j ACCEPT

systemctl restart firewalld

  1. Подключаюсь на клиенте Windows 10 к openvpn (подключение проходит успешно) после чего пытаюсь открыть в бразуере ya.ru - получаю ошибку. Кидаю tracert и ping, получаю следующее (вроде бы все ок): http://joxi.ru/Drl9PzYi0Kg6qm

вывод ip a (убрал только внешний ip) на сервере


1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether *:*:*:*:*:* brd ff:ff:ff:ff:ff:ff
    inet *.*.*.*/24 brd *.*.*.* scope global noprefixroute ens3
       valid_lft forever preferred_lft forever
    inet6 *::*:*:*:*/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
5: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 100
    link/none
    inet 10.8.1.1 peer 10.8.1.2/32 scope global tun0
       valid_lft forever preferred_lft forever
    inet6 fe80::3301:4567:8544:8ab8/64 scope link stable-privacy
       valid_lft forever preferred_lft forever


Вывод route на клиенте до подключения к openvpn: http://joxi.ru/l2ZQ8LJHElvYom

Вывод route на клиенте после подключения к openvpn: http://joxi.ru/4Ak9wzPiXjqLQm

Простыню не читал, если пинг работает а сайты нет - очевидный днс. Ну и юзать openvpn для обхода блокировок это странно.

anonymous
()
Ответ на: комментарий от anonymous

Прочитал зачем-то, ну да. Сервер днс не пушит, судя по конфигу, а что на клиентах - неизвестно.

anonymous
()
Ответ на: комментарий от morohon

Не знаю, что значит «в браузере ссылки недоступны». Если ты пингуешь с клиента по доменному имени, оно корректно резолвится в нужный ip и пингуется, то что-то тут не так.

anonymous
()
Ответ на: комментарий от anonymous

Можете подсказать как протраблшутить? Куда смотреть? Попробовал пропушить dns cloudflare с помощью

push "dhcp-option DNS 1.1.1.1"
push "block-outside-dns"

В итоге получаю невозможность резолва адреса в ip (т.е. после установки этих значений ping и tracert по DNS не работают, а ping 8.8.8.8 успешно отрабатывает). Хотя уверен, раньше (на centos 7) эта комбинация работала

morohon
() автор топика

Ларчик просто открывался. Правило на маскардинг сделал, а для зоны не назначил. решилось выполнением команд:

firewall-cmd --permanent --add-masquerade

firewall-cmd --reload
morohon
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.