Cara Melindungi Direktori Web Apache dengan Kata Sandi di Ubuntu 18.04

Halo yang disana. Selamat datang di panduan kami tentang cara melindungi direktori web Apache dengan password di Ubuntu 18.04. Ini akan memungkinkan Anda untuk membatasi akses ke berbagai bagian situs web Anda. Dalam hal ini, Apache mendukung dua konteks di mana arahan Otentikasi dapat diterapkan dan ini adalah;Directory dan htaccess.

Sementara arahan otentikasi dapat digunakan di dalam <Directory>, <Location>, <Files> dan bahkan <Proxy> blok dalam file konfigurasi Apache, htaccessarahan otentikasi konteks dapat digunakan dalam.htaccessfile.

Dalam panduan ini, kita akan mempelajari cara mengatur password direktori yang dilindungi Apache di kedua konteks.

Nah, sebelum Anda dapat melanjutkan, pastikan Anda telah menginstal program utilitas server HTTP Apache di server Anda. Utilitas ini menyediakan htpasswdperintah. Untuk memverifikasi bahwa paket ini sudah diinstal, jalankan perintah di bawah ini;

sudo dpkg -s apache2-utils | grep -i status Status: install ok installed

Jika karena alasan tertentu tidak diinstal, Anda dapat menginstalnya dengan menjalankan perintah berikut;

sudo apt install apache2-utils

Menyiapkan Direktori yang Dilindungi Kata Sandi menggunakan Konteks Direktori

Jadi untuk memulai, mari kita asumsikan bahwa Anda ingin melindungi direktori root situs web yang terletak di /var/www/html/example.

Untuk melanjutkan, Anda harus membuat file datar yang digunakan untuk menyimpan nama user dan password untuk otentikasi dasar user HTTP. File password dibuat menggunakan htpasswdutilitas dan dapat disimpan di mana saja di server Anda. htpasswdmengenkripsi password menggunakan bcrypt, versi MD5 yang dimodifikasi untuk Apache, SHA1, atau rutin crypt() sistem.

Buat File Kata Sandi

Untuk membuat file password, jalankan perintah di bawah ini.

sudo htpasswd -c /etc/apache2/.webroot amos

Ini akan membuat file datar tersembunyi bernama di webrootbawah /etc/apache2/. -cMenceritakan htpasswd untuk membuat file password. Jika file sudah ada, itu akan ditulis ulang dan dipotong. Oleh karena itu, untuk menambahkan user lain ke file yang sama, jalankan perintah yang sama tanpa opsi-c. Misalnya, untuk menambahkan user mibey,

sudo htpasswd /etc/apache2/.webroot mibey

Anda sekarang memiliki dua user yang dapat mengautentikasi ke direktori root web tertentu dan yang passwordnya di-hash.

sudo less /etc/apache2/.webroot amos:$apr1$FJuti2Ok$4apPG6wrlrhV0lexnRLoA1 mibey:$apr1$Hqc217.G$d2rzs8d9SbzE1ap/v7jbP/

Perhatikan bahwa jika utilitas htpasswd tidak terletak di PATH Anda, Anda dapat menemukan lokasinya dengan whichperintah dan menentukan path lengkap saat menjalankan yaitu/full/path/to/htpasswd.

Pastikan Apache memiliki akses ke file password. Dengan demikian Anda dapat mengatur kepemilikan dan izin sebagai berikut.

sudo chown www-data.www-data /etc/apache2/.webroot sudo chmod 644 /etc/apache2/.webroot

Lindungi Direktori Apache

Sekarang setelah kami membuat detail otentikasi, Anda sekarang dapat mengatur arahan otentikasi direktori di dalam file konfigurasi Apache utama atau file konfigurasi host virtual Anda sebagai berikut;

vim /etc/apache2/sites-available/example.conf
<VirtualHost *:80> # Admin email, Server Name (domain name) and any aliases ServerAdmin [email protected] ServerName example.com ServerAlias www.example.com DirectoryIndex index.html DocumentRoot /var/www/html # Custom log file locations LogLevel warn ErrorLog /var/log/apache2/error-example.com.log CustomLog /var/log/apache2/access-example.com.log combined  <Directory "/var/www/html/example">  AuthType Basic  AuthName "Authentication Required"  AuthUserFile "/etc/apache2/.webroot"  Require valid-user  </Directory> </VirtualHost>

Arahan yang digunakan di atas adalah;

  • AuthType – Mendefinisikan jenis otentikasi, dasar dalam contoh ini
  • AuthName – Menentukan pesan yang ditampilkan pada prompt password dari browser.
  • AuthUserFile – Menentukan lokasi file password.
  • Require – Menentukan bahwa hanya user yang mengautentikasi yang diberikan akses.

Setelah Anda selesai dengan konfigurasi, simpan file dan restart Apache.

sudo apachectl -t Syntax OK
sudo systemctl restart apache2

Saat Anda mencoba mengakses halaman Anda di browser, Anda akan mendapatkan prompt password.

http://192.168.43.99/example

Ketika Anda memasukkan Kata Sandi Anda, Anda dapat melihat konten situs Anda.

Menyiapkan Direktori yang Dilindungi Kata Sandi menggunakan File.htaccess

.htaccessfile juga dikenal sebagai file konfigurasi terdistribusi, menyediakan cara untuk melakukan perubahan konfigurasi pada basis per-direktori. Jika memungkinkan, jangan gunakan file ini sama sekali karena akan memperlambat server HTTP Apache Anda.

Menggunakan htaccess, membuat.htaccess file di direktori yang aksesnya akan dilindungi dengan konten berikut.

sudo vim /var/www/html/example/.htaccess sudo chown www-data.www-data /var/www/html/example/.htaccess
 AuthType Basic  AuthName "Restricted Content"  AuthUserFile "/etc/apache2/.webroot"  Require valid-user

Setelah itu, edit file konfigurasi Apache utama atau file konfigurasi host virtual Anda dan buat <Directory> blokir dengan konten berikut;

vim /etc/apache2/sites-available/example.conf
... ErrorLog /var/log/apache2/error-test.com.log CustomLog /var/log/apache2/access-test.com.log combined  <Directory "/var/www/html/example">  Options Indexes FollowSymLinks  AllowOverride All  Require all granted  </Directory> </VirtualHost>

Simpan dan tutup file setelah Anda selesai membuat perubahan. Setelah itu, Anda perlu me-restart server web Anda untuk melakukan perubahan. Saat Anda menavigasi ke browser dan mencoba mengakses konten situs Anda, Anda akan diminta untuk mengautentikasi.

Nah, itu saja tentang cara melindungi password direktori Apache menggunakan otentikasi dasar. Kami berharap ini informatif.