OSTRZEŻENIE: PPTP TO PROTOKÓŁ BEZPIECZEŃSTWA! Szyfrowanie zostało nie tylko naruszone, ale wysyła twoje uwierzytelnienie czystym tekstem i jest łatwe do przechwycenia. Oszacowano, że czas wymagany do brutalnej siły hasła jest w przybliżeniu równy czasowi wymaganemu do brutalnej siły pojedynczego klucza DES. Rozważ użycie OpenVPN lub innej architektury VPN zamiast PPTP!
Skorzystałem z tego przewodnika, aby skonfigurować serwer PPTP VPN na moim serwerze Ubuntu 12.04.
Podsumowując główne punkty łącza:
1: Zainstaluj pptpd
i ufw
. iptables
może być stosowany zamiast ufw, ale ze względu na łatwość ufw
jest lepszy, jeśli nie wiesz iptables
.
sudo apt-get install pptpd ufw
2: Otwórz potrzebne porty. Przewodnik sugeruje 22 (SSH) i 1723 dla VPN PPTP.
sudo ufw pozwalają 22
sudo ufw pozwalają 1723
sudo ufw enable
3: Edytuj /etc/ppp/pptpd-options
. Otwórz plik w swoim ulubionym edytorze (mój nano, więc dla mnie jest to polecenie sudo nano /etc/ppp/pptpd-options
) i skomentuj te wiersze, umieszczając #
przed nimi, jeśli chcesz, aby działało to uniwersalnie na wszystkich systemach operacyjnych:
odmówić
odmówić
refuse-mschap
Możesz skomentować ten wiersz, jeśli chcesz wyłączyć szyfrowanie: require-mppe-128
4: Podczas edycji /etc/ppp/pptpd-options
dodaj serwery DNS dla VPN. W tym przykładzie wykorzystano serwery OpenDNS:
ms-dns 208,67.222.222
ms-dns 208,67.220,220
5: Edytuj /etc/pptpd.conf
. Otwórz plik w swoim ulubionym edytorze (mój nano, więc dla mnie to polecenie sudo nano /etc/pptpd.conf
). Musisz dodać lokalne adresy IP VPN dla systemu, więc dodaj:
localip 10.99.99.99
remoteip 10.99.99.100-199
Jeśli twój system to VPS, użyj publicznego adresu IP dla „localip”. Jeśli nie ma go i jest w sieci lokalnej, użyj adresu IP sieci komputera. Użyj różnych adresów IP i zakresów, jeśli istnieją one w twojej podsieci! Jeśli nie znasz swojego publicznego adresu IP swojego VPS, znajdź go, uruchamiającdig +short myip.opendns.com @resolver1.opendns.com
6: Edytuj /etc/ppp/chap-secrets
. Otwórz plik w swoim ulubionym edytorze (mój nano, więc dla mnie jest to polecenie sudo nano /etc/ppp/chap-secrets
) i dodaj dane uwierzytelniające.
Format /etc/ppp/chap-secrets
to:
[Nazwa użytkownika] [Usługa] [Hasło] [Dozwolony adres IP]
Przykładem może być: sampleuser pptpd samplepassword *
7: Uruchom ponownie pptpd. Uruchom to polecenie w terminalu:sudo /etc/init.d/pptpd restart
8: Edytuj /etc/sysctl.conf
. Otwórz plik w swoim ulubionym edytorze (mój nano, więc dla mnie to polecenie sudo nano /etc/sysctl.conf
). Usuń komentarz z następującego wiersza (usuwając #
jego początek) w /etc/sysctl.conf
: net.ipv4.ip_forward=1
Przeładuj konfigurację: sudo sysctl -p
9: Ten krok zakłada, że masz ufw.
Edytuj /etc/default/ufw
i zmień opcję DEFAULT_FORWARD_POLICY
z DROP
naACCEPT
10: Ten krok zakłada, że masz ufw.
Edytuj /etc/ufw/before.rules
i dodaj następujące na początku /etc/ufw/before.rules
lub tuż przed *filter
regułami (zalecane):
# Reguły tabeli NAT
* nat
: AKCEPTACJA POSTROUTINGU [0: 0]
# Zezwól na przesyłanie dalej do eth0
-A POSTROUTOWANIE -s 10.99.99.0/24 -o eth0 -j MASQUERADE
# Przetwarzaj reguły tabeli NAT
POPEŁNIĆ
Jeśli masz jądro w wersji 3.18 i nowsze (możesz to sprawdzić, uruchamiając uname -r
), dodaj także następujące wiersze przed # drop INVALID packets ...
wierszem:
-A ufw-before-input -p 47 -j ACCEPT
11: Uruchom ponownie zaporę, aby odświeżyć zestawy reguł i zastosować reguły dodane do /etc/ufw/*.rules
plików: sudo ufw disable && sudo ufw enable
Ostrzeżenie: jeśli masz inne porty, które potrzebujesz otworzyć, na przykład dla HTTPS, jeśli serwer obsługuje witrynę internetową, musisz osobno dodać te porty do dozwolonej listy za pomocąsudo ufw allow <PORT>