Miesięczne archiwum: listopad 2017

Połączenie OpenVPN site-to-site między EdgeRouterem a Debianem

Tak na szybko aby nie uleciało 🙂

  1. Logujemy się na EdgeRouter i z poziomu usera (nie configure) generujemy klucz wspólny:
    ubnt@router:~$ generate vpn openvpn-key /config/auth/openvpn-s2s-secret
    Generating OpenVPN key to /config/auth/openvpn-s2s-secret
    Your new local OpenVPN key has been generated
    ubnt@router:~$
  2. Konfigurujemy VPNa od strony EdgeRoutera (w naszym przypadku EdgeRouter ma zewnętrzne stałe IP a Debian będzie się do niego „dopinał”):
    ubnt@router:~$ configure
    ubnt@router# set interfaces openvpn vtun0 local-address 10.1.254.1
    ubnt@router# set interfaces openvpn vtun0 local-port 1195
    ubnt@router# set interfaces openvpn vtun0 mode site-to-site
    ubnt@router# set interfaces openvpn vtun0 openvpn-option --comp-lzo
    ubnt@router# set interfaces openvpn vtun0 openvpn-option --float
    ubnt@router# set interfaces openvpn vtun0 openvpn-option '--ping 10'
    ubnt@router# set interfaces openvpn vtun0 openvpn-option '--ping-restart 20'
    ubnt@router# set interfaces openvpn vtun0 openvpn-option --ping-timer-rem
    ubnt@router# set interfaces openvpn vtun0 openvpn-option --persist-tun
    ubnt@router# set interfaces openvpn vtun0 openvpn-option --persist-key
    ubnt@router# set interfaces openvpn vtun0 openvpn-option '--user nobody'
    ubnt@router# set interfaces openvpn vtun0 openvpn-option '--group nogroup'
    ubnt@router# set interfaces openvpn vtun0 remote-address 10.1.254.2
    ubnt@router# set interfaces openvpn vtun0 shared-secret-key-file /config/auth/openvpn-s2s-secret
    ubnt@router# commit
    ubnt@router# save

    Gdzie:
    10.1.254.1 – IP Edge Routera na interfejsie VPN
    10.1.254.2 – IP Debiana na interfejsie VPN
    1195 – port VPNa
    /config/auth/openvpn-s2s-secret – nazwa wygenerowanego wcześniej pliku z kluczem

  3. Na debianie instalujemy OpenVPNa
  4. Przenosimy plik /config/auth/openvpn-s2s-secret z EdgeRoutera na debiana jako /etc/openvpn/secret (jest to zwykły plik tekstowy można na routerze użyć sudo cat /config/auth/openvpn-s2s-secret i po prostu wkleić go na Debianie
  5. Tworzymy konfig VPNa na debianie w pliki /etc/openvpn/s2s.conf (IP.IP.IP.IP to IP EdgeRoutera):
    dev vtun0
    dev-type tun
    ping 10
    ping-restart 60
    ifconfig 10.1.254.2 10.1.254.1
    lport 1195
    rport 1195
    proto udp
    remote IP.IP.IP.IP
    secret /etc/openvpn/secret
    comp-lzo
    ping-timer-rem
    persist-tun
    persist-key
    user nobody
    group nogroup
    float
    script-security 2
  6. Włączamy autostart połączenia razem z systemem:
    systemctl enable [email protected]
  7. Włączamy połączenie VPN:
    systemctl start [email protected]
  8. W tym momencie powinniśmy mieć już możliwość pingowania po adresach VPN (10.1.254.1 <-> 10.1.254.2)
  9. Jeżeli dodatkowo chcemy połączyć se sobą podłączone sieci, to musimy dodać trasy routingu. Na EdgeRouterze wykonujemy polecenie:
    ubnt@router# set protocols static interface-route 10.1.2.0/24 next-hop-interface vtun0
    

    (gdzie 10.1.2.0/24 to sieć od strony debiana)

  10. Na debianie sprawa jest utrudniona. Tworzymy skrypt /etc/openvpn/s2s-up.sh o zawartości:
    #!/bin/sh
    /sbin/ip route add 10.1.1.0/24 dev $dev
    

    (gdzie 10.1.1.0/24 to sieć po stronie  EdgeRoutera).
    Nadajemy mu prawa do wykonania:

    chmod +x /etc/openvpn/s2s-up.sh

    i do pliku konfiguracyjnego /etc/openvpn/s2s.conf dopisujemy:

    up /etc/openvpn/s2s-up.sh
  11. Pozostaje tylko zresetować VPNa (na debianie):
    systemctl restart [email protected]

    i wszystko powinno zacząć działać.

  12. Dla pewności możemy sprawdzić tablice routingu.
    Na Debianie:

    wyprz ~ # ip route
    default via 10.1.2.1 dev eth0 onlink 
    10.1.1.0/24 dev vtun0 scope link 
    10.1.2.0/24 dev eth0 proto kernel scope link src 10.1.2.2 
    10.1.254.1 dev vtun0 proto kernel scope link src 10.1.254.2 
    169.254.0.0/16 dev eth0 scope link metric 1000

    Na EdgeRouterze:

    ubnt@router:~$ show ip route
    Codes: K - kernel, C - connected, S - static, R - RIP, B - BGP
           O - OSPF, IA - OSPF inter area
           N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
           E1 - OSPF external type 1, E2 - OSPF external type 2
           > - selected route, * - FIB route, p - stale info
    IP Route Table for VRF "default"
    S    *> 0.0.0.0/0 [210/0] via 89.71.140.1, eth4
    C    *> 10.1.1.0/24 is directly connected, eth0
    S    *> 10.1.2.0/24 [1/0] is directly connected, vtun0
    C    *> 10.1.254.1/32 is directly connected, vtun0
    C    *> 10.1.254.2/32 is directly connected, vtun0
    C    *> 89.71.140.0/22 is directly connected, eth4
    C    *> 127.0.0.0/8 is directly connected, lo

Składamy, składamy…

Wykładzina wreszcie ułożyła się jako-tako po 2 tygodniach dociskania do podłogi. W weekend udało się ogarnąć kilka pierdółek we wnętrzu. Na swoje miejsce zamontowana została pomalowana i podkładana dźwignia hamulca ręcznego. Zamontowany został też pedał sprzęgła i hamulca.

Tylne boczki zostały wygłuszone pianką gumową i oklejone materiałem obiciowym (żaden ze mnie tapicer, ale chyba nie jest najgorzej).

Pod maską, do ściany grodziowej przykręcona została redukcja pompy hamulcowej oraz pompa hamulcowa. Wykonałem też nowe cięgno wybieraka (poprzednie to była prowizorka) i już pomalowane czeka na montaż.

Z zewnątrz na w drzwiach pasażera została zamontowana nowa klamka (drzwi kierowcy wymagają jeszcze przeróbek pod centralny zamek).

Kilka zdjęć:

Wykładzina, tylne boczki i półka

Przez ostatnie weekendy (prawie) ogarnięta została wykładzina podłogi. Jeszcze jest trochę poprawek, ale może jakoś to wyjdzie.

Poza tym w tylnych boczkach wymienione zostały fragmenty które rozsypywały się od wilgoci na elementy wykonane ze sklejki wodoodpornej. Tam samo tylna półka wykonana została ze sklejki wodoodpornej i obita ekoskórą.

Z drobiazgów jeszcze zamontowany został wentylator chłodnicy, pomalowane mocowanie tylnej kanapy,

Kilka zdjęć: