Memanfaatkan Apache Password Authentication .htpasswd untuk Keamaan Server
Pada saat kita mengatur suatu proyek yang bersifat daring (online), terkadang kita membutuhkan suatu proteksi untuk melindunginya dari public, seperti membatasi akses hanya pada pengguna tertentu yang boleh masuk. Atau untuk alasan lainnya seperti tidak inginnya di crawel oleh mesin pencarian, karena proyek tersebut masih dalam tahap pengembangan (under development).
Dalam tutorial kali ini, kita akan membahas mengenai .htpasswd
yang mana berfungsi melindungi suatu situs dengan memanfaatkan semacam Password Authentication
yang diletakan pada direktori tertentu, seperti direktori admin web, atau direktori yang dianggap penting untuk dibatasi siapa-siapa saja yang boleh masuk.
Pemasangan Apache
Seperti yang telah kita ketahui bahwa perbedaan distro GNU/Linux, selain beda manejer paket, berbeda pula nama paket yang diberikan, saya hanya memberikan cara pada 3 distro yakni 1) Debian/Ubuntu; 2) Centos/Fedora/RHEL; 3) Arch Linux; berserta derivatifnya dari ketiga distro tersebut.
Adapun penamaan paket disetiap distro itu berbeda yakni, di Ubuntu/Debian dan derivatifnya kita memasang paket Apache dengan nama apache2
; di Fedora/Centos/RHEL dan derivatifnya bernama httpd
; sedangkan di Arch Linux bernama sesuai namanya yakni apache
.
Pengguna Debian/Ubuntu
$ sudo apt-get install apache2 apache2-utils
Pengguna Centos/Fedora 21 ke bawah/RHEL
$ sudo yum install httpd
Fedora 21 ke atas
$ sudo dnf install httpd
Pengguna Arch Linux
$ sudo pacman -S apache
Pembuatan Berkas .htpasswod
$ sudo htpasswd -c /lokasi/yg/anda/inginkan/.htpasswd ali
Perlu diketahui bahwa /lokasi/yg/anda/inginkan/.htpasswd
Anda bebas menaru di direktori manapun. Untuk opsi -c
mengindetifikasikan bahwa untuk membuat berkas yang lebih spesifik, dalam contoh di atasa yakni ali
.
Pengaturan Apache
Pengguna Debian/Ubuntu
$ sudo nano /etc/apache2/sites-available/000-default.conf
Centos/Fedora/RHEL
$ sudo vi /etc/httpd/conf/httpd.conf
Kemudian sunting berkas tersebut dan masukan seperti kode di bawah ini:
<Directory "/var/www/html"> AuthType Basic AuthName "Restricted Content" AuthUserFile /lokasi/yg/anda/inginkan/.htpasswd Require valid-user Options Indexes Includes FollowSymLinks MultiViews AllowOverride All Require all granted </Directory>
Kode di atas Khusus pengguna Apache versi 2.4 , jika Anda pengguna Apache versi di bawahnya (versi 2.2). Ganti pada kode require all granted
menjadi seperti berikut:
<Directory /var/www/html> Options Indexes Includes FollowSymLinks MultiViews AllowOverride All allow,deny Allow from all </Directory>
Pembuatan .htaccess
Kemudian kita buat .htaccess
Pengguna Debian/Ubuntu
$ sudo nano /var/www/html/.htaccess
Pengguna Centos/Fedora/RHEL
$ sudo nano /var/www/html/.htaccess
Pengguna Arch Linux
$ sudo nano /srv/http/.htaccess
Dan isikan skrip di bawah ini:
AuthType Basic AuthName "Restricted Content" AuthUserFile /lokasi/yg/anda/inginkan/.htpasswd Require valid-user
Cek terlebih dahulu pengaturan Apache Anda, sudah betul atau belum?
$ sudo apache2ctl configtest atau $ sudo apachectl configtest
Jika sudah, langsung saja restart Apache-nya:
$ sudo service apache2 restart $ sudo service httpd restart Pengguna Systemd $ sudo systemctl restart httpd
Hasilnya akan seperti berikut, contohnya pada situsali.com: