Bagaimana cara mengatur PPTP VPN di Server Ubuntu saya sendiri?

16

Dengan asumsi saya memiliki Virtual Private Server dari seseorang seperti Linode , menjalankan Ubuntu, bagaimana saya dengan mudah mengatur PPTP VPN sehingga klien Ubuntu dapat terhubung ke sana?

Secara default, Ubuntu menawarkan untuk terhubung ke jaringan PPTP ini. Saya ingin mengaturnya sedemikian rupa sehingga sangat mudah untuk terhubung (Yaitu tanpa menginstal paket pada klien).

Stefano Palazzo
sumber

Jawaban:

28

Pengaturan Server Minimum Mutlak

Berikut ini adalah instruksi minimum absolut yang Anda perlukan untuk menjalankan server PPTP VPN dasar di bawah Ubuntu. Klien kemudian akan dapat VPN ke server dan merutekan lalu lintas internet mereka sehingga melewati server ke internet. Seperti biasa, lihat dokumentasi lengkap untuk memahami apa yang dilakukan semuanya.

Pertama, instal perangkat lunak yang diperlukan:

sudo apt-get install pptpd

Kedua, aktifkan ip_forwarddi kernel untuk IPv4 dengan membatalkan komentar pada baris terkait di /etc/sysctl.conf :

sudo sed -i -r 's/^\s*#(net\.ipv4\.ip_forward=1.*)/\1/' /etc/sysctl.conf
# Reload the config file to have the change take effect immediately.
sudo -i sysctl -p

Ketiga, aktifkan NAT (jika belum diaktifkan) sehingga pengguna di jaringan VPN pribadi dapat merutekan paket mereka ke internet:

OUTIF=`/sbin/ip route show to exact 0/0 | sed -r 's/.*dev\s+(\S+).*/\1/'`
sudo -i iptables --table nat --append POSTROUTING --out-interface $OUTIF --jump MASQUERADE
# Enable NAT on boot from the rc.local script.
CMD="iptables --table nat --append POSTROUTING --out-interface $OUTIF --jump MASQUERADE"
sudo sed -i "\$i$CMD\n" /etc/rc.local

Catatan: Panduan ini mengasumsikan Anda tidak memiliki firewall yang dikonfigurasi di server. Jika Anda memiliki firewall di server, seperti UFW , lihat dokumentasi yang relevan sebagai gantinya.

Keempat, untuk setiap pengguna VPN, buat akun di file / etc / ppp / chap-secrets . Ganti $USERdengan nama pengguna aktual yang ingin Anda gunakan untuk pengguna VPN itu.

KEY=`head -c 20 /dev/urandom | sha1sum | nawk '{print $1}'`
echo "$USER pptpd $KEY *" | sudo tee -a /etc/ppp/chap-secrets

Akhirnya, Anda siap untuk ...

Konfigurasikan Klien

Di applet Network Manager , pilih VPN ConnectionsConfigure VPN , lalu klik Add . Pada layar berikutnya pilih PPTP untuk jenis VPN, lalu klik Buat .

masukkan deskripsi gambar di sini

Di jendela ini, masukkan nama host atau IP server Anda bersama dengan nama pengguna dan kunci yang Anda tambahkan ke file / etc / ppp / chap-secrets di server.

Sekarang klik Advanced .

masukkan deskripsi gambar di sini

Di jendela ini, aktifkan "Gunakan enkripsi Point-to-Point (MPPE)" dan pilih keamanan 128-bit . Nonaktifkan penggunaan otentikasi MSCHAP (biarkan MSCHAPv2 diaktifkan).

Akhirnya, klik Ok dan kemudian Simpan untuk menutup jendela sebelumnya.

Anda sekarang dapat menguji koneksi VPN dengan masuk ke applet Network Manager → VPN Connections dan memilih koneksi yang baru saja Anda buat. Pastikan Anda mendapatkan pesan yang mengatakan bahwa koneksi VPN berhasil, kemudian ramban ke situs web yang memeriksa IP untuk memverifikasi bahwa IP Anda sekarang muncul sebagai IP server.

Jika Anda menerima pesan yang mengatakan bahwa koneksi VPN ke server gagal: pertama pastikan Anda memasukkan pengaturan klien dengan benar; kedua, periksa apakah klien memiliki konektivitas jaringan ke port TCP 1723 di server; akhirnya, periksa file log / var / log / messages di server untuk petunjuk lebih lanjut. Jika koneksi VPN Anda berhasil, tetapi selanjutnya Anda tidak dapat menjelajah ke situs web apa pun dari klien, bacalah panduan diagnostik yang sangat membantu ini di situs web pptpd.

Catatan

Jika jaringan lokal Anda terhubung menggunakan subnet 192.168.0.0/24 dan 192.168.1.0/24, Anda akan mengalami masalah karena itulah yang digunakan oleh server PPTP secara default. Anda harus mengkonfigurasi PPTP untuk menggunakan subnet yang berbeda di pptpd.conf .

Ada banyak perubahan konfigurasi lain yang mungkin ingin Anda lakukan. Misalnya, semua pencarian nama domain Anda masih akan ditanyakan menggunakan server DNS lokal Anda alih-alih melalui server PPTP. Luangkan waktu untuk membaca dokumentasi lengkap untuk mengetahui cara mengubah pengaturan ini dan banyak lainnya.

Michael Kropat
sumber
4

Tutorial yang saya tulis ini akan memandu Anda. Ini akan membantu Anda menghindari kesalahan umum yang dilakukan oleh orang yang menggunakan VPS.

Pertama masuk ke Panel VPS Anda dan aktifkan TUN / TAP dan PPP . Jika Anda tidak memiliki opsi seperti itu, hubungi ISP Anda untuk mengaktifkannya untuk Anda.

masukkan deskripsi gambar di sini

Pertama instal paket ini:

sudo apt-get install pptpd

Karena kami tidak ingin VPN kami menjadi publik, kami akan membuat pengguna.
Saya menggunakan VI Anda dapat menggunakan NANO atau editor teks apa pun yang Anda suka

vi /etc/ppp/chap-secrets

Formatnya adalah

[username] [service] [password] [ip]

Contoh

john pptpd johnspassword *

* berarti akses dari semua alamat IP diizinkan, tentukan IP hanya jika Anda memiliki alamat statis.

Mengedit Pengaturan PPTPD

vi /etc/pptpd.conf

Cari pengaturan localip dan remoteip. Hapus #(karakter komentar) untuk keduanya sehingga pengaturan ini akan benar-benar dikenali. Ubah localip ke IP server Anda. Jika Anda tidak tahu IP server Anda, Anda dapat melihat di panel kontrol VPS Anda.

Remoteip pada dasarnya adalah kisaran IP yang akan ditetapkan oleh klien (komputer yang terhubung ke VPN Anda). Misalnya, jika Anda menginginkan rentang IP berikut: 192.168.120.231-235, server VPN Anda akan dapat menetapkan 192.168.120.232, 192.168.120.233, 192.168.120.234, dan 192.168.120.235, dan 192.168.120.235 untuk klien. Terserah Anda apa yang ingin Anda gunakan untuk bidang ini.

Secara pribadi saya memilih pengaturan ini:

localip 10.0.0.1
remoteip 10.0.0.100-200

Jadi saya bisa menghubungkan sekitar 200 klien.

Tambahkan server DNS ke /etc/ppp/pptpd-options

ms-dns 8.8.8.8
ms-dns 8.8.4.4

Anda dapat menambahkan ini ke akhir file atau menemukan baris-baris itu, menghapus komentar mereka dan mengubah IP ke DNS Publik yang Anda inginkan.

Siapkan Penerusan

Penting untuk mengaktifkan penerusan IP pada server PPTP Anda. Ini akan memungkinkan Anda untuk meneruskan paket antara IP publik dan IP privat yang Anda siapkan dengan PPTP. Cukup edit /etc/sysctl.conf dan tambahkan baris berikut jika belum ada di sana:

net.ipv4.ip_forward = 1

Untuk membuat perubahan aktif, jalankan sysctl -p

Buat aturan NAT untuk iptables

Ini adalah bagian penting, jika Anda menggunakan VPS Anda mungkin tidak akan menggunakan eth0 tetapi venet0 sebagai gantinya, Anda harus memeriksa antarmuka yang Anda miliki dengan menjalankan ifconfig

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE && iptables-save

Jika Anda juga ingin klien PPTP Anda berbicara satu sama lain, tambahkan aturan iptables berikut:

iptables --table nat --append POSTROUTING --out-interface ppp0 -j MASQUERADE
iptables -I INPUT -s 10.0.0.0/8 -i ppp0 -j ACCEPT
iptables --append FORWARD --in-interface eth0 -j ACCEPT

Sekali lagi, Anda perlu mengganti eth0 dengan venet0 jika Anda menggunakan VPS.

Saya akan merekomendasikan berlari

sudo iptables-save

Sekarang server PPTP Anda juga bertindak sebagai router.

Anda dapat menjalankan perintah ini sehingga layanan VPN mulai saat boot

systemctl enable pptpd

Saya merekomendasikan menginstal iptables-persistent sehingga aturan tetap ada bahkan setelah reboot

