1 (edytowany przez pizmako 2013-01-14 21:37:12)

Temat: VPN bridge (stałe IP - WAN - neostrada)

Witam,

Na początku zaznaczę, że czytałem inne posty na forum i nie znalazłem pełnego rozwiązania mojego problemu smile

Jestem posiadaczem 2 routerów TL-WR842ND (najnowsza kompilacja z eko.one.pl) oraz TD-W8960N (nie wspiera open wrt). Na TL-WR842ND mam publiczne stałe IP a na TD-W8960N mam neostradę.

Do tej pory miałem ustawiony VPN ipsec pomiedzy routerami - jednak to za mało. Potrzebuję rozwiązania VPN bridge tak aby broadcast (warstwa 2 - ethernet) był rozsyłany do wszystkich klientów w sieci po obu stronach tunelu VPN.


Problem jest z TD-W8960N bo nie można na nim zainstalować openwrt i chyba można by go rozwiązać następująco:

Postawić za TD-W8960N (w NAT) router, na którym będzie open wrt i openvpn działającym w trybie vpn client tak aby hosty podłączone pod ten router pobierały adresy po DHCP z servera VPN - broadcast wysłany przez host z jednej strony tunelu były odbierany w urządzeniach po 2 stronie.   

Czy dobrze kombinuję?
Jaki router polecicie?

2

Odp: VPN bridge (stałe IP - WAN - neostrada)

Chyba tutaj jest opisane rozwiązanie jakie było by mi potrzebne:

1. VPN server - http://wiki.openwrt.org/doc/howto/vpn.openvpn
2. VPN client - http://wiki.openwrt.org/doc/howto/vpn.c … penvpn.tap

3

Odp: VPN bridge (stałe IP - WAN - neostrada)

Polecicie jakiś router z pełnym wsparciem?

4 (edytowany przez Rafciq 2014-08-18 06:49:20)

Odp: VPN bridge (stałe IP - WAN - neostrada)

Założenia:

  • typowa konfiguracja OpenWRT Backfire lub AA

  • dwa routery

  • „Router-A” – pełnić będzie rolę serwera OpenVPN,

    • LAN adres routera IP 192.168.1.1, DHCP 192.168.1.101-150

    • WAN adres routera IP 123.123.123.123 (poglądowy adres publiczny)

    • port serwera OpenVPN 1194

    • pula adresów dla klientów OpenVPN 192.168.1.201-210

  • „Router-B” – pełnić będzie rolę klienta OpenVPN,

    • LAN adres routera IP 192.168.1.2, DHCP 192.168.1.151-200

    • WAN adres routera bez znaczenia

  • Jedna pula adresów dla obydwóch LAN-ów 192.168.1.0/24

  • Komunikacja między serwerem a klientem VPN na poziomie warstwy drugiej (broadcast-y biegają w całym LAN-ie), połączenie typu most/bridge.

  • Wszystko opisane poniżej wykonujemy z poziomu konsoli

Konfiguracja Router-A:

W plik /etc/config/network zmieniamy adres IP routera ipaddr i dodajemy interfejs tap0.
było:

config interface 'lan'
        option 'eth0.1'
        option type 'bridge'
        option proto 'static'
        option ipaddr '192.168.1.1'
        option netmask '255.255.255.0'

powinno być:

config interface 'lan'
        list ifname 'eth0.1'
        list ifname 'tap0'
        option type 'bridge'
        option proto 'static'
        option ipaddr '192.168.1.1'
        option netmask '255.255.255.0'

W pliku /etc/config/dhcp dodajemy wykluczenie interfejsu notinterface i zmieniamy zakres przydzielanych adresów w sekcji dhcp lan.
było:

config 'dnsmasq'
        option 'domainneeded' '1'
        option 'boguspriv' '1'
        option 'filterwin2k' '0'
        option 'localise_queries' '1'
        option 'rebind_protection' '1'
        option 'rebind_localhost' '1'
        option 'local' '/lan/'
        option 'domain' 'lan'
        option 'expandhosts' '1'
        option 'nonegcache' '0'
        option 'authoritative' '1'
        option 'readethers' '1'
        option 'leasefile' '/tmp/dhcp.leases'
        option 'resolvfile' '/tmp/resolv.conf.auto'

config 'dhcp' 'lan'
        option 'interface' 'lan'
        option 'start' '100'
        option 'limit' '100'

