Anonim

Ini 2017, dan menggunakan VPN telah menjadi no-brainer. Antara banyaknya masalah privasi eksternal dan ISP Anda sendiri yang dapat menjual riwayat perambanan Anda, benar-benar tidak ada alasan untuk tidak menggunakannya.

Tentu, Anda dapat membayar salah satu dari ratusan layanan VPN di luar sana, tetapi sekali lagi, Anda mengandalkan orang lain dengan data Anda. Sebagian besar memang bagus, tetapi jika Anda ingin kontrol penuh, Anda dapat membangun VPN Anda sendiri pada V erual P ervertage (VPS) atau menyewa server pribadi Anda, jika Anda merasa benar-benar hardcore dengannya.

Semua yang Anda butuhkan untuk membangun VPN adalah perangkat lunak OpenVPN dan Linux (atau BSD) sumber terbuka. Konfigurasi dapat dilibatkan, tetapi itu tidak mustahil dengan seseorang yang bahkan memiliki keterampilan Linux dasar untuk melakukan distribusi seperti Ubuntu.

Untuk panduan ini, Anda akan memerlukan VPS yang menjalankan Ubuntu. Anda dapat mengambilnya dengan sangat mudah dari orang seperti DigitalOcean atau Linode . Ikuti panduan keamanan dasar mereka untuk mendapatkan pengaturan. Pastikan Anda tidak membuat kesalahan mendasar seperti mengizinkan akses root melalui SSH.

Juga, ingatlah bahwa Anda akan melakukan seluruh pengaturan ini di baris perintah melalui SSH ke VPS Anda. Tidak ada apa pun yang membutuhkan pengetahuan Linux, tetapi bersiaplah untuk mengetik alih-alih mengklik.

Mendapatkan Apa yang Anda Butuhkan

tautan langsung

  • Mendapatkan Apa yang Anda Butuhkan
  • Mengatur Firewall
    • Temukan Antarmuka
    • Dasar-Dasar Iptables
    • Siapkan Aturan Anda
      • Loopback
      • Ping
      • SSH
      • OpenVPN
      • DNS
      • HTTP / S
      • NTP
      • TONG BESAR
      • Penebangan
      • Tolak Semuanya Lain
      • NAT Masquerading
    • Teruskan Lalu Lintas IPv4
    • Hentikan Semua Koneksi IPv6
    • Impor dan Simpan ke Iptables

Ubuntu mengemas dan mendistribusikan OpenVPN dalam repositori-repositori-nya. Anda hanya perlu menggunakan apt untuk menginstalnya. Anda juga akan memerlukan alat untuk menghasilkan kunci enkripsi. Pasang keduanya.

$ sudo untuk menginstal openvpn easy-rsa

Mengatur Firewall

Selanjutnya, Anda harus menjaga firewall. Ini bagian penting dalam menjaga keamanan VPN Anda dan mencegah kebocoran data dan akses yang tidak diinginkan.

Iptables adalah firewall utama untuk Linux, dan itu adalah pilihan terbaik Anda untuk mengontrol akses ke port Ubuntu. Anda sudah menginstalnya, sehingga Anda dapat mulai mengatur aturan firewall Anda.

Temukan Antarmuka

Sebelum Anda mulai menulis aturan ke iptables, cari tahu antarmuka apa yang terhubung dengan server Anda ke Internet. Jalankan ifconfig untuk menampilkan antarmuka jaringan Anda. Yang memiliki inet addr: cocok dengan alamat IP yang terhubung dengan Anda adalah antarmuka yang tepat.

Dasar-Dasar Iptables

Biasanya bukan ide yang baik untuk menyalin dan menempelkan sesuatu secara acak ke terminal dari Internet. Ini terutama benar ketika Anda berurusan dengan topik keamanan. Jadi, luangkan waktu di sini untuk mempelajari sedikit tentang aturan iptables sebelum Anda mulai memasukkannya.

Lihatlah contoh aturan iptables ini.

