Daftar Isi:

Raspberry Pi VPN Gateway: 6 Langkah
Raspberry Pi VPN Gateway: 6 Langkah

Video: Raspberry Pi VPN Gateway: 6 Langkah

Video: Raspberry Pi VPN Gateway: 6 Langkah
Video: How to setup a Raspberry Pi OpenVPN gateway 2024, Juli
Anonim
Gerbang VPN Raspberry Pi
Gerbang VPN Raspberry Pi

Pembaruan 2018-01-07:

  • Memperbarui hal-hal yang hilang dan perubahan yang diperlukan untuk versi Raspian saat ini.
  • Juga membuat panduan khusus untuk NordVPN.

Ada beberapa kegunaan berbeda untuk VPN. Entah Anda ingin melindungi privasi dan data pribadi Anda dari pengintaian atau Anda perlu sumber dari negara lain. Sumber dari negara lain bisa sangat berguna untuk mendapatkan akses ke layanan yang tidak disediakan di negara Anda. Ada sejumlah layanan VPN di luar sana saat ini dan sebagian besar menawarkan perangkat lunak yang mudah digunakan untuk komputer Anda dan aplikasi untuk tablet atau ponsel Anda. Tetapi jika Anda memiliki perangkat lain yang tidak didukung oleh perangkat lunak, Anda ingin menggunakan VPN? Kemudian buat gateway yang memberi Anda akses internet melalui VPN.

Jika Anda melihat pengaturan jaringan dasar Anda, Anda memiliki "gateway default" yang digunakan untuk alamat ip apa pun yang tidak terletak di subnet Anda saat ini (sangat disederhanakan). Jadi, jika Anda menyiapkan gateway yang dapat merutekan lalu lintas internet melalui koneksi VPN yang sudah ada, perangkat apa pun yang mendukung jaringan dapat memanfaatkan terowongan VPN.

Kasus penggunaan utama saya di apartemen San Francisco saya adalah terowongan VPN ke Swedia asli saya sehingga saya dapat mengalirkan saluran bermain Swedia di pemutar media dan TV pintar saya. Ini adalah kasus penggunaan yang cukup umum bagi kebanyakan orang yang membutuhkan terowongan VPN. Karena pemutar media dan TV pintar saya tidak didukung oleh perangkat lunak VPN, saya membuatnya dari Raspberry Pi.

Anda dapat memilih satu dengan harga di bawah $40 di Amazon. Namun saya menyarankan Anda membeli kasing dan adaptor daya yang layak juga. Untuk instruksi ini, Anda perlu:

  • Raspberry Pi 2 atau 3
  • Kasus yang Anda sukai
  • Adaptor daya yang layak
  • Kabel jaringan

Langkah 1: Memilih Layanan VPN Anda

Memilih Layanan VPN Anda
Memilih Layanan VPN Anda

Hal penting ketika memilih layanan VPN adalah memenuhi kebutuhan Anda. Untuk kasus penggunaan ini saya memerlukan layanan VPN dengan titik keluar Swedia, itu adalah hal yang paling penting karena saya membutuhkan layanan Swedia untuk diyakinkan bahwa saya di Swedia. Selama bertahun-tahun saya telah menggunakan beberapa pemasok berbeda dan di bawah ini adalah hal-hal yang saya pertimbangkan ketika memilih pemasok VPN untuk kasus penggunaan tertentu:

Tes gratis

Saya ingin periode pengujian gratis atau sejumlah kecil data pengujian untuk merasakan perangkat lunak atau aplikasi. Saya juga ingin menguji kinerja dan pengalaman keseluruhan sebelum saya membayarnya. Ini juga bagus untuk memeriksa bahwa ide saya akan bekerja sebelum saya mulai membayar.

Pribadi

Jika implementasinya untuk masalah privasi maka sangat penting apa yang dinyatakan oleh kebijakan privasi. Penting juga dari negara mana perusahaan beroperasi dan undang-undang apa yang melindungi privasi Anda. Pengguna yang benar-benar peduli privasi harus melihat layanan yang menyatakan bahwa tidak ada log lalu lintas yang disimpan dan memungkinkan pembayaran anonim melalui Bitcoin misalnya.

Lalu lintas yang diizinkan

