Sam

"Don't Just Feel Special, Be Special"

Senin, 15 Mei 2017

Lab 8.16 Konfigurasi HTTPS Pada Nginx

06.37 Posted by Unknown No comments
Konfigurasi Nginx HTTPS pada Web Server Nginx


Apa itu HTTPS?

HTTPS (Hyper Text Transfer Protocol Secure) Umumnya sama dengan HTTP, yaitu protokol yang mengatur komunikasi antara client dan server. Pada umumnya cara komunikasi antara client dan server adalah client melakukan request ke server, kemudian server mengirimkan respon terhadap client. Respon yang dimaksud dapat berupa file HTML yang akan ditampilkan di browser ataupun data lain yang di-request oleh client

Namun HTTPS ini dapat dibilang versi amannya HTTP, karena HTTPS ini bekerja bersama protokol SSL (Secure Socket Layer) atau Transport Layer Security (TLS) yang memungkinkan adanya Enkapsulasi dan menambahkan keamanan sebuah jaringan yang diakses pada browser.

Secara default, HTTPS berjalan pada port 443.

Konfigurasi Server

1) Pertama pindah terlebih dahulu, ke directory /certs/ karena disitulah letak file make yang berfungsi untuk membuat Certificied SSL. Jika sudah buat file key atau kunci untuk file csr yang nantinya akan kita buat. Kemudian nanti akan diminta password untuk file key tersebut, maka dari itu masukan saja passwordnya terserah kalian
cd /etc/pki/tls/certs/
make "nama file".key 

2) Sekarang buat file csr nya. File csr ini merupakan identitas dari Sertfikat yang nantinya akan terbuat.

Maka nanti kalian akan diminta untuk memasukan beberapa identitas, Seperti Negara, Email, Organisasi, dan lain sebagainya.
make "nama file".csr
3) Sekarang konfigurasi RSA terhadap file key yang sudah dibuat dengan menggunakan openssl. Apa itu RSA?, singkatnya RSA adalah sebuah algoritma pada enkripsi public key. RSA merupakan algoritma pertama yang cocok untuk digital signature seperti halnya enkripsi.

4) Nah sekarang buat file crt yang merupakan Sertifikat yang terbentuk dari hasil pergabungan file csr dan key yang sudah dibuat tadi dengan menggunakan openssl.

  •  x509 merupakan format public key certificates atau sertifikat yang digunakan 
  • -in merupakan sumber dari identitas yang nantinya akan di include kedalam sertifikatnya 
  • -out merupakan Sertifikat, atau hasil dari generate file 
  • -req -signkey merupakan file keynya. 
  • -days merupakan jangka waktu untuk sertifikat tersebut dalam hitungan hari

5) Sekarang konfigurasi HTTPS untuk domain tertentu, disini saya mengkonfigurasinya pada file konfigurasi Virtual host yang sudah saya buat pada lab sebelumnya. Jika kalian ingin mengeditnya di tempat konfigurasi global nginx juga tidak apa apa.
nano /etc/nginx/conf.d/"nama file vhost".conf
  • listen 443 ssl berarti suatu domain dikonfigurasi untuk mendengarkan atau membaca service https pada port 443
  • ssl_protocol TLSv1 TLSv1.1 TLSv1.2 merupakan standarisasi protocol yang digunakan oleh HTTPS yaitu ssl dan juga TLS (Transport Layer Security)
  • ssl_certificate merupakan letak dari file sertifikat .crt yang telah dibuat dan dikonfigurasi
  • ssl_certificate_key merupakan letak key dari sertifikat ssl tersebut

6) Restart nginx agar konfigurasi yang baru berjalan
systemctl restart nginx
7) Setalah itu, masukan service https kedalam firewall agar dapat diakses oleh client
firewall-cmd --permanent --add-service=https
firewall-cmd --reload 
8) Edit konten web untuk https tersebut, dan jangan lupa sesuaikan peletakan file indexnya sesuai dengan directory dari domain yang kalian gunakan.

Verifikasi Client

1) Lakukan pengecekan pada Web Browser client dengan cara mengetikan nama domain dan diikuti dengan https:// di depannya
 https://"nama domain"
Nah maka akan ada peringatan Connection is not private karena SSL yang kita buat bersifat lokal. Untuk pengguna Google Chrome, Klik Proceed...(unsafe), untuk masuk ke konten web httpsnya.
 2)Lanjutkan ke halaman webpage dengan mengklik Lanjutkan.
 3)Maka akan muncul halaman httpsnya
 3) Sekarang coba di inspect pagenya, kemudian pada tab security akan ada caution broken HTTPS. Jika ingin melihat sertifikatnya klik View certificate
4) Maka akan tampil informasi mengenai web https tersebut, tepatnya informasi yang telah kita buat tadi di file csr.


Terimakasih

Senin, 08 Mei 2017

Lab 8.15 Enable Basic Authentication Nginx Web Server

09.26 Posted by Unknown No comments
Enable Basic Authentication Nginx Web Server


Basic Authentication adalah suatu metode dimana Web yang kita buat diberikan user beserta password untuk mengaksesnya. Jadi yang bisa mengakses Web tersebut tidak sembarang orang, tetapi hanya yang mengetahui user dan password yang kita buat pada Web tersebut.

Konfigurasi Server

1) Petama, install package httpd tools terlebih dahulu
yum install httpd-tools -y
 2) Jika sudah, sekarang buat file .conf pada directory /etc/nginx/conf.d/. Disini saya menggunakan file konfigurasi virtual host yang sudah saya buat pada lab sebelumnya. Jika ingin langsung edit file konfigurasi global nginx.conf pada directory /etc/nginx/ juga tidak apa-apa, sesuaikan saja.
 nano /etc/nginx/conf.d/"nama file".conf
 3)Tambahkan sintak seperti di bawah ini

  •  location /auth-basic berfungsi untuk mendefiniskan letak konten web yang akan diberi autentikasi
  • root /usr/share/nginx/samuellorg berfungsi untuk mendefinisikan directory root pada suatu website.
  • auth_basic "Basic Auth" Maksudnya adalah untuk mengaktifkan autentikasi basic dengan string "Basic Auth"
  • auth_basic_user_file "/etc/nginx/.htpasswsamuel"; digunakan untuk mendefinisikan letak user yang akan digunakan untuk autentikasi. disini saya mengatur letak user pada file yang bernama .htpasswsamuel di directory /etc/nginx/


4) Buat user yang nantinya akn digunakan untuk autentikasi. Letakan file user tersebut sesuai dengan apa yang sudah dikonfiguasi pada tahap sebelumnya. Pada contoh ini saya membuat user samuell.
 5) Restart service nginx agar konfigurasi yang baru berjalan
systemctl restart nginx
 6) Buat directory serta file index pada directory yang sudah dikonfigurasi dengan adanya autentikasi. Karna tadi saya mengaturnya pada directory /usr/share/nginx/samuelorg/auth-basic, maka disini harus disamakan juga.
mkdir /.../auth-basic
nano /.../auth-basic/index.html 
 7) Edit konten webnya sesuai keinginan
 Verifikasi Client

1) Akses konten web nginx kalian pada web browser client, kemudian diikuti dengan directory autentikasi dibelakangnya.

Nah maka akan tampil Pop-up autentikasinya
 2) Masukan username beserta passwordnya sesuai dengan apa yang sudah dibuat pada tahap sebelumnya
 3)Maka anda akan dapat mengakses webpage nginx anda.

Lab 8.14 Konfigurasi User Directory pada Web Server Nginx

09.15 Posted by Unknown No comments
Konfigurasi User Directory pada Web Server Nginx


Userdir ini berfungsi agar setiap user memiliki direktori web nya masing-masing.

Konfigurasi Server

