Cara Melindungi Direktori Web dengan Kata Sandi di Apache Menggunakan File .htaccess


Saat Anda mengelola proyek online, Anda sering kali perlu membatasi akses ke proyek tersebut untuk melindunginya dari dunia luar. Mungkin ada beberapa alasan berbeda – misalnya Anda ingin mencegah perayap mesin telusur mengakses situs Anda saat situs masih dalam tahap pengembangan.

Dalam tutorial ini, saya akan menunjukkan cara melindungi berbagai direktori situs web di server web Apache dengan kata sandi. Ada banyak cara untuk mencapai hal ini, namun kami akan meninjau dua cara yang paling umum digunakan.

Metode pertama mengonfigurasikan perlindungan sandi secara langsung di file konfigurasi Apache, sedangkan metode kedua menggunakan file .htaccess.

Persyaratan

Untuk mengatur perlindungan kata sandi untuk direktori web Anda, Anda harus memiliki:

  • Server web Apache yang berfungsi
  • Perintah AllowOverride AuthConfig harus diaktifkan di file konfigurasi Apache.

Siapkan Direktori yang Dilindungi Kata Sandi Apache

1. Untuk tutorial ini, kita akan melindungi direktori root web utama /var/www/html. Untuk melindungi direktori tersebut, buka konfigurasi Apache Anda:

---------------- On RedHat/CentOS based systems ----------------
vi /etc/httpd/conf/httpd.conf

---------------- On Debian/Ubuntu based systems ----------------
nano /etc/apache2/sites-available/000-default.conf

2. Temukan akar direktori Dokumen Apache untuk /var/www/html dan tambahkan hal-hal berikut seperti yang disarankan:

Pada Versi Apache 2.2

<Directory /var/www/html> 
Options Indexes Includes FollowSymLinks MultiViews 
AllowOverride All
Order allow,deny
Allow from all 
</Directory>

Pada Versi Apache 2.4

<Directory /var/www/html> 
Options Indexes Includes FollowSymLinks MultiViews 
AllowOverride All 
Require all granted 
</Directory>

3. Simpan file dan mulai ulang Apache dengan menggunakan perintah berikut:

--------------- On Systemd -------------------
systemctl restart httpd         [On RedHat based systems]
systemctl restart apache2       [On Debian based systems]


--------------- On SysV init -----------------
service httpd restart           [On RedHat based systems]
service apache2 restart         [On Debian based systems]

4. Sekarang kita akan menggunakan perintah htpasswd untuk menghasilkan nama pengguna dan kata sandi untuk direktori yang dilindungi. Perintah ini digunakan untuk mengelola file pengguna untuk otentikasi dasar.

Sintaks umum dari perintah tersebut adalah:

htpasswd -c filename username

Opsi -c menentukan file yang akan menyimpan kata sandi terenkripsi dan nama pengguna menentukan pengguna untuk otentikasi.

5. File kata sandi kami harus ditempatkan di luar direktori Apache yang dapat diakses web agar terlindungi dengan baik. Untuk tujuan itu, kami akan membuat direktori baru:

mkdir /home/tecmint

6. Setelah itu kita akan membuat nama pengguna dan kata sandi yang akan disimpan di direktori tersebut:

htpasswd -c /home/tecmint/webpass tecmint

Setelah Anda menjalankan perintah ini, Anda harus memasukkan kata sandi untuk pengguna baru kami "tecmint" dua kali:

Setelah itu kita perlu memastikan bahwa Apache dapat membaca file “webpass”. Untuk itu, Anda perlu mengubah kepemilikan file tersebut dengan perintah berikut:

---------------- On RedHat/CentOS based systems ----------------
chown apache: /home/tecmint/webpass
chmod 640 /home/tecmint/webpass
---------------- On Debian/Ubuntu based systems ----------------
chown www-data /home/tecmint/webpass
chmod 640 /home/tecmint/webpass

7. Pada titik ini pengguna dan kata sandi baru kami sudah siap. Sekarang kita perlu memberitahu Apache untuk meminta kata sandi ketika mengakses direktori target kita. Untuk itu, buat file bernama .htaccess di /var/www/html:

vi /var/www/html/.htaccess

Tambahkan kode berikut di dalamnya:

AuthType Basic
AuthName "Restricted Access"
AuthUserFile /home/tecmint/webpass
Require user tecmint

8. Sekarang simpan file dan uji pengaturan Anda. Buka browser Anda dan masukkan alamat IP atau nama domain Anda di web browser, misalnya:

http://ip-address

Anda akan dimintai nama pengguna dan kata sandi:

Masukkan nama pengguna dan kata sandi yang Anda tetapkan untuk melanjutkan ke halaman Anda.

catatan tambahan

Jika Anda menggunakan shared hosting, kemungkinan besar Anda tidak memiliki akses ke file konfigurasi Apache. Namun sebagian besar perusahaan hosting telah mengaktifkan opsi “AllowOverride All” secara default. Artinya Anda hanya perlu membuat nama pengguna dan kata sandi lalu memilih direktori yang ingin Anda lindungi. Ini sangat memudahkan tugas Anda.

Kesimpulan

Saya harap tutorial ini bermanfaat dan membantu Anda mencapai tujuan Anda. Jika Anda memiliki pertanyaan atau komentar, jangan ragu untuk mempostingnya di bagian bawah.