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 authorizedtes 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
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