powinno być:

config 'dnsmasq'
        option 'domainneeded' '1'
        option 'boguspriv' '1'
        option 'filterwin2k' '0'
        option 'localise_queries' '1'
        option 'rebind_protection' '1'
        option 'rebind_localhost' '1'
        option 'local' '/lan/'
        option 'domain' 'lan'
        option 'expandhosts' '1'
        option 'nonegcache' '0'
        option 'authoritative' '1'
        option 'readethers' '1'
        option 'leasefile' '/tmp/dhcp.leases'
        option 'resolvfile' '/tmp/resolv.conf.auto'
        option 'notinterface' 'tap0'

config 'dhcp' 'lan'
        option 'interface' 'lan'
        option 'start' '101'
        option 'limit' '50'

W pliku /etc/config/firewall dodajemy regułę:

config rule
        option '_name' 'Allow-OpenVPN'
        option 'target' 'ACCEPT'
        option 'dest_port' '1194'
        option 'src' 'wan'
        option 'proto' 'tcp'
        option 'family' 'ipv4'

oraz tymczasowo przekierowanie i regułę:

config 'redirect'
        option '_name' 'Allow-SSH TMP'
        option 'src' 'wan'
        option 'proto' 'tcp'
        option 'dest_ip' '192.168.1.1'
        option 'dest_port' '22'

config 'rule'
        option '_name' 'Allow-SSH TMP'
        option 'src' 'wan'
        option 'target' 'ACCEPT'
        option 'proto' 'tcp'
        option 'dest_port' '22'

Uwaga, te dwie sekcje powyżej należy usunąć po zakończeniu wszystkich działań!

Do pliku /etc/firewall.user dodajemy następujące polecenia:

ebtables -F
ebtables -I FORWARD -i tap0 -p IPv4 --ip-protocol udp --ip-destination-port 67:68 -j DROP
ebtables -I FORWARD -o tap0 -p IPv4 --ip-protocol udp --ip-destination-port 67:68 -j DROP
ebtables -I INPUT -i tap0 -p IPv4 --ip-protocol udp --ip-destination-port 67:68 -j DROP
ebtables -I OUTPUT -o tap0 -p IPv4 --ip-protocol udp --ip-destination-port 67:68 -j DROP

Instalujemy oprogramowanie, wydając komendy:

opkg update
opkg install openvpn openvpn-easy-rsa kmod-ebtables-ipv4 ebtables ntpclient

W pliku /etc/easy-rsa/vars modyfikujemy ustawienia kluczy, powinno/może być:

export KEY_COUNTRY="PL"
export KEY_PROVINCE="MAZ"
export KEY_CITY="Warszawa"
export KEY_ORG="SiecDomowa"
export KEY_EMAIL="mojadres@polska.com.pl"

Weryfikujemy ustawienia czasu systemowego routera, wydając komendę:

date

Wykonujemy następujące polecenia:

clean-all
build-ca
build-dh
build-key-server Router-A
build-key Router-B
cp /etc/easy-rsa/keys/ca.crt  /etc/openvpn/
cp /etc/easy-rsa/keys/dh1024.pem /etc/openvpn/
cp /etc/easy-rsa/keys/Router-A.crt /etc/openvpn/
cp /etc/easy-rsa/keys/Router-A.key /etc/openvpn/

W pliku /etc/config/openvpn dodajemy lub modyfikujemy następujące elementy:

package 'openvpn'

config 'openvpn' 'SiecDomowa'
        option 'enabled' '1'
        option 'mode' 'server'
        option 'proto' 'tcp-server'
        option 'dev_type' 'tap'
        option 'dev' 'tap0'
        option 'port' '1194'
        option 'tun_mtu' '1500'
        option 'comp_lzo' '1'
        option 'server_bridge' '192.168.1.1 255.255.255.0 192.168.1.201 192.168.1.210'
        option 'client_to_client' '1'
        option 'keepalive' '60 120'
        option 'persist_key' '1'
        option 'persist_tun' '1'
        option 'ca' '/etc/openvpn/ca.crt'
        option 'cert' '/etc/openvpn/Router-A.crt'
        option 'key' '/etc/openvpn/Router-A.key'
        option 'dh' '/etc/openvpn/dh1024.pem'

Aby włączyć OpenVPN i ponownie uruchomić router należy wydać polecenie:

