Zmiana OpenVPN na wireguard z tomato jako klient
|
dar3k |
Dodano 30-12-2024 23:32
|
Super User
Posty: 424
Dołączył: 29/11/2013 22:48
|
Wypadłem troche z tomato, bo jedne które używam u rodziców służyło jedynie do spinania sieci po OpenVPN lecz aktualnie z dobie szybkiego internetu światłowodowego zaczyna być to wolnym połączeniem, więc chciałbym openvpn zmienić na wireguard ale poległem na konfiguracji (wg z gui jest jeszcze słabo dopracowane albo ja nie do końca to rozumiem).
Co chcę osiągnąć mam u siebie serwer z proxmox na pokładzie i na nim postawiłem sobie LXC z wireguard (z pomocą tego prostego skryptu 2minuty roboty https://community-scripts.github.io/ProxmoxVE/scripts?id=wireguard), telefon jako klient działa super, lecz nie mogę dojść jak to zrobić z tomato.
Wg tego postu https://www.linksysinfo.org/index.php?threads/wireguard-on-freshtomato.76295/page-23#post-348056 próbowałem zmusić tomato do bycia klientem lecz się nie udało, interfejs wstaje ale nie łączy się do mojego serwera a mimo podania prawidłowego klucza publicznego i prywatnego - po wpisaniu wg0 w terminalu - pokazuje się inny klucz publiczny niż ten z mojego serwera.
Ma ktoś jakiś pomysł jak to ugryźć?
ER-12 + 4x UAP-AC-PRO
|
|
|
|
shibby |
Dodano 02-01-2025 08:02
|
SysOp
Posty: 17128
Dołączył: 15/01/2009 20:30
|
Nie używałem Wireguard na Tomato ale na openwrt w wirtualce testowałem openvpn i wg... Na wg miałem dużo gorsze wyniki niż na openvpn. Na tym drugim uzyskałem blisko 400mbps co było maxem mojego łącza. Więc może pobaw się ustawieniami openvpn poprzez dodanie do konfiga po obu stronach
engine aesni
tun-mtu 9000
mssfix 0
txqueuelen 15000
tcp-queue-limit 256
Jeżeli nie masz cpu intela lub ci nie wstanie usługa to zakomentuj linie engine
Router: Unifi Cloud Gateway Max
Switch: Unifi USW-Lite-16-PoE
Switch: Unifi USW-Flex-Mini - szt. 2
Wi-Fi: Unifi U6-Lite - szt. 2
Proxmox VE: i5-13400T, 64GB RAM, 2x 512GB NVMe, 3x 2TB SSD
VM #1: Synology SA6400
VM #2: Debian, WWW
VM #3: Home Assistant OS
|
|
|
|
dar3k |
Dodano 02-01-2025 10:33
|
Super User
Posty: 424
Dołączył: 29/11/2013 22:48
|
Na serwerze mam CPU intela, ale ograniczeniem jest chyba tomato, a nie serwer - bo z laptopa spokojnie daje radę po 150Mbit w openvpn, dlatego chciałem wireguard bo na edgerouter openvpn też chodzi w okolicach 30Mbit, a wireguard spokojnie leci pod 130 - 150Mbit - w załączniku 10.8.0.x to podsieć openvpn, a 172.16.222.x to wg.
dar3k załączono następujące plik:
Nie masz uprawnień, by zobaczyć załączniki w tym wątku.
Edytowany przez dar3k dnia 02-01-2025 11:00
ER-12 + 4x UAP-AC-PRO
|
|
|
|
zakk87 |
Dodano 03-01-2025 17:14
|
User
Posty: 125
Dołączył: 19/06/2020 12:59
|
Jeżeli Twój serwer jest jedynym hostem w wg (na co wskazuje maska 32) ping z peera do 172.16.222.100 powinien śmigać. Cyferki w GUI pojawią się dopiero po nawiązaniu jakiegoś ruchu w tunelu więc na początku z peera puść pinga.
Dziwne, że w tym momencie stosujesz allowed IP's 0.0.0.0/0 jakbyś chciał cały ruch puścić do WG. Tego chcesz? Czy serwer 172.16.222.100 jest serwerem DNS i ma być wyjściem na świat dla tego peera?
Wracając do prędkości VPN oraz WG. Na obu uzyskuję około 60Mb/s z tym, że serwer OVPN ma parametry Auth SHA1, data ciphers CHACHA20-POLY1305.
Freshtomato 2024.2 AIO @ RT-AC66U_B1
OpenWRT 23.05 @ DIR-1960
NAS OMV [CoolerMaster ELITE 110] [J1900I-C] [4GB RAM] [Toshiba HDWD130 + Hitachi 5K3000]
|
|
|
|
dar3k |
Dodano 04-01-2025 20:43
|
Super User
Posty: 424
Dołączył: 29/11/2013 22:48
|
Wyczyściłem nvram i ustawiłem wszystko od nowa i teraz działa (może coś źle zrobiłem wcześniej), a finalnie działało na obu maskach, ale zostawiłem maskę /24 (w sumie to nie wiem dlaczego w opisie na linksysinfo i konfiguracji wygenerowanej w wgdashboard dla klienta wrzuca maskę na 32)
Jak zrobić routing policy dla jednego adresu z LAN (jak w openvpn routing policy).
PS: Wydajność w iperf po VPN dużo lepsza na wg w porównaniu do openvpn.
dar3k załączono następujące plik:
Nie masz uprawnień, by zobaczyć załączniki w tym wątku.
Edytowany przez dar3k dnia 04-01-2025 20:51
ER-12 + 4x UAP-AC-PRO
|
|
|
|
amikot |
Dodano 05-01-2025 03:55
|
Power User
Posty: 302
Dołączył: 14/12/2018 18:24
|
W kryptografii to juz chyba tak jest, że szybkosc szyfrowania i deszyfrowania zalezy od uzytego algorytmu i klucza.
Żeby porównywać wydajność wireguarda do openVPN należałoby robić to przy zbliżonych ustawieniach obu systemów tunelowania.
Wireguard miał być bardziej zoptymalizowany więc teoretycznie powinien dawać większe prędkości przy tych samych algorytmach . Z drugiej strony, to największą zaletą wireguarda ma być łatwość konfiguracji.
Jak to tam jest - nie wiem. ja używam tylko OpemVPN bo jakoś mnie nie ciśnie.
Nieznany Światłowodowy Modem 1Gbit/1Gbit
ASUS TUF-AX3000 V2 - 3004.388.8_2-gnuton1
Acer Aspire E1-571 - OMV 7
|
|
|
|
pedro |
Dodano 05-01-2025 16:16
|
Moderator
Posty: 1008
Dołączył: 21/09/2015 15:03
|
Najważniejszą różnicą WG w stosunku do openvpn jest to, że działa w kernelu a nie w userland, co za tym idzie jest o wiele szybszy.
Netowski 1Gb/1Gb
Huawei E3372s-153 non-hilink + 2x15dBi MIMO
FreshTomato: Asus RT-AC3200 + RT-N18U + RT-N66U + RT-N12
|
|
|
|
dar3k |
Dodano 05-01-2025 18:03
|
Super User
Posty: 424
Dołączył: 29/11/2013 22:48
|
Próbuję znaleźć jak tomato dla openvpn tworzy routing policy - tylko nie jest to takie proste - jest gdzieś dostępny skrypt co na podstawie wpisów z nvram przy uruchamianiu tworzy te routingi ?
nie pokazuje żadnych wpisów dot. openvpn, ale w regułach routingu pojawiają się wpisy lecz nie ma tam tego IP co dodałem, w routing policy od openvpn client
ip rule show
0: from all lookup local
90: from all fwmark 0x900/0xf00 lookup 2304
32766: from all lookup main
32767: from all lookup default
ip route show table 0
10.8.0.0/24 dev tun11 table 2304 proto kernel scope link src 10.8.0.7
192.168.0.0/24 via 10.8.0.1 dev tun11 table 2304
default via 10.8.0.1 dev tun11 table 2304
192.168.100.1 dev vlan2 scope link
PUBLIC_IP via 192.168.100.1 dev vlan2
192.168.100.0/24 dev vlan2 proto kernel scope link src 192.168.100.4
10.8.0.0/24 dev tun11 proto kernel scope link src 10.8.0.7
192.168.1.0/24 dev br0 proto kernel scope link src 192.168.1.1
192.168.0.0/24 via 10.8.0.1 dev tun11
127.0.0.0/8 dev lo scope link
default via 192.168.100.1 dev vlan2
broadcast 192.168.100.0 dev vlan2 table local proto kernel scope link src 192.168.100.4
local 192.168.1.1 dev br0 table local proto kernel scope host src 192.168.1.1
broadcast 127.255.255.255 dev lo table local proto kernel scope link src 127.0.0.1
broadcast 192.168.1.0 dev br0 table local proto kernel scope link src 192.168.1.1
local 10.8.0.7 dev tun11 table local proto kernel scope host src 10.8.0.7
local 192.168.100.4 dev vlan2 table local proto kernel scope host src 192.168.100.4
broadcast 10.8.0.0 dev tun11 table local proto kernel scope link src 10.8.0.7
broadcast 192.168.100.255 dev vlan2 table local proto kernel scope link src 192.168.100.4
broadcast 192.168.1.255 dev br0 table local proto kernel scope link src 192.168.1.1
broadcast 10.8.0.255 dev tun11 table local proto kernel scope link src 10.8.0.7
broadcast 127.0.0.0 dev lo table local proto kernel scope link src 127.0.0.1
local 127.0.0.1 dev lo table local proto kernel scope host src 127.0.0.1
local 127.0.0.0/8 dev lo table local proto kernel scope host src 127.0.0.1
unreachable default dev lo table 0 proto kernel metric 4294967295 error -101 hoplimit 255
unreachable default dev lo table 0 proto kernel metric 4294967295 error -101 hoplimit 255
W /etc/openvpn/client1/vpnrouting.sh jest skrypt co te routingi uruchamia ale nie mogę doszukać się gdzie wpisuje to, że np. tylko jedno IP ma dostęp do VPN a reszta lanu nie.
Znalazłem - w /etc/openvpn/fw/clinet1-fw-routing.sh dodaje:
iptables -t mangle -A PREROUTING -m set --match-set vpnrouting2304 dst,src -j MARK --set-mark 2304/0xf00
iptables -t mangle -A PREROUTING -s 192.168.1.11 -j MARK --set-mark 2304/0xf00
i w /etc/openvpn/fw/client1-fw.sh
iptables -I INPUT -i tun11 -m state --state NEW -j ACCEPT
iptables -I FORWARD -i tun11 -m state --state NEW -j ACCEPT
iptables -I FORWARD -o tun11 -j ACCEPT
iptables -t nat -I POSTROUTING -o tun11 -j MASQUERADE
echo 0 > /proc/sys/net/ipv4/conf/tun11/rp_filter
echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter
Muszę to przerobić na wg i przetestować - tylko nie rozumiem dlaczego nie pokazuje wpisów dot. 192.168.1.11 w iptables -L...
Edytowany przez dar3k dnia 05-01-2025 18:21
ER-12 + 4x UAP-AC-PRO
|
|
|
|
pedro |
Dodano 05-01-2025 19:22
|
Moderator
Posty: 1008
Dołączył: 21/09/2015 15:03
|
Zobacz sobie w repo: https://bitbucket.org/pedro311/freshtomato-arm/src/arm-master/release/src-rt-6.x.4708/router/rc/openvpn.c
oraz oczywiście: https://bitbucket.org/pedro311/freshtomato-arm/src/arm-master/release/src-rt-6.x.4708/router/others/vpnrouting.sh
i: https://bitbucket.org/pedro311/freshtomato-arm/src/arm-master/release/src-rt-6.x.4708/router/others/updown-client.sh
Netowski 1Gb/1Gb
Huawei E3372s-153 non-hilink + 2x15dBi MIMO
FreshTomato: Asus RT-AC3200 + RT-N18U + RT-N66U + RT-N12
|
|
|