Temat: OpenVPN konfiguracja routingu

Witam
Mam problem z tunelem VPN na Openvpn, mam wszystko skonfigurowane oprócz routingu.
Korzystałem z http://kb.rootbox.com/instalacja-i-konf … werklient/ do konfiguracji serwera i http://eko.one.pl/?p=openwrt-openvpntun  do konfiguracji klienta.
Klient to MR3420 z modemem E3372 Hilink, wewnętrzny adres to 192.168.1.1
Serwer to debian 7 który stoi za routerem z natem (forewarding dla UTP jest) z IP zewnętrznym 95.171.197.XX, Wewnetrzny IP serwera to 10.0.0.1

Tunel OpenVPN działa pięknie - serwer pinguje sie z klientem i odwrotnie, tylko pojawiły się 3 problemy -
1. klient z openwrt ma jako główny interfejs tun0 zamiast eth2 i nie ma dostępu do internetu (wszystko jest kierowane do tunelu vpn)
2. W jaki sposób zrobić przekierowanie portu 9000 do tunelu, tak aby po wpisaniu w mojej lokalnej sieci adresu 10.0.0.1:9000 (10.0.0.1:9000 > tun0 >10.8.0.1 >10.8.0.6 > 192.168.1.10:9000) przekierowało mnie przez tunel vpn do docelowego hosta 192.168.1.10:9000 ?
3. W jaki sposób mogę zrobić forewarding z lanu do VPN ?

2

Odp: OpenVPN konfiguracja routingu

1) Usuń push "redirect-gateway def1" wtedy ruch do Internetu nie będzie szedł przez vpn albo zrób forwarding z vpn do wan
2) Nie bawiłem się tak, więc nie pomogę, ale czy nie lepiej podłączyć się drugim klientem pod serwer vpn? Wtedy będziesz miał podgląd z kamery
3)  iptables -A FORWARD -i lan -o vpn -j ACCEPT

TP-Link TL-WDR3600 v1.5 -  OpenWrt Chaos Calmer 15.05.1 with Luci +Microsoft LifeCam VX-3000
RaspberryPi 2 - OMV Stone Burner 2.0.15 +Creative SB Play +Medion OR24V +DVB-T Media-Tech MT4163  +MP00202AC +3xDS18B20 +HIH-4000-002 +MPXHZ6115A +Samsung SPF-85H +D-Link DUB-H7

3 (edytowany przez manmartin 2016-06-21 12:31:57)

Odp: OpenVPN konfiguracja routingu

Już mi wszystko działa poza jednym - routing na kliencie openwrt.
Po dodaniu trasy domyślnej działa -

                /sbin/route add -net default dev eth2 gateway 192.168.8.1
        /sbin/route add -net 10.0.0.0/24 dev tun0 gateway 10.8.0.1
        /sbin/route add -host 10.0.0.1 dev tun0 gateway 10.8.0.1

Dodałem to do skryptu w init.d i później enable, a poleceń nie wykonuje.

#!/bin/sh /etc/rc.common



start() {       
        /sbin/route add -net default dev eth2 gateway 192.168.8.1
        /sbin/route add -net 10.0.0.0/24 dev tun0 gateway 10.8.0.1
        /sbin/route add -host 10.0.0.1 dev tun0 gateway 10.8.0.1
}                 

stop() {         
         /sbin/route del -net default dev eth2 gateway 192.168.8.1
        /sbin/route del -net 10.0.0.0/24 dev tun0 gateway 10.8.0.1
        /sbin/route del -host 10.0.0.1 dev tun0 gateway 10.8.0.1
}

boot() {
         /sbin/route del -net default dev eth2 gateway 192.168.8.1
        /sbin/route del -net 10.0.0.0/24 dev tun0 gateway 10.8.0.1
        /sbin/route del -host 10.0.0.1 dev tun0 gateway 10.8.0.1
}

Jakiś pomysł żeby mi te polecenia wykonywało automatycznie?

4

Odp: OpenVPN konfiguracja routingu

Jeszcze takie coś - po uruchomieniu nie ma trasy domyślnej, ale po /etc/init.d/network restart pojawia się trasa domyślna.

Jak to działa, że po uruchomieniu nie definiuje trasy domyślnej?
Jak na stałe zdefiniować routing tak aby był uruchomiony od startu?

5

Odp: OpenVPN konfiguracja routingu

