Sasaran: Saya ingin dapat menggunakan internet dengan aman melalui PC di rumah saat notebook saya terhubung ke hotspot / titik akses terbuka.
Saya tidak tahu bahwa saya dapat menggunakan SSH terowongan / SOCKS proxy, tapi saya tidak ingin bermain dengan aplikasi (membuat mereka menggunakannya, bahkan jika mungkin). Saya kira yang saya butuhkan adalah pengaturan OpenVPN, jadi saya mencari panduan terperinci tentang cara:
- Instal dan setup server OpenVPN
- Menyiapkan klien OpenVPN (NetworkManager)
Versi Ubuntu yang harusnya digunakan adalah 10.10 dan 11.04.
networking
security
network-manager
vpn
openvpn
htorque
sumber
sumber
Jawaban:
Saya memiliki pertanyaan yang tepat beberapa bulan yang lalu, tetapi selain itu, saya ingin memiliki koneksi IPv6 jika memungkinkan. Anda mungkin tertarik dengan pertanyaan saya di Serverfault:
Saya hanya punya satu NIC ("antarmuka jaringan") di server saya untuk digunakan. Dalam pengaturan saya, NetworkManager tidak cukup karena saya perlu menjalankan skrip khusus untuk mendukung IPv6. Untuk kesederhanaan, saya akan menggunakan NetworkManager di sini dan menghilangkan dukungan IPv6.
Pertama, buat keputusan tentang metode otentikasi. Saya akan menggunakan metode sertifikat yang lebih aman yang berfungsi seperti SSL: selama jabat tangan sebuah rahasia umum dipilih yang akan digunakan untuk sesi tersebut. Metode lain adalah kunci bersama; nama pengguna dan kata sandi.
Server
1. Bersiap
Pertama, instal server openvpn. Ini semudah
sudo apt-get install openvpn
. Bagian yang sulit adalah mengonfigurasinya. Konfigurasi hadir di/etc/openvpn
.2. Konfigurasikan otentikasi
Server membutuhkan sertifikat untuk mengidentifikasi dirinya dan kliennya. Sertifikat ini diambil dari CA (Common Authority). Pembuatan sertifikat dan kunci pribadi terkait dapat dilakukan pada mesin apa pun, tidak harus dilakukan di server. Jika Anda benar-benar paranoid, Anda harus melakukannya pada mesin yang tidak terhubung ke jaringan, dan menggunakan memory stick untuk mentransfer sertifikat.
Buat CA dan sertifikat untuk server
Langkah ini harus dilakukan sekali kecuali kunci pribadi CA Anda terganggu. Dalam hal itu, sertifikat yang valid dapat dibuat yang akan diterima oleh server, yang mengakibatkan pelanggaran keamanan.
The dokumentasi resmi menyarankan untuk melakukan administrasi dalam
/etc/openvpn
. Saya bukan penggemar menjalankan segala sesuatu sebagai root, jadi saya akan meletakkannya di direktori yang berbeda.Buat direktori administrasi dan salin file di dalamnya dengan menjalankan:
vars
sesuai kebutuhan, misalnya pengaturanKEY_SIZE=2048
karena Anda paranoid.Muat variabel dan buat direktori kunci dengan menjalankan:
Jika Anda mendapatkan kesalahan itu
No ... openssl.cnf file could be found Further invocations will fail
, jalankanln -s openssl-1.0.0.cnf openssl.cnf
, lalu. vars
lagi.Jika ini adalah pertama kalinya Anda menggunakan CA ini, siapkan lingkungan tombol. Jangan tidak menjalankan perintah ini jika Anda ingin mempertahankan CA. Anda dibuat sebelumnya Dengan melakukan hal itu Anda harus menggunakan yang baru
ca.crt
../build-ca
. Anda dapat mengisi detail apa pun yang Anda inginkan, tetapi perhatikan bahwa informasi ini akan terlihat dalam file log ketika klien terhubung ke server. Ini akan membuat fileca.key
danca.crt
dalam subfolderkeys
. Jagaca.key
kerahasiaan file dalam segala keadaan . Kegagalan untuk melakukannya akan memungkinkan siapa saja dengan kunci untuk terhubung ke server Anda../revoke-full server
. Kalau tidak, Anda mendapatkan kesalahan database.Buat sertifikat untuk server dengan menjalankan:
Ketika ditanya kata sandi, biarkan kosong kecuali Anda bersedia memasukkan kata sandi setiap kali server mulai (tidak disarankan). Konfirmasikan untuk menandatangani sertifikat dan lakukan. Dua file baru akan muncul di direktori
keys
:server.key
danserver.crt
.DH dan gunakan persiapan untuk tls-auth
Hasilkan parameter Diffie-Hellman menggunakan:
Per tips pengerasan , gunakan
tls-auth
. Untuk itu, buat kunci rahasia bersama menggunakan:File yang dihasilkan (
ta.key
) juga harus didistribusikan ke klien, tetapi Anda tidak boleh mempublikasikannya ke publik.Buat sertifikat untuk klien
Untuk setiap klien, langkah-langkah ini harus diulangi:
Masukkan direktori tempat Anda membuat CA dan sertifikat server:
Jika Anda telah melewatkan langkah pembuatan CA karena Anda telah melakukannya, Anda perlu memuat variabel terlebih dahulu:
./revoke-full you
. Kalau tidak, Anda mendapatkan kesalahan database.Buat sertifikat klien
you.key
dan sertifikatnya yang sesuaiyou.crt
:The
CommonName
harus unik. Biarkan kata sandi kosong jika Anda menggunakan KDE karena belum didukung pada 10.10. Seperti halnya pembuatan sertifikat server, konfirmasikan penandatanganan sertifikat dan lakukan perubahan.3. Atur layanan OpenVPN
Secara default, OpenVPN berjalan sebagai root ketika menerima koneksi. Bukan ide yang baik jika layanan ini dapat diakses dari Internet jahat.
Buat pengguna khusus untuk OpenVPN, katakan
openvpn
:Salin file
server.key
,server.crt
,ca.crt
dandh1024.pem
(ataudh2048.pem
jika Anda telah mengubah ukuran kunci) dari direktori kunci dalam/etc/openvpn
. Izin 400 (hanya-baca untuk pemilik) baik-baik saja.Salin file
ta.key
juga:Buat file
/etc/openvpn/server.conf
dan masukkan baris berikutnya ke dalamnya:Tetapkan izin yang sesuai untuk itu, tidak perlu dirahasiakan, tapi saya lebih suka tidak membocorkan detail konfigurasi jadi:
4. Menyelesaikan server
Jika Anda telah membuat sertifikat di server, itu ide yang baik untuk mengenkripsi atau memindahkannya dari server. Bagaimanapun, jangan kehilangan
ca.key
danserver.key
. Dalam kasus pertama, orang lain akan dapat terhubung ke server Anda. Dalam yang terakhir, MITM dimungkinkan.Klien
Selain alamat IP server, administrator server harus menyerahkan file-file berikut:
ca.crt
: untuk memverifikasi sertifikatserver.crt
: untuk memverifikasi server dan berkomunikasi dengannyata.key
: untuk pengerasan keamananyou.crt
: untuk mengidentifikasi diri Anda dengan serveryou.key
: seperti kata sandi Anda, izin file harus 400 (hanya baca untuk pemilik)1. Instalasi
Instal OpenVPN dan plugin NetworkManager (cocok untuk KDE dan Gnome):
network-manager-openvpn
ada di repositori alam semesta.2. Konfigurasi
Di panel kontrol, gunakan detail berikut:
ca.crt
you.crt
you.key
Di Tingkat Lanjut :
Menentukan path File Kunci ke
ta.key
dan mengatur "Arah Kunci" untuk1
.Jika Anda tidak dapat mengaktifkan NetworkManager atau tidak ingin menggunakannya, masukkan file (
ca.crt
, ...)/etc/openvpn
dan buat file/etc/openvpn/client.conf
file:Jika Anda tidak ingin mengaktifkan VPN ini saat boot, edit
/etc/default/openvpn
dan batalkan komentar pada baris berikutnya dengan menghapus#
:Untuk memulai koneksi ini, jalankan:
client
harus diganti namanya jika file konfigurasi Anda tidak bernamaclient.conf
. Contoh: jika Anda memberi nama file konfigurasisafe.conf
Anda, Anda harus menjalankannyasudo /etc/init.d/openvpn start safe
.Untuk menghentikan OpenVPN, Anda harus menjalankan:
sumber
man openvpn
). Openvpn versi terbaru memiliki kemampuan untuk menyematkan sertifikat dan file kunci, jadi mungkin bahkan lebih mudah untuk memberikan file konfigurasi tunggal dengan instruksi kepada pengguna.. vars
perintah di atas dapat menghasilkan kesalahan bahwa "file openssl.cnf dapat ditemukan. Permintaan lebih lanjut akan gagal". Anda perlusudo -s; cd /usr/share/doc/openvpn/examples/easy-rsa/2.0/; ln -s openssl-1.0.0.cnf openssl.cnf
, lalu jalankan. vars
dan perintah lainnya.whichopenssl
menempatkanopenssl-1.0.0.cnf
file dengan benar untuk saya (easy-rsa 2.3.2, OpenSSL 1.0.1e)Anda sebenarnya tidak perlu mengutak-atik aplikasi apa pun. Ini berfungsi "seperti halnya VPN."
Pertama instal
tsocks
paket (kaus kaki sementara):Kemudian edit
/etc/tsocks.conf
dan masukSekarang, buka terminal dan ketik (ini menghubungkan Anda):
Jalankan (melalui terminal lain atau ALT-F2):
Sekarang, Firefox mentransmisikan semua komunikasi melalui ke server SOCKS di komputer Anda yang dibuat SSH. Selanjutnya ini akan diteruskan ke mesin rumah Anda, di mana ia pergi ke web. Yang Anda butuhkan pada mesin di rumah Anda adalah server SSH. Setelah pertama kali, ulangi langkah 3 dan 4.
Itu bekerja seperti pesona! Sayangnya, chromium tidak suka tsocks, tapi hei, Firefox berfungsi.
sumber
Solusi terowongan SSH lebih mudah dari yang Anda pikirkan. Program seperti gSTM akan memulai / menghentikan terowongan untuk Anda dengan GUI. Kemudian cukup buka Proksi Jaringan dan ubah dari koneksi internet langsung ke konfigurasi proksi Manual, tekan "Terapkan di seluruh sistem" dan semua aplikasi Anda harus mengirim data mereka ke terowongan - tidak perlu bermain-main dengan masing-masing secara individual.
sumber