Layanan VPN dapat dijangkau dari mana pun soketnya terikat dan firewall-nya mengizinkan. Itu dua keputusan terpisah, dan orang biasanya hanya mengambil salah satunya. Membaca listener sebenarnya membutuhkan sepuluh detik dan menyelesaikan pertanyaan yang tidak bisa dijawab dengan dugaan. Mulailah dari sana, lalu ubah satu kendali setiap kali.

Semua di bawah ini mengasumsikan Anda dapat menjalankan perintah di host dengan root atau sudo.

Baca soket sebelum mengubah apa pun

Di Linux, ss -lunp mencantumkan listener UDP dengan alamat lokal, port, dan prosesnya, dan ss -ltnp melakukan hal yang sama untuk TCP. Cari port VPN dan baca kolom alamat dengan cermat. 0.0.0.0:51820 dan [::]:51820 berarti setiap antarmuka, sedangkan 10.0.0.5:51820 berarti satu alamat pada satu antarmuka. Manual ss mendokumentasikan kolom-kolomnya jika keluarannya tidak dikenal. Jika nama proses hilang, jalankan perintah yang sama dengan sudo, karena kolom pemilik memerlukan hak istimewa.

Catat alamatnya. Itulah fakta yang menjadi dasar bagian lain dari panduan ini.

Ikat ke alamat, bukan ke keinginan

OpenVPN mengikat listener ke alamat tertentu dengan direktif local, dan itulah cara yang didukung untuk membatasinya di tingkat proses. Tidak setiap implementasi menawarkan padanan, dan protokol tanpa opsi pengikatan tidak dapat dipersempit dengan cara ini. Jika milik Anda tidak punya, firewall adalah satu-satunya kendali Anda, dan catatan penerapan harus menyatakannya dengan jelas. Pada host dengan beberapa alamat, ikat ke alamat yang menghadap terowongan; mengikat ke alamat yang bergerak biasanya kesalahan.

Layanan yang harus bertahan dari perubahan alamat memerlukan rencana untuk pengikatan yang usang, bukan sekadar baris konfigurasi.

Periksa keluarga alamat secara terpisah

IPv4 dan IPv6 adalah soket terpisah. Proses yang terikat ke 0.0.0.0 mungkin masih menerima IPv6 melalui soket tumpukan ganda, atau mungkin tidak, tergantung opsi soket dan default platform. Membaca hanya baris IPv4 telah menipu lebih dari satu tinjauan penerapan. Daftarkan kedua keluarga sebelum menyimpulkan bahwa listener sempit.

Jika IPv6 bukan bagian dari desain, menonaktifkannya di tingkat soket lebih bersih daripada berharap firewall mencakupnya. Itu keputusan kebijakan, jadi catat bersama pilihan antarmuka lainnya.

Lapisi firewall di atas pengikatan

Pengikatan sempit tidak menggantikan aturan firewall, dan aturan firewall tidak mempersempit pengikatan wildcard. Gunakan keduanya: ikat di tempat implementasi mendukungnya, lalu izinkan port hanya dari sumber yang seharusnya mencapainya. Grup keamanan cloud berada di depan firewall host, jadi periksa keduanya saat jalur melintasi batas VPC. Aturan efektif adalah irisan keduanya, dan setiap lapisan hanya dapat mengurangi keterjangkauan.

Uji dari sumber yang diizinkan dan dari sumber yang sengaja dikecualikan. Koneksi dari localhost tidak membuktikan apa pun tentang batas publik.

Catat apa yang Anda pilih

Catat alamat yang terikat, antarmuka yang memilikinya, aturan firewall, dan tujuannya. NIC pengganti atau alamat cloud yang dialokasikan ulang dapat mengubah paparan tanpa siapa pun menyunting profil. Beri tanggal pada catatan, karena alamat cloud berpindah antar-tinjauan lebih sering daripada yang orang duga.

Catatan itulah yang membuat tinjauan berikutnya menjadi perbandingan, bukan proyek arkeologi.

Artikel terkait