root@OpenWrt:~# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         10.8.0.1        0.0.0.0         UG    0      0        0 tun0
10.8.0.0        *               255.255.255.0   U     0      0        0 tun0
10.8.0.1        10.8.0.5        255.255.255.255 UGH   0      0        0 tun0
10.8.0.5        *               255.255.255.255 UH    0      0        0 tun0
192.168.1.0     *               255.255.255.0   U     0      0        0 br-lan
192.168.8.0     *               255.255.255.0   U     0      0        0 eth2
192.168.8.1     *               255.255.255.255 UH    0      0        0 eth2
root@OpenWrt:~# /etc/init.d/network restart
root@OpenWrt:~# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.8.1     0.0.0.0         UG    0      0        0 eth2
10.8.0.0        *               255.255.255.0   U     0      0        0 tun0
192.168.1.0     *               255.255.255.0   U     0      0        0 br-lan
192.168.8.0     *               255.255.255.0   U     0      0        0 eth2
192.168.8.1     *               255.255.255.255 UH    0      0        0 eth2

6

Odp: OpenVPN konfiguracja routingu

Masz trasę domyślną przez vpn. Uruchamiasz router, uruchamia się vpn, zastępuje trasę domyślną swoją. Uruchamiasz network to jest tak jak w konfiguracji, zrestartował byś openvpn to byś miał znów przez vpn.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

7

Odp: OpenVPN konfiguracja routingu

Taki wpisy powinieneś mieć, aby ruch z klienta do Internetu szedł przez tunel vpn:

push "route-gateway 10.8.0.1"
push "redirect-gateway def1"

10.8.0.1 to adres ip serwera wewnątrz tunel vpn.

TP-Link TL-WDR3600 v1.5 -  OpenWrt Chaos Calmer 15.05.1 with Luci +Microsoft LifeCam VX-3000
RaspberryPi 2 - OMV Stone Burner 2.0.15 +Creative SB Play +Medion OR24V +DVB-T Media-Tech MT4163  +MP00202AC +3xDS18B20 +HIH-4000-002 +MPXHZ6115A +Samsung SPF-85H +D-Link DUB-H7

8

Odp: OpenVPN konfiguracja routingu

No własnie nie, nawet gdy wyłączę openvpn nie mam trasy domyślnej.
Nie chce mieć całego ruchu przez VPN. całość ma lecieć przez eth2 i TYLKO 10.0.0.0/24 przez tun0.

9 (edytowany przez manmartin 2016-06-21 13:58:24)

Odp: OpenVPN konfiguracja routingu

Chcę tylko żeby mi ktoś powiedział w jaki sposób dodać to do autostartu:
       /sbin/route add -net default dev eth2 gateway 192.168.8.1
        /sbin/route add -net 10.0.0.0/24 dev tun0 gateway 10.8.0.1
        /sbin/route add -host 10.0.0.1 dev tun0 gateway 10.8.0.1

Po wklepaniu tego w router z odpalonym VPN wszystko działa tak jak ma działać.

Może skrypt ma się uruchomić jako root?

10

Odp: OpenVPN konfiguracja routingu

START=99 dodaj w drugiej linii skryptu i jeszcze raz enable tego skryptu.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

11

Odp: OpenVPN konfiguracja routingu

Dalej to samo, nic się nie zmieniło.
Dopiero wywołanie polecenia /etc/init.d/routing start polecenia się wykonują.
To tak jakby /etc/init.d/routing enable nie działało.

12

Odp: OpenVPN konfiguracja routingu

W /etc/rc.d zobacz czy jest link

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

13

Odp: OpenVPN konfiguracja routingu

Jest, ale nie działa tak samo jak wpisanie /etc/init.d/routing start

14

Odp: OpenVPN konfiguracja routingu

A masz później uruchomienie openvpn? Jeżeli tak to on startuje po podniesieniu wanu.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

15

Odp: OpenVPN konfiguracja routingu

Zrobiłem firstboot bo coś nie grało tak jak ma być.

Co dokładnie robią te 3 opcje w konfigu Openvpn?
client-config-dir ccd
route 10.0.0.1 255.255.255.0
push "route 10.0.0.1 255.255.255.0"

16 (edytowany przez khain 2016-06-22 07:22:11)

Odp: OpenVPN konfiguracja routingu

1) Wskazuje na katalog (o nazwie ccd, w lokalizacji pliku z konfigiem), który zawiera opcje, dla poszczególnych klientów (czyli opcje będą aktywne gdy dany klient się podłączy) https://openlinksys.info/forum/viewthre … ost_134316 (opis jest dla tomato, ale potem wyjaśniłem co powinno znaleźć się w tym katalogu)
2) i 3) masz wyjaśnione w poście nr 6 eko.one.pl/forum/viewtopic.php?id=13826 Czego jeszcze nie wiesz?
Kombinujesz jak koń pod górę z jakimiś skryptami, gdy wszystko można ustawić w konfigu openvpn.

TP-Link TL-WDR3600 v1.5 -  OpenWrt Chaos Calmer 15.05.1 with Luci +Microsoft LifeCam VX-3000
RaspberryPi 2 - OMV Stone Burner 2.0.15 +Creative SB Play +Medion OR24V +DVB-T Media-Tech MT4163  +MP00202AC +3xDS18B20 +HIH-4000-002 +MPXHZ6115A +Samsung SPF-85H +D-Link DUB-H7

17

Odp: OpenVPN konfiguracja routingu

Jeżeli serwer ma IP 10.0.0.1 a klient za tunelem 192.168.1.10 to ja ustawić routing w konfigu openvpn?
coś więcej poza:
push "route 192.168.1.0 255.255.255.0"
route 192.168.1.0 255.255.255.0

Mój skrypt działa (choć czasem się wysypie), wiec wolę to poprawnie skonfigurować - chodzi mi aby klient VPN - openwrt miał stałą trasę routingu do sieci serwera 10.0.0.0/24

18

Odp: OpenVPN konfiguracja routingu

Zasadniczo tak + dodanie forwardingu lan<->vpn. Ja używam opcji topology subnet i ifconfig-push (przypisanie stałego IP dla klienta) i wpis o routingu do sieci klienta wygląda tak

route 192.168.1.0 255.255.255.0 10.8.0.2

Czyli dodana jest informacja przez jaki adres IP pakiet musi wyjść, żeby trafić do tej podsieci. Nie wiem czy bez tego opcja route działa prawidłowo.

TP-Link TL-WDR3600 v1.5 -  OpenWrt Chaos Calmer 15.05.1 with Luci +Microsoft LifeCam VX-3000
RaspberryPi 2 - OMV Stone Burner 2.0.15 +Creative SB Play +Medion OR24V +DVB-T Media-Tech MT4163  +MP00202AC +3xDS18B20 +HIH-4000-002 +MPXHZ6115A +Samsung SPF-85H +D-Link DUB-H7

19 (edytowany przez manmartin 2016-07-05 18:40:43)

Odp: OpenVPN konfiguracja routingu

Adres "10.8.0.2" na końcu polecenia route to adres IP interfejsu tun0 po stronie klienta?

Pojawił się problem z routingiem za nat'em - serwer ma IP lokalne 10.0.0.1 i tak skonfigurowane IPTABLES:

  
iptables -t nat -A PREROUTING -i eth2 -p tcp -d 10.0.0.1 --dport 9000 -j DNAT --to 192.168.1.10:9000
iptables -t nat -A PREROUTING -i eth2 -p tcp -d 10.0.0.1 --dport 9001 -j DNAT --to 192.168.1.1:80
iptables -t nat -A PREROUTING -i eth2 -p tcp -d 10.0.0.1 --dport 9002 -j DNAT --to 192.168.1.10:80
iptables -A FORWARD -i lan -o vpn -j ACCEPT
iptables -A FORWARD -i vpn -o lan -j ACCEPT

W sieci lokalnej mam dostęp po wpisaniu 10.0.0.1:9001 do routera, ale po przekierowaniu portu na moim zewnetrznym routerze nie ma dostępu z zewnątrz, reguła dodana tak samo jak inne które dobrze działają.
Jakieś pomysły co może być winne?

Edit:

Jak to jest że po restarcie serwera trzeba od nowa dodać reguły iptables?

20 (edytowany przez khain 2016-07-06 07:21:08)

Odp: OpenVPN konfiguracja routingu

Tak, adres 10.8.0.2 to adres interfejsu tun po stronie klienta, za którym jest podsieć 192.168.1.0
Dodaj te wpisy do pliku /etc/firewall.user to nie będziesz musiał ich wpisywać po każdym restarcie routera.
Spróbuj dodać wpisy z przełącznikiem -I zamiast -A albo wywal -d 10.0.0.1