/etc/init.d/openvpn enable
reboot

Konfiguracja Router-B:

W plik /etc/config/network zmieniamy adres IP routera ipaddr i dodajemy interfejs tap0.
było:

config interface 'lan'
        option 'eth0.1'
        option type 'bridge'
        option proto 'static'
        option ipaddr '192.168.1.1'
        option netmask '255.255.255.0'

powinno być:

config interface 'lan'
        list ifname 'eth0.1'
        list ifname 'tap0'
        option type 'bridge'
        option proto 'static'
        option ipaddr '192.168.1.2'
        option netmask '255.255.255.0'

W pliku /etc/config/dhcp dodajemy wykluczenie interfejsu notinterface i zmieniamy zakres przydzielanych adresów w sekcji dhcp lan.
było:

config 'dnsmasq'
        option 'domainneeded' '1'
        option 'boguspriv' '1'
        option 'filterwin2k' '0'
        option 'localise_queries' '1'
        option 'rebind_protection' '1'
        option 'rebind_localhost' '1'
        option 'local' '/lan/'
        option 'domain' 'lan'
        option 'expandhosts' '1'
        option 'nonegcache' '0'
        option 'authoritative' '1'
        option 'readethers' '1'
        option 'leasefile' '/tmp/dhcp.leases'
        option 'resolvfile' '/tmp/resolv.conf.auto'

config 'dhcp' 'lan'
        option 'interface' 'lan'
        option 'start' '100'
        option 'limit' '100'

powinno być:

config 'dnsmasq'
        option 'domainneeded' '1'
        option 'boguspriv' '1'
        option 'filterwin2k' '0'
        option 'localise_queries' '1'
        option 'rebind_protection' '1'
        option 'rebind_localhost' '1'
        option 'local' '/lan/'
        option 'domain' 'lan'
        option 'expandhosts' '1'
        option 'nonegcache' '0'
        option 'authoritative' '1'
        option 'readethers' '1'
        option 'leasefile' '/tmp/dhcp.leases'
        option 'resolvfile' '/tmp/resolv.conf.auto'
        option 'notinterface' 'tap0'

config 'dhcp' 'lan'
        option 'interface' 'lan'
        option 'start' '151'
        option 'limit' '50'

Do pliku /etc/firewall.user dodajemy następujące polecenia:

ebtables -F
ebtables -I FORWARD -i tap0 -p IPv4 --ip-protocol udp --ip-destination-port 67:68 -j DROP
ebtables -I FORWARD -o tap0 -p IPv4 --ip-protocol udp --ip-destination-port 67:68 -j DROP
ebtables -I INPUT -i tap0 -p IPv4 --ip-protocol udp --ip-destination-port 67:68 -j DROP
ebtables -I OUTPUT -o tap0 -p IPv4 --ip-protocol udp --ip-destination-port 67:68 -j DROP

Instalujemy oprogramowanie, wydając komendy:

opkg update
opkg install openvpn kmod-ebtables-ipv4 ebtables ntpclient

W pliku /etc/config/openvpn dodajemy lub modyfikujemy następujące elementy:

package 'openvpn'

config 'openvpn' 'SiecDomowa'
        option 'enabled' '1'
        option 'client' '1'
        option 'daemon' '1'
        option 'proto' 'tcp-client'
        option 'dev_type' 'tap'
        option 'dev' 'tap0'
        option 'tun_mtu' '1500'
        option 'comp_lzo' '1'
        option 'remote' '123.123.123.123 1194'
        option 'resolv_retry' 'infinite'
        option 'nobind' '1'
        option 'persist_key' '1'
        option 'persist_tun' '1'
        option 'ns_cert_type' 'server'
        option 'ca' '/etc/openvpn/ca.crt'
        option 'cert' '/etc/openvpn/Router-B.crt'
        option 'key' '/etc/openvpn/Router-B.key'

Z Routera-A z katalogu /etc/easy-rsa/keys/ kopiujemy pliki ca.crt, Router-B.crt, Router-B.key do katalogu /etc/openvpn/ na Routerze-B wydając polecenie:

scp root@123.123.123.123:"/etc/easy-rsa/keys/ca.crt /etc/easy-rsa/keys/Router-B.crt /etc/easy-rsa/keys/Router-B.key" /etc/openvpn/

Weryfikujemy ustawienia czasu systemowego routera, wydając komendę:

