Putuskan kebenaran sebelum anda membuka fail tembok api: klien yang disahkan boleh membuka sambungan ke satu subrangkaian tertentu, dan gateway mesti menolak setiap laluan transit lain walaupun klien memasang laluan tambahan. Ayat itu ialah reka bentuknya, dan setiap peraturan di bawah wujud untuk menguatkuasakannya. Apa-apa yang lebih luas, seperti seluruh ruang alamat persendirian, keluar ke internet melalui terowong atau trafik rakan-ke-rakan, ialah reka bentuk berbeza yang memerlukan keputusannya sendiri. Peraturannya juga sengaja membosankan, kerana tembok api pintar ialah yang tiada siapa dapat mengaudit kemudian.

Tulis topologi dan kebenaran terlebih dahulu

Contoh menggunakan pelayan Community OpenVPN dengan peranti TUN ruang pengguna bernama tun0, kumpulan klien 10.77.0.0/24, dan satu subrangkaian terlampir 192.168.60.0/24 pada lan0. Pemuatan hadapan IPv4 sudah berfungsi dan LAN sudah mempunyai laluan balik ke kumpulan itu, jadi tiada apa di sini bergantung pada terjemahan antara keduanya.

UFW memiliki tembok api pada hos ini, dan tiada set peraturan kontena atau jadual nftables berasingan boleh memasang laluan penerimaan yang lebih awal. Pintasan pelepasan aliran yang melangkau penapis akan menjadikan rantaian pengawal hanya hiasan, jadi pastikan tiada satu pun aktif. Biarkan pemuatan hadapan client-to-client OpenVPN sendiri dinyahdayakan, kerana trafik rakan-ke-rakan yang tidak pernah melintasi penapis sistem pengendalian tidak boleh dihadkan olehnya. Pendengar luaran dan peraturan pentadbiran kekal sebagaimana adanya, kerana perubahan ini mengawal trafik terowong yang dinyahsulit dan bukan menggantikan tembok api.

Letakkan pengawal sebelum penerimaan awal UFW

Kebenaran laluan diikuti penolakan tidak cukup untuk sempadan yang ketat. Peraturan before bawaan menerima trafik yang telah mantap dan beberapa ICMP sebelum mana-mana peraturan pengguna dirujuk, jadi aliran yang dibenarkan minggu lalu boleh kekal di luar sekatan destinasi baharu semata-mata kerana ia masih mempunyai keadaan. Buat sandaran fail UFW dan pastikan konsol luar jalur terbuka sebelum menyunting.

Dalam bahagian *filter fail /etc/ufw/before.rules, isytiharkan dua rantaian di sebelah pengisytiharan sedia ada dan sebelum mana-mana baris peraturan.

:vpn-src-guard - [0:0]
:vpn-reply-guard - [0:0]

Sejurus selepas pengisytiharan, dan sebelum kebenaran input serta pemuatan hadapan, lompat ke dalamnya dan tentukan apa yang mereka benarkan.

-A ufw-before-input -i tun0 -j DROP
-A ufw-before-forward -i tun0 -j vpn-src-guard
-A ufw-before-forward -o tun0 -j vpn-reply-guard

-A vpn-src-guard -o lan0 -d 192.168.60.0/24 -s 10.77.0.0/24 -m conntrack --ctdir ORIGINAL -j RETURN
-A vpn-src-guard -j DROP

-A vpn-reply-guard -i lan0 -d 10.77.0.0/24 -s 192.168.60.0/24 -m conntrack --ctstate RELATED,ESTABLISHED --ctdir REPLY -j RETURN
-A vpn-reply-guard -j DROP

Kekalkan seluruh bahagian dan baris COMMIT -nya. Menampal jadual penapis kedua atau memadam peraturan tidak berkaitan ialah cara perubahan tembok api menjadi gangguan, dan fail itu hanya satu but semula daripada menjadi satu-satunya salinan yang penting.

Baca apa yang dibenarkan dan ditolak oleh setiap pengawal

Rantaian pertama meneruskan pemprosesan hanya apabila sumber berada dalam kumpulan, destinasi ialah satu subrangkaian itu, antara muka keluar ialah LAN dan paket bergerak dalam arah asal alirannya. Semua yang lain yang tiba dari terowong digugurkan, termasuk sumber di luar kumpulan dan mana-mana destinasi melepasi subrangkaian yang dibenarkan.

Paket rakan-ke-rakan masuk dan keluar tun0, jadi ia gagal ujian antara muka LAN sebelum semakan destinasi dicapai. Sambungan baharu dari LAN ke klien juga gagal ujian arah balasan, yang menutup laluan panggil balik terbalik secara lalai.

Sasaran RETURN mengekalkan dasar UFW biasa dalam permainan. Rantaian ini menapis, dan kebenaran laluan yang anda tambah selepas itu masih menentukan sama ada paket yang terselamat diterima. Pemisahan itulah yang membolehkan anda menukar subrangkaian yang dibenarkan di satu tempat kemudian. Jika pengawal menerima paket terus, setiap peraturan masa depan perlu ditambah dua kali.

Benarkan subrangkaian dan tutup pintu sisi

Pratonton kebenaran laluan dahulu, kemudian buang bendera pratonton untuk menggunakannya: sudo ufw --dry-run route allow in on tun0 out on lan0 from 10.77.0.0/24 to 192.168.60.0/24. Selepas itu semak susunan peraturan pengguna, kerana penolakan terdahulu masih mengalahkan kebenaran kemudian. Kebenaran untuk seluruh subrangkaian juga bentuk yang salah apabila hanya port HTTPS satu hos sepatutnya boleh dicapai.

Perhatikan apa yang dilakukan gugurnya input: klien terowong tidak boleh mencapai mana-mana perkhidmatan pada gateway itu sendiri, termasuk pendengar DNS yang terikat pada alamat LAN-nya. Menghoskan DNS di sana memerlukan pengecualian yang disengajakan sebelum gugurnya dan kontrak kebenaran yang disemak semula. Jika UFW mengurus IPv6, tambah guguran yang sepadan untuk tun0 dalam before6.rules juga, kerana senarai destinasi IPv4 tidak menyatakan apa-apa tentang paket IPv6.

Sahkan dasar yang dimuatkan, bukan pratontonnya

Pratonton muat semula, gunakannya dalam tetingkap penyelenggaraan, dan baca set peraturan langsung.

sudo ufw --dry-run reload
sudo ufw show raw

Pastikan pengawal terowong muncul sebelum kebenaran keadaan lalai dan ICMP. ufw status biasa tidak memaparkan peraturan before yang disunting tangan, itulah sebabnya pengendali menyimpulkan peraturan hilang sedangkan ia sebenarnya dimuatkan. Baca senarai mentah dari atas ke bawah dan bukan mencari serpihan. Jika pengawal muncul selepas kebenaran keadaan, sempadan itu tidak melakukan apa yang dicadangkan fail.

Kemudian uji tingkah laku dan bukan teks. Buka sambungan baharu ke hos yang dibenarkan dan perhatikan balasannya, halakan permintaan tidak berbahaya ke destinasi di luar subrangkaian dan pastikan ia mati, cuba sambungan rakan-ke-rakan, cuba perkhidmatan setempat di gateway, dan cuba sambungan LAN-ke-klien yang tidak diminta. Sertakan satu aliran di luar skop yang wujud sebelum perubahan, dan hapuskan hanya aliran itu dan bukan mengosongkan seluruh jadual penjejakan mesin.

Catatkan hadnya bersama peraturan: ini mengehadkan transit dan tiada yang lain. Ia tidak menghalang klien daripada menggunakan sambungan internetnya sendiri, tidak menghalang hos LAN yang dibenarkan daripada memajukan trafik, dan tidak menggantikan pengesahan dalam perkhidmatan yang dibenarkan.

Artikel berkaitan