Klien OpenVPN seluruh LAN di OpenWrt: urutan yang berhasil
Kepemilikan antarmuka, kebijakan zona, masquerade, dan tabel per SSID adalah empat pekerjaan terpisah. Kerjakan berurutan dan tunnel selebar router berhenti melawan Anda.
Empat pekerjaan independen menempatkan seluruh LAN router di belakang satu tunnel. Perangkat tunnel membutuhkan pemilik, zona firewall, tujuan penerjemahan ke arah uplink, dan, jika sebagian klien harus tetap di luar VPN, perutean berdasarkan alamat sumber. Tunnel yang tersambung tetapi tidak ada yang lewat biasanya kehilangan salah satu dari empat hal itu. Bekerja dalam urutan ketergantungan berarti kegagalan di akhir menjadi milik langkah yang baru Anda ubah. Setiap langkah di bawah berakhir dengan sesuatu yang dapat Anda amati, dan itu menjaga langkah berikutnya dari sekadar dugaan.
Tentukan apa yang berbagi tunnel
Router yang membagikan Wi-Fi dan DHCP dapat menjalankan kliennya sendiri. Itu menempatkan setiap perangkat yang terhubung di belakang tunnel tanpa penyiapan per perangkat, dan itulah susunan yang diinginkan sebagian besar situs kecil. Itu juga yang paling luas dampaknya saat tunnel putus, karena setiap perangkat kehilangan jalurnya sekaligus. Tidak ada apa pun di LAN yang mempertahankan jalur keluar yang berfungsi.
Router kedua di belakang yang pertama, menjalankan klien dengan subnetnya sendiri, membatasi tunnel pada perangkatnya sendiri. Lebih mudah dilepas dan lebih mudah dijelaskan kepada siapa pun yang mewarisinya. Biayanya adalah keterjangkauan antara kedua sisi tanpa rute atau penerusan port.
Apa pun jalannya, buat subnet LAN berbeda. Rentang yang identik membuat satu sisi tampak tersambung langsung, dan lubang hitam yang dihasilkan terbaca seperti kerusakan VPN selama berjam-jam.
Beri tunnel seorang pemilik
Deklarasikan tunnel sebagai antarmuka jaringan dengan nama, perangkat, dan tanpa protokol sendiri. Sistem jaringan lalu membuat dan mengelola perangkat, dan semua yang di hilir merujuk antarmuka dengan nama, bukan dengan perangkat. Itulah yang memungkinkan zona menemukannya.
Jangan membuat perangkat yang sama di dua tempat. Tunnel buatan tangan di samping antarmuka yang dideklarasikan menghasilkan perangkat yang ada tetapi tidak berada di zona, atau perangkat yang hilang saat dimuat ulang. Keduanya tampak seperti klien gagal, dan tidak satu pun menghasilkan kesalahan yang menyebut penyebab sebenarnya. Pilih jalur deklaratif dan hapus yang manual.
Jaga nama tetap sama di konfigurasi jaringan, firewall, dan VPN. Zona mendaftar jaringan berdasarkan nama, jadi salah ketik meninggalkan tunnel di luar setiap zona sementara antarmuka itu sendiri tampak sehat. Antarmuka sehat tanpa kebijakan adalah keadaan yang paling sulit dikenali.
Masukkan ke zona, lalu teruskan ke dalamnya
Zona firewall adalah tempat kebijakan berada: input, output, forward, dan masquerade. Tunnel yang tidak berada di zona mana pun diatur oleh nilai bawaan yang tidak Anda pilih, dan itu jarang yang dibutuhkan klien router. Blok di bawah mendeklarasikan antarmuka, menempatkannya di zona, dan mengizinkan lalu lintas LAN masuk ke zona itu.
config interface 'vpn'
option device 'tun0'
option proto 'none'
config zone
option name 'vpn'
list network 'vpn'
option input 'REJECT'
option output 'ACCEPT'
option forward 'REJECT'
option masq '1'
config forwarding
option src 'lan'
option dest 'vpn'
Pada rilis yang lebih lama dari 21.02, baris antarmuka yang sama ditulis sebagai option ifname, jadi periksa bentuk mana yang diurai firmware terpasang sebelum menempel. Blok penerusan adalah izin yang memungkinkan lalu lintas LAN memakai tunnel sama sekali. Tanpanya perangkat menyala, klien tersambung, dan tidak ada host LAN yang mencapai tunnel. Itu laporan tersambung tetapi tanpa internet yang paling umum pada klien router.
Masquerade pada zona VPN merangkum setiap alamat LAN menjadi alamat tunnel router sebelum paket keluar. Itu menghapus kebutuhan akan rute balik ke subnet Anda di sisi seberang.
Jika sisi seberang sudah merutekan LAN Anda, mematikan masquerade menjaga alamat sumber tetap terlihat dan membuat log per klien bermakna. Pilih satu dan catat yang mana, karena kedua pilihan menghasilkan pertanyaan dukungan yang berbeda nanti. Menghapus penerusan bawaan LAN ke WAN adalah keputusan terpisah dengan konsekuensinya sendiri. Hilangkan itu dan akses internet router sendiri ikut hilang.
Namai uplink sebenarnya di NAT
Pada firmware tempat aturan penerjemahan ditulis dengan tangan, antarmuka keluar adalah bidang yang salah. Aturan yang menyebut vlan2 tidak melakukan apa pun saat sesi berakhir di ppp0. Aturan tanpa antarmuka sama sekali dapat menerjemahkan lalu lintas yang seharusnya tetap privat. Tidak satu pun kesalahan itu mengumumkan dirinya, karena tunnel terus bekerja.
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
Ganti ppp0 dalam aturan itu dengan antarmuka dari ip route atau daftar antarmuka yang berjalan, lalu amati penghitungnya saat host LAN memuat halaman. Pada router satu penyedia, satu aturan masquerade untuk uplink biasanya cukup. Aturan kedua untuk antarmuka tunnel bukan pengganti yang pertama.
Lalu tambahkan opsi klien yang menentukan apa yang masuk ke tunnel. Direktif redirect-gateway mengirim lalu lintas internet klien melalui VPN, dan tanpanya tunnel hanya membawa rute yang dikirim server. Periksa tabel rute yang dihasilkan sebelum Anda menyentuh DNS.
Bagi Wi-Fi dengan tabel kedua
Satu tabel perutean tidak dapat menampung dua default. Karena itu SSID kedua yang harus melewati tunnel membutuhkan subnet sendiri dan tabel sendiri. Beri SSID yang ditunnelkan rentangnya sendiri, lalu rutekan hanya rentang itu ke tunnel dengan aturan yang memilih tabel.
Paket perutean kebijakan di OpenWrt mengungkapkan persis kombinasi itu. Melakukannya dengan tangan juga berhasil, dengan aturan sumber dan tabel yang defaultnya menunjuk ke perangkat tunnel.
Periksa pemisahan dari kedua jaringan. Klien pada SSID yang ditunnelkan harus menampilkan alamat keluar VPN, dan klien pada SSID biasa harus menampilkan alamat penyedia. Bila keduanya tampak sama, aturan mencocokkan sumber yang salah atau tabel tidak pernah dikonsultasikan. Uji juga setelah menyambung ulang, karena aturan yang bergantung pada nama antarmuka rusak saat perangkat dinomori ulang.
Curigai jam dan flag perangkat
Flag persist-tun membiarkan perangkat tunnel tetap ada di antara mulai ulang. Itu cocok untuk server dan membingungkan klien yang keadaannya harus dibangun ulang dari awal. Hapus saat memecahkan masalah klien router, karena perangkat yang bertahan dari negosiasi gagal menyembunyikan langkah mana yang sebenarnya rusak. Pasang kembali setelah klien tersambung andal, dan bukan sebelumnya.
Jam adalah kegagalan senyap lainnya. Router tanpa jam berbaterai mulai dari epoch, yang berarti pemeriksaan sertifikat gagal sampai NTP menyusul. Bandingkan stempel waktu log dengan waktu nyata sebelum Anda menyentuh sertifikat, karena klien yang tersambung semenit setelah boot biasanya menunggu sinkronisasi waktu.