Menulis -o tun+ terasa seperti arahan yang tepat dan sebenarnya ialah kad liar yang sepadan dengan setiap terowong yang ada pada kernel. Klien VPN kedua, jambatan kontena atau antara muka yang ditinggalkan oleh sesi yang ranap semuanya memenuhinya, dan hos kemudian membenarkan trafik yang dasar itu bertujuan menghalangnya. Prosedur di bawah menetapkan satu nama peranti, menyusun pengecualian supaya terowong benar-benar boleh terbentuk, dan meninggalkan anda jalan kembali jika peraturan itu jatuh buruk. Setiap langkah cukup pendek untuk dibatalkan sendiri.

Langkah 1: catat peraturan yang anda ada sekarang

Sebelum menukar dasar lalai, simpan keadaan semasa supaya pengembaliannya ialah perintah dan bukan ingatan. iptables-save > /root/iptables.pre menulis setiap jadual ke fail yang boleh anda pulihkan, dan terminal kedua dengan sesi root terbuka bukanlah paranoia apabila dasar yang akan anda tetapkan memutuskan sambungan yang membawanya. Jika anda bekerja dari jauh, jadualkan juga flush sebagai suis mati.

Kemudian senaraikan antara muka, kerana nama yang anda andaikan ialah nama yang sepatutnya anda baca: ip -br link menunjukkan apa yang wujud sekarang, dan terowong tidak akan muncul sehingga ia naik. Catat nama peranti semasa anda membacanya.

Langkah 2: beri terowong namanya sendiri

OpenVPN menerima dev tun_work dalam konfigurasi klien, dan Linux kemudian mencipta antara muka dengan nama itu tepat sekali ganti memperuntukkan tun0. Nama kekal stabil merentas sambungan semula selagi tiada apa-apa lain menuntutnya, dan itulah yang menjadikan peraturan yang menamakan peranti itu bermakna.

Di mana nama tidak boleh dikawal, padankan alamat terowong atau tanda paket. Kedua-duanya berfungsi, kedua-duanya lebih sukar dibaca, dan kedua-duanya gagal dengan lebih senyap apabila terowong menomborkan semula. Walau apa pun, padankan satu perkara dan nyatakan dengan jelas yang mana.

Langkah 3: tulis dasar dengan pengecualian endpoint dahulu

Hos khusus VPN ialah hos tolak-lalai dengan senarai pengecualian pendek, dan pengecualian yang paling penting ialah yang membenarkan terowong wujud. Bina ia dalam susunan ini, dengan peraturan endpoint sebelum peraturan peranti terowong, supaya jabat tangan ada tempat untuk pergi:

# allow the tunnel to be built, then everything the tunnel carries
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -A INPUT  -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A OUTPUT -d 198.51.100.7 -p udp --dport 1194 -j ACCEPT
iptables -A OUTPUT -o tun_work -j ACCEPT
iptables -A INPUT  -i tun_work -j ACCEPT
iptables -A INPUT  -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

Alamat dan port endpoint yang literal milik penyedia anda, bukan halaman ini. Jika endpoint ialah nama hos, selesaikannya sekali dan tetapkan hasilnya, kerana peraturan tidak boleh mencari nama dan jawapan yang berputar akan memecahkan dasar secara senyap selepas perubahan DNS seterusnya. Periksa port juga, kerana penyedia yang memindahkan anda ke TCP 443 jika tidak akan memerlukan peraturan yang tiada siapa menulisnya. Terowong yang hanya berfungsi pada satu protokol biasanya ialah peninggalan ini, bukan kerosakan firewall.

Pada penghala bentuk yang sama masuk ke rantai FORWARD untuk klien di belakangnya, dan trafik penghala itu sendiri memerlukan peraturannya sendiri. Set peraturan yang hanya meliputi paket yang diteruskan membiarkan SSH dan DNS di laluan lama, dan begitulah penghala menjadi tidak dapat dicapai pada saat terowong naik.

Langkah 4: periksa susunan, bukan hanya kehadiran

Peraturan dinilai mengikut urutan, jadi ACCEPT yang datang lebih awal hanya menyembunyikan REJECT yang anda tambah selepasnya. Padanan established dan related itulah yang membenarkan jawapan kepada permintaan keluar anda sendiri kembali tanpa membuka laluan masuk umum, dan meletakkannya selepas penerimaan terowong bermakna terowong yang jatuh masih meloloskan trafik balik pada antara mukanya.

Kekalkan bilangan peraturan cukup kecil untuk dibaca pada satu skrin. Set peraturan yang anda tidak boleh audit ialah yang akan anda tampal dengan menambah pengecualian di atas, dan begitulah dasar tolak-lalai secara beransur-ansur mendapat tepi benarkan-lalai. Kira ACCEPT sebelum dan selepas perubahan.

Langkah 5: buat ia bertahan melalui but dan keluarga alamat

Peraturan yang dimasukkan dengan tangan hilang semasa but semula, jadi muatkannya daripada perkhidmatan firewall edaran atau unit yang berjalan selepas antara muka terowong wujud. Merujuk tun_work dalam skrip yang berjalan sebelum OpenVPN bermula ialah cara biasa untuk menghasilkan gelung but bagi trafik yang jatuh.

Kemudian periksa IPv6 secara berasingan, kerana dasar tolak-lalai IPv4 yang baik tidak mengatakan apa-apa tentang keluarga yang lain. ip -6 route akan memberitahu anda sama ada hos mempunyai laluan yang boleh membawa trafik di sekeliling terowong yang hanya mengendalikan IPv4, dan ip6tables atau nftables memerlukan peraturan setaranya sendiri. Uji dengan destinasi IPv6-only dan bukannya mempercayai simetri set peraturan.

Langkah 6: sahkan dan bersedia untuk memulihkan

Naikkan terowong, pastikan perkhidmatan yang anda maksudkan berfungsi, kemudian cuba sesuatu yang sepatutnya ditolak oleh dasar. Pulihkan dengan iptables-restore < /root/iptables.pre jika jawapannya mengejutkan anda, dan hanya selepas itu mula menyunting peraturan. Ketahanan serta laluan pemulihan yang diuji itulah yang menjadikan ini perubahan yang anda boleh lakukan dua kali.

Artikel berkaitan