sudo apt-get install -y iptables-persistent
Luka
sumber
Tautan tidak akan pergi ke mana pun, terutama saya tidak akan pernah merilis nama domain ini, kedua itu adalah server hosting saya, ketiga percayalah: DI benar-benar tidak bisa hanya menyalin-tempel tutorial di sini terlalu panjang.
Luka
Saya khawatir bahwa kami tidak menerima jawaban hanya tautan di situs ini. Jadi jawaban ini kemungkinan akan segera dihapus, seperti yang Anda lihat, sudah ada dalam antrian ulasan (tautan di komentar saya sebelumnya).
Zanna, terima kasih banyak! @ Panda Paranoid dengan baik maka Anda harus menghapus jawaban di atas milikku yang memiliki 2 suara karena mengandung tautan: P
Luka
1
Masalahnya di sini adalah jawabannya hanya tautan. Ini berarti bahwa jika tautannya turun karena alasan apa pun (bahkan jika tautannya tidak akan pernah turun), jawabannya akan menjadi tidak valid. Sekarang jawabannya sudah mandiri (dan menggunakan tautan untuk referensi), jawabannya baik-baik saja. Jawaban yang dimaksud sedang dihapus saat ini, kecuali jika sudah diadaptasi seperti pos Anda sebelumnya.
Kaz Wolfe
1
Sama-sama, terima kasih sudah membuat tutorial. Lain kali jangan takut untuk membuat posting sepanjang ini; itu benar-benar dapat diterima.
Zanna
3

Ikuti tutorial ini: Server PPTP VPN dengan Ubuntu

  1. Di bawah pemilihan perangkat lunak, pilih server OpenSSH - untuk manajemen jarak jauh mesin - dan pemilihan paket manual untuk paket pptpd yang sebenarnya. Jika Anda ingin lebih banyak layanan, misalnya jika Anda ingin menggunakan komputer juga sebagai server web, Anda tentu saja dapat memilih perangkat lunak tambahan. Untuk alasan keamanan, saya biasanya menyarankan orang untuk hanya menjalankan satu dari layanan yang dapat diakses di luar per mesin jika diatur dalam lingkungan yang kritis, tetapi itu terserah Anda.

  2. Dalam pemilihan manual, navigasikan ke paket yang tidak diinstal> net di mana Anda akan menemukan pptpd. Pilih dan tekan 'g' dua kali untuk menginstal paket.

  3. Biarkan instalasi selesai dan reboot sistem Anda.

  4. SSH ke mesin yang baru Anda siapkan dan jalankan sudo aptitude update && sudo aptitude safe-upgradeterlebih dahulu untuk memperbarui semua paket. Reboot jika perlu.

  5. Buka file pptpd.conf: sudo nano /etc/pptpd.confSesuaikan pengaturan IP di bagian bawah dengan kebutuhan Anda. Di bawah IP lokal Anda memasukkan IP di jaringan lokal server VPN Anda (jika Anda tidak tahu itu ketik 'sudo ifconfig' dan itu akan menunjukkan Anda antarmuka jaringan dan IP yang ditugaskan). Untuk itu saya sarankan untuk mengatur IP statis di / etc / network / interfaces atau dalam konfigurasi router Anda.

  6. Jika mau, Anda dapat mengubah nama host di /etc/ppp/pptpd-options

  7. Tentukan nama pengguna dan password Anda ingin memberikan akses ke VPN Anda: sudo nano /etc/ppp/chap-secrets. Jika Anda mengubah nama host pada langkah sebelum pastikan Anda mengetikkan nama host yang sama sekarang di bawahserver

    Contoh:

    # client        server  secret                  IP addresses
    eubolist   pptpd   myübersecretpassword   *
    

    Seperti dalam pptp tidak ada keamanan keyfile semata-mata tergantung pada kata sandi. Itulah sebabnya Anda harus memilih kata sandi acak yang panjang (mis. 32 karakter). Anda dapat membuat kata sandi seperti itu di sini.

  8. Sekarang kita perlu mengatur ip-masquerading: sudo nano /etc/rc.local

    Tambahkan baris berikut di atas baris yang bertuliskan 'exit 0'

    # PPTP IP forwarding
    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    

    Secara opsional, saya sarankan untuk mengamankan server SSH Anda dari serangan brute force:

    #SSH Brute Force Protection
    iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH
    iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 8 --rttl --name SSH -j
    

    PENURUNAN

    (juga akan dimasukkan di atas 'keluar 0')

    Anda mungkin harus mengubah 'eth 0' ke antarmuka lain, tergantung pada antarmuka mana yang dikonfigurasi untuk terhubung ke internet pada mesin Anda.

  9. Terakhir, batalkan komentar pada baris ini di /etc/sysctl.conf:

    net.ipv4.ip_forward=1
    
  10. Mulai ulang

  11. Jika vpn-server Anda tidak terhubung langsung ke internet, Anda mungkin perlu meneruskan port 1723 TCP dan GRE ke IP LAN server vpn Anda. Lihat manual router Anda atau ke portforward.com untuk instruksi spesifik vendor. Sekali lagi, Anda mungkin perlu menetapkan ip statis /etc/network/interfaces.

Ilias
sumber