Настройка маршрутизации openvpn на сервере (решено)

Автор Ember, 11 сентября 2014, 09:29:21

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Ember

Добрый день! Помогите пожалуйста с такой тривиальной задачей:

Клиент выходит в интернет через роутер (microtik), через openvpn другого провайдера, все работает.
Нужно поднять собственный openvpn сервер и выходить через него (просто выход в интернет через другого провайдера посредством openvpn).
Поставил Debian+openvpn, сервер поднял, создал новое соединение в роутере, коннект происходит, видно что пакеты уходят на сервер, но ответа нет, видимо что то с маршрутами на сервере, потому что на клиенте все работало с предыдущим сервером.
Нужна помощь корректно прописать маршруты на сервере, привожу нужные конфиги:

Настройка сервера server.conf
port 1194
proto tcp
dev tun0
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
persist-key
persist-tun и и.д. (никаких route нет)


Клиент коннектится, на сервере route выглядит так при этом:
default         clt-176-120-25- 0.0.0.0         UG    0      0        0 eth0
10.8.0.0        10.8.0.2        255.255.255.0   UG    0      0        0 tun0
10.8.0.2        *               255.255.255.255 UH    0      0        0 tun0
176.120.25.0    *               255.255.255.0   U     0      0        0 eth0


Привожу также ifconfig

eth0      Link encap:Ethernet  HWaddr 06:a2:80:00:01:60
          inet addr:176.120.25.118  Bcast:176.120.25.255  Mask:255.255.255.0
          inet6 addr: fe80::4a2:80ff:fe00:160/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1023 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1174 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:98812 (96.4 KiB)  TX bytes:204070 (199.2 KiB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet addr:10.8.0.1  P-t-P:10.8.0.2  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:49 errors:0 dropped:0 overruns:0 frame:0
          TX packets:40 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:3329 (3.2 KiB)  TX bytes:2240 (2.1 KiB)

(видно что входящие пакеты идут)

ip route
default via 176.120.25.1 dev eth0
10.8.0.0/24 via 10.8.0.2 dev tun0
10.8.0.2 dev tun0  proto kernel  scope link  src 10.8.0.1
176.120.25.0/24 dev eth0  proto kernel  scope link  src 176.120.25.123


Форвардинг включил:
net.ipv4.ip_forward=1

Судя по всему, в конфиге сервера нужно добавить нужные маршруты для соединения интерфейсов eth0 и tun0, чтобы клиент openvpn увидел интернет на сервере, подскажите пожалуйста как?
Вероятно нужно настроить NAT

Ember

#1
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 -L выдает
Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
ACCEPT     all  --  10.8.0.0/24          anywhere
REJECT     all  --  anywhere             anywhere             reject-with icmp-port-unreachable


Со стороны клиента 10.8.0.1 пингуется, со стороны сервера 10.8.0.6 также пингуется.

Ember

В общем все что выше написано было правильно и работало корректно на сервере, в чем убедился сделав пинг через соединение на клиенте, он проходил.
ping interface=openvpn ya.ru
Нужно было корректно прописать маршруты на клиенте, по умолчанию трафик шел не по тому пути, нужно было лишь задать нужный приоритет интерфейсу.