TP-Link TL-WDR3600 v1.5 -  OpenWrt Chaos Calmer 15.05.1 with Luci +Microsoft LifeCam VX-3000
RaspberryPi 2 - OMV Stone Burner 2.0.15 +Creative SB Play +Medion OR24V +DVB-T Media-Tech MT4163  +MP00202AC +3xDS18B20 +HIH-4000-002 +MPXHZ6115A +Samsung SPF-85H +D-Link DUB-H7

21

Odp: OpenVPN konfiguracja routingu

Skończyło się na wywaleniu routera na tranceiver i serwer jest jako router zewnętrzny.

Zobaczę jak będzie po nowej konfiguracji.

Dzięki za pomoc

22

Odp: OpenVPN konfiguracja routingu

Mam już połączony serwer bez routera, routing jest, nat śmiga pięknie. po dodaniu do firewall tego

iptables -t nat -A PREROUTING -i eth3 -p tcp -d 10.0.0.1 --dport 9000 -j DNAT --to 192.168.1.10:9000
iptables -t nat -A PREROUTING -i eth3 -p tcp -d 10.0.0.1 --dport 9001 -j DNAT --to 192.168.1.1:80
iptables -t nat -A PREROUTING -i eth3 -p tcp -d 10.0.0.1 --dport 9002 -j DNAT --to 192.168.1.10:80
iptables -A FORWARD -i lan -o vpn -j ACCEPT
iptables -A FORWARD -i vpn -o lan -j ACCEPT
iptables -t nat -A PREROUTING -i eth2 -p tcp -d 95.171.197.81 --dport 9000 -j DNAT --to 192.168.1.10:9000
iptables -t nat -A PREROUTING -i eth2 -p tcp -d 95.171.197.81 --dport 9001 -j DNAT --to 192.168.1.1:80
iptables -t nat -A PREROUTING -i eth2 -p tcp -d 95.171.197.81 --dport 9002 -j DNAT --to 192.168.1.10:80

Jest dostęp tylko z Lan do monitoringu, ale z Wan już nie.

Oto cały firewall (do testów wywaliłem wszystko co mogłoby blokować, ale to nic nie dało)

# wlaczenie w kernelu forwardowania 
/bin/echo 1 > /proc/sys/net/ipv4/ip_forward
# Ochrona przed atakiem typu Smurf
/bin/echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
# Nie aktceptujemy pakietow "source route"
/bin/echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
# Nie przyjmujemy pakietow ICMP rediect, ktore moga zmienic tablice routingu
/bin/echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
# Wlaczamy ochrone przed blednymi komunikatami ICMP error
/bin/echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
# Wlaczenie mechanizmu wykrywania oczywistych falszerstw 
# (pakiety znajdujace sie tylko tablicy routingu)
/bin/echo 65536 > /proc/sys/net/ipv4/netfilter/ip_conntrack_max
/bin/echo 36024 > /proc/sys/net/ipv4/tcp_max_syn_backlog
# zwiekszenie rozmaru tablicy ARP
/bin/echo 1024 > /proc/sys/net/ipv4/neigh/default/gc_thresh1
/bin/echo 4096 > /proc/sys/net/ipv4/neigh/default/gc_thresh2
/bin/echo 8192 > /proc/sys/net/ipv4/neigh/default/gc_thresh3
# Blokada przed atakami typu SYN FLOODING
/bin/echo 1 > /proc/sys/net/ipv4/tcp_syncookies
# Właczenie proxy arp - dzieki temu serwer nie zdycha po kilku
#/bin/echo 1 > /proc/sys/net/ipv4/conf/all/arp_filter
# Zwiekszenie rozmiarutablic routingu
/bin/echo "18192" > /proc/sys/net/ipv4/route/max_size

# czyszczenie starych regul
iptables -F
iptables -X
iptables -t nat -X
iptables -t nat -F
iptables -t mangle -F
iptables -t mangle -X

# ustawienie domyslnej polityki
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH ACK -j DROP
iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH FIN -j DROP
iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH FIN,URG,PSH -j DROP


# utrzymanie polaczen nawiazanych
iptables -A INPUT -j ACCEPT -m state --state ESTABLISHED,RELATED
iptables -A FORWARD -j ACCEPT -m state --state ESTABLISHED,RELATED
iptables -A OUTPUT -j ACCEPT -m state --state ESTABLISHED,RELATED

# udostepniaie internetu w sieci lokalnej
iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -j MASQUERADE
iptables -A FORWARD -s 10.0.0.0/24 -j ACCEPT

