Własny serwer pośredniczący.








Programy VPN mają wiele zalet ( każdy wybierze własną, pasującą do jego potrzeb ) i jedna wadę. Wadą tą jest używanie wybranego zakresu adresów IP. Tunngle, Comodo Unite, Hamachi czy ostatnio testowany przeze mnie Remobo mają właśnie taką wadę. I jest to nie lada utrudnieniem, kiedy przychodzi czas konfiguracji firewalla czy przepuszczanie portów w routerze. Bo może się zdarzyć ąe router ( niektóre z wersji D-LINK  & ZYXEL lub parę wersji Belkin ) nie pozwala na poprawna konfiguracje z danym zakresem adresów IP.

   I tutaj właśnie przychodzi rozwiązanie z bardzo niedocenianego programu VPN, jakim  jest Wippien. Program ten został opisany na tym blogu parokrotnie, teraz przyszedł czas na pokazanie jednej z największych zalet tego programu, jaką jest możliwość współpracowania z rożnymi zakresami adresów IP. Próby wykazały, iż Wippien doskonale radzi sobie z zakresem adresów używanych w Hamachi ( 5.x.x.x ) a także z adresami używanymi w programie Tunngle ( 7.x.x.x ) i innymi.

   Rozwiązania są dwa. Pierwsze proste, które pozwoli nam na wybranie własnoręcznie puli adresów, jakie ma używać Wippien. Dokonujemy tego w 'Ustawienia' -> 'Sieć' gdzie mamy pole do popisu. Jest jednak i drugie rozwiązanie, które to pozwoli nam na utworzenie własnego serwera pośredniczącego. Serwer pośredniczący, to cytując wiki:
Serwer pośredniczący (pośrednik, często z ang. proxy) – oprogramowanie lub serwer z odpowiednim oprogramowaniem, które dokonuje pewnych operacji (zwykle nawiązuje połączenia) w imieniu użytkownika.

   W naszym przypadku jednak, ustawia nam, jaki adres IP dostaniemy, przy podłączeniu. Oczywiście istnieje główny serwer pośredniczący dla Wippien, który robi to za nas. Jednak możemy sami utworzyć taki serwer. Wszystko co wymagane, to hosting z zainstalowanym PHP oraz baza danych MySQL.

   Wippien domyślnie pobiera adresy z bazy danych, która to baza dostępna jest pod linkiem:

http://www.wippien.com/ip/?jid=
Pamiętaj że jid to tak naprawdę Twój identyfikator jabber.

Przygotowanie, czyli co muszę mieć ?

   Jak już wspomniałem, musisz mieć miejsce hostingowe, na którym to musi być zainstalowany PHP oraz baza danych MySQL. Na podanym poniżej przykładzie, utworzysz małą stronę w PHP w której to stronie będzie konfigurowane środowisko nadawania adresów IP dla Wippien.  Jeśli jesteś zaznajomiony z innymi jerzykami ( Python lub Perl ) możesz także otworzyć to w tych językach.

Przygotowanie bazy danych

   Do tej operacji ( utworzenie własnego serwera pośredniczącego )  wymagane będzie utworzenie nowej bazy danych MySQL. Utworzyć ja możesz poprzez odpowiednie polecenia SQL ( w tym przypadku baza danych nazwa będzie IPS ) :

CREATE DATABASE 'IPS';
CREATE TABLE 'peers' (
'IP' int(11) NOT NULL auto_increment,
'JID' varchar(100) collate utf8_bin NOT NULL default '',
'TIME' int(11) NOT NULL default '0',
PRIMARY KEY ('IP'),
KEY 'JID' ('JID')
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;


Skrypt 
   Skrypt ten pobieramy z linku -> http://www.wippien.com/download/mediator.txt a następnie zapisujemy na naszym serwerze. Kolejnym krokiem będzie dokonanie zmian, jakie nam pasują, czyli:

$baseaddr = ip2long("5.0.0.0"); // klasa A adresów IP
$netmask = ip2long("255.0.0.0"); // maska podsieci adresów IP 
oraz dodać w funkcji mysql_connect naszej bazy dane:
$link = mysql_connect("mysql_server", "mysql_username", "mysql_pass");

Używanie innej puli adresów niż 5.x.x.x
    Do podanego powyżej linku, który łączy się z bazą danych Wippien, w celu pobrania adresu IP, możesz dodać własne argumenty, czyli  baseaddr oraz netmask, przykladowo takie: 


http://www.wippien.com/ip/?baseaddr=172.0.0.0&netmask=255.0.0.0&jid=
jeśli  masz ochotę wykorzystywania serwera pośredniczącego Wippien do uzyskania własnych adresów IP. Wystarczy podać początkowy adres  IP do wartości   baseaddr a maskę podsieci ustawić z wartościami 255.0.0.0 lub 255.255.0.0 a serwer pośredniczący Wippien cala kalkulacje IP zrobi za Ciebie.

   Podany link ustanawia połączenie pomiędzy peerami, które chcą pomiędzy sobą ustanowić połączenie VPN. Jeśli ten link nie jest ustawiony, połączenie pomiędzy peerami nie będzie możliwe. Ważne jest także, aby link ten był dostępny u każdego peera, który chce się połączyć razem z innym peerem. W przypadku rożnych linków, połączenie nie będzie ustanowione.

Serwer z linkiem MUSI mieć publiczny adres IP.

   Ma to niebagatelne znaczenie, gdyż peery muszą połączyć się z nim, poprzez wysyłanie pakietów UDP przy użyciu specyficznego portu ( w tej chwili jest to port 8000.) Skrypty dla własnego serwera pośredniczącego ( języki PHP, C oraz VB6 ) dostępne są pod adresem:
http://www.weonlydo.com/VPN/Help/index.html?page=Mediator.html 
   Jeśli jesteś twórcą serwera pośredniczącego i chciałbyś się podzielić,  napisz do general@wippien.com z danymi serwera, a serwer ten zostanie dodany.  Możesz pobrać gotowe już serwery pośredniczące, odpowiednio dla:

Mediator_Win32.zip lub Mediator_Linux.zip

   Przydatne linki:

Klasy adresów IP
Adresowanie IP
Adres IP (wiki)
Python version of Mediator script 
Poradnik przetłumaczony ze strony Mediator - Free p2p VPN software. 

1 komentarz :