StrongSwan menghantar alamat DNS yang tidak dapat dicapai oleh Mac
Mac atau iPhone mengabaikan alamat penyelesai awam yang dihantar oleh pelayan StrongSwan anda. Pindahkan penyelesai ke dalam kumpulan klien dan hadkan port 53 kepadanya.
Semuanya berfungsi sehingga seseorang membuka MacBook. Terowong terbentuk, hos dalaman menjawab melalui alamat, dan penyelesaian nama mati. Pada iPhone profil yang sama berkelakuan sama, manakala klien Windows dan Linux baik. Biasanya atribut DNS yang dihantar itulah penyebabnya: pelayan mengagihkan alamat antara muka awamnya sendiri, dan klien IKEv2 Apple tidak menghantar pertanyaan ke sana melalui terowong. Pindahkan penyelesai ke dalam kumpulan dan gejala hilang tanpa menyentuh klien.
Gejala menunjuk kepada alamat yang dihantar
Apabila hanya beberapa platform gagal, terowong dan kelayakan hampir pasti betul, kerana ia dikongsi. Yang berbeza ialah cara setiap klien menggunakan muatan konfigurasi yang diterimanya, termasuk pelayan DNS dalaman. Klien yang menerima alamat tetapi menghalakan pertanyaan di sekeliling terowong berakhir dengan penyelesai yang dapat dilihat tetapi tidak dapat digunakan.
Alamat awam ialah pilihan biasa kerana ia satu-satunya yang sudah diketahui oleh pentadbir. Ia juga satu-satunya alamat yang dijamin berada di luar awalan terowong itu sendiri, dan sifat itulah yang memecahkan klien Apple.
Lihat nilainya sebelum mengubah apa-apa. Jika penyelesai yang dihantar ialah alamat WAN pelayan, anda telah menemui bentuk masalah dan boleh melangkau tekaan selebihnya. Bandingkannya dengan awalan kumpulan juga, kerana alamat di dalam kumpulan tetapi di luar julat pajakan ialah tepat seperti rupa pembaikan itu. Dua minit dengan konfigurasi lebih baik daripada sepanjang petang menangkap paket pada klien.
Potong penyelesai keluar dari julat pajakan
Beri terowong pelan alamat di mana penyelesai menjadi ahli subrangkaian kumpulan itu sendiri, kemudian tempah alamat itu supaya ia tidak pernah dipajakkan kepada mana-mana klien. Dalam contoh ini kumpulan ialah 10.180.7.0/24, pelayan memegang 10.180.7.1, dan pajakan bermula pada 10.180.7.2.
rightsourceip=10.180.7.2/24
rightdns=10.180.7.1Awalan kumpulan dan penyelesai berkongsi subrangkaian, jadi laluan yang sudah membawa trafik terowong juga membawa pertanyaan. Sifat tunggal itulah yang menjadikan pembaikan boleh dipindahkan merentas klien. Dalam konfigurasi swanctl dua fakta yang sama muncul sebagai definisi kumpulan dan tetapan DNS pada sambungan dan bukan dalam sintaks ipsec.conf.
Pelayan tidak memerlukan antara muka fizikal baharu untuk ini. Menambah 10.180.7.1 pada antara muka loopback sudah cukup untuk penyelesai mengikat dan menjawab, kerana klien mencapainya melalui laluan kumpulan yang sudah wujud. Jauhkan alamat itu daripada julat pajakan supaya tiada klien mengambilnya secara tidak sengaja. Jika kumpulan diuruskan oleh perkhidmatan DHCP atau RADIUS luaran, tempah alamat itu di sana juga, jika tidak klien pertama yang bertanya akan mengambilnya.
Ikat penyelesai dan tutup port 53
Menetapkan alamat bukanlah sama dengan mendengar padanya. Penyelesai yang hanya mendengar pada alamat LAN akan menolak atau mengabaikan pertanyaan yang dihantar ke alamat kumpulan, dan klien melihat tamat masa yang kelihatan seperti kegagalan penghalaan.
interface: 10.180.7.1
access-control: 10.180.7.0/24 allow
access-control: 0.0.0.0/0 refuseSerpihan unbound itu menerima pertanyaan dari kumpulan terowong dan menolak segala yang lain, iaitu dasar yang diinginkan oleh kebanyakan penyelesai korporat. Jika contoh yang sama juga menjawab klien LAN, tambahkan awalan LAN secara eksplisit dan bukan meluaskan pendengar kepada semua sumber.
Kemudian peraturan tembok api mesti bersetuju dengan kawalan akses penyelesai itu sendiri. Terima port 53 dari kumpulan, dan buang di tempat lain, tetapi periksa dahulu susunan rantai.
iptables -A INPUT -p udp --dport 53 -s 10.180.7.0/24 -j ACCEPT
iptables -A INPUT -p tcp --dport 53 -s 10.180.7.0/24 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j DROP
iptables -A INPUT -p tcp --dport 53 -j DROPPeraturan penerimaan yang lebih awal dan lebih luas menjadikan dua baris terakhir itu hiasan, dan penyelesai kekal boleh dicapai dari internet. Baca set peraturan berkesan dengan pembilang dan bukan mempercayai susunan yang anda maksudkan. Dasar alternatif, menghantar alamat awam dan membenarkan pertanyaan dari mana-mana sumber, berfungsi untuk banyak klien, tetapi meletakkan penyelesai di internet dan memerlukan pengehadan kadar serta pemantauannya sendiri.
Sahkan apa yang sebenarnya diterima oleh klien
Periksa pandangan pelayan dahulu, kemudian klien, kerana kedua-duanya berbeza secara bermaklumat. Senarai kumpulan menunjukkan alamat yang dipajakkan, dan senarai persatuan keselamatan menunjukkan sama ada sambungan hidup dengan identiti yang dijangka.
swanctl --list-sas
swanctl --list-pools
dig +short @10.180.7.1 intranet.plant.examplePertanyaan langsung membuktikan penyelesai menjawab pada alamat kumpulan dari hos yang dapat mencapainya. Ia tidak membuktikan Mac memilih pelayan itu. Pada macOS, scutil --dns menyenaraikan penyelesai bagi setiap perkhidmatan berskop dan lebih bermaklumat daripada panel ringkasan; pada Windows, Get-DnsClientServerAddress menunjukkan sama ada penyesuai terowong menerima nilai yang dihantar.
Jika klien menunjukkan alamat kumpulan dan pertanyaan masih tamat masa, laluan terowong atau rantai tembok api yang bersalah. Klien yang tidak melaporkan sebarang penyelesai bermakna muatan konfigurasi tidak pernah tiba, jadi lihat bagaimana platform itu menggunakan tetapan yang dihantar dan bukan rangkaian. Catat mana antara dua kes itu yang anda perhatikan sebelum mengubah apa-apa lagi. Kedua-dua kegagalan itu kelihatan serupa dalam tiket sokongan dan membawa kepada pembaikan yang bertentangan.