Membatasi Akses ke TSA Server dengan Htpasswd

htpasswd – Dalam postingan sebelumnya DI SINI, saya sudah membahas bagaimana cara melakukan instalasi TSA Server dengan menggunakan SignServer. Sesudahnya, saya pun sudah menuliskan bagaimana cara membuat pengaturan worker di SignServer agar TSA Servernya bisa berjalan dengan baik (baca DI SINI).

Namun masalahnya, ketika TSA Server itu sudah berjalan dengan baik (mengikuti tutorial yang saya berikan), TSA Server tersebut dapat dihit atau diakses dari manapun dan oleh siapapun. Tentunya kalian tak ingin hal tersebut terjadi, kan? Oleh sebab itu, akses ke TSA Server ini harus dibatasi.

Bagaimana cara membatasi akses ke TSA Server tersebut? Salah satu caranya adalah dengan menggunakan htpasswd. Apa itu htpasswd? Htpasswd merupakan sebuah tool yang digunakan untuk membuat dan mengubah flat-files yang digunakan untuk menyimpan username dan password untuk autentikasi dasar dari pengguna HTTP.

Dalam postingan kali ini, saya akan membahas bagaimana cara menggunakan htpasswd dan cara mengaplikasikannya ke dalam web server (dalam hal ini adalah nginx) di atas CentOS7 Server

Konfigurasi Nginx

Anggap saja sedikit konfigurasi awal nginx yang bertindak sebagai proxy bagi SignServer adalah seperti berikut:

location / {
   proxy_set_header X-Forwarded-Host $host:$server_port;
   proxy_set_header X-Forwarded-Server $host;
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   #rewrite ^/signserver(/.*)$ $1 break;
   #rewrite ^/$ /signserver;
   proxy_pass http://127.0.0.1:9813/signserver/process?workerName=TSA;
}

Menggunakan Htpasswd

Sebelum menggunakan htpasswd, terlebih dahulu kalian harus membuat file untuk menyimpan username dan password yang akan digunakan dalam proses autentikasi ketika mengakses web. Pada kesempatan kali ini, saya akan membuat file bernama htpasswd yang berlokasi di /etc/nginx. Cara membuatnya:

touch /etc/nginx/htpasswd

Berikutnya adalah melakukan instalasi apache-utils agar bisa menggunakan perintah htpasswd. Cara melakukan instalasinya:

yum install -y httpd-tools
Instalasi httpd-tools

Jika sudah melakukan instalasi httpd-tools, sekarang kalian sudah bisa menggunakan perintah htpasswd untuk membuat username dan password. Caranya:

cd /etc/nginx
htpasswd -2 <nama_file_menyimpan_passwd> <username>
{masukkan password untuk user yang akan dibuat}
{Ulangi memasukkan password yang sama}

keterangan:

  • Perintah -2 merupakan fungsi hash SHA-256 yang digunakan untuk membuat hash password. Fungsi hash ini umumnya didukung di semua platform Linux.

Jika prosesnya benar, kalian akan melihat pesan updating password for user xxxx

Untuk melihat apakah benar user yang ditambahkan tadi masuk ke dalam file htpasswd, jalankan perintah:

cat /etc/nginx/htpasswd
contoh pembuatan username dan password yang akan digunakan untuk autentikasi

Rekonfigurasi Nginx

Kembali lagi ke nginx. Setelah username dan password dibuat, sekarang waktunya menambahkan 2 baris perintah ke dalam konfigurasi nginx agar ada autentikasi user sebelum web diakses. Baris yang perlu ditambahkan adalah

location / { 
   proxy_set_header X-Forwarded-Host $host:$server_port; 
   proxy_set_header X-Forwarded-Server $host; 
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
   #rewrite ^/signserver(/.*)$ $1 break; 
   #rewrite ^/$ /signserver; 
   proxy_pass http://127.0.0.1:9813/signserver/process?workerName=TSA;
   auth_basic "Restricted Content";
   auth_basic_user_file /etc/nginx/htpasswd;
}

Keterangan:

  • auth_basic merupakan pesan yang akan muncul saat hendak memasukkan username dan password untuk mengakses web.
  • auth_basic_user_file merupakan file yang digunakan untuk mencocokkan proses autentikasi.

Jika sudah, restart service nginx agar konfigurasi yang baru dimasukkan bisa berjalan. Caranya:

service nginx restart

Akses Web

Tahap terakhir adalah mengakses web-nya. Seharusnya, sekarang kalian tidak bisa langsung masuk ke dalam web tersebut tanpa memasukkan username dan password. Saat mengakses web, yang akan muncul adalah sebuah pop up menu

proses autentikasi

Silakan masukkan username dan password sesuai dengan yang sudah dimasukkan di awal tadi. Jika benar, kalian akan masuk ke dalam halaman utama web tersebut. jika salah, kalian harus mengulang kembali proses memasukkan username dan password yang benar.

Pesan yang muncul saat kalian menekan tombol cancel
Halaman utama web

Itu tadi sedikit cara membatasi akses ke server TSA. Konfigurasi ini sangat mungkin untuk diaplikasikan ke web lainnya. Sampai jumpa di tutorial berikutnya.

Leave a Reply

Your email address will not be published. Required fields are marked *