Rabu, 27 Mei 2026

KONFIGURASI VPS, WEB SERVER DAN PENGUJIAN KEAMANAN


Disusun oleh:

Dhika Karya P. (25051204086)
M. Anwar Romadlon (25051204143)
M. Daffa Firmansyah (25051204219)
Rafino Fadhil Al Huda (25051204184)


BAB I
PENDAHULUAN

1.1 Latar Belakang

Dalam era digital saat ini, pengelolaan infrastruktur IT menjadi semakin kompleks dan kritis. Setiap organisasi, baik kecil maupun besar, membutuhkan pemahaman mendalam tentang administrasi sistem Linux. Linux dipilih karena merupakan sistem operasi yang stabil, aman, dan banyak digunakan dalam environment produksi di seluruh dunia.

  • Kebutuhan konfigurasi jaringan dan web server dalam sistem modern semakin meningkat seiring berkembangnya aplikasi berbasis web. Nginx sebagai web server modern menawarkan performance tinggi dan fleksibilitas konfigurasi yang luar biasa.
  • Ancaman keamanan cyber terus berkembang dan menjadi tantangan serius bagi setiap organisasi. Kemampuan melakukan pengujian keamanan secara proaktif dan terkontrol menjadi sangat penting untuk mengidentifikasi kerentanan sebelum dieksploitasi oleh pihak yang tidak bertanggung jawab.
  • Implementasi hardening sistem dan best practices keamanan merupakan fondasi yang tidak terpisahkan dalam membangun infrastruktur IT yang robust dan dapat diandalkan.

1.2 Rumusan Masalah 

Praktikum ini dirancang untuk menjawab beberapa pertanyaan fundamental:
  1. Bagaimana melakukan konfigurasi jaringan dan web server (Nginx) dengan optimal dan aman?
  2. Bagaimana melakukan pengujian keamanan secara aman, terkontrol, dan sesuai dengan standar industri?
  3. Bagaimana mengimplementasikan hardening sistem dan best practices keamanan pada infrastruktur web server?

1.3 Tujuan

Praktikum ini memiliki tujuan pembelajaran sebagai berikut:
  1. Mampu mengkonfigurasi jaringan dan web server (Nginx) dengan optimal
  2. Melakukan pengujian keamanan menggunakan tools yang diakui industri
  3. Memahami konsep hardening sistem dan best practices keamanan
  4. Menganalisis dan meningkatkan postur keamanan sistem berdasarkan hasil audit

1.4 Manfaat

  1. Mahasiswa memahami konsep jaringan komputer dan konfigurasi web server dalam konteks praktikum arsitektur sistem
  2. Mahasiswa mampu menerapkan knowledge tentang Nginx dan SSL/TLS dalam konfigurasi web server yang aman
  3. Mahasiswa dapat mengembangkan kemampuan security auditing dan penetration testing dalam konteks praktikum keamanan sistem




BAB II
TINJAUAN PUSTAKA

 

2.1 Jaringan Komputer Dasar

    2.1.1 IP Address dan Port

      IP Address adalah identifikasi unik untuk setiap device dalam jaringan. IPv4 menggunakan format xxx.xxx.xxx.xxx (0-255 untuk setiap oktet). Port adalah nomor logis (0-65535) yang mengidentifikasi service spesifik pada sebuah host.

    2.1.2 Protokol Jaringan

    1. TCP/IP - protokol dasar internet yang guarantee delivery
    2. HTTP - protokol untuk web (port 80)
    3. HTTPS - HTTP dengan enkripsi SSL/TLS (port 443)
    4. SSH - Secure Shell untuk akses remote (port 22)

2.2 Web Server

    2.2.1 Konsep Web Server

      Web server adalah software yang menerima request HTTP dari client (browser), memproses request tersebut, dan mengirimkan response kembali ke client. Web server modern seperti Nginx dirancang untuk high performance dan dapat menangani ribuan concurrent connection.

    2.2.2 Nginx

      Nginx adalah web server open-source yang terkenal dengan performa tinggi, low memory footprint, dan konfigurasi yang fleksibel. Fitur utama Nginx:

      • Reverse proxy - dapat mendistribusikan traffic ke multiple backend servers
      • Load balancing - dapat mem-balance beban traffic
      • Virtual hosting - dapat host multiple websites dalam satu server

 

2.3 Keamanan Sistem

    2.3.1 Vulnerability dan Hardening

    Vulnerability adalah kelemahan dalam sistem yang dapat diexploit oleh attacker. Hardening adalah proses mengurangi vulnerability dan meningkatkan security posture sistem.

    2.3.2 Best Practices Keamanan

    • Nonaktifkan akses root login - gunakan sudo dengan user regular
    • SSH Key Authentication - lebih aman dibanding password
    • Firewall Rules - hanya buka port yang diperlukan
    • Regular Updates - selalu update kernel dan packages
    • Audit Logging - enable dan monitor system logs




