Pada SOCKS5, autentikasi dinegosiasikan sebelum klien mengirim permintaan tujuannya. Itu membuat kegagalan kredensial awal menjadi peristiwa yang berbeda dari kegagalan FTP, HTTPS, atau aplikasi lain di balik proxy.

Sapaan klien mencantumkan metode autentikasi yang didukungnya. Server memilih satu metode dari daftar itu dan mengirimkan pilihannya kembali. Nilai 0xff berarti tidak ada metode yang ditawarkan yang dapat diterima, dan koneksi harus ditutup. Klien tidak begitu saja mencoba setiap metode di sisi server setelah kata sandi gagal.

Apa yang dikendalikan oleh pengurutan Dante

Dante 1.4.x menyebut pengaturan tingkat protokol sebagai socksmethod. Dokumentasinya menyatakan metode dicantumkan dalam urutan preferensi. Untuk kebijakan yang mengizinkan kedua metode, deklarasi ini lebih memilih nama pengguna/kata sandi ketika klien menawarkannya:

socksmethod: username none

Membalik daftar lebih memilih akses tanpa autentikasi ketika kedua metode ditawarkan:

socksmethod: none username

Ini adalah deklarasi metode alternatif, bukan konfigurasi server lengkap. Antarmuka pendengar, klien yang diizinkan, aturan tujuan, dan batasan autentikasi khusus aturan tetap penting.

Mengizinkan none memiliki konsekuensi konkret: klien yang hanya menawarkan tanpa autentikasi dapat diterima berdasarkan aturan yang berlaku. Menempatkan username di depan tidak mengubah daftar yang berisi none menjadi keharusan semua orang memberikan kata sandi.

Pilih persyaratannya lebih dulu

Jika setiap klien yang diizinkan harus mengautentikasi dengan nama pengguna/kata sandi, konfigurasikan persyaratan itu secara konsisten di aturan global dan aturan yang berlaku alih-alih menambahkan none sebagai perbaikan kompatibilitas umum. Jika akses anonim memang disengaja untuk kelompok klien terbatas, buat kelompok dan tujuan yang diizinkannya menjadi eksplisit.

Dante juga memiliki clientmethod, yang berkaitan dengan pemeriksaan yang dilakukan saat klien TCP terhubung, sebelum negosiasi SOCKS. Itu lapisan terpisah dari metode yang dipertukarkan dalam sapaan SOCKS5. Potongan konfigurasi yang menggunakan kata kunci method lama harus dibaca sesuai manual versi Dante yang terpasang.

Ketika dua klien berperilaku berbeda, bandingkan apa yang ditawarkan masing-masing, apa yang dipilih Dante, dan apakah sub-negosiasi metode yang dipilih berhasil. Lalu periksa balasan tujuan SOCKS. Urutan ini mengidentifikasi callback kredensial yang hilang tanpa menyalahkan FTP atas setiap kegagalan atau mengubah kebijakan autentikasi server secara membabi buta.

Terakhir, autentikasi nama pengguna/kata sandi SOCKS5 tidak mengenkripsi pertukaran kata sandi. Gunakan transportasi atau jaringan yang terlindungi semestinya ketika kredensial tersebut membutuhkan kerahasiaan.

Artikel terkait