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