BAB III
PERANCANGAN SISTEM

3.1 Arsitektur Sistem

    Arsitektur sistem praktikum ini menggunakan model three-tier:

    Client (Workstation/Browser) → Internet → VPS (Server) → Web Server (Nginx) → Aplikasi

3.2 Topologi Jaringan

  • VPS berbasis Ubuntu Server diakses melalui public IP
  • Port yang digunakan: 22 (SSH), 80 (HTTP), 443 (HTTPS), 5432 (PostgreSQL), 3000 (nodejs)
    Default Port:
    Port Protocol / Service Fungsi
    20 FTP Data Transfer data FTP
    21 FTP Control Kontrol koneksi FTP
    22 SSH Akses remote server secara aman menggunakan Secure Shell
    23 Telnet Akses remote tanpa enkripsi
    25 SMTP Pengiriman email
    53 DNS Resolusi nama domain menjadi IP address
    67 DHCP Server Pemberian IP otomatis oleh server DHCP
    68 DHCP Client Penerimaan IP otomatis oleh client
    80 HTTP Akses website tanpa enkripsi
    110 POP3 Mengambil email dari mail server
    123 NTP Sinkronisasi waktu jaringan
    143 IMAP Akses email langsung di server
    161 SNMP Monitoring perangkat jaringan
    443 HTTPS Akses website dengan enkripsi SSL/TLS
    3306 MySQL Koneksi database MySQL/MariaDB
    5432 PostgreSQL Koneksi database PostgreSQL
    6379 Redis In-memory database dan cache server
    8080 HTTP Alternate Alternatif port web server atau aplikasi backend
    27017 MongoDB Koneksi database MongoDB
    Table 3.2.1 Default Port dan Fungsinya
  • Firewall menerapkan rules yang ketat

 

BAB IV
IMPLEMENTASI