-A INPUT -i eth0 -p tcp -m state -state ESTABLISHED –sport 443 -j ACCEPT

Baiklah, jadi -A berarti Anda akan menambahkan aturan baru. Maka INPUT berarti bahwa itu menyangkut input ke server Anda. Ada juga OUTPUT. Bendera -i memberi tahu iptables antarmuka mana dari aturan ini. Anda bisa menentukan protokol mana aturan untuk -p. Aturan ini menangani tcp. -m menetapkan kondisi yang harus dipenuhi oleh suatu koneksi. Dalam hal ini harus sesuai dengan keadaan yang ditentukan. Tentu saja, kemudian –state menentukan status, dalam hal ini koneksi ESTABLISHED. Bagian selanjutnya memberitahu iptables untuk port mana aturan ini digunakan. Ini port 443, port HTTPS, di sini. Bendera terakhir adalah -j. Itu singkatan dari "jump, " dan memberitahu iptables apa yang harus dilakukan dengan koneksi. Jika koneksi ini memenuhi semua persyaratan dalam aturan, iptables akan MENERIMA itu.

Siapkan Aturan Anda

Jadi, Anda harus memiliki gagasan umum bagaimana aturan iptables bekerja sekarang. Sisa dari bagian ini akan memberi tahu Anda cara mengatur aturan Anda sepotong demi sepotong.

Cara terbaik untuk membuat seperangkat aturan iptables adalah membuat file yang berisi semuanya. Kemudian, Anda dapat mengimpor semuanya ke iptables sekaligus. Aturan pengaturan satu per satu bisa membingungkan, terutama jika Anda memulai serangkaian aturan baru dari awal.

Buat file di direktori / tmp untuk membangun aturan Anda.

$ vim / tmp / ipv4

Mulai file itu dengan * filter. Ini memberi tahu iptables bahwa yang berikut ini akan menjadi aturan untuk penyaringan paket.

Loopback

Bagian pertama dari aturan mengunci antarmuka loopback. Mereka memberi tahu iptables bahwa server harus menerima lalu lintas dari dirinya sendiri pada antarmuka loopback. Seharusnya juga menolak lalu lintas yang datang dari dirinya sendiri yang tidak datang dari loopback.

INPUT -A lo -j MENERIMA -A INPUT! -i lo -s 127.0.0.0/8 -j TOLAK-OUTPUT -o lo -j MENERIMA

Ping

Selanjutnya, izinkan ping. Anda harus dapat melakukan ping ke server Anda untuk memastikan bahwa server itu online jika tidak dapat dihubungi. Dalam hal ini, hanya permintaan gema yang diizinkan, dan server akan membiarkan dirinya mengirim output ICMP.

-A INPUT -p icmp -m state --state NEW --icmp-type 8 -j ACCEPT -A INPUT -p icmp -m state - ESTABLISHED, TERKAIT -j ACCEPT -A OUTPUT -p icmp -j ACCEPT

SSH

Anda membutuhkan SSH. Itulah satu-satunya cara Anda dapat mencapai server Anda. Aturan SSH khusus untuk antarmuka internet Anda, jadi pastikan Anda mengganti eth0 untuk antarmuka mana pun yang digunakan server Anda.

Mungkin juga ide yang baik untuk mengubah koneksi SSH Anda dari port 22, karena itulah default yang akan dicoba oleh penyerang potensial. Jika Anda melakukannya, pastikan untuk mengubahnya di aturan iptables Anda juga.

-A INPUT -i eth0 -p tcp -m state --state NEW, ESTABLISHED --port 22 -j ACCEPT -A OUTPUT -o eth0 -p tcp -m state --state ESTABLISHED --sport 22 -j ACCEPT

OpenVPN

Bagian selanjutnya ini memungkinkan lalu lintas ke dan dari server OpenVPN melalui UDP.

-A INPUT -i eth0 -p udp -m state --state NEW, ESTABLISHED --port 1194 -j ACCEPT -A OUTPUT -o eth0 -p udp -m state --state ESTABLISHED --sport 1194 -j ACCEPT

