Cara termudah untuk mengatur Ubuntu sebagai server VPN

68

Saya tahu ada banyak tutorial di internet untuk mengatur klien VPN dan server.

Saya menemukan satu yang sederhana / pendek , saya hanya tertarik pada bagian server.

Untuk klien, saya akan menggunakan OS X jadi saya lebih suka solusi yang menggunakan L2TP over IPsecatau PPTPkarena saya kira Cisco IPsec akan membutuhkan biaya.

Saya tidak ingin menghabiskan terlalu banyak waktu menyiapkannya. Anda tahu, mungkin seseorang sudah membuat skrip pengaturan :)

Catatan: Saya menggunakan instance mikro EC2 yang menjalankan Ubuntu 12.04 di atasnya.

Sorin
sumber
3
Catatan: CISCO IPSec dapat dicapai melalui StrongSwan dan banyak konfigurasi, tetapi sulit. PPTP tidak aman lagi. Dan L2TP melalui IPSec memerlukan konfigurasi L2TP dan IPSec. Pilih waktu luang Anda, meskipun jawaban saya menjelaskan PPTP
Thomas Ward

Jawaban:

24

UPDATE : Pada Sierra, macOS tidak lagi mendukung PPTP vpn. Jawaban ini tidak valid untuk klien macOS Sierra dan seterusnya.

PPTP via PoPToP itu mudah

  1. apt-get install pptpd
  2. sunting /etc/pptpd.confdan atur opsi remoteip ke rentang di jaringan Anda yang TIDAK dilayani oleh server DHCP Anda.
  3. edit /etc/ppp/chap-secretsdan tambahkan nama pengguna dan kata sandi

misalnya

vpnuser pptpd vpnpassword *

Ini yang diperlukan untuk mengatur pptp. Sekarang mengujinya dengan klien OS X Anda.

Jay _silly_evarlast_ Gelatik
sumber
Saya juga bertanya-tanya nilai localip dan remoteip mana yang paling aman, mengingat saya akan terhubung ke server ini dari lokasi mana pun. Nilai default yang pasti 192.168.0.dan 192.168.1.mungkin salah satu yang terburuk.
sorin
12 Mei 13:28:06 zork pppd [9447]: Plugin /usr/lib/pptpd/pptpd-logwtmp.so dimuat. 12 Mei 13:28:06 zork pppd [9447]: pppd 2.4.5 dimulai oleh root, uid 0 12 Mei 12 13:28:06 zork pppd [9447]: Menggunakan antarmuka ppp0 12 Mei 13:28:06 zork pppd [9447 ]: Sambungkan: ppp0 <--> / dev / pts / 3 12 Mei 13:28:36 zork pppd [9447]: Hangup (SIGHUP) 12 Mei 13 13:28:36 zork pppd [9447]: Modem hangup 12 Mei 13 : 28: 36 zork pppd [9447]: Koneksi terputus. 12 Mei 13:28:36 zork pppd [9447]: Keluar. Belum berfungsi! Panduan Anda tidak lengkap (belum);)
sorin
Ya ini tidak berhasil.
bkerensa
1
tidak bekerja untuk saya
Tyler Gillies
@SorinSbarnea ips itu pribadi dan tidak pernah melalui internet, jadi saya tidak tahu apa yang Anda maksud dengan "paling aman". Anda akan beruntung jika mereka tidak memiliki rentang IP yang sama dengan kafe, atau tempat kerja tempat Anda terhubung. Coba 192.168.42. * :)
Jay _silly_evarlast_ Wren
86

PERINGATAN: PPTP ADALAH PROTOKOL KEAMANAN! Enkripsi tidak hanya dilanggar, tetapi mengirimkan otentikasi Anda dalam teks yang jelas dan mudah dicegat. Diperkirakan bahwa jumlah waktu yang diperlukan untuk brute-force kata sandi kira-kira sama dengan waktu yang diperlukan untuk brute-force satu kunci DES. Pertimbangkan untuk menggunakan OpenVPN atau arsitektur VPN lain sebagai ganti PPTP!