4.1 Setup Web Server (Nginx)

  1. Instalasi Nginx

    • sudo apt update

    • sudo apt install nginx

    • sudo systemctl start nginx

      Gambar 4.1.1 Start Nginx

    • Menampilkan hasil status service Nginx menggunakan perintah systemctl status nginx. Informasi tersebut digunakan untuk memastikan bahwa web server berhasil berjalan dengan normal, aktif saat proses booting sistem, serta memiliki proses utama (PID), penggunaan memory, dan worker process yang berfungsi dengan baik pada server Linux.

      Informasi Fungsi
      nginx.service Service web server Nginx (dipakai sebagai web server + reverse proxy). Semua request ke domain diteruskan ke Node.js di port 3000
      loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Konfigurasi service ditemukan di systemd
      enabled - otomatis jalan saat server boot

      Active: active (running) since Thu 2026-05-07 04:46:58 WIB; Nginx sedang berjalan (running)
      Main PID: 5399 (nginx) PID utama Nginx = 5399
      Tasks: 2 Memory: 3.4M CPU: 89ms Ada 2 proses aktif
      • master process
      • worker process
      RAM yang dipakai: 3.4 MB
      CPU total pemakaian sejak jalan: 89ms
      Table 4.1.1 Nginx Status
    • sudo systemctl enable nginx - mengatur Nginx agar otomatis jalan saat server boot (restart).

      Gambar 4.1.2 Enable Nginx
  2. Konfigurasi Nginx

    • Menjalankan API dengan PM2
      pm2 start dist/main.js --name jcas
      PM2 digunakan untuk menjalankan aplikasi Node.js secara background (daemon), sehingga API tetap berjalan stabil meskipun terminal ditutup, serta mendukung fitur restart otomatis ketika terjadi crash.
      Gambar 4.1.3 pm2 start
    • nano /etc/nginx/nginx.conf
      File konfigurasi utama terletak di /etc/nginx/nginx.conf. Konfigurasi mencakup:
      Gambar 4.1.4 Nginx Config

      beberapa parameter penting pada file konfigurasi Nginx (nginx.conf) beserta fungsi dan pengaruhnya terhadap performa, logging, dan keamanan web server.

      Bagian Konfigurasi Fungsi
      user www-data User yang menjalankan Nginx
      worker_processes auto Menyesuaikan jumlah CPU core
      pid /run/nginx.pid Lokasi process ID utama
      worker_connections 768 Maks koneksi per worker
      sendfile on Optimasi pengiriman file
      tcp_nopush on Optimasi transfer data besar
      mime.types include Mapping tipe file (html, json, js, dll)
      default_type application/octet-stream Default jika tipe file tidak dikenal
      ssl_protocols TLSv1 - TLSv1.3 Protokol SSL yang diizinkan
      access_log /var/log/nginx/access.log Log semua request user
      error_log /var/log/nginx/error.log Log error server
      gzip on Kompres response HTTP
      conf include conf.d/*.conf Konfigurasi tambahan
      sites include sites-enabled/*

      Virtual host (domain) aktif

       

      Table 3.2.2 Nginx Config
    • nano /etc/nginx/sites-enabled/api - membuat konfigurasi
      Gambar 4.1.5 api sites-enabled
      tambahkan:
      Gambar 4.1.6 api site-enabled config

      konfigurasi virtual host Nginx yang digunakan sebagai reverse proxy untuk meneruskan request HTTPS dari domain api.jagocashier.space ke aplikasi backend Node.js/NestJS yang berjalan pada port 3000, termasuk konfigurasi SSL/TLS dan dukungan WebSocket.

      Bagian Konfigurasi Fungsi
      server_name api.jagocashier.space Domain API
      listen 443 ssl HTTPS port
      proxy_pass http://127.0.0.1:3000 Forward ke Node.js/NestJS
      proxy_http_version 1.1 Support WebSocket & keep-alive
      proxy_set_header Host $host Kirim domain asli ke backend
      proxy_set_header X-Real-IP $remote_addr Kirim IP asli user
      Upgrade / Connection upgrade Support WebSocket
      ssl_certificate Let’s Encrypt SSL certificate HTTPS
      ssl_certificate_key Let’s Encrypt Private key SSL
      include ssl config Certbot config Hardening SSL
      ssl_dhparam DH parameters Security tambahan
      Table 3.2.3 Site enabled config
      • Virtual host configuration untuk multiple websites

        Gambar 4.1.7 Virtual Host Config
      • Root directory configuration untuk public content

        Gambar 4.1.8 Root Directory Config
      • SSL/TLS configuration untuk HTTPS menggunakan certbot
        sudo certbot --nginx -d api.jagocashier.space

        Gambar 4.1.9 ssl/tls configuration
    • sudo ufw allow 80
      sudo ufw allow 22
      sudo ufw allow 443
      sudo ufw deny 3000

      Gambar 4.1.10 ufw config
      Gambar 4.1.11 ufw status
    • Menambahkan DNS Record pada penyedia layanan domain A Record (DNS): mengarahkan domain ke IP VPS 103.93.160.199. Subdomain api dan root domain @ sama-sama diarahkan ke server yang sama dengan TTL 300 detik.

      Gambar 4.1.12 dns record

    • Akses api menggunakan curl -X POST "https://api.jagocashier.space/api/v1/auth/login"

      curl -X POST "https://api.jagocashier.space/api/v1/auth/login" \ -H "Content-Type: application/json" \ -d '{ "password": "password123", "username": "superadmin", "deviceId": "16337" }'

      Gambar 4.1.13 curl api
  3. Vulnerbility dan Hardening

    tools keamanan dan monitoring yang digunakan dalam proses hardening serta pengujian keamanan server Linux, beserta fungsi utama dan hasil analisis yang diperoleh dari masing-masing tools.

    Tool Fungsi Output / Hasil Analisis
    UFW Firewall untuk mengontrol akses trafik masuk dan keluar pada server. Menampilkan rules port yang diizinkan (allow) dan ditolak (deny), sehingga hanya service tertentu yang dapat diakses.
    Nmap Tools untuk melakukan port scanning dan identifikasi service yang terbuka pada server. Menampilkan daftar port terbuka, service yang berjalan, serta potensi attack surface pada sistem.
    Lynis Security auditing tool untuk mengevaluasi tingkat hardening sistem Linux. Menampilkan hardening index, warning, dan rekomendasi perbaikan keamanan sistem.
    ClamAV Malware scanner untuk mendeteksi file berbahaya pada sistem Linux. Menampilkan hasil deteksi file terinfeksi atau file yang dicurigai sebagai malware.
    RKHunter Rootkit detection untuk mengecek integritas sistem dan mendeteksi backdoor. Menampilkan indikasi rootkit, perubahan file sistem, serta suspicious activity.
    Fail2Ban Intrusion prevention system berbasis log untuk mencegah brute force attack. Menampilkan IP yang diblokir secara otomatis serta status proteksi service (misalnya SSH).
    Table 3.2.4 Hardening Tools

    Tabel berikut menampilkan perbandingan hasil pengujian keamanan sistem sebelum dan sesudah proses hardening dilakukan menggunakan firewall, security audit, serta tools keamanan tambahan pada server Linux.

    Nmap Scan
    Sebelum Hardening

    Banyak port terbuka terdeteksi oleh Nmap karena firewall(ufw) belum dijalankan dan port private masih dapat diakses dari luar.

    Gambar 4.1.14 nmap scan disable ufw
    Sesudah Hardening

    Port yang tidak diperlukan berhasil ditutup dan service private tidak lagi dapat diakses dari luar jaringan.

    Gambar 4.1.15 nmap scan enable ufw
    Lynis Audit
    Sebelum Hardening

    Hardening index masih rendah dan ditemukan beberapa warning terkait keamanan sistem. Menggunakan flag pentest

    Gambar 4.1.16 Lynis audit
    Gambar 4.1.17 Lynis audit details
    Sesudah Hardening

    Berdasarkan hasil audit Lynis dan systemd-analyze security, beberapa service masih berstatus UNSAFE. Status tersebut tidak selalu menunjukkan adanya kerentanan aktif, melainkan menandakan bahwa service belum menggunakan fitur sandboxing dan hardening systemd secara optimal. Hardening dilakukan secara bertahap agar stabilitas service pada lingkungan production server tetap terjaga. Selain itu, dilakukan juga implementasi keamanan tambahan menggunakan beberapa tools berikut:
    • ClamAV (clamscan/freshclam) digunakan sebagai malware scanner untuk mendeteksi file berbahaya pada sistem. Database signature diperbarui menggunakan: sudo freshclam dan proses scanning dilakukan menggunakan: clamscan -r /
    • RKHunter (Rootkit Hunter) digunakan untuk mendeteksi indikasi rootkit, backdoor, dan perubahan mencurigakan pada sistem Linux. Pemeriksaan dilakukan menggunakan: sudo rkhunter --check
    • Fail2Ban digunakan untuk memonitor log autentikasi dan memblokir IP yang melakukan percobaan login berulang (brute force), terutama pada service SSH. Status proteksi dapat diperiksa menggunakan: sudo fail2ban-client status sshd


    Gambar 4.1.18 Lynis audit unsafe systemd
    Gambar 4.1.19 Lynis audit add malware scanner
    Table 3.2.5 sebelum dan sesudah hardening

 

 

BAB IV
KESIMPULAN DAN SARAN

4.1 Kesimpulan Umum

  1. Perancangan sistem telah berhasil dilakukan dengan integrasi komprehensif antara VPS sebagai server utama dengan berbagai komponen sistem (jaringan, web server, keamanan).
  2. Implementasi konfigurasi jaringan menunjukkan pentingnya konfigurasi IP yang tepat, routing yang efisien, dan connectivity testing yang komprehensif.
  3. Setup Nginx sebagai web server modern telah menunjukkan capabilities dalam hal reverse proxy, load balancing, dan virtual hosting.
  4. Implementasi firewall dengan UFW menunjukkan pentingnya security policies yang ketat dan whitelist approach untuk incoming traffic.
  5. Konfigurasi SSL/TLS dengan Let's Encrypt menunjukkan komitmen terhadap enkripsi data dalam transit dan compliance dengan HTTPS standard.

4.2 Pencapaian Tujuan Praktikum

  1. Pemahaman konsep jaringan komputer dan web server tercapai - Mahasiswa berhasil memahami IP addressing, protokol jaringan, dan arsitektur web server modern.
  2. Konfigurasi web server Nginx tercapai - Implementasi reverse proxy, load balancing, dan virtual hosting menunjukkan penguasaan praktis yang mendalam.
  3. Security hardening tercapai - Firewall configuration dan SSL/TLS implementation menunjukkan pemahaman tentang security best practices.

4.3 Kesimpulan Teknis

  1. Untuk pengembangan lebih lanjut, disarankan untuk mengimplementasikan monitoring dan logging solution seperti ELK Stack atau Prometheus untuk real-time visibility terhadap sistem infrastructure.
  2. Penambahan latihan practical tentang DDoS mitigation dan rate limiting di Nginx akan meningkatkan pemahaman tentang advanced security features dan attack prevention.
  3. Integrasi dengan container orchestration platform seperti Docker dan Kubernetes akan memberikan konteks yang lebih modern tentang deployment architecture dan infrastructure-as-code.


DAFTAR PUSTAKA

Ubuntu Documentation Team. (n.d.). Ubuntu Server Documentation.

NGINX Inc. (n.d.). NGINX Documentation.

Electronic Frontier Foundation. (n.d.). Certbot Documentation.

Gordon Lyon. (n.d.). Nmap Reference Guide.

CISOfy. (n.d.). Lynis Security Auditing Tool Documentation.

Cisco Talos. (n.d.). ClamAV Documentation.

Fail2Ban Project. (n.d.). Fail2Ban Documentation.

PM2 Team. (n.d.). PM2 Quick Start Documentation.

Tidak ada komentar:

Posting Komentar