Basic auth ini banyak digunakan untuk proteksi sederhana website, banyak juga yang menggunakannya untuk password website yang masih dalam tahap development, agar tidak di index oleh search engine.

Untuk membuat password terenkripsi kita akan menggunakan mkpassword. Install terlebih dahulu whois, karena mkpassword terdapat didalamnya.

apt install whois -y

Haproxy yang saya test dengan konfigurasi ini 1.9x dan 2.x.

Contoh saya akan menggenerate encrypted password dari ‘jaranguda’ dengan mkpassword.

echo "jaranguda" | mkpasswd  -s -m sha-256
$5$U.9eviPOUg8X.UX3$EOSS4/21jYLKpH30gjGUkJGrX8hhfTurr5X7EQcfHg9

contoh lainnya

echo "passwordrahasia" | mkpasswd  -s -m sha-256
$5$HwKT7XOtoRUxFxuD$tmObtQqc66lR1JUKu1r6j6nv/hwzBR9LWSFWBTH35g7

Buka file /etc/haproxy/haproxy.cfg, tambahkan

userlist UserHaproxy
        user jaranguda password $5$U.9eviPOUg8X.UX3$EOSS4/21jYLKpH30gjGUkJGrX8hhfTurr5X7EQcfHg9
 
frontend http-in
    bind *:80
    acl authorized http_auth(UserHaproxy)
    acl frontend-dev-jaranguda hdr(host) -i dev.jaranguda.com
    http-request auth realm Rahasia if frontend-dev-jaranguda !authorized
    use_backend backend-dev-jaranguda if frontend-dev-jaranguda authorized

tes konfigurasi haproxy, bila tidak ada masalah reload haproxy

haproxy -c -f /etc/haproxy/haproxy.cfg
systemctl reload haproxy.service

pada contoh diatas, bila ada yang mengakses dev.jaranguda.com, akan langsung diminta memasukkan username dan password. Pada contoh diatas

username : jaranguda
password : jaranguda

Bila user gagal memasukkan passwordnya akan muncul

401 Unauthorized
You need a valid user and password to access this content.

Kombinasi username/password tersebut bisa dibuat banyak, per group ataupun beberapa user, tergantung kebutuhan. Contoh

userlist UserHaproxy
        user jaranguda password $5$U.9eviPOUg8X.UX3$EOSS4/21jYLKpH30gjGUkJGrX8hhfTurr5X7EQcfHg9
        user accounting password $5$lqA7EARfnWx4ScqT$RJ.Z3U59apa6X13VYR6osChIBIQ/DVSADbx4ILRCuZ5
        user devops password $5$mQ1abHAFZMq1nklK$CVpsgREqTx.oDChwbh3ZvRu0RNN6qBVrkPCF.0wwRa5

Leave a comment

Your email address will not be published. Required fields are marked *