DNS

Sekarang, izinkan koneksi DNS melalui UDP dan TCP. Anda ingin VPN Anda menangani DNS, bukan ISP Anda. Itu bagian dari alasan Anda mengatur VPN di tempat pertama.

-A INPUT -i eth0 -p udp -m state --state ESTABLISHED --sport 53 -j ACCEPT -O OUTPUT -o eth0 -p udp -m state --state NEW, ESTABLISHED --dport 53 -j ACCEPT -A INPUT -i eth0 -p tcp -m state --state ESTABLISHED --sport 53 -j ACCEPT -A OUTPUT -o eth0 -p tcp -m state --state NEW, ESTABLISHED --dport 53 -j ACCEPT

HTTP / S

Agar Ubuntu dapat memperbarui dirinya sendiri, Anda perlu menambahkan seperangkat aturan untuk memungkinkan koneksi HTTP dan HTTPS keluar. Perhatikan bahwa aturan ini hanya mengizinkan server untuk memulai koneksi HTTP, jadi Anda tidak dapat menggunakannya sebagai server web atau menyambungkannya melalui port 80 atau port 443

-A INPUT -i eth0 -p tcp -m state --state ESTABLISHED --sport 80 -j ACCEPT -A INPUT -i eth0 -p tcp -m state --state ESTABLISHED --sport 443 -j ACCEPT -A OUTPUT - o eth0 -p tcp -m state --state NEW, ESTABLISHED --dport 80 -j ACCEPT -A OUTPUT -o eth0 -p tcp -m state --state NEW, ESTABLISHED --dport 443 -j ACCEPT

NTP

Agar jam server Anda berjalan dengan baik, Anda akan membutuhkan NTP. NTP memungkinkan server Anda untuk melakukan sinkronisasi dengan server waktu di seluruh dunia. Memiliki jam yang salah di server Anda dapat menyebabkan masalah koneksi, jadi menjalankan NTP adalah ide yang bagus. Sekali lagi, Anda hanya boleh menerima koneksi keluar dan sudah terjalin.

-A INPUT -i eth0 -p udp -m state --state ESTABLISHED --sport 123 -j ACCEPT -A OUTPUT -o eth0 -p udp -m state --state NEW, ESTABLISHED --dport 123 -j ACCEPT

TONG BESAR

Buka blokir antarmuka TUN yang digunakan OpenVPN untuk mengarahkan lalu lintas.

-A INPUT -i tun0 -j MENERIMA -A DEPAN -i tun0 -j MENERIMA -P OUTPUT -o tun0 -j MENERIMA

Anda harus mengizinkan TUN untuk meneruskan lalu lintas ke antarmuka reguler Anda untuk VPN. Anda akan menemukan alamat IP itu dalam konfigurasi OpenVPN. Jika Anda mengubahnya di konfigurasi, ubah juga dalam aturan Anda.

-Sebuah ke depan -i tun0 -o eth0 -s 10.8.0.0/24 -j MENERIMA -Sebuah negara maju -m - negara ESTABLISHED, TERKAIT -j MENERIMA

Penebangan

Merupakan ide bagus untuk menyimpan log dari segala sesuatu yang ditolak oleh iptables. Dalam hal ini, itu berarti segala sesuatu yang tidak sesuai dengan aturan-aturan ini. Log memungkinkan Anda melihat apakah ada aktivitas jahat atau upaya apa pun untuk melakukan sesuatu yang jahat terhadap server Anda.

-A INPUT -m batas -membatasi 3 / menit -j LOG –log-awalan “iptables_INPUT_denied:” –log-level 4
-SUARA KE DEPAN -m batas -membatasi 3 / menit -j LOG –log-awalan “iptables_FORWARD_denied:” –log-level 4
-A OUTPUT -m batas -membatasi 3 / menit -j LOG –log-awalan “iptables_OUTPUT_denied:” –log-level 4

Tolak Semuanya Lain

Akhirnya, Anda perlu memblokir apa pun yang tidak sesuai dengan aturan Anda. Itu benar-benar tujuan memiliki firewall di tempat pertama.

-A INPUT -J TOLAK -JEJUTAN -J TOLONG -JUKAN -J ditolak

Tutup file dengan COMMIT untuk memberi tahu iptables untuk melakukan semua aturan.

NAT Masquerading

Anda memerlukan koneksi dari VPN agar terlihat seperti berasal dari server itu sendiri. Bagian ini tidak dapat dimasukkan dalam file iptables biasa karena menggunakan tabel yang berbeda. Tapi tidak apa-apa, hanya satu baris.

$ sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

Teruskan Lalu Lintas IPv4

Anda harus mengaktifkan penerusan lalu lintas IPv4, sehingga dapat melewati antara VPN dan antarmuka jaringan server Anda yang sebenarnya. Buka /etc/sysctl.d/99-sysctl.conf dengan sudo.

Temukan baris di bawah ini dan batalkan komentar dengan menghapus #.

net.ipv4.ip_forward = 1

Hentikan Semua Koneksi IPv6

Maaf, Anda belum selesai dengan iptables. Anda perlu memblokir semua lalu lintas IPv6. Server OpenVPN ini hanya akan mendukung IPv4, yang baik-baik saja, karena Anda tidak akan mengalami situasi di mana Anda memerlukan IPv6. Akibatnya, koneksi IPv6 dapat berpotensi membocorkan informasi, yang merupakan kebalikan dari yang Anda inginkan saat menggunakan VPN.

Sebelum mengatur aturan untuk iptables, Anda harus menonaktifkan IPv6 di tempat lain di sistem.

Tambahkan baris berikut ke /etc/sysctl.d/99-sysctl.conf. Jika Anda menutupnya dari bagian sebelumnya, buka kembali dengan sudo.

net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1 net.ipv6.conf.eth0.disable_ipv6 = 1

Aktifkan perubahan Anda.

$ sudo sysctl -p

Komentari semua baris IPv6 di / etc / hosts. Anda akan membutuhkan sudo di sini juga.

# :: 1 ip6-localhost ip6-loopback # fe00 :: 0 ip6-localnet # ff00 :: 0 ip6-mcastprefix # ff02 :: 1 ip6-allnodes # ff02 :: 2 ip6-allrouters

Akhirnya, Anda dapat menulis aturan IPv6 iptables. Buat file untuk mereka di / tmp / ipv6.

* filter -A INPUT -j TOLAK -JEJUTAN -J TOLAK -JAMUKAN -j KOMITIK TOLAK

Lihat, mereka sederhana. Tolak semuanya.

Impor dan Simpan ke Iptables

Anda perlu mengimpor aturan-aturan itu agar mereka dapat melakukan apa saja. Jadi, sekarang saatnya untuk melakukan itu.

Mulailah dengan menghapus semua yang ada di sana. Anda tidak ingin ada aturan lama yang menghalangi.

$ iptables sudo -F && sudo iptables -X

Impor aturan IPv4 dan IPv6 Anda.

$ sudo iptables-restore </ tmp / ipv4 $ sudo ip6tables-restore </ tmp / ipv6

Anda mungkin tidak ingin melakukannya lagi. Jadi, Anda akan membutuhkan paket baru untuk menyimpan aturan Anda secara permanen.

$ sudo untuk menginstal iptables-persistent

Selama instalasi, paket akan meminta Anda untuk menyimpan aturan yang ada. Jawab "Ya."

Jika nanti Anda membuat perubahan, Anda juga dapat memperbarui konfigurasi yang disimpan.

$ sudo service netfilter-persistent save

Butuh beberapa saat, tetapi firewall Anda siap digunakan. Pada halaman berikutnya, kita akan menangani pembuatan kunci enkripsi yang diperlukan.

Klik di sini: Halaman Berikutnya

Semua tentang vpns: cara mengatur vpn Anda sendiri dengan openvpn (bagian 3)