Mungkin ada batasan pada jenis lalu lintas apa yang boleh Anda jalankan. Pemasok yang lebih serius biasanya memblokir lalu lintas peer-to-peer. Ini tidak hanya untuk menghindari masalah hukum tetapi untuk dapat menjaga kinerja untuk semua pengguna. Ada banyak pemasok bagus di luar sana yang memungkinkan peer-to-peer dan tetap memberikan layanan berkualitas tinggi. Tetapi jika itu bukan kebutuhan utama Anda, saya sarankan untuk memilih layanan yang tidak mengizinkan peer-to-peer.

Batas data

Jangan pernah menggunakan layanan yang membatasi data pengguna mereka yang membayar. Ini hanya akan habis pada waktu yang paling buruk persis seperti data di ponsel Anda tepat sebelum bagian lucu dalam klip video!

Keluar dari negara

Tergantung pada kasus penggunaan ini memiliki kepentingan yang berbeda. Untuk kasus penggunaan seperti milik saya, di mana saya harus berakhir di negara tertentu, tentu saja itu perlu ada dalam daftar. Saya juga perlu diizinkan untuk memilih negara tempat saya keluar. Ada layanan di mana Anda tidak dapat memilih negara keluar, menjauhlah dari itu. Anda dapat berakhir di negara dengan kinerja buruk atau undang-undang privasi. Bahkan jika Anda tidak memerlukan negara tertentu, Anda tetap harus memilih layanan dengan beberapa negara berbeda untuk ditampilkan agar dapat menemukan layanan dengan kinerja yang baik.

Jenis perangkat lunak dan dukungan

Ini adalah salah satu alasan utama mengapa saya lebih memilih layanan dengan tes gratis. Ada begitu banyak penyedia dengan perangkat lunak buruk yang bermasalah, tidak aman, atau tidak berfungsi. Untuk implementasi Raspberry Pi saya memerlukan penyedia yang mendukung OpenVPN.

Pilihan saya

Untuk build ini saya menggunakan Tunnel Bear. Tes gratis hingga 500GB ditawarkan sehingga saya dapat menguji bahwa saya benar-benar dapat melakukan streaming sebelum saya membayar apa pun. Mereka berbasis di Kanada yang, di sebelah Swedia, memiliki beberapa undang-undang privasi terkuat di dunia. Tidak ada batasan data pada layanan berbayar dan saya juga diizinkan untuk menghubungkan beberapa perangkat sekaligus. Jadi perlindungan untuk ponsel, tablet, dan komputer saya saat bepergian dengan wifi yang tidak aman juga diurutkan. Node keluar di Swedia didukung, sebenarnya disediakan melalui Bahnhof yang dikenal dengan privasi yang kuat di Swedia. Untuk paket berbayar, mereka menawarkan dukungan OpenVPN. Mereka tidak melakukan tes gratis tetapi cukup menjalankannya dari laptop saya untuk memastikan bahwa layanan streaming berfungsi.

Langkah 2: Instal Raspberry Pi

Untuk implementasi seperti ini saya menggunakan sistem operasi Raspbian Lite. Karena saya tidak membutuhkan GUI sama sekali. Anda bisa mendapatkan rilis terbaru di sini.

Saya menggunakan Win32DiskImager untuk memuat file.img pada kartu SD untuk Raspberry Pi.

Setelah Raspberry Pi boot, saya melihat daftar DHCP router saya untuk mendapatkan alamat IP dan kemudian terhubung melalui SSH dengan Putty. Nama pengguna dan kata sandi standar adalah pi/raspberry

Setelah terhubung, saya menjalankan alat raspi-config untuk mengubah pengaturan dasar.

sudo raspi-config

Hal terpenting yang harus diperhatikan dalam konfigurasi ini adalah:

  • Perluas sistem file
  • Ganti kata sandi

Anda juga dapat mengubah nama host Raspberry Pi Anda jika Anda mau. DHCP saya memiliki masa sewa yang sangat lama dan saya juga dapat memesan alamat tertentu. Jika Anda tidak memiliki kemampuan itu, Anda harus mengonfigurasi Raspberry Pi untuk menggunakan alamat IP statis. Karena perangkat lain akan menggunakan ini sebagai gateway default, penting untuk tetap menggunakan alamat IP yang sama. Berikut adalah posting yang saya tulis tentang pengaturan IP statis di Raspbian Jessie.

Maka kita perlu memutakhirkan semuanya ke versi terbaru:

sudo apt-get updatesudo apt-get upgrade sudo apt-get dist-upgrade

Langkah 3: Instal OpenVPN

Instal OpenVPN
Instal OpenVPN

Sekarang kita perlu menginstal OpenVPN di Raspberry Pi.

sudo apt-get install openvpn

Kemudian kita perlu memastikan layanan dimulai dengan benar.

sudo systemctl aktifkan openvpn

Ketika instalasi selesai, kita perlu menyalin file konfigurasi OpenVPN dan sertifikat ke dalam kotak. Ini akan diberikan kepada Anda oleh penyedia VPN Anda. Dalam kasus saya, menggunakan TunnelBear, saya menemukan posting blog tentang Dukungan Linux. Di halaman itu ada tautan ke file zip yang berisi semua yang kita butuhkan.

File tersebut berisi file sertifikat dan file konfigurasi.opvn untuk setiap negara yang dapat Anda tuju. Anda memerlukan semua file sertifikat dan file konfigurasi.opvn untuk negara pilihan Anda, dalam kasus saya Swedia. Buka zip file yang diperlukan dan gunakan winscp untuk mengunggah file ke Raspberry Pi Anda. Nama pengguna/kata sandi yang sama seperti yang digunakan untuk SSH akan membawa Anda ke /home/pi, cukup letakkan file di sana.

Kemudian kita kembali ke terminal SSH dan memindahkan file ke folder OpenVPN. Perintah pertama hanya untuk memastikan kita berada di folder /home/pi.

cd /home/pi

sudo mv * /etc/openvpn/

Sekarang kita perlu melakukan beberapa modifikasi pada file. Pertama kita perlu mengganti nama file konfigurasi dari.ovpn menjadi.conf. File apa pun yang diakhiri dengan.conf di folder /etc/openvpn akan otomatis dimulai saat daemon OpenVPN dimulai. Pertama kita harus masuk ke direktori itu.

cd /etc/openvpn

Kemudian kita ubah nama file konfigurasinya. Anda dapat memberi nama apa pun yang Anda inginkan asalkan diakhiri dengan.conf. Saya lebih suka menggunakan nama file tanpa spasi kosong, dalam hal ini saya menggunakan swe.conf.

sudo mv *.ovpn swe.conf

Kemudian kita membutuhkan file otentikasi yang berisi nama pengguna dan kata sandi yang digunakan untuk terowongan VPN. Buka editor teks dan tulis nama pengguna dan kata sandi pada baris terpisah. Kami akan memanggil file ini auth.txt.

sudo nano auth.txt

Konten harus seperti contoh ini:

nama pengguna

kata sandi

Kemudian gunakan CTRL + O untuk menulis ke file dan CTRL + X untuk keluar dari editor teks nano. Kami juga perlu melindungi file auth.txt yang berisi kredensial kami.

sudo chmod 600 /etc/openvpn/auth.txt

Kemudian kita perlu mengedit file konfigurasi untuk memastikan semua jalur sudah benar dan menambahkan referensi ke file auth.txt yang baru dibuat.

sudo nano swe.conf

Baris yang perlu diubah adalah yang merujuk ke file lain, mereka harus jalur absolut. Dalam contoh ini, inilah yang kami cari:

ca CACertificate.crt

sertifikat UserCertificate.crt key PrivateKey.key

Kami mengubahnya menjadi jalur absolut seperti ini:

ca /etc/openvpn/CACertificate.crt

cert /etc/openvpn/UserCertificate.crt kunci /etc/openvpn/PrivateKey.key

Kemudian di akhir file kita tambahkan referensi ke file auth.txt, seperti ini:

auth-user-pass /etc/openvpn/auth.txt

Sekali lagi kita menggunakan CTRL + O untuk menyimpan file dan kemudian CTRL + X untuk keluar dari nano. Sekarang kita dapat memulai ulang daemon OpenVPN dan melihat bahwa terowongannya berfungsi.

layanan sudo openvpn restart

Jika Anda menjalankan perintah ifconfig, Anda akan melihat adaptor tun0 selain adaptor eth0 dan lo Anda jika terowongannya aktif. Anda juga dapat menjalankan perintah perintah ini untuk memeriksa IP publik Anda:

wget https://ipinfo.io/ip -qO -

Jika Anda mengalami masalah saat memasang terowongan, coba reboot Raspberry Pi Anda, lalu periksa kembali konfigurasi untuk kesalahan.