date

Na koniec, na tym routerze także należy włączyć OpenVPN i także go zrestartować. W tym celu należy wydać polecenia:

/etc/init.d/openvpn enable
reboot

  • Na Routrze-A w pliku /etc/config/firewall należy usunąć tymczasowe sekcje role i redirect o nazwach Allow-SSH TMP i wykonać komendę /etc/init.d/firewall restart

  • Warto z Routera-A wykonać kopię plików z katalogu /etc/easy-rsa/ do bezpiecznego miejsca a następnie katalog ten usunąć.

  • Można z Routera-A odinstalować pakiet easy-rsa wydając komendę opkg remove openvpn-easy-rsa

  • Powyżej znajdują się tylko fragmenty plików konfiguracyjnych. W rzeczywistości pliki te mogą zawierać także inne parametry.

  • Należy zwrócić uwagę na poprawne ustawienie czasu w trakcie generowania kluczy.

  • Ważne, aby na obydwóch routerach poprawnie działała synchronizacja czasu.

install.sh - Aktualizacja systemu, sysinfo.sh - Info.o systemie, openvpn-auth.sh - Login dla OpenVPN
Tu moje skrypty na GitHub

5

Odp: VPN bridge (stałe IP - WAN - neostrada)

Dzięki.

6

Odp: VPN bridge (stałe IP - WAN - neostrada)

@Rafciq: to konfiguracja z rzeczywistego systemu?

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

7

Odp: VPN bridge (stałe IP - WAN - neostrada)

Tak, tyle, że mam trzy routery. No i inną adresację i nazewnictwo:)

install.sh - Aktualizacja systemu, sysinfo.sh - Info.o systemie, openvpn-auth.sh - Login dla OpenVPN
Tu moje skrypty na GitHub

8

Odp: VPN bridge (stałe IP - WAN - neostrada)

Ok, więc do dodaje to do howto.

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

9

Odp: VPN bridge (stałe IP - WAN - neostrada)

Mam pewien problem z konfiguracją interfejsu

Po wprowadzeniu zmian do konfiguracji według powyższego HOW TO mam poblem z uzyskaniem dostępu do routera (DHCP) i muszę wchodzić przez failsafe - gdzie robię błąd?

config interface 'lan'
        option ifname 'eth0'
        option ifname 'tap0
        option type 'bridge'
        option proto 'static'
        option ipaddr '192.168.99.1'
        option netmask '255.255.255.224'

config interface 'wan'
        option ifname 'eth1'
        option proto 'dhcp'

config switch
        option name 'eth0'
        option reset '1'
        option enable_vlan '1'

config switch_vlan
        option device 'eth0'
        option vlan '1'
        option ports '0 1 2 3 4'

10

Odp: VPN bridge (stałe IP - WAN - neostrada)

Kara za to że robisz to przez edytor a nie przez uci. Raz że brakuje Ci ' przy  option ifname 'tap0, dwa  - tam ma być albo list jak w oryginale było albo option ifname 'eth0 tap0'. Nie modyfikuj sam jak nie wiesz o co chodzi.

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

11

Odp: VPN bridge (stałe IP - WAN - neostrada)

Działa.. dzięki smile

12

Odp: VPN bridge (stałe IP - WAN - neostrada)

Mi też to działa, wielkie dzięki za opis, ale komputery w innej lokalizacji, które teoretycznie powinny dostawać IP z zakresu 192.168.1.52-100 z bramą 192.168.1.51 dostają IP z innego routera np. 192.168.1.18 z bramą 192.168.1.1. Wszędzie mam dopisane option 'notinterface' 'tap0'. @pizmako masz na to recepte?

13 (edytowany przez Rafciq 2013-02-17 14:52:01)

Odp: VPN bridge (stałe IP - WAN - neostrada)

Witam,
proponuję dodać poniższą linię do pliku /etc/dnsmasq.conf:

no-dhcp-interface=tap0

oczywiście na wszystkich routerach.

install.sh - Aktualizacja systemu, sysinfo.sh - Info.o systemie, openvpn-auth.sh - Login dla OpenVPN
Tu moje skrypty na GitHub

14

Odp: VPN bridge (stałe IP - WAN - neostrada)

Witam,
Jak zwykle prosze o porade:

Rafciq napisał/a:

Instalujemy oprogramowanie, wydając komendy:

