VPN - TUN
|
khain |
Dodano 31-12-2017 20:07
|
Power User
Posty: 335
Dołączył: 25/07/2007 17:09
|
Na serwerze używasz net30 czy topology subnet?
Pytam, bo tu masz coś nie tak
inet addr:10.1.0.30 P-t-P:10.1.0.1 Mask:255.255.255.255 Maska podsieci powinna być co najmniej /28 przy topology subnet, a przy net30 powinno to wyglądać tak:
inet addr:10.1.0.30 P-t-P:10.1.0.31 Mask:255.255.255.255
Edytowany przez khain dnia 31-12-2017 20:13
TP-LINK TL-WDR3600 @ Openwrt - 300/20Mbps
HP ProLiant DL360e Gen8 @ ESXi 7.0.1:2 x Intel Xeon CPU E5-2450L @ 1.80GHz, 160GB RAM ECC, 2x 1TB SSD
ASRock J4205-ITX @ Debian 11 16BG RAM, 2x 1TB SSD, 1x 1TB HDD
|
|
|
|
matiaszon |
Dodano 31-12-2017 21:04
|
User
Posty: 15
Dołączył: 27/12/2017 23:17
|
Ja bym się tu nie dopatrywał niczego, ponieważ jak nie zaznaczę "route-nopull" to wszystko działa, tylko wtedy router kolegi "znika" z jego lokalnej sieci, a ja widzę każde jego urządzenie. U mnie na mikrotiku też ten routing wygląda dziwnie, ale wszystko działa. Dwa mikrotiki podłączone do tego VPN się widzą i obie sieci LAN też się widzą, a config jest dla wszystkich taki sam.
P.S.
A Ty co, nie bawisz się na sylwestra??? |
|
|
|
khain |
Dodano 31-12-2017 21:21
|
Power User
Posty: 335
Dołączył: 25/07/2007 17:09
|
Nie spotkałem się z tak dziwnym outputem ifconfig przy konfigu openvpn.
Zakomentuj route-nopull, sprawdź tablicę routingu na tomato i przez jaki IP pakiet klienta musi wyjść, aby dostać się do podsieci za serwerem. Odkomentuj route-nopull i dodaj odpowiedni wpis do Custom configuration klienta - może ten wpis powinien wyglądać tak:
route-nopull
route 10.10.10.0 255.255.255.0 10.1.0.30 Ps. To samo pytanie mogę zadać Tobie:D Ja nie bawię się na sylwestra, m.in dlatego, że sam wychowuję dwójkę dzieci.
TP-LINK TL-WDR3600 @ Openwrt - 300/20Mbps
HP ProLiant DL360e Gen8 @ ESXi 7.0.1:2 x Intel Xeon CPU E5-2450L @ 1.80GHz, 160GB RAM ECC, 2x 1TB SSD
ASRock J4205-ITX @ Debian 11 16BG RAM, 2x 1TB SSD, 1x 1TB HDD
|
|
|
|
matiaszon |
Dodano 31-12-2017 21:46
|
User
Posty: 15
Dołączył: 27/12/2017 23:17
|
Przy odznaczonym route-nopull (w cfg openvpn client tomato, nie w custom-config) ifconfig wygląda tak samo, bo tak jest w ccd po stronie serwera. Ale, teraz przynajmniej widzę od siebie i 10.1.0.30 i 192.168.1.1 (tomato) jak i inne urządzenia w sieci 192.168.1.0/24. Problem w tym, że teraz żadne urządzenie nie ma wyjścia przez normalną bramę tomato tylko przez VPN. Dodatkowo, nie ma do nich dostępu bezpośrednio przez port forwarding i normalną bramę, tylko przez VPN.
Chyba odpuszczę temat. A może prościej będzie skonfigurować to na raspberry pi? W sumie na tamtym serwerze, żeby był dostępny z lokalnej sieci, ale i żeby wychodził przez VPN. Bez reszty mogę się obejść.
P.S.
Ja z podobnych powodów. Może nie sam, ale jakby sam. |
|
|
|
khain |
Dodano 31-12-2017 22:56
|
Power User
Posty: 335
Dołączył: 25/07/2007 17:09
|
Nie przedstawiłeś konfigu serwera, więc ciężko coś podpowiedzieć. Może potrzebne jest czyszczenie nvramu na tomato, może jest jakiś bug i dana funkcja nie działa. Na rpi będzie to działać, ale musisz dodać trasę statyczną na routerze, że do tunelu vpn trzeba się dostać przez rpi.
TP-LINK TL-WDR3600 @ Openwrt - 300/20Mbps
HP ProLiant DL360e Gen8 @ ESXi 7.0.1:2 x Intel Xeon CPU E5-2450L @ 1.80GHz, 160GB RAM ECC, 2x 1TB SSD
ASRock J4205-ITX @ Debian 11 16BG RAM, 2x 1TB SSD, 1x 1TB HDD
|
|
|
|
matiaszon |
Dodano 01-01-2018 14:30
|
User
Posty: 15
Dołączył: 27/12/2017 23:17
|
Konfig serwera wygląda następująco:
port 1194
proto tcp
dev tun
ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/server-tn.crt
key /etc/openvpn/easy-rsa/keys/server-tn.key # This file should be kept secret
dh dh2048.pem
server 10.1.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "route 10.10.10.0 255.255.255.0"
push "route 192.168.88.0 255.255.255.0"
push "route 192.168.1.0 255.255.255.0"
client-config-dir /etc/openvpn/ccd
route 10.10.10.0 255.255.255.0
route 192.168.88.0 255.255.255.0
route 192.168.1.0 255.255.255.0
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"
client-to-client
keepalive 10 120
cipher AES-128-CBC # AES
user nobody
group nogroup
persist-key
persist-tun
plugin /usr/lib/openvpn/openvpn-auth-pam.so /etc/pam.d/login
username-as-common-name
status openvpn-status.log
verb 3
management 127.0.0.1 2000
Generalnie na rasp odpaliłem to bez problemu, tylko znowu mam taki kłopot, że jak uruchamiam, to rasp "znika" z sieci lokalnej i nie można się do niego dobić. |
|
|
|
khain |
Dodano 01-01-2018 16:03
|
Power User
Posty: 335
Dołączył: 25/07/2007 17:09
|
Pokaż jeszcze tablicę routingu serwera i klientów po zestawieniu tunelu.
TP-LINK TL-WDR3600 @ Openwrt - 300/20Mbps
HP ProLiant DL360e Gen8 @ ESXi 7.0.1:2 x Intel Xeon CPU E5-2450L @ 1.80GHz, 160GB RAM ECC, 2x 1TB SSD
ASRock J4205-ITX @ Debian 11 16BG RAM, 2x 1TB SSD, 1x 1TB HDD
|
|
|
|
matiaszon |
Dodano 01-01-2018 17:18
|
User
Posty: 15
Dołączył: 27/12/2017 23:17
|
28.28.28.28 to publiczne IP serwera
root@e8e064:~# ip route
default via 28.28.28.1 dev eth0
10.1.0.0/24 via 10.1.0.2 dev tun0
10.1.0.2 dev tun0 proto kernel scope link src 10.1.0.1
10.10.10.0/24 via 10.1.0.2 dev tun0
28.28.28.0/26 dev eth0 proto kernel scope link src 28.28.28.28
192.168.1.0/24 via 10.1.0.2 dev tun0
192.168.88.0/24 via 10.1.0.2 dev tun0
|
|
|
|
khain |
Dodano 01-01-2018 17:57
|
Power User
Posty: 335
Dołączył: 25/07/2007 17:09
|
To jest tablica routingu serwera? Wrzuć jeszcze tablicę routingu klientów.
TP-LINK TL-WDR3600 @ Openwrt - 300/20Mbps
HP ProLiant DL360e Gen8 @ ESXi 7.0.1:2 x Intel Xeon CPU E5-2450L @ 1.80GHz, 160GB RAM ECC, 2x 1TB SSD
ASRock J4205-ITX @ Debian 11 16BG RAM, 2x 1TB SSD, 1x 1TB HDD
|
|
|
|
matiaszon |
Dodano 01-01-2018 18:14
|
User
Posty: 15
Dołączył: 27/12/2017 23:17
|
Tak, to była serwera.
To jest po mojej stronie na mikrotiku. 105.105.105.105 to mój publiczny IP. Trabia to nazwa openvpn.
# DST-ADDRESS PREF-SRC GATEWAY DISTANCE
2 A S 0.0.0.0/0 TrabiaN-OVPN 1
3 ADS 0.0.0.0/0 NET 0
4 ADS 10.1.0.0/24 10.1.0.1 1
5 ADC 10.1.0.1/32 10.1.0.10 TrabiaN-OVPN 0
7 ADC 10.10.10.0/24 10.10.10.1 bridge1-dom 0
8 ADC 105.105.105.99/32 105.105.105.105 NET 0
9 ADS 192.168.1.0/24 10.1.0.1 1
11 ADS 192.168.88.0/24 10.1.0.1 1
A to po stronie tomato. 89.89.89.1 to brama ISP u kolegi
Destination Gateway / Next Hop Subnet Mask Metric Interface
10.1.0.1 * 255.255.255.255 0 tun11
89.89.89.1 * 255.255.255.255 0 vlan2 (WAN)
10.10.10.0 10.1.0.1 255.255.255.0 0 tun11
192.168.1.0 * 255.255.255.0 0 br0 (LAN)
89.89.89.0 * 255.255.248.0 0 vlan2 (WAN)
127.0.0.0 * 255.0.0.0 0 lo
default 89.89.89.1 0.0.0.0 0 vlan2 (WAN)
Chyba, że to miało być na raspberry...?
Edytowany przez matiaszon dnia 01-01-2018 18:23
|
|
|
|
khain |
Dodano 01-01-2018 19:34
|
Power User
Posty: 335
Dołączył: 25/07/2007 17:09
|
1) A za serwerem jaka jest podsieć? Z tablicy routingu wynika, że nie ma żadnej.
2) Zakomentuj linię client-config-dir /etc/openvpn/ccd w konfigu serwera i zrestartuj openvpn.
3) Jakie pliki z jaką zawartością masz w /etc/openvpn/ccd ?
TP-LINK TL-WDR3600 @ Openwrt - 300/20Mbps
HP ProLiant DL360e Gen8 @ ESXi 7.0.1:2 x Intel Xeon CPU E5-2450L @ 1.80GHz, 160GB RAM ECC, 2x 1TB SSD
ASRock J4205-ITX @ Debian 11 16BG RAM, 2x 1TB SSD, 1x 1TB HDD
|
|
|
|
matiaszon |
Dodano 01-01-2018 21:25
|
User
Posty: 15
Dołączył: 27/12/2017 23:17
|
1) Jak to za serwerem? Serwer to VPS, więc nie ma żadnej sieci lokalnej.
2) jak zakomentuję, to się nie zaloguję z żadnego urządzenia.
3) W ccd mam ustawienia kumpla:
ifconfig-push 10.1.0.30 10.1.0.1
iroute 192.168.1.0 255.255.255.0
i swoje:
ifconfig-push 10.1.0.10 10.1.0.1
iroute 10.10.10.0 255.255.255.0
i jeszcze drugiego kolegi, z którego siecią się łączę bez problemu a on zmoją (on ma router brzegowy taki jak ja - mikrotik):
ifconfig-push 10.1.0.20 10.1.0.1
iroute 192.168.88.0 255.255.255.0
Powtórzę jeszcze, że jak odznaczę "nopull" na tomato, to się łączy i ja widzę całą sieć za tomato. Problem tylko taki, że tomato znika z LANu, co powoduje, że nie można się dostać na żadne urządzenie będące w LAN po przekierowanym porcie z zewnątrz. Nie można też wewnątrz LAN wejść na sam router. To samo dzieje się, jak odpalę klienta vpn na raspberry. Łączy się ładnie, mam do niego dostęp, ale żadne urządzenie z tego samego LAN co raspberry już go nie widzi. |
|
|
|
khain |
Dodano 01-01-2018 22:56
|
Power User
Posty: 335
Dołączył: 25/07/2007 17:09
|
Być może problem jest w tym, że stosujesz net30 (domyślnie ustawienie), które ma osobne podsieci dla każdego klienta z maską /30 (dwa hosty w podsieci) https://community.openvpn.net/openvpn...ogychoices, a ty w ccd stosujesz podsieć /24. Być może przy route-nopull przy twoich ustawieniach trzeba dodać jeszcze jakąś opcję przy konfigu klienta, której nie jestem w stanie określić. Proponuję przejście na topology subnet, przy którym działa podanie route w konfigu klienta. Tu przykładowy konfig serwera
port 1194
proto udp
tls-server
ifconfig 10.8.0.1 255.255.255.0
topology subnet
client-config-dir /etc/openvpn/ccd
cipher AES-256-CBC
dev tun0
keepalive 25 180
status /tmp/openvpn.status
verb 3
dh /etc/openvpn/dh2048.pem
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key
tls-auth /etc/openvpn/ta.key 0
persist-key
persist-tun
comp-lzo
push "topology subnet"
push "route-gateway 10.8.0.1" //potrzebne jeśli klienci mają mieć publiczny adres IP serwer openvpn
push "redirect-gateway def1" //potrzebne jeśli klienci mają mieć publiczny adres IP serwer openvpn
route 172.16.1.0 255.255.255.0 10.8.0.2
route 192.168.1.0 255.255.255.0 10.8.0.3
push "route 172.16.1.0 255.255.255.0 10.8.0.2"
push "route 192.168.1.0 255.255.255.0 10.8.0.3" Plik ccd dla pierwszego klienta, który posiada podsieć 172.16.1.0:
ifconfig-push 10.8.0.2 255.255.255.0
iroute 172.16.1.0 255.255.255.0 Plik ccd dla drugiego klienta, który posiada podsieć 192.168.1.0:
ifconfig-push 10.8.0.3 255.255.255.0
iroute 192.168.1.0 255.255.255.0 Opcje, które muszą być w konfigu pierwszego klienta:
route-nopull
route 192.168.1.0 255.255.255.0 10.8.0.3 Opcje, które muszą być w konfigu drugiego klienta:
route-nopull
route 172.16.1.0 255.255.255.0 10.8.0.2 172.16.1.0/24 - podsieć za pierwszym klientem
192.168.1.0/24 - podsieć za drugim klientem
10.8.0.0/24 - podsieć tunelu openvpn
Klienci, którzy mają za sobą podsieci muszą mieć w konfigu route-nopull inaczej będą mieli dwie trasy do swojego LANu (jedna directly connected, druga przez tunel vpn podana przez serwer za pomocą push - dotyczy tylko topology net30).
TP-LINK TL-WDR3600 @ Openwrt - 300/20Mbps
HP ProLiant DL360e Gen8 @ ESXi 7.0.1:2 x Intel Xeon CPU E5-2450L @ 1.80GHz, 160GB RAM ECC, 2x 1TB SSD
ASRock J4205-ITX @ Debian 11 16BG RAM, 2x 1TB SSD, 1x 1TB HDD
|
|
|
|
matiaszon |
Dodano 02-01-2018 00:05
|
User
Posty: 15
Dołączył: 27/12/2017 23:17
|
Niestety, ale to nic nie pomogło. Kolega widzi moją sieć jak widział, ale ja jego nie.
Zacząłem majstrować już na raspberry. Mam już raspa wpiętego jako klienta, dodałem routing i widzi moją sieć. Ja widzę jego od siebie. Rasp cały czas jest widoczny dla innych.
Teraz chciałbym, aby:
1) cały ruch TYLKO raspa do netu odbywał się przez VPN, ale żeby dla lokalnej sieci LAN pozostawał widoczny,
2) służył jako brama dla mnie do sieci lokalnej.
Połączony z 02 styczeń 2018 01:08:19:
No, wreszcie jakiś postęp!
Udało mi się zrealizować punkt 2 z powyższego posta, został jeszcze pierwszy, czyli cały ruch z tego urządzenia do Internetu puścić przez VPN, ale nie "stracić go" z LAN.
Edytowany przez matiaszon dnia 02-01-2018 01:08
|
|
|
|
khain |
Dodano 02-01-2018 07:49
|
Power User
Posty: 335
Dołączył: 25/07/2007 17:09
|
Wszystkim klientom, którzy mają rote-nopull dodaj te opcje w konfiguracji:
route-gateway 10.8.0.1
redirect-gateway def1
TP-LINK TL-WDR3600 @ Openwrt - 300/20Mbps
HP ProLiant DL360e Gen8 @ ESXi 7.0.1:2 x Intel Xeon CPU E5-2450L @ 1.80GHz, 160GB RAM ECC, 2x 1TB SSD
ASRock J4205-ITX @ Debian 11 16BG RAM, 2x 1TB SSD, 1x 1TB HDD
|
|
|
|
matiaszon |
Dodano 02-01-2018 10:50
|
User
Posty: 15
Dołączył: 27/12/2017 23:17
|
Zgodnie z przypuszczeniami, jak dodam "redirect-gateway def1" to urządzenie ginie z sieci lokalnej. Moim zdaniem to trzeba już jakoś za pomocą iptables i mangle, tak jak zrobiłem to na mikrotiku. Zaznaczam ruch wychodzący wszędzie poza 192.168.1.0/24 jakimś znacznikiem, a potem ustawiam regułę routingu do 0.0.0.0/0 z tym znacznikiem i powinno być ok. Niestety, w iptables jestem cienki jak dupa węża. |
|
|
|
khain |
Dodano 02-01-2018 10:59
|
Power User
Posty: 335
Dołączył: 25/07/2007 17:09
|
To dziwne. Gdy klient dostanie nową bramę domyślną to wpis o trasie do sieci lokalnej nie znika, więc router czy też rpi powinno być widoczne normalnie w LAN.
TP-LINK TL-WDR3600 @ Openwrt - 300/20Mbps
HP ProLiant DL360e Gen8 @ ESXi 7.0.1:2 x Intel Xeon CPU E5-2450L @ 1.80GHz, 160GB RAM ECC, 2x 1TB SSD
ASRock J4205-ITX @ Debian 11 16BG RAM, 2x 1TB SSD, 1x 1TB HDD
|
|
|
|
matiaszon |
Dodano 02-01-2018 13:50
|
User
Posty: 15
Dołączył: 27/12/2017 23:17
|
Może nie znika, ale dubluje się wpis wyjścia domyślnego, czyli dwa razy jest adres docelowy (default czy 0.0.0.0/0) jest w tablicy - raz z bramą 192.168.1.1 a raz z bramą z VPN, która nadpisuje tę pierwszą. |
|
|
|
khain |
Dodano 02-01-2018 17:24
|
Power User
Posty: 335
Dołączył: 25/07/2007 17:09
|
Tylko, że brama domyślna służy do wysyłania pakietów, których docelowy adres IP nie jest w tablicy routingu. Ale skoro nie chcesz odrzucać redirect-gateway to nie ma potrzeby stosowania route-nopull. Wyrzuć wszystkie push "route.."z konfigu serwera i dodaj ręcznie routing w konfigach klientów.
TP-LINK TL-WDR3600 @ Openwrt - 300/20Mbps
HP ProLiant DL360e Gen8 @ ESXi 7.0.1:2 x Intel Xeon CPU E5-2450L @ 1.80GHz, 160GB RAM ECC, 2x 1TB SSD
ASRock J4205-ITX @ Debian 11 16BG RAM, 2x 1TB SSD, 1x 1TB HDD
|
|
|
|
matiaszon |
Dodano 03-01-2018 08:49
|
User
Posty: 15
Dołączył: 27/12/2017 23:17
|
Wywaliłem z configa serwera
;push "redirect-gateway def1 bypass-dhcp"
Teraz klient jak się łączy, to dostaje całą tablicę routingu. Dodałem tylko na tomato wpis dotyczący routingu do sieci VPN i gra gitara.
Zostało tylko jakoś zmusić raspberry do tego, żeby cały ruch wygenerowany przez siebie, kierował do VPN, a nie do routera. Zakładam, że pewnie jakoś za pomocą iptables i markowaniem ruchu a późniem ip route i wrzucanie ruchu do VPN.
Połączony z 04 styczeń 2018 09:45:39:
Jeszcze co innego wymyśliłem.
Wróciłem do klienta na tomato. Wywaliłem, z serwera"redirect-gateway def1". Tomato się ładnie łączy, tabela routingu jest ładnie uzupełniona o sieci za serwerem VPN. A teraz chcę zmusić roter, żeby cały ruch od 192.168.1.101, z wyłączeniem ruchu do 192.168.1.0/24 kierował przez VPN. Jak w "Routing policy" zaznaczę "redirect through vpn" i w "from source IP" wpiszę 192.168.1.101, to nie można dostać się na serwer po publicznym ISP, a już tylko przez VPN. Można to jakoś załatwić przez iptables?
Połączony z 04 styczeń 2018 10:55:48:
OK, poradziłem sobie i z tym - po prostu zaczęło działać :D
Dzięki za zaangażowanie.
Pozdrawiam
Edytowany przez matiaszon dnia 04-01-2018 10:55
|
|
|