Добрый вечер.
Исходные данные:
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 проблем нет, просто не перебрасывается траффик через шлюз. Подскажите пожалуйста в чем может быть проблема или куда можно покопать?
Что было сделано:
- Установлен openvpn
- Добавлена следующая конфигурация
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
- Отключил selinux:
getenforce
Disabled
sestatus
SELinux status: disabled
- Включил перенаправление на уровне ядра:
Добавил строку net.ipv4.ip_forward=1 в vi /etc/sysctl.conf и выполнил sysctl -p /etc/sysctl.conf
- Добавил правила в 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
- Подключаюсь на клиенте 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