opkg update
opkg install openvpn openvpn-easy-rsa

W pliku /etc/easy-rsa/vars modyfikujemy ustawienia kluczy

Mam MR3420 na extroocie - wydalem komendy:
opkg update
opkg install openvpn openvpn-easy-rsa

I teraz po opkg list-installed mam:

openssl-util - 1.0.1d-1
openvpn - 2.2.2-2
openvpn-easy-rsa - 2.2.2-2

niestety w etc nie mam katalogu easy-rsa. Czy on sie tworzy automatycznie ? co nalezy zrobic zeby sie pokazal.....

TP-LINK MR3420 E173s-2 gargoyle-1.5.9.6-ar71xx-tl-mr3420-v1

15

Odp: VPN bridge (stałe IP - WAN - neostrada)

Bo zainstalowałeś pakiety z gargoyle przerobione i przystosowane do konfiguracji z gui przez jeden z pluginów. Używasz gargoyle, prawda?

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

16 (edytowany przez misp 2013-02-17 21:39:10)

Odp: VPN bridge (stałe IP - WAN - neostrada)

Tak uzywam Gargolye 1.5.9.3

Czyli tzn ze wszystko mam zrobic przez GUI ?
A czy wygeneruje certyfikaty servera ktore chcialbym uzyc na innym routerze ?

TP-LINK MR3420 E173s-2 gargoyle-1.5.9.6-ar71xx-tl-mr3420-v1

17

Odp: VPN bridge (stałe IP - WAN - neostrada)

To znaczy że albo zainstalujesz plugin openvpn i będziesz przez gui to robił, albo odinstaluj te pakiety, zainstaluj je z repo openwrt i rób to ręcznie.

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

18

Odp: VPN bridge (stałe IP - WAN - neostrada)

Dziekuje - postaram sie powalczyc

TP-LINK MR3420 E173s-2 gargoyle-1.5.9.6-ar71xx-tl-mr3420-v1

19

Odp: VPN bridge (stałe IP - WAN - neostrada)

@Rafciq niestety dodanie no-dhcp-interface=tap0 do /etc/dnsmasq.conf nie pomoglo. Widze, ze w /var/etc/dnsmasq.conf generowany jest plik z /etc/config/dhcp i tam jest tylko no-dhcp-interface=eth0.2 . Wciaz dostaje IP-ki z innych routerow

20

Odp: VPN bridge (stałe IP - WAN - neostrada)

W /etc/config/dhcp masz właśnie wpisy na których interfejsach ma nie nasłuchiwać na żądania dhcp. Tak jak dla wanu jest.

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

21

Odp: VPN bridge (stałe IP - WAN - neostrada)

Czyli na kazdym dodac:

config dhcp 'tap0'
        option interface 'tap0'
        option ignore '1'

?

22

Odp: VPN bridge (stałe IP - WAN - neostrada)

Nie. Interface to nazwa sekcji logicznej w /etc/config/network. lan, wan.

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

23

Odp: VPN bridge (stałe IP - WAN - neostrada)

Aha. Ale w network nie mam nic z tap0. Dopsiac cos jak to:

config interface 'vpntap'
        option ifname 'tap0'
        option proto 'none'

czy moge w ogole zamienic

config interface 'vpn'
        option ifname 'tun0'
        option proto 'none'
        option defaultroute '0'
        option peerdns '0'

na ifname tap0?

24

Odp: VPN bridge (stałe IP - WAN - neostrada)

/etc/dnsmasq.conf  jest wystarczające, dnsmasq startując uwzględnia zawartość też tego pliku.

Jak masz proto none to inne opcje nie mają sensu, bo się nic nie ustawia.

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

25 (edytowany przez tableta 2013-02-19 19:54:43)

Odp: VPN bridge (stałe IP - WAN - neostrada)

No ale mam w /etc/dnsmasq.conf dopisane no-dhcp-interface=tap0 a i tak dostaje ip z innych routerow i staja sie brama. A to co wkleilem wyzej to aktualna konfiguracja dotyczaca 'tun0'. Jak rozumiem dopisanie tak jak podalem bedzie wystarczajace?

Ogolnie to pytam tyle, bo to nie zawsze przydziela (protokol DHCP jest pseudo losowy) zly adres wiec zanim znowu zauwaze, ze jest nie tak to pewnie minie kilka dni.