Saya menggunakan panduan ini untuk mengatur server PPTP VPN di server Ubuntu 12.04 saya.


Untuk meringkas poin utama dalam tautan, meskipun:

1: Instal pptpddan ufw. iptablesdapat digunakan sebagai pengganti ufw, tetapi demi kemudahan, ufwlebih baik jika Anda tidak tahu iptables.

sudo apt-get install pptpd ufw

2: Buka port yang dibutuhkan. Panduan ini menyarankan 22 (SSH) dan 1723 untuk pptp vpn.

sudo ufw izinkan 22
sudo ufw izinkan 1723
sudo ufw aktifkan

3: Edit /etc/ppp/pptpd-options. Buka file dengan editor favorit Anda (nano milik saya, jadi perintah untuk saya adalah sudo nano /etc/ppp/pptpd-options), dan beri komentar pada baris-baris ini dengan meletakkan #sebelum mereka, jika Anda ingin ini bekerja secara universal pada semua OS:

menolak-pap
menolak-chap
menolak-mschap

Anda dapat mengomentari baris ini jika Anda ingin menonaktifkan enkripsi: require-mppe-128

4: Saat mengedit /etc/ppp/pptpd-options, tambahkan server DNS untuk VPN. Contoh ini menggunakan server OpenDNS:

ms-dns 208.67.222.222
ms-dns 208.67.220.220

5: Edit /etc/pptpd.conf. Buka file dengan editor favorit Anda (nano milik saya, jadi perintah untuk saya adalah sudo nano /etc/pptpd.conf). Anda perlu menambahkan IP VPN lokal untuk sistem, jadi tambahkan:

localip 10.99.99.99
remoteip 10.99.99.100-199

Jika sistem Anda adalah VPS, gunakan IP publik untuk "localip". Jika tidak dan berada di jaringan lokal, gunakan IP jaringan komputer Anda. Gunakan IP dan rentang yang berbeda jika IP ini ada di subnet Anda! Jika Anda tidak tahu IP publik VPS Anda, temukan dengan menjalankandig +short myip.opendns.com @resolver1.opendns.com

6: Edit /etc/ppp/chap-secrets. Buka file dengan editor favorit Anda (nano milik saya, jadi perintah untuk saya adalah sudo nano /etc/ppp/chap-secrets), dan tambahkan data auth.
Format untuk /etc/ppp/chap-secretsadalah:

[Nama Pengguna] [Layanan] [Kata Sandi] [Alamat IP yang Diizinkan]

Contohnya adalah: sampleuser pptpd samplepassword *

7: Mulai ulang pptpd. Jalankan perintah ini di terminal:sudo /etc/init.d/pptpd restart

