Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[debian] server pptpd do połączeń w virtualnej sieci lan

16 Sty 2015 01:39 1401 1
  • Poziom 15  
    Witam, jak w temacie, zakupiłem ostatnimi czasy VPS, celem było stworzenie sieci opartej o vpn (pptp) w której komputery które się do niej łączą widzą się na wzajem.

    Bez największego problemu udała się konfiguracja udostępniania połączenia internetowego (niezamierzony efekt osiągnięty przy okazji), jednak głownym celem sieci ma być możliwość udostępniania zasobów pozostały członkom sieci vpn, np server gry, zasoby samba, drukarka sieciowa itp itd.
    Klient 1 - server gry,
    klient 2 - udziały samba,
    Klient 3 - drukarka,
    ... itp

    chodzi również o możliwość pingowania się wzajemnie komputerów podłączonych do sieci.

    Z góry bardzo dziękuję za pomoc.

    Server jest dziewiczy wręcz, nie posiada on żadnych dodatkowych usług zainstalowanych ( w planach niewielki panel w php do dodawania/usuwania userów mogących miec dostep do vpn).

    obecna instalacja to debian 6 x64, ale bez problemu można zmienić na debian 7 czy jakąkolwiek inna dystrybucje.

    Z góry dziękuję za wszelką pomoc.
    Darmowe szkolenie: Ethernet w przemyśle dziś i jutro. Zarejestruj się za darmo.
  • Poziom 15  
    Dla osób chcących w przyszłości znaleźć rozwiązanie, oto one:

    Wszytskie poniższe czynności należy wykonywać z poziomu usera mające uprawnienia root

    Instalacja serwera pptp poprzez:
    apt-get update
    apt-get install pptpd


    Przy każdorazowym poprawnym połączeniu należy uruchomić polecenie wewnątrz skryptu bash znajdującego się w katalogu: /etc/ppp/ip-up.d/
    polecenie to:
    iptables --table nat --append POSTROUTING --out-interface ${PPP_IFACE} --jump MASQUERADE


    żeby reguła dodana przez nas znikała po rozłączeniu należy uruchomić polecenie wewnątrz skryptu bash znajdującego się w katalogu: /etc/ppp/ip-down.d/

    iptables --table nat --delete POSTROUTING --out-interface ${PPP_IFACE} --jump MASQUERADE


    Pliki w /etc/ppp/ip-up.d/ uruchamiane są każdorazowo no nawiązaniu połączenia za pomocą pptp, a /etc/ppp/ip-down.d/ przy ich rozłączaniu.

    ${PPP_IFACE} to aktualnie nawiązaywane/rozłączane połączenie wg wzoru: ppp0, ppp1, ppp2... itd.




    Aby udostępnić połączenie internetowe naszego komputera należy:

    zdjąć komentarz w pliku /etc/sysctl.conf z lini zawierającej net.ipv4.ip_forward=1

    następnie zapisać zmiany i je przeładować poleceniem sysctl -p

    następnie należy dodać reguły do iptables:

    iptables -P FORWARD ACCEPT
    iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE


    przy czym eth0 jest nazwą aktualnie używanego połączenia internetowego. dla przykładu w maszynie typu VPS nazwa ta może występować jako venet0 (nazwa taka występuje np w serwerze VPS w OVH).

    teraz konfiguracja samego serwera pptp:
    plik : /etc/ppp/pptpd-options
    Cytat:
    name pptpd
    refuse-pap
    refuse-chap
    refuse-mschap
    require-mschap-v2
    require-mppe-128
    ms-dns 8.8.8.8
    proxyarp
    nodefaultroute
    lock
    nobsdcomp
    noipx
    mtu 1490
    mru 1490


    /etc/ppp/options
    Cytat:
    asyncmap 0
    auth
    crtscts
    lock
    hide-password
    modem
    lcp-echo-interval 30
    lcp-echo-failure 4
    noipx



    /etc/pptpd.conf
    Cytat:
    option /etc/ppp/pptpd-options
    logwtmp
    #bcrelay eth0
    localip 192.168.10.1
    remoteip 192.168.10.200-250


    #bcrelay eth0 jest zakomentowany, zależy od posiadanej wersji systemu oraz ustawień iptabes, opcja może być nie potrzebna.


    Oraz najważniejsze, dane logowania:
    plik /etc/ppp/chap-secrets:
    Cytat:

    user * pass *


    kolejnosc jest nastepujaca, 1 user=1 linia
    [nazwa usera][tab][nazwa serwera][tab][haslo][tab][przypisany adres ip do klienta]

    * - wartość niesprecyzowana, każdy parametr przy nawiązaniu połączenia pasuje
    można zrobić tak:

    elektroda * haslo 192.168.10.245

    user elektroda po zalogowaniu zawsze będzie miął ten sam adres ip, adres ten musi zawierać się w puli adresów ustawiany poprzednio w opcjach.

    samo uruchomienie serwera następuje po wprowadzeniu polecenia service pptpd restart

    żeby usługa serwera pptp starowala samoczynnie po uruchomieniu serwera, nastapi to po wykonaniu: update-rc.d pptpd defaults

    [UWAGA]

    Reguły iptables do dzielenia łącza internetowego z klientami pptp należy wprowadzać każdorazowo po ponownym uruchomieniu komputera, można to zrobić tez poprzez dodanie ich w jednym ze startujących skryptów. Osobiście nie stosuje tego ze względu na bezpieczeństwo serwera.
    W praktyce nasze przygody w internecie są widoczne pod adresem serwera, staje się on wtedy naszą bramką internetową.


    Od teraz każdy połączony i zweryfikowany użytkownik naszej nowo powstałej sieci VPN może pingować inne komputery w sieci, można dzielić się zasobami takimi jak pliki (np SAMBA) oraz udostępniać swoje drukarki, łączyć się poprzez zdalny pulpit (nawet jak sam komputer nie ma otwartych w routerze na to portów), mieć dostęp do wewnętrznej strony internetowej, grać w gry w trybie Multi po lan [osobiście czasem lubię pograć w minecraft].


    Połączenie można skonfigurować w domowym laptopie, telefonie [Symbian, Android, iPhone itp] i mieć wrażenie że nigdy tak na prawdę nie wyszliśmy z domu.

    Miłej zabawy.

    Osobiście testowałem powyższą konfigurację na następujących edycjach:
    Debian 6, 7, 7.5