[howto] Tomato OpenVPN Mod 1.19.1464 SD/MMC Firmware
|
Adik |
Dodano 02-10-2007 22:24
|
User
Posty: 178
Dołączył: 15/08/2006 09:07
|
Pojawiła się nowa wersja firmware z dodana obsługą protokołu OpenVPN:
Tutaj krótki opis:
Tomato 1.09.1181 OpenVPN
Autor dołożył współpracę z OpenVPN User Manager'em. Narazie nie wgrywałem jeszcze wersji 1.09, od kilkunastu dni testuje 1.07. Jedyny problem, jakiego nie udało mi się rozwiązać to skrypt uruchamiający OpenVPN'a - ze względu na ilość znaków musiałem go umieścić na partycji cifs. Nie wiem tez w jaki sposób można zarządzać połączeniami klientów przez ssh.
Jutro opiszę coś więcej po wgraniu 1.09.
Pozdrawiam.
Edytowany przez Adik dnia 01-02-2009 14:29
|
|
|
|
pink |
Dodano 03-10-2007 09:29
|
User
Posty: 79
Dołączył: 25/04/2007 00:27
|
czekam na relacje |
|
|
|
Adik |
Dodano 05-10-2007 22:44
|
User
Posty: 178
Dołączył: 15/08/2006 09:07
|
Wersja 1.09.1181 ma usuniete ograniczenie co do ilosci znakow w skrypcie startowym, tak wiec mozna smialo wstawic go do init - bedzie uruchamial sie przy starcie. :) Najnowsze Tomato wspolpracuje z OpenVPN User Managerem (zalaczam screen), wystarczy w opcjach serwera dodac jedna linijkę
#Management interface
management 192.168.2.1 7505
192.168.2.1 jest adresem IP routera
Ogolnie OpenVPN dziala bardzo fajnie, nie ma problemu ze zrywaniem czy zasypianiem polaczenia jaki doswiadczylem z protokolem pptp (uzywalem pod freebsd). Za pare tygodni przetestuje z wieksza iloscia klientow, zobaczymy jak Linksys sobie z tym poradzi.. :)
Adik załączono następujące plik:
Nie masz uprawnień, by zobaczyć załączniki w tym wątku.
|
|
|
|
Ronnie |
Dodano 07-10-2007 20:46
|
User
Posty: 57
Dołączył: 26/02/2007 21:57
|
witam
zmieniono jeszcze i dodano:
Removed Victek's patches from code base - Most of them exists in Official Tomato v1.09.1180
LibSSL - finally stripping as it should ~100K size difference
LibLZO
OpenVPN with management extension enabled
Changed Maximum Size of Init Script to 8192 bytes
Added 3 custom color schemes from Tomato's homepage - Green on Black, Green Tomato, Red On Black
TUN/TAP Kernel Module
IPTables Quota Kernel Module
IPTables Quota Extension
NVRAM Show item in tools menu |
|
|
|
qwerty01 |
Dodano 07-10-2007 21:11
|
User
Posty: 190
Dołączył: 27/07/2006 20:03
|
@Adik
Może byś napisał jak używać tego programu. Wpisałem odpowiednio w Init i OpenVPN i ciągle mam "Disconnected, Error" |
|
|
|
jachu |
Dodano 09-10-2007 12:14
|
Power User
Posty: 351
Dołączył: 16/11/2006 10:04
|
Cytat Adik napisał/a:
Wersja 1.09.1181 ma usuniete ograniczenie co do ilosci znakow w skrypcie startowym, tak wiec mozna smialo wstawic go do init - bedzie uruchamial sie przy starcie. :) Najnowsze Tomato wspolpracuje z OpenVPN User Managerem (zalaczam screen), wystarczy w opcjach serwera dodac jedna linijkę
#Management interface
management 192.168.2.1 7505
192.168.2.1 jest adresem IP routera
Ogolnie OpenVPN dziala bardzo fajnie, nie ma problemu ze zrywaniem czy zasypianiem polaczenia jaki doswiadczylem z protokolem pptp (uzywalem pod freebsd). Za pare tygodni przetestuje z wieksza iloscia klientow, zobaczymy jak Linksys sobie z tym poradzi.. :)
Proponuje potestowac juz na wersji Tomato v1.10.1189 - OpenVPN :)
pozdrawiam
Jachu
Netgear WNR3500L v2 - Tomato
APU - OPNSense,PFSense
FeeNAS
Netgear R7000 - Tomato
|
|
|
|
qwerty01 |
Dodano 09-10-2007 17:58
|
User
Posty: 190
Dołączył: 27/07/2006 20:03
|
Czy ktoś wie jak ustawić, aby pracować w OpenVPN? |
|
|
|
nedudej |
Dodano 09-10-2007 18:14
|
User
Posty: 4
Dołączył: 31/10/2006 17:31
|
tez mam z tym problem |
|
|
|
Tyllian |
Dodano 09-10-2007 22:44
|
User
Posty: 144
Dołączył: 10/03/2006 21:07
|
mozesz opisac jak to skonf. ?
Router: WRT54GL v1.1 + Pomidorek
NAS: TS-101 - 300GB
DVD: KiSS DP-600
VoIP: MyFon + PAP2T
|
|
|
|
luk-a-sz |
Dodano 10-10-2007 15:34
|
User
Posty: 106
Dołączył: 21/09/2006 00:54
|
Przyłącze się do prośby |
|
|
|
Adik |
Dodano 10-10-2007 17:46
|
User
Posty: 178
Dołączył: 15/08/2006 09:07
|
Informacje zaraz beda na forum.. :)
Ok jedziemy..
Konfiguracja OpenVPN dla Tomato.
Pierwsza rzeczą jaka nalezy zrobic jest wygenerowanie certyfikatów:
1. Sciagamy paczke OpenVPN 2.0.9 dla Windowsa lub Linuxa i generujemy certyfikaty wg instrukcji (akurat to co ponizej dotyczy Windowsa):
Przygotowanie do generowania: plik init-config.bat.
Po zainstalowaniu pakietu można przystąpić do generowania kluczy i certyfikatów dla serwera i klientów. Wszystko należy wykonywać w linii poleceń, którą uruchamiamy klikając w menu Start-Uruchom, wpisując: cmd i potwierdzając klawiszem Enter. Kolejnym krokiem jest przejście do folderu easy-rsa, wydając odpowiednio komendy:
C:\Documents and Settings\User> cd \ [Enter]
C:\cd R0;Program Files\OpenVPN\easy-rsaR1; [Enter]
C:\Program Files\OpenVPN\easy-rsa> <- katalog docelowy
Następnie uruchamiamy plik init-config.bat:
C:\Program Files\OpenVPN\easy-rsa> init-config.bat [Enter]
a także edytujemy plik vars.bat, zawierający domyślne ustawienia dla certyfikatów, które stworzymy w kolejnym etapie. Przykładowe ustawienia:
set KEY_COUNTRY=oznaczenie_kraju
set KEY_PROVINCE=region_kraju
set KEY_CITY=nazwa_miasta
set KEY_ORG=nazwa_organizacji
set KEY_EMAIL=admin@host.domena
Wygenerowanie:
a) folderu keys oraz plików index.txt oraz serial:
Aby utworzyć w/w folder i oba pliki należy uruchomić plik wykonywalny vars.bat, a następnie plik clean-all.bat
C:\Program Files\OpenVPN\easy-rsa> vars.bat [Enter]
C:\Program Files\OpenVPN\easy-rsa> clean-all.bat [Enter]
b) klucza CA (jednorazowo):
Aby utworzyć klucz CA należy uruchomić plik wykonywalny vars.bat, a następnie plik build-ca.bat
C:\Program Files\OpenVPN\easy-rsa> vars.bat [Enter]
C:\Program Files\OpenVPN\easy-rsa> build-ca.bat [Enter]
Plik wsadowy prosi użytkownika o wprowadzenie pewnych informacji, które będą umieszczone w certyfikatach. Domyślne parametry pobierane są z pliku vars.bat:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
Jeśli chcemy, możemy wpisać pozostałe dane:
Country Name (2 letter code) [PL]: [Enter]
State or Province Name (full name) [PL]: [Enter]
Locality Name (eg, city) [Torun]: [Enter]
Organization Name (eg, company) [Moja_firma]: [Enter]
Organizational Unit Name (eg, section) []:Siedziba [Enter]
Common Name (eg, your name or your server's hostname) []:Serwer_firmowy
Email Address [admin@host.domena]: [Enter]
c) pliku DH (jednorazowo, dla serwera)
Aby utworzyć plik DH należy uruchomić skrypt vars.bat, a następnie plik build-dh.bat:
C:\Program Files\OpenVPN\easy-rsa>vars.bat [Enter]
C:\Program Files\OpenVPN\easy-rsa>build-dh.bat [Enter]
Loading 'screen' into random state - done
Generating DH parameters, 1024 bit long safe prime, generator 2
This is going to take a long time
.................................................+.........................................+..........................................................+.........
................................+......+.+.............................+....................+...................................................................
.............................................+.................................................+.....+..........................................................
.................................................+..............................................................................................................
+........+..........................................+.......................................+..................................................+...........+....
....+............................+......................+.+..............+....................+...............................+.................................
......................................................+.....................................................+..+................................................
...........................................+..............................+....+................+.....+...........................+..+..........................
............................................+.....+.+...........................+..+........+...................................................................
.........................................+......+....................+..........................................................+...............................
.........................+......................................+...................................................+.+..+...............+......................
................................................................++*++*++*
Uwaga! Cała procedura trwa kilkadziesiąt sekund w zależności od szybkości naszego komputera.
d) prywatnego klucza/certyfikatu (dla serwera openvpn)
Wygenerowanie klucza prywatnego dla serwera sprowadza się do uruchomienia pliku wsadowego vars.bat oraz pliku build-key-server.bat :
C:\Program Files\OpenVPN\easy-rsa>vars.bat [Enter]
C:\Program Files\OpenVPN\easy-rsa>build-key-server.bat server [Enter]
Loading 'screen' into random state - done
Generating a 1024 bit RSA private key
.........++++++
.........................................++++++
writing new private key to 'keys\server.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [PL]: [Enter]
State or Province Name (full name) [PL]: [Enter]
Locality Name (eg, city) [Torun]: [Enter]
Organization Name (eg, company) [Moja_firma]: [Enter]
Organizational Unit Name (eg, section) []:moj_oddzial [Enter]
Common Name (eg, your name or your server's hostname) []:server [Enter]
Email Address [admin@host.domena]: [Enter]
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:moje_haslo [Enter]
An optional company name []:[Enter]
Using configuration from openssl.cnf
Loading 'screen' into random state - done
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryName :PRINTABLE:'PL'
stateOrProvinceName :PRINTABLE:'PL'
localityName :PRINTABLE:'Torun'
organizationName :T61STRING:'Moja_firma'
organizationalUnitName:T61STRING:'moj_oddzial'
commonName :PRINTABLE:'server'
emailAddress :IA5STRING:'admin@host.domena'
Certificate is to be certified until Nov 20 19:33:25 2017 GMT (3650 days)
Sign the certificate? [y/n]:y [Enter]
1 out of 1 certificate requests certified, commit? [y/n]y [Enter]
Write out database with 1 new entries
Data Base Updated
Jak widać na powyższym przykładzie tworzony certyfikat zachowuje swoją ważność przez okres 10-ciu lat.
e) plików z kluczami w formacie PEM dla klientów (osobno dla każdego z nich)
Cały etap kończy się wygenerowaniem kluczy w formacie PEM osobno dla każdego z klientów. Polega na uruchomieniu pliku wsadowego vars.bat oraz pliku build-key.bat
C:\Program Files\OpenVPN\easy-rsa>vars.bat [Enter]
C:\Program Files\OpenVPN\easy-rsa>build-key.bat klient1 [Enter]
Loading 'screen' into random state - done
Generating a 1024 bit RSA private key
...........................++++++
....++++++
writing new private key to 'keys\klient1.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [PL]: [Enter]
State or Province Name (full name) [PL]: [Enter]
Locality Name (eg, city) [Torun]: [Enter]
Organization Name (eg, company) [Moja_firma]: [Enter]
Organizational Unit Name (eg, section) []:moj_oddzial [Enter]
Common Name (eg, your name or your server's hostname) []:server [Enter]
Email Address [admin@host.domena]: [Enter]
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:moje_haslo [Enter]
An optional company name []:[Enter]
Using configuration from openssl.cnf
Loading 'screen' into random state - done
DEBUG[load_index]: unique_subject = "yes"
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryName :PRINTABLE:'PL'
stateOrProvinceName :PRINTABLE:'PL'
localityName :PRINTABLE:'Torun'
organizationName :T61STRING:'Moja_firma'
organizationalUnitName:T61STRING:'moj_oddzial'
commonName :PRINTABLE:'server'
emailAddress :IA5STRING:'admin@host.domena'
Certificate is to be certified until Nov 20 19:50:24 2017 GMT (3650 days)
Sign the certificate? [y/n]:y [Enter]
2. Nastepnie zabieramy sie za konfiguracje serwera. Edytujemy (mozna gotowy, zamieszczony ponizej) plik, ktory bedzie odpowiedzialny za stworzenie interfejsu i wystartowanie calej uslugi. U mnie on wyglada nastepujaco (przerobilem go nieco z gotowca):
insmod tun.o
cd /tmp
openvpn --mktun --dev tap0
brctl addif br0 tap0
ifconfig tap0 0.0.0.0 promisc up
echo "
# Tunnel options
mode server # Set OpenVPN major mode
proto tcp-server # Setup the protocol (server)
port 1194 # TCP/UDP port number
dev tap0 # TUN/TAP virtual network device
keepalive 15 60 # Simplify the expression of --ping
daemon # Become a daemon after all initialization
verb 3 # Set output verbosity to n
comp-lzo # Use fast LZO compression
management 192.168.2.1 7505 pass.txt
# OpenVPN server mode options
client-to-client # tells OpenVPN to internally route client-to-client traffic
duplicate-cn # Allow multiple clients with the same common name
# TLS Mode Options
tls-server # Enable TLS and assume server role during TLS handshake
ca ca.crt # Certificate authority (CA) file
dh dh1024.pem # File containing Diffie Hellman parameters
cert server.crt # Local peer's signed certificate
key server.key # Local peer's private key
" > openvpn.conf
echo "
-----BEGIN CERTIFICATE-----
[b]wklejamy zawartosc pliku ca.crt[/b]
-----END CERTIFICATE-----
" > ca.crt
echo "
-----BEGIN RSA PRIVATE KEY-----
[b]wklejamy zawartosc pliku server.key[/b]
-----END RSA PRIVATE KEY-----
" > server.key
chmod 600 server.key
echo "
-----BEGIN CERTIFICATE-----
[b]wklejamy zawartosc pliku server.crt[/b]
-----END CERTIFICATE-----
" > server.crt
echo "
-----BEGIN DH PARAMETERS-----
[b]wklejamy zawartosc pliku dh1024.pem[/b]
-----END DH PARAMETERS-----
" > dh1024.pem
sleep 5
ln -s /usr/sbin/openvpn /tmp/myvpn
/tmp/myvpn --config openvpn.conf
3. Nastepnie bierzemy sie za plik konfiguracyjny dla klienta:
# Specify that we are a client and that we
# will be pulling certain config file directives
# from the server.
client
# Use the same setting as you are using on
# the server.
# On most systems, the VPN will not function
# unless you partially or fully disable
# the firewall for the TUN/TAP interface.
dev tap
;dev tun
# Are we connecting to a TCP or
# UDP server? Use the same setting as
# on the server.
proto tcp
;proto udp
# The hostname/IP and port of the server.
# You can have multiple remote entries
# to load balance between the servers.
remote tu_wpisujemy_IP_servera 1194
;remote my-server-2 1194
# Keep trying indefinitely to resolve the
# host name of the OpenVPN server. Very useful
# on machines which are not permanently connected
# to the internet such as laptops.
resolv-retry infinite
# Most clients don't need to bind to
# a specific local port number.
nobind
# Try to preserve some state across restarts.
persist-key
persist-tun
# SSL/TLS parms.
# See the server config file for more
# description. It's best to use
# a separate .crt/.key file pair
# for each client. A single ca
# file can be used for all clients.
ca ca.crt
cert client1.crt
key client1.key
# Enable compression on the VPN link.
# Don't enable this unless it is also
# enabled in the server config file.
comp-lzo
# Set log file verbosity.
verb 3
4. Kolejna rzecza jest zainstalowanie klienta OpenVPN na komputerze, z ktorego zamierzamy sie polaczyc z naszym Linksysem, ktory pelni role serwerka OpenVPN. :) Proponuje tez sciagnac nakladke graficzna OpenVPN GUI, dzieki ktorej w prosty sposob polaczymy sie z pomidorkiem.
5. Po zainstalowaniu na komputerze klienta kopiujemy plik konfiguracyjny (u mnie nazywa sie client.ovpn) oraz wygenerowane certyfikaty do katalogu C:\Program Files\config\.
6. Otwieramy port dla uslugi na routerze:
iptables -I INPUT 1 -p tcp --dport 1194 -j ACCEPT
7. Teraz laczymy sie przez ssh z routerem i startujemy skrypt z partycji cifs1 komenda:
8. Sprawdzamy czy wszystko poszlo dobrze:
tail -f /var/log/messages
Po tej operacji mozemy sprobowac polaczyc sie z serwerem. Oczywiscie skrypt mozna tez startowac wpisujac go do Init w Administration-Scripts
To narazie tyle, w razie czego pytajcie. :)
Edytowany przez Adik dnia 30-01-2008 16:08
|
|
|
|
qwerty01 |
Dodano 10-10-2007 18:57
|
User
Posty: 190
Dołączył: 27/07/2006 20:03
|
Cytat -----BEGIN CERTIFICATE-----
wklejamy zawartosc pliku ca.crt
-----END CERTIFICATE----
itp. Skąd mam wziąść ten plik ca.crt (i inne)?
Gdzie wklejamy konfigurację OpenVPN dla Tomato i klienta?
Jak wygenerujemy certyfikat, to co z nim robimy (i jak go w sumie wygenerować)?
Opis jest robiony po "łepkach". |
|
|
|
Adik |
Dodano 10-10-2007 19:06
|
User
Posty: 178
Dołączył: 15/08/2006 09:07
|
@qwerty01
Uporzadkowalem opis - teraz generacja certyfikatow jest na samym poczatku.
Konfiguracje serwera zapisz sobie w pliku o nazwie np. server.ovpn a klienta w client.ovpn. Jak wygenerowac certyfikaty masz w pierwszym code (po angielsku) zakladam, ze znasz ten jezyk, opis jest banalny - uruchamiasz plik init-config.bat i lecisz dalej.
|
|
|
|
luk-a-sz |
Dodano 10-10-2007 19:20
|
User
Posty: 106
Dołączył: 21/09/2006 00:54
|
Jakie możliwości daje nam powyższa modyfikacja ?
Dokładne użycie łącza per-user ? |
|
|
|
marian3k |
Dodano 11-10-2007 13:24
|
User
Posty: 82
Dołączył: 19/12/2006 00:24
|
Witam.
Do tej pory uzywalem draytekow i bardzo mi VPN brakowalo w Tomato.
Fajny mod. Czy ktos z Was jest na tyle obcykany aby napisac jakis Tourtorial jak zrobic tunel Lan-to-Lan?
Na draytekach pracowalo to super i bardzo ale to bardzo tesknie za tym.
Moze ktos z Was ma juz cos takiego odpalone na swoich wuertekach? |
|
|
|
Adik |
Dodano 14-10-2007 10:50
|
User
Posty: 178
Dołączył: 15/08/2006 09:07
|
@marian3k
Sadze, ze szczegolowe informacje znajdziesz na stronie http://openvpn.net/ w dziale HOWTO.
Do swojego vortalu wrzucilem krótki opis OpenVPN User Manager'a.
W powyzszym tutorialu zabraklo informacji jak tworzony jest plik pass.txt. Wystarczy wrzucic do Scripts-Init:
echo "
test
" > /tmp/pass.txt
I plik bedzie tworzony za kazdym razem po restarcie router'a.
Jednoczesnie prosze wszystkich, ktorzy chca zapytac o kwestie konfiguracji o pisanie na forum - nie korzystam zbyt czesto z GG. :)
Edytowany przez Adik dnia 14-10-2007 10:53
|
|
|
|
luk-a-sz |
Dodano 16-10-2007 08:45
|
User
Posty: 106
Dołączył: 21/09/2006 00:54
|
Sorki, że się powtarzam ale chciałbym się dowiedzieć jakie są główne możliwości openVPN. Doczytałem się, że:
- Umożliwia on tworzenie zaszyfrowanych połączeń między hostami.
- Pozwala użytkownikom na autoryzację wejścia używając do tego celu specjalnych prywatnych kluczy, certyfikatów czy nazw użytkowników i haseł.
Na screenie który podrzucił user Adik widać prędkość użytkownika ? Czy używając openVPN mamy możliwość na bieżąco podglądania kto ile aktualnie w sieci pobiera/wysyła ? Jeśli tak, oprócz tego jakie możliwości podglądu/kontroli użytkownika posiada ?
Pozdrawiam |
|
|
|
Adik |
Dodano 16-10-2007 09:05
|
User
Posty: 178
Dołączył: 15/08/2006 09:07
|
openVPN możesz wykorzystać łącząc np. kilka oddziałów firmy rozrzuconych w różnych miejscach na świecie - dzięki połączeniu pracownicy maja wówczas dostęp do zasobów sieciowych.
openVPN user manager wyświetla:
- listę klientów podłączonych aktualnie do serwera,
- czas ich aktywności i ilości udanych prób połączeń,
- ilość pobranych i wysłanych danych
- łączny czas "online"
Oprócz tego OpenVPN User Manager umożliwia kontrolę klientów poprzez zapisywanie ich poczynań do logów a także zabijanie wybranych połączeń.
Edytowany przez Adik dnia 16-10-2007 09:07
|
|
|
|
luk-a-sz |
Dodano 16-10-2007 13:56
|
User
Posty: 106
Dołączył: 21/09/2006 00:54
|
Mam jeszcze parę pytań:
- Czy przypadkiem w pliku konfiguracyjnym serwera w linijce:
management 192.168.2.1 7505 pass.txt
Trzeba wpisać swoje IP serwera ?
- Czy w tej linijce:
remote tu_wpisujemy_IP_servera 1194
;remote [b]my-server-2[/b] 1194
my-server ma zostać czy mamy zmienić ?
- Otwieramy port dla usługi:
iptables -I INPUT 1 -p tcp --dport 1194 -j ACCEPT
Czyli możemy dodać tą linijkę do skryptu firewalla ?
- Prosiłbym o rozwinięcie pkt 7 i 8. Wiem jak się połączyć przez ssh z ruterem tylko jak wrzucić skrypt na partycje cifs1 ?
;) |
|
|
|
Adik |
Dodano 18-10-2007 08:13
|
User
Posty: 178
Dołączył: 15/08/2006 09:07
|
management 192.168.2.1 7505 pass.txt
Tak, to jest adres IP routera. Nalezy pamietac, aby otworzyc ten port (protokol TCP) - w tym przypadku 7505.
remote tu_wpisujemy_IP_servera 1194
;remote my-server-2 1194
Zamiast "tu_wpisujemy_IP_servera" wpisujesz adres IP lub adres uzyskany z DynamicDNS, czyli np. luk-a-sz.no-ip.org.
W drugiej linijce mozesz wpisac zapasowy adres. Srednik na poczatku oznacza, ze linijka jest nieaktywna. :)
Linijke:
iptables -I INPUT 1 -p tcp --dport 1194 -j ACCEPT
mozesz dodac ta linijke do firewalla.
O cifs mozesz poczytac na forum.
Edytowany przez Adik dnia 18-10-2007 08:14
|
|
|