8: Edit /etc/sysctl.conf. Buka file dengan editor favorit Anda (nano milik saya, jadi perintah untuk saya adalah sudo nano /etc/sysctl.conf). Hapus komentar pada baris berikut (dengan menghapusnya #di awal) di /etc/sysctl.conf: net.ipv4.ip_forward=1
Muat ulang konfigurasi: sudo sysctl -p

9: Langkah ini mengasumsikan Anda memiliki ufw.
Edit /etc/default/ufwdan ubah opsi DEFAULT_FORWARD_POLICYdari DROPmenjadiACCEPT

10: Langkah ini mengasumsikan Anda memiliki ufw.
Edit /etc/ufw/before.rules, dan tambahkan berikut ini baik di awal /etc/ufw/before.rulesatau tepat sebelum *filteraturan (disarankan):

# Aturan tabel NAT
* nat

: PENERIMAAN POSTROUTING [0: 0]
# Izinkan penerusan lalu lintas ke eth0
-Sebuah POSTROUTING -s 10.99.99.0/24 -o eth0 -j MASQUERADE

# Memproses aturan tabel NAT
MELAKUKAN

Jika Anda memiliki kernel versi 3.18 dan yang lebih baru (Anda dapat memeriksanya dengan menjalankan uname -r), tambahkan juga baris berikut sebelum # drop INVALID packets ...baris:

-A ufw-before-input -p 47 -j ACCEPT

11: Mulai ulang firewall, untuk menyegarkan set aturan dan untuk menerapkan aturan yang kami tambahkan ke /etc/ufw/*.rulesfile: sudo ufw disable && sudo ufw enable

Peringatan: Jika Anda memiliki port lain yang perlu Anda buka, seperti untuk HTTPS jika server Anda meng-host situs web, Anda perlu menambahkan masing-masing port tersebut ke daftar yang diizinkan dengansudo ufw allow <PORT>

Thomas Ward
sumber
4
Sekarang apa yang harus saya lakukan: D Saya punya yang bekerja di server, tidak tahu bagaimana menghubungkannya lol
Jamie Hutber
1
@Jamie Ada banyak dokumen dan entri lainnya di sini di Tanya Ubuntu tentang koneksi ke VPN dan dokumentasi di dalam Network Manager. Pertanyaan ini hanya mencakup pengaturan VPN, dan sisi server. BUKAN bagian yang menghubungkannya.
Thomas Ward
: D respon super cepat: DI pikir saya mungkin berhasil, saya pasti baru saja menetapkan sesuatu yang salah. Ini kata ufw aktif dan memungkinkan sebagian besar port. Saya akan bermain dengan iptables untuk melihat apakah ini membuat saya tetap
Jamie Hutber
@Jamie saya bisa memberi Anda perintah iptables untuk digunakan ketika saya pulang Anda lebih suka iptables untuk ufw.
Thomas Ward
1
iptables / netfilter digunakan dengan ufw, ufw hanya lebih baik dengan aturan dan penanganan perintah untuk pengguna akhir.
Thomas Ward
19

Contoh PPTP VPN di Ubuntu 12.04

Berikut ini adalah tutorial singkat untuk menyiapkan server PPTP VPN dasar di Ubuntu 12.04.

Instal Paket yang Diperlukan

                          sudo apt-get install ppp pptpd

Konfigurasikan PPTP IP Berkisar di Server

                          sudo nano /etc/pptpd.conf

Tambahkan baris berikut pada akhirnya

                          localip 10.89.64.1
                          remoteip 10.89.64.100-150

Ini mengatur server PPTP untuk menggunakan IP 10.89.64.1 saat mendistribusikan kisaran IP 10.89.64.100 hingga 10.89.64.150 ke klien PPTP. Ubah ini sesuai keinginan Anda asalkan alamat IP pribadi dan tidak bertentangan dengan alamat IP yang sudah digunakan oleh server Anda.

Konfigurasikan Server DNS untuk Digunakan Saat Klien Terhubung ke Server PPTP ini

                          sudo nano /etc/ppp/pptpd-options

Ubah ATAU Tambahkan baris berikut pada akhirnya

                          ms-dns 8.8.8.8
                          ms-dns 8.8.4.4

Buat Pengguna PPTP

                          sudo nano /etc/ppp/chap-secrets

Tambahkan baris di bagian bawah sehingga file Anda terlihat seperti:

                          # client    server  secret          IP addresses
                          test        pptpd   abcd1234        *

Konfigurasikan NAT untuk Koneksi PPTP

Tanpa langkah ini Anda akan dapat terhubung tetapi koneksi Anda tidak akan dapat memuat koneksi web apa pun dari server ini.

                          sudo nano /etc/rc.local

Tambahkan berikut ini ke kanan bawah sebelum "keluar 0" baris:

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

Dengan asumsi eth0, Anda dapat menggunakan ifconfiguntuk memeriksa nama jaringan.

Aktifkan IPv4 forwading:

                          sudo nano /etc/sysctl.conf

Batalkan komentar pada baris berikut:

                          net.ipv4.ip_forward=1

Kemudian muat ulang konfigurasi:

                          sudo sysctl -p

Nyalakan kembali VPS Anda dan semuanya harus bekerja dengan baik dari klien PPTP mana pun.


Konfigurasi sisi klien

Untuk Mac, pastikan Anda menambahkan koneksi PPTP VPN. Selain itu Anda hanya perlu mengatur alamat server, nama akun, dan kata sandi dalam pengaturan otentikasi. Tidak sakit di sini.

Untuk Linux, NetworkManager menambahkan koneksi VPN. Pastikan Anda menambahkan koneksi PPTP VPN. Dan konfigurasi yang saya gunakan ada di sini:

Cara Debug dan Memperbaiki Koneksi Klien PPTP / VPN

masukkan deskripsi gambar di sini

Dan untuk Windows

masukkan deskripsi gambar di sini

Qasim
sumber
Apakah metode ini juga berfungsi pada Ubuntu 12.04 edisi non-server? Nomor IP apa yang harus digunakan klien untuk terhubung ke jaringan VPN ini?
Rasoul
Ya itu untuk edisi non-server juga, Anda harus menggunakan server ip pada klien untuk terhubung ke vpn @Rasoul
Qasim
Tidak berfungsi, server Ubuntu 13.04. Klien macet mencari DNS.
knutole
@knutole memeriksa apakah aturan IPTables Anda merutekan dengan benar. Pastikan Anda memiliki antarmuka en0 dan tidak bernama yang lain. Anda harus melihat alamat IP publik terdaftar.
Nick Woodhams
ok, jadi, dalam contoh Anda ip mana yang merupakan server ip? 10.89.64.1? Kemudian di manajer jaringan Ubuntu klien akan mendaftar 10.89.64.1 sebagai Gateway?
dranxo
9

Jawaban lain di utas ini hanya sebagian jawaban dalam kasus saya. Inilah yang bekerja untuk saya di Ubuntu 12.04.3

sudo apt-get install pptpd

Tambahkan berikut ini ke /etc/pptpd.conf (Alamat IP tidak masalah, ini hanya Alamat IP untuk antarmuka ppp0 Anda.)

localip 10.0.0.1
remoteip 10.0.0.100-200

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

ms-dns 8.8.8.8
ms-dns 8.8.4.4

Aktifkan Penerusan IP

sudo vim /etc/sysctl.conf

Batalkan komentar pada baris ini

net.ipv4.ip_forward=1

Simpan perubahan

sudo sysctl -p /etc/sysctl.conf

Edit / etc / ppp / chap-secrets, tambahkan pengguna VPN dalam format ini:

# Secrets for authentication using CHAP
# client    server  secret          IP addresses
username pptpd supersecretpassword *

Mulai ulang PPTP

service pptpd restart

Jalankan ifconfigdan temukan antarmuka default Anda, dalam kasus saya ini adalah br0 (Saya mengubahnya untuk memungkinkan mesin virtual pada mesin fisik saya untuk berbagi antarmuka. Anda mungkin akan en0 )

masukkan deskripsi gambar di sini

Cadangkan iptables

iptables-save > ~/iptables.save

Sekarang buat perubahan iptables Anda menggunakan antarmuka default Anda seperti yang diungkapkan oleh ifconfig.

iptables -t nat -A POSTROUTING -o br0 -j MASQUERADE
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 br0 -j ACCEPT

Untuk membuatnya tetap ada saat sistem Anda reboot;

sudo apt-get install iptables-persistent

Tambahkan VPN di komputer klien (Mac)

Preferensi Sistem> Jaringan> [+]> VPN

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

Kemudian pilih pengaturan Otentikasi> Kata Sandi, lalu isi kata sandi Anda di sini

masukkan deskripsi gambar di sini

Nick Woodham
sumber
7

Inilah proyek yang cukup manis yang menghilangkan rasa sakit OpenVPN:

https://github.com/Nyr/openvpn-install

Jalankan saja dan itu akan menginstal vpn terbuka dan mengkonfigurasinya. Pada akhirnya akan muncul file client.ovpn yang dapat Anda gunakan untuk mengatur klien Anda. Tampaknya bekerja dengan cukup baik.

HappyCoder86
sumber
Astaga. Itu hanya bekerja. Saya bertanya-tanya mengapa itu tidak memiliki pengakuan luas.
Marcus