Здравствуйте, уважаемые форумчане!
Столкнулся с проблемой при настройке OpenVPN и похоже не смогу ее решить сам.
Цель следующая: имеется сервер с белым IP под Debian 9. На нем, я установил OpenVPN и планирую настроить его как сервер. Есть три территориально разделенных сети, которые выходят через роутер в интернет, в них будут клиенты. У клиентов подсеть 192.168.1.0. Мне бы хотелось, настроить так, что бы:
- все клиенты одной подсети подключались по одному сертификату;
- клиенты не должны видеть клиентов других сетей;
- клиенты должны ходить в интернет через vpn сервер;
- сервер, должен иметь возможность попадать на клиента (мне кажется, что нормально попадать на клиента через сеть которую создает сервер на tun0).
Есть небольшая проблема, на своих клиентов я попадаю по ssh, и в процессе тестирования, обычно теряю к клиенту доступ если, если не так настраиваю vpn, отключение vpn сервера, благо доступ восстанавливает.
Сначала, настраивал по этой статье: https://1cloud.ru/help/linux/openvpnserver_debian7_ubuntu12
Признаюсь, не уверен точно, что клиент хотя бы выходит в интернет, т.к. теряю к нему доступ, а с сервера, он по выданному ip не доступен.
Thu Sep 14 12:26:01 2017 ROUTE_GATEWAY 192.168.1.1/255.255.255.0 IFACE=eth0 HWADDR=00:16:35:65:98:e7
Thu Sep 14 12:26:01 2017 TUN/TAP device tun0 opened
Thu Sep 14 12:26:01 2017 TUN/TAP TX queue length set to 100
Thu Sep 14 12:26:01 2017 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
Thu Sep 14 12:26:01 2017 /sbin/ip link set dev tun0 up mtu 1500
Thu Sep 14 12:26:01 2017 /sbin/ip addr add dev tun0 10.8.0.2/24 broadcast 10.8.0.255
Thu Sep 14 12:26:01 2017 /sbin/ip route add *.*.*.*(<=ИП vpn)/32 via 192.168.1.1
Thu Sep 14 12:26:01 2017 /sbin/ip route add 0.0.0.0/1 via 10.8.0.1
Затем, настраивал вот так: Не работает iroute в ccd openvpn (комментарий)
Здесь, клиент подключился, «прямая» связь с ним не оборвалась сервер его стал видеть по внутренней сети, но клиент в интернет продолжал ходить без vpn.
Что делать?
UPD 1: нашел причину, по которой сервер не попадал на клиента. Конфигурация по умолчанию из примера в дистрибутиве OpenVPN идет с активным ключом comp-lzo, в примере для сервера он выключен.
UPD 2: включение маршрутов и NAT на сервере командами:
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT
iptables -A FORWARD -j REJECT
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
iptables -A INPUT -i tun+ -j ACCEPT
iptables -A FORWARD -i tun+ -j ACCEPT
iptables -A INPUT -i tap+ -j ACCEPT
iptables -A FORWARD -i tap+ -j ACCEPT
Но, на сервере что то стало не так, он перестал пинговать, например yandex.ru. Что то я не так прописываю в маршрутах.