Langkah 4: Atur Perutean

Sekarang kita perlu mengaktifkan penerusan IP. Ini memungkinkan lalu lintas jaringan mengalir masuk dari salah satu antarmuka jaringan dan keluar dari yang lain. Pada dasarnya membuat router.

sudo /bin/su -c "echo -e '\n#Aktifkan Perutean IP\nnet.ipv4.ip_forward = 1' > /etc/sysctl.conf"

Jika Anda menjalankan Sudo sysctl -p Anda akan melihat ini tercetak di layar:

net.ipv4.ip_forward = 1

Sekarang perutean diaktifkan dan lalu lintas dapat melalui Raspberry Pi, melalui terowongan dan keluar di internet.

Langkah 5: Atur Firewall dan NAT

Karena kita akan memiliki beberapa klien di dalam yang mengakses internet melalui satu alamat IP publik, kita perlu menggunakan NAT. Itu singkatan dari terjemahan alamat jaringan dan akan melacak klien mana yang meminta lalu lintas apa ketika informasi kembali melalui terowongan. Kita juga perlu mengatur beberapa keamanan di sekitar Raspberry Pi itu sendiri dan terowongan.

sudo iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE

Mengaktifkan NAT.

sudo iptables -A FORWARD -i eth0 -o tun0 -j ACCEPT

Mengizinkan lalu lintas apa pun dari eth0 (internal) melewati tun0 (terowongan).

sudo iptables -A FORWARD -i tun0 -o eth0 -m state --state RELATED, ESTABLISHED -j ACCEPT

Mengizinkan lalu lintas dari tun0 (terowongan) untuk kembali melalui eth0 (internal). Karena kami menentukan status RELATED, ESTABLISHED, status tersebut akan dibatasi pada koneksi yang dimulai dari jaringan internal. Memblokir lalu lintas eksternal yang mencoba memulai koneksi baru.

sudo iptables -A INPUT -i lo -j ACCEPT

Mengizinkan lalu lintas loopback Raspberry Pi sendiri.

sudo iptables -A INPUT -i eth0 -p icmp -j ACCEPT

Mengizinkan komputer di jaringan lokal untuk melakukan ping ke Raspberry Pi.

sudo iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT

Mengizinkan SSH dari jaringan internal.

sudo iptables -A INPUT -m state --state ESTABLISHED, RELATED -j ACCEPT

Mengizinkan semua lalu lintas yang diprakarsai oleh Raspberry Pi untuk kembali. Ini adalah kepala negara yang sama seperti sebelumnya.

sudo iptables -P FORWARD DROP

sudo iptables -P INPUT DROP sudo iptables -L

Jika lalu lintas tidak sesuai dengan aturan yang ditentukan, lalu lintas akan dibatalkan.

sudo apt-get install iptables-persistent

sudo systemctl aktifkan netfilter-persistent

Baris pertama menginstal ketenangan kode yang membuat aturan iptable yang baru saja kita buat tetap ada di antara reboot. Yang kedua menyimpan aturan setelah Anda mengubahnya. Kali ini cukup untuk menjalankan yang pertama. Jika Anda mengubah aturan, jalankan yang kedua untuk menyimpan. Aturan Iptable berlaku segera setelah Anda menambahkannya jika Anda mengacaukan dan kehilangan akses, cukup reboot dan yang belum disimpan akan kembali.

Langkah 6: Kesimpulan

Sekarang Anda dapat menggunakan terowongan ini dari perangkat atau komputer apa pun di jaringan yang sama. Cukup ubah gateway default ke alamat IP apa pun yang dimiliki Raspberry Pi Anda. Dalam kasus saya, kedua pusat media Kodi saya (satu kamar tidur dan satu ruang tamu) menggunakan koneksi ini sehingga saya dapat mengalirkan saluran bermain Swedia saya. Tentu saja ada hal-hal lain yang dapat Anda gunakan untuk ini juga.

Ingatlah bahwa tergantung pada pemasok VPN yang Anda pilih dan kecepatan koneksi internet Anda, mungkin ada kinerja yang lambat.

Jika Anda memiliki pertanyaan atau ingin saya mengklarifikasi sesuatu, beri tahu saya di komentar! Untuk posting teknologi lainnya, silakan kunjungi blogg Hackviking saya!

Direkomendasikan: