Dua pelanggan pada satu host terdengar seperti satu blok server lagi dan satu port kedua. Ini menjadi proyek lain begitu Anda mendaftar semua yang benar-benar dimiliki pelanggan: satu listener, satu pool tunnel, satu identitas, berkas kepercayaan, rute, dan jadwal pencabutan. Lewatkan salah satunya dan pelanggan kedua diam-diam mewarisi sebagian milik yang pertama. Buat kartu per pelanggan dan isi sebelum klien pertama terhubung.

Tetapkan kartu sumber daya yang lengkap per pelanggan

Cadangkan seluruh himpunan bersama-sama: port publik, subnet tunnel, jalur konfigurasi, tujuan log, nama instans layanan, dan perangkat. Menamainya sebagai satu kelompok itulah yang mencegah salinan klasik berkas yang berfungsi namun masih memuat pool atau antarmuka pelanggan pertama. Nilainya adalah contoh, bukan port yang dicadangkan, jadi periksa apa yang sudah dipakai host. Layanan yang menyala tidak sama dengan pelanggan yang lengkap.

Simpan kartu di samping konfigurasi dan perbarui setiap kali nilai berubah. Dokumentasi yang menjauh dari kenyataan lebih buruk daripada tidak ada.

Simpan materi kepercayaan di dalam setiap pelanggan

Otoritas penerbit terpisah per pelanggan membuat batas mudah dipikirkan dan menjauhkan kunci penandatangan dari host yang menghadap internet. Akar bersama juga bisa berfungsi, tetapi jangkar bersama tidak menjadikan dua layanan satu domain keanggotaan. Putuskan rantai mana yang diterima setiap listener dan identitas klien mana yang diotorisasinya, lalu tuliskan keduanya. Jangan mengupas sertifikat dari rantai dengan coba-coba sampai sesuatu terhubung.

Kunci privat server sendiri berada dalam berkas terlindungi per pelanggan, bukan di direktori templat yang direplikasi bersama konfigurasi.

Pisahkan jaringan sekaligus prosesnya

Dua proses pada dua port tetap berbagi host dan tabel perutean kecuali Anda memisahkannya. Pastikan apa yang mendengarkan sebelum memercayai rancangan.

ss -lunp | grep -E '1194|1195'
openssl verify -CAfile customer-a/ca.crt customer-a/client.pem

Pemeriksaan listener menunjukkan proses mana yang memiliki setiap port publik, dan verifikasi menunjukkan apakah sertifikat klien berantai ke jangkar yang dimaksud. Tidak ada keluaran yang membuktikan bahwa klien A tidak dapat menjangkau subnet B, jadi tentukan kebijakan sumber dan tujuan, rute balik, dan layanan apa pun yang sengaja dibagi. Ruang nama jaringan atau kontainer memisahkan konteks perutean dan mengurangi pencampuran tak sengaja, tetapi keduanya bukan batas penyewa yang lengkap dengan sendirinya. Pilih mekanisme isolasi yang lebih kuat ketika model ancaman menuntutnya.

Antarkan pencabutan sebelum serah terima

Penerapan sertifikat belum lengkap sampai pencabutan punya jalur pengiriman. Periksa penerbit dan jendela masa berlaku CRL sebagai bagian dari onboarding.

openssl crl -in customer-a/crl.pem -noout -lastupdate -nextupdate
systemctl status openvpn@customer-a

Pemeriksaan CRL melaporkan kapan daftar diterbitkan dan kapan kedaluwarsa, dan status layanan memastikan instans yang membacanya berjalan. Segarkan daftar sesuai jadwal kebijakan penerbitan bahkan ketika tidak ada yang baru dicabut, karena CRL yang kedaluwarsa dapat menolak setiap klien. Terbitkan berkas lengkap alih-alih membiarkan pembaca menemui penulisan sebagian, dan validasi tanda tangan sebelum penerapan. Catat siapa yang memiliki penerbitan, operasi titik akhir, dan pensiun, sehingga mematikan pelanggan A tidak mengganggu B.

Lalu jalankan pasangan penerimaan: klien yang diizinkan mencapai layanannya sendiri, dan kredensial A ditolak oleh listener B. Itulah batas yang dinyatakan sebagai uji.

Artikel terkait