iptables -t nat -A PREROUTING -i eth3 -p tcp -d 10.0.0.1 --dport 9000 -j DNAT --to 192.168.1.10:9000
iptables -t nat -A PREROUTING -i eth3 -p tcp -d 10.0.0.1 --dport 9001 -j DNAT --to 192.168.1.1:80
iptables -t nat -A PREROUTING -i eth3 -p tcp -d 10.0.0.1 --dport 9002 -j DNAT --to 192.168.1.10:80
iptables -A FORWARD -i lan -o vpn -j ACCEPT
iptables -A FORWARD -i vpn -o lan -j ACCEPT
iptables -t nat -A PREROUTING -i eth2 -p tcp -d 95.171.197.81 --dport 9000 -j DNAT --to 192.168.1.10:9000
iptables -t nat -A PREROUTING -i ppp0 -p tcp -d 95.171.197.81 --dport 9001 -j DNAT --to 192.168.1.1:80
iptables -t nat -A PREROUTING -i ppp0 -p tcp -d 95.171.197.81 --dport 9002 -j DNAT --to 192.168.1.10:80

Połączenie Wan zrealizowane jest za pomocą PPPoE, jako interfejs WAN mam podać eth2 czy ppp0?

/etc/init.d$ ifconfig
eth2      Link encap:Ethernet  HWaddr 90:2b:34:d5:32:91  
          inet6 addr: fe80::922b:34ff:fed5:3291/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:22017 errors:0 dropped:0 overruns:0 frame:0
          TX packets:13523 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:21948453 (20.9 MiB)  TX bytes:1845039 (1.7 MiB)
          Interrupt:41 

eth3      Link encap:Ethernet  HWaddr ec:08:6b:02:ad:d5  
          inet addr:10.0.0.1  Bcast:10.0.0.255  Mask:255.255.255.0
          inet6 addr: fe80::ee08:6bff:fe02:add5/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:16850 errors:0 dropped:0 overruns:0 frame:0
          TX packets:24341 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1952418 (1.8 MiB)  TX bytes:21332901 (20.3 MiB)
          Interrupt:40 

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:172 errors:0 dropped:0 overruns:0 frame:0
          TX packets:172 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:20132 (19.6 KiB)  TX bytes:20132 (19.6 KiB)

ppp0      Link encap:Point-to-Point Protocol  
          inet addr:95.171.197.81  P-t-P:10.161.1.1  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1480  Metric:1
          RX packets:21072 errors:0 dropped:0 overruns:0 frame:0
          TX packets:13461 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3 
          RX bytes:21161817 (20.1 MiB)  TX bytes:1544997 (1.4 MiB)

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:1861 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1559 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          RX bytes:522900 (510.6 KiB)  TX bytes:231835 (226.4 KiB)

Jak zmodyfikować firewall żeby normalnie można było wystawiać porty na zewnątrz?
Próbowałem wystawić inny host z sieci LAN i to samo...
Próbowałem też tego

khain napisał/a:

Spróbuj dodać wpisy z przełącznikiem -I zamiast -A albo wywal -d 10.0.0.1

i dalej to samo...

23

Odp: OpenVPN konfiguracja routingu

iptables -A FORWARD -i lan -o vpn -j ACCEPT
iptables -A FORWARD -i vpn -o lan -j ACCEPT

Ty nie masz interfejsów o nazwach lan i vpn...

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

24 (edytowany przez manmartin 2016-07-08 14:48:27)

Odp: OpenVPN konfiguracja routingu

Racja, pomyliłem z OpenWRT, a to jest debian.

Wywaliłem i dalej nic to nie dało.

25

Odp: OpenVPN konfiguracja routingu

Dobra już chyba wiem co jest grane.
Miałem taką sama sytuację z AP który miał wpisaną stara bramę.
Pomogła zmiana bramy na access poincie gateway na 10.0.0.1 (parę dni temu stał jeszcze router 10.0.0.254), jedynie zastanawia mnie fakt czemu ze złym gateway nie działa? skoro pakiet i tak trafia do 10.0.0.1 które forewarduje do 95.171.197.XX

W takim razie muszę - skoro 192.168.1.1 ma tunel przez który lecą pakiety tylko do 10.0.0.0/24 (reszta leci od razu do neta) - dodać jeszcze routing do 95.171.197.00/24 przez tunel ?