Cara Membuat VPN Killswitch Menggunakan iptables di Linux

Cara Membuat VPN Killswitch Menggunakan iptables di Linux

Objektif

Gunakan iptables untuk menyekat semua sambungan internet sekiranya VPN anda terputus.

Pengagihan

Ini akan berfungsi pada sebarang taburan Linux.

Keperluan

Pemasangan Linux Kerja dengan Keistimewaan Root.

Konvensyen

  • # - Memerlukan arahan Linux yang diberikan untuk dilaksanakan dengan keistimewaan akar sama ada secara langsung sebagai pengguna root atau dengan menggunakan sudo perintah
  • $ - Memerlukan arahan Linux yang diberikan sebagai pengguna yang tidak layak

Pengenalan

Sekiranya anda disambungkan ke VPN, anda memerlukan pembunuh. Tidak, ia tidak seperti logam kerana kedengarannya. Ini hanya satu mekanisme yang menghentikan sambungan internet anda apabila anda terputus dari VPN. Ia melindungi anda dari maklumat sensitif secara tidak sengaja ke internet apabila sambungan VPN jatuh.

Beberapa perkhidmatan VPN menyediakan pelanggan dengan pembunuh terbina dalam, tetapi tidak ada yang boleh dipercayai seperti menggunakan iptables. Oleh kerana iptables bebas daripada perkhidmatan VPN anda, dan ia disatukan ke dalam kernel itu sendiri, ia tidak akan gagal apabila VPN anda lakukan. Iptables juga merupakan teknologi keselamatan yang terbukti dengan baik yang dapat dan akan memastikan komputer anda selamat.



Sysctl

Sebelum anda mula membuat peraturan iptables, anda harus membuat beberapa perubahan pada sysctl konfigurasi. Dalam beberapa pengagihan, ia terletak di /etc/sysctl.D/99-SYSCTL.Conf. Yang lain memilikinya di /etc/sysctl.Conf. Buka fail itu, dan cari baris berikut dan ubahnya untuk memadankan contoh di sini.

jaring.IPv4.ip_forward = 1

Kemudian, tambahkan baris berikut ke bahagian bawah fail. Pastikan untuk menukar antara muka untuk memadankan yang ada di mesin anda.

jaring.IPv6.Conf.semua.disable_ipv6 = 1 bersih.IPv6.Conf.lalai.disable_ipv6 = 1 bersih.IPv6.Conf.LO.disable_ipv6 = 1 bersih.IPv6.Conf.ETH0.disable_ipv6 = 1 

Simpan dan keluar. Kemudian jalankan:

# sysctl -p 

Sediakan dokumen

Sekarang anda boleh membuat fail untuk peraturan anda. Itu tidak begitu penting di mana anda membuatnya, jadi buatlah satu. Ia akan dirujuk sebagai IPv4 untuk panduan ini.

Mulakan fail dengan menambahkan baris berikut. Mereka akan menjadi permulaan dan akhir fail.

*Commit Filter 

Peraturan asas

Sebelum anda mengkonfigurasi iptables untuk membenarkan trafik yang anda perlukan untuk menukar lalai untuk tidak membenarkan semua lalu lintas. Tambahkan tiga peraturan ini untuk menjatuhkan semua lalu lintas secara lalai.

-P input drop -p ke hadapan drop -p output drop 


Input

Ia paling selamat untuk hanya membenarkan trafik masuk dari sambungan yang ditetapkan atau berkaitan. Tetapkan yang seterusnya.

-Input -m conntrack --ctstate berkaitan, ditubuhkan -j Terima 

Loopback dan ping

Seterusnya, biarkan antara muka loopback dan ping.

-Output -o lo -j menerima -a output -o tun0 -p icmp -j Terima 

Ini mengandaikan bahawa sambungan VPN anda dihidupkan tun0. Periksa dengan ip a, Sekiranya anda tidak pasti.

Lan

Tidak masuk akal untuk menutup atau menyekat lalu lintas LAN anda, terutama di rangkaian rumah, jadi biarkan juga.

-Output -D 192.168.1.0/24 -J Terima 

DNS

Untuk bahagian seterusnya ini, anda perlu mengetahui alamat IP pelayan DNS VPN anda. Sekiranya VPN anda mempunyai akses atau anda resolv.Conf, anda mungkin akan menjumpai mereka di sana.

-Output -d 10.45.16.1 -j Terima 

Benarkan VPN

Sudah tentu, anda perlu membenarkan VPN itu sendiri. Terdapat dua bahagian untuk ini. Anda perlu membenarkan kedua -dua port perkhidmatan dan antara muka.

-Output -p udp -m udp --dport 1194 -j menerima -a output -o tun0 -j Terima 

Sekali lagi, periksa port dan antara muka yang digunakan oleh sambungan VPN anda.

Anda boleh berhenti di sini. Ini akan berfungsi dengan baik untuk membunuh. Walau bagaimanapun, jika anda mahu iptables berfungsi sebagai firewall biasa dan menyekat sambungan pada pelabuhan yang tidak diingini, anda boleh melakukannya.

Dari sini, anda akan memadamkan baris terakhir yang menerima semua lalu lintas tun0, dan menggantikannya dengan elaun khusus untuk pelabuhan yang anda mahu izinkan.

-Output -o tun0 -p tcp --dport 443 -j menerima -a output -o tun0 -p tcp --dport 80 -j menerima -a output -o tun0 -p tcp --dport 993 -j menerima output -o tun0 -p tcp --dport 465 -j Terima 

Anda mendapat idea umum. Ia lebih panjang dan lebih membosankan, tetapi ia memberi anda lebih banyak kawalan ke atas apa yang berlaku.



IPv6

IPv6 benar -benar buruk untuk VPN sekarang. Kebanyakannya tidak mencukupi untuk menyokongnya, dan maklumat anda dapat membocorkan sambungan itu. Lebih baik menutupnya sama sekali.

Buat fail lain untuk IPv6 dan menyekat semuanya.

-P input drop -p ke hadapan drop -p output drop 

Melakukan

Anda perlu mengimport fail anda ke iptables agar mereka berkuat kuasa. Pertama, jelaskan peraturan lama.

# IPPABLES -F && ippables -x 

Import yang baru dari fail anda.

# IPPALES-RESTORE < /tmp/ipv4 # ip6tables-restore < /tmp/ipv6 

Menjadikannya kekal

Ipnya tidak menyelamatkan keadaannya selepas reboot secara lalai. Anda perlu menetapkannya sendiri.

Debian/Ubuntu

Sistem berasaskan Debian mempunyai program yang dipanggil, iptables-prersistent. Ini adalah perkhidmatan yang mengendalikan sandaran dan memuatkan konfigurasi anda.

Semasa anda memasangnya, iptables-prersistent akan bertanya jika anda ingin menyimpan konfigurasi anda yang ada. Katakan ya.

# Apt Pasang iptables-prersistent 

Oleh kerana Debian Systems menjalankan perkhidmatan pada permulaan secara lalai, anda tidak perlu melakukan perkara lain.



Sistem lain

Sistem lain mempunyai beberapa cara yang berbeza untuk mengendalikan ini. Yang pertama adalah untuk mengedit /etc/sysconfig/iptables-config. Akan ada satu daripada dua baris di sana. Edit yang anda mesti kelihatan seperti berikut.

IPTABLES_SAVE_ON_STOP = "YA" atau IPTABLES_SAVE_ON_RESTART = "YA" 

Cara lain ialah menggunakan fungsi simpanan dan memulihkan iptables. Buat direktori di mana anda ingin menyimpan peraturan anda.

# mkdir/etc/iptables/ # iptables-save>/etc/iptables/iptables.Peraturan # ip6tables-save>/etc/iptables/ip6tables.peraturan 

Kemudian, buat skrip untuk memuatkan peraturan tersebut apabila komputer anda naik.

#! /bin/bash iptables-restore < /etc/iptables/iptables.rules; ip6tables-restore < /etc/iptables/ip6tables.rules; 

OpenRC

Sistem OpenRC seperti Gentoo mempunyai cara tersendiri untuk menyimpan konfigurasi.

# RC-Service iptables SAVE # RC-SERVICE IP6TABLES SAVE # RC-SERVICE IPTABLES START # RC-SERVICE IP6TABLES MATT # RC-UPDATE Tambah ippables default # rc-update Tambah IP6Tables Default Default 

Pemikiran penutupan

Menggunakan Killswitch berasaskan iptables menjadikan VPN anda lebih selamat. Data yang bocor membuat sepenuhnya mengalahkan tujuan menggunakan VPN, jadi kebocoran berhenti harus menjadi keutamaan.

Jangan mempercayai apa yang disebut killswitches yang dibakar ke dalam pelanggan VPN. Kebanyakan tidak berfungsi. Satu -satunya cara untuk memastikan bahawa data anda tidak bocor adalah dengan melakukannya dengan iptables.

Tutorial Linux Berkaitan:

  • Perkara yang hendak dipasang di Ubuntu 20.04
  • Perkara yang perlu dilakukan setelah memasang ubuntu 20.04 Focal Fossa Linux
  • Perkara yang perlu dilakukan setelah memasang Ubuntu 22.04 Jur -ubur Jammy ..
  • Pasang Arch Linux di Workstation VMware
  • Muat turun linux
  • Perintah Linux: Top 20 Perintah Paling Penting yang Anda Perlu ..
  • Pengenalan kepada Automasi, Alat dan Teknik Linux
  • Perintah Linux Asas
  • Perkara yang perlu dipasang di Ubuntu 22.04
  • Pemasangan Manjaro Linux