Klien OpenVPN seluruh LAN pada OpenWrt: urutan yang berkesan
Pemilikan antara muka, dasar zon, masquerade dan jadual bagi setiap SSID ialah empat kerja berasingan. Lakukan mengikut urutan dan tunnel untuk seluruh penghala berhenti melawan anda.
Empat kerja bebas meletakkan seluruh LAN penghala di belakang satu tunnel. Peranti tunnel memerlukan pemilik, zon firewall, sasaran terjemahan ke arah uplink dan, jika sesetengah klien mesti kekal di luar VPN, penghalaan mengikut alamat sumber. Tunnel yang bersambung tetapi tiada apa yang melaluinya biasanya kehilangan salah satu daripada empat perkara itu. Bekerja mengikut urutan kebergantungan bermakna kegagalan pada akhirnya milik langkah yang baru anda ubah. Setiap langkah di bawah berakhir dengan sesuatu yang boleh anda perhati, dan itu menjauhkan langkah seterusnya daripada tekaan.
Tentukan apa yang berkongsi tunnel
Penghala yang mengagihkan Wi-Fi dan DHCP boleh menjalankan klien itu sendiri. Itu meletakkan setiap peranti yang bersambung di belakang tunnel tanpa persediaan bagi setiap peranti, dan itulah susunan yang dikehendaki kebanyakan tapak kecil. Ia juga susunan dengan kesan paling luas apabila tunnel terputus, kerana setiap peranti kehilangan laluannya serentak. Tiada apa pun pada LAN mengekalkan laluan keluar yang berfungsi.
Penghala kedua di belakang yang pertama, menjalankan klien dengan subnetnya sendiri, mengehadkan tunnel kepada perantinya sendiri. Ia lebih mudah dibuang dan lebih mudah dijelaskan kepada sesiapa yang mewarisinya. Kosnya ialah kebolehcapaian antara kedua-dua belah tanpa laluan atau pemajuan port.
Apa pun caranya, jadikan subnet LAN berbeza. Julat yang serupa membuat satu pihak kelihatan bersambung terus, dan lubang hitam yang terhasil kelihatan seperti kerosakan VPN selama berjam-jam.
Berikan tunnel seorang pemilik
Isytiharkan tunnel sebagai antara muka rangkaian dengan nama, peranti dan tiada protokol sendiri. Sistem rangkaian kemudian mencipta dan mengurus peranti itu, dan semua yang di hilir merujuk antara muka mengikut nama, bukan mengikut peranti. Itulah yang membolehkan zon menemuinya.
Jangan cipta peranti yang sama di dua tempat. Tunnel buatan tangan di sebelah antara muka yang diisytiharkan menghasilkan peranti yang wujud tetapi tidak berada dalam zon, atau peranti yang hilang apabila dimuat semula. Kedua-duanya kelihatan seperti klien gagal, dan tiada satu pun menghasilkan ralat yang menamakan punca sebenar. Pilih laluan deklaratif dan hapuskan yang manual.
Kekalkan nama itu sama dalam konfigurasi rangkaian, firewall dan VPN. Zon menyenaraikan rangkaian mengikut nama, jadi salah taip meninggalkan tunnel di luar setiap zon sementara antara muka itu sendiri kelihatan sihat. Antara muka sihat tanpa dasar ialah keadaan yang paling sukar dikesan.
Masukkan ke dalam zon, kemudian majukan ke dalamnya
Zon firewall ialah tempat dasar tinggal: input, output, forward dan masquerade. Tunnel yang tiada dalam mana-mana zon dikawal oleh nilai lalai yang tidak anda pilih, dan itu jarang apa yang diperlukan klien penghala. Blok di bawah mengisytiharkan antara muka, meletakkannya dalam zon dan membenarkan trafik LAN masuk ke zon 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 keluaran yang lebih lama daripada 21.02 baris antara muka yang sama ditulis sebagai option ifname, jadi semak bentuk mana yang dihuraikan oleh firmware yang dipasang sebelum menampal. Blok pemajuan ialah kebenaran yang membolehkan trafik LAN menggunakan tunnel sama sekali. Tanpanya peranti hidup, klien bersambung, dan tiada hos LAN mencapai tunnel. Itulah laporan bersambung tetapi tiada internet yang paling biasa pada klien penghala.
Masquerade pada zon VPN memadatkan setiap alamat LAN ke dalam alamat tunnel penghala sebelum paket keluar. Itu menghapuskan keperluan laluan balik ke subnet anda di sebelah sana.
Jika sebelah sana sudah menghalakan LAN anda, mematikan masquerade mengekalkan alamat sumber kelihatan dan menjadikan log bagi setiap klien bermakna. Pilih satu dan catat yang mana, kerana kedua-dua pilihan menghasilkan soalan sokongan yang berbeza kemudian. Membuang pemajuan lalai LAN ke WAN ialah keputusan berasingan dengan akibatnya sendiri. Buangnya dan akses internet penghala itu sendiri turut hilang.
Namakan uplink sebenar dalam NAT
Pada firmware yang mana peraturan terjemahan ditulis dengan tangan, antara muka keluar ialah medan yang menjadi salah. Peraturan yang menamakan vlan2 tidak melakukan apa-apa apabila sesi berakhir pada ppp0. Peraturan tanpa sebarang antara muka boleh menterjemah trafik yang sepatutnya kekal peribadi. Tiada satu pun kesilapan itu mengumumkan dirinya, kerana tunnel terus berfungsi.
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
Gantikan ppp0 dalam peraturan itu dengan antara muka daripada ip route atau senarai antara muka yang berjalan, kemudian perhatikan pembilang sementara hos LAN memuatkan halaman. Pada penghala dengan satu pembekal, satu peraturan masquerade untuk uplink biasanya mencukupi. Peraturan kedua untuk antara muka tunnel bukan pengganti yang pertama.
Kemudian tambah pilihan klien yang menentukan apa yang masuk ke dalam tunnel. Arahan redirect-gateway menghantar trafik internet klien melalui VPN, dan tanpanya tunnel hanya membawa laluan yang ditolak pelayan. Semak jadual laluan yang terhasil sebelum anda menyentuh DNS.
Pisahkan Wi-Fi dengan jadual kedua
Satu jadual penghalaan tidak boleh memuatkan dua lalai. Oleh itu SSID kedua yang mesti memintas tunnel memerlukan subnet sendiri dan jadual sendiri. Berikan SSID yang ditunnelkan julatnya sendiri, kemudian halakan hanya julat itu ke dalam tunnel dengan peraturan yang memilih jadual itu.
Pakej penghalaan dasar pada OpenWrt menyatakan tepat kombinasi itu. Melakukannya dengan tangan juga berkesan, dengan peraturan sumber dan jadual yang lalainya menunjuk ke peranti tunnel.
Semak pemisahan daripada kedua-dua rangkaian. Klien pada SSID yang ditunnelkan harus menunjukkan alamat keluar VPN, dan klien pada SSID biasa harus menunjukkan alamat pembekal. Apabila kedua-duanya kelihatan sama, peraturan memadankan sumber yang salah atau jadual tidak pernah dirujuk. Uji juga selepas sambung semula, kerana peraturan yang bergantung pada nama antara muka rosak apabila peranti dinomborkan semula.
Syak jam dan bendera peranti
Bendera persist-tun membiarkan peranti tunnel kekal di tempatnya merentasi permulaan semula. Itu sesuai untuk pelayan dan mengelirukan klien yang keadaannya patut dibina semula dari awal. Buangkan semasa menyelesaikan masalah klien penghala, kerana peranti yang bertahan daripada rundingan yang gagal menyembunyikan langkah mana yang sebenarnya rosak. Letakkan semula apabila klien bersambung dengan boleh dipercayai, dan bukan sebelum itu.
Jam ialah kegagalan senyap yang lain. Penghala tanpa jam bersokong bateri bermula pada zaman, yang bermakna pemeriksaan sijil gagal sehingga NTP menyusul. Bandingkan cap masa log dengan masa sebenar sebelum anda menyentuh sijil, kerana klien yang bersambung seminit selepas but biasanya menunggu penyegerakan masa.