1) Buat terlebih dahulu user beserta passwordnya yang dimana nantinya user ini akan mengakses directory webnya sendiri.
useradd "nama user"
passwd "user yang akan diberi password" 
 2) Disini saya membuat userdir pada file konfigurasi virtual host yang saya buat pada directory
/etc/nginx/conf.d/vhostsamuel.conf
 3)Disini saya membuat userdir untuk domain www.samuell.org.

  •  location ~ ^/~(.+?)(/.*)?$ berfungsi untuk menambahkan directory home suatu user agar dapat diakses pada web. Diaksesnya dengan mengetikkan http://domain/~user/. ^/~(.+?)(/.*)?$ merupakan regular expressions atau yang biasa dikenal dengan sebutan REGEX yang menunjukkan sebuah user. 
  • /home/$1/public_html$2 berfungsi untuk pengganti lokasi yang ditentukan, jadi alias pada konfigurasi disini berguna untuk menggantikan konten dari direktori yang seharusnya diletakkan di ~user menjadi /home/$1/public_html$2. $1 disana menunjukkan semua user yang ada pada server, dan public_html merupakan direktori didalam /home/user. 
  • index index.html index.htm digunakan untuk mendefinisikan file index yang digunakan,

autoindex on merupakan module yang memproses yang berakhiran dari karakter slash ('/')

4) Restart service nginx agar konfigurasi yang baru berjalan
systemctl restart nginx
 5) Lakukan beberapa perintah seperti gambar dibawah ini

  •  mkdir /home/samuel/public_html berfungsi untuk membuat directory public_html pada userdir
  • chmod 711 /home/samuel/ ( owner: r-w-x, group: x. other: x) berfungsi untuk memberikan permission atau hak akses execute pada group samuel dan other user. Jadi agar semua orang dapat melihat file yang merupakan konten dari userdir yang telah dieksekusi oleh httpd untuk ditampilkan menjadi konten web (hanya untuk direktori yang telah diberikan akses read terhadap other user).
  • chown samuel:samuel /home/samuel/public_html/ berfungsi untuk mengatur ownership atau kepemilikan terhadap directory /home/samuel/public_html/ pada user dan group samuel
  • chmod 755 /home/samuel/public_html/ ( owner: r-w-x, group: r-x. other: r-x) berfungsi untuk memberikan permission atau hak akses read dan execute terhadap semua user. Direktori ini diberikan akses execute agar dapat di eksekusi service httpd untuk melayani request userdir.
  • chcon -R -t httpd_sys_content_t /home/samuel/public_html/ digunakan untuk mengubah selinux security context terhadap direktori /home/samuel/public_html secra recursive atau keseluruhan agar dapat diakses http sebagai direktori yang berisi konten website.


6) Buat file index di dalam directory yang sudah di buat dan sudah di konfigurasi sedemikian rupa tadi
nano /.../index.html
 7) Edit file index yang nantinya digunakan sebagai konten halaman web
 8) Beri permision rw-r-r dengan octal 644 untuk file index yang sudah dibuat tadi
 9) Atur selinux boelan agar client diizinkan untuk mengakses userdir
setsebool -P httpd_enable_homedirs true
 Verifikasi Client

1) Lakukan pengetesan pada Web Browser client dengan mengetikan nama domain dan diikuti dengan nama user yang telah dibuat

Lab 8.13 Konfigurasi Virtual Host pada Nginx

08.31 Posted by Unknown No comments
Konfigurasi Virtual Host pada Nginx


VirtualHost adalah cara untuk mengatur beberapa Domain dalam IP Address yang sama dalam satu server. Virtual Host ini digunakan untuk menjalankan lebih dari satu domain pada satu ip yang sama. virtual host dibutuhkan jika kita ingin menjalankan beberapa situs pada satu Server atau VPS yang sama.

Konfigurasi Server

1) Buat file .conf di directory /etc/nginx/nginx.conf untuk konfigurasi Virtual Host
nano /etc/nginx/conf.d/"nama file".conf
2) Disini saya mengatur untuk host Virtualnya saja, sedangkan untuk konfigurasi domain utamanya, tetap pada file konfigurasi defaultnya yaitu nginx.conf pada directory /etc/nginx/




  • listen 80 berarti server dapat memenuhi request dari semua ip yang mengakses port 80 (http)
  • server_name untuk mendefinisikan nama server, disini saya mendefinisikan www.samuell.org
  • location / berfungsi untuk mengatur letak dan konten halaman website. dan tanda (/) menandakan direktori root. Jadi / itu menandakan halaman utama web (index) dan subdirektori didalamnya diikuti dengan nama direktori tersebut. root /usr/share/nginx/samuellorg untuk meletakkan konten web pada direktori /usr/share/nginx/samuellorg untuk website www.samuell.org
  • index index.html dan index.htm digunakan untuk mendefinisikan file index yang digunakan.


3) Edit file nginx.conf pada directory /etc/nginx/
nano /etc/nginx/nginx.conf
4) Atur directory laman web untuk domain utama kalian, disini saya mengaturnya di
/usr/share/nginx/samuelnet

 5) Buat direktori untuk masing masing web konten terhadap domain yang telah ditentukan
 6) Buat file index.html di dalam directory laman web yang sudah dibuat tadi
nano /website directory/index.html
 7)Buat file html pada domain pertama yaitu samuellorg
 8)Buat file html pada domain kedua yaitu samuelnet
 9)Jika sudah sekarang restart service nginxnya
systemctl restart nginx
 Verifikasi Client

1) Lakukan pengetesan pada web browser client dengan membuka masing masing konten web yang telah dibuat


Lab 8.12 Konfigurasi Web Server Nginx

07.55 Posted by Unknown No comments
Konfigurasi Web Server Nginx


Berbeda halnya dengan Apache, Nginx ini tidak ada pada repository default CentOS, Nginx tersedia pada Epel Repository Centos. So, kita harus install repository Epel terlebih dahulu

Oh iya saya ingatkan lagi, Repository Epel ini tidak support untuk Centos 7 32 bit, ia hanya tersedia untuk Centos 7 64 bit. Sebenarnya bisa saja Repository Epel ini terinstall pada arsitektur 32 bit, hanya saja harus menggunakan Centos 6. Begitupun aplikasi Nginx ini, pada OS Centos 7 ia hanya support yang beraksitektur 64 bit.

Konfigurasi Server

1) Seperti apa yang sudah saya bilang tadi, Nginx tidak ada di repository default centos, ia tersedia di repositry epel centos 7, maka dari itu kita harus install repository epel terlebih dahulu
yum install epel-release -y
 2) Jika sudah, sekarang kita install Nginx
yum install nginx -y 
 3) Edit file konfigurasi nginx, yaitu nginx.conf yang terletak di /etc/nginx/
nano /etc/nginx/nginx.conf
 4) Cari syntak server_name kemudian tambahkan domain kalian. server_name berguna untuk mendefinisikan nama server
 5) Start dan Enable Nginx agar running otomatis saat komputer restart
systemctl start nginx
systemctl enable nginx
 6) Masukkan service http ke dalam firewall, kemudian reload
firewall-cmd --permanent --add-service=http
firewall-cmd --reload 
 Verifikasi Client

1) Buka Web Browser kemudian ketikan nama domain server nginx kalian pada kolom url atau address bar yang tersedia

Re-Configure Server

1) Konten web nginx secara default terletak di directory /usr/share/nginx/html/ yang bernama index.html, jika kalian mau edit laman webnya, editlah file tersebut. Disini saya akan mencoba mengganti laman webnya dan membackup laman default nginx(optional)

 2) Edit konten tersebut sesuai keinginan
 Verifikasi Client

Buka kembali pada Client pc anda lalu bukalah halaman webnya,maka akan nampak perbedaan yang anda lakukan setelah melakukan penambahan script pada index.html