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
- Bagaimana melakukan konfigurasi jaringan dan web server (Nginx) dengan optimal dan aman?
- Bagaimana melakukan pengujian keamanan secara aman, terkontrol, dan sesuai dengan standar industri?
- Bagaimana mengimplementasikan hardening sistem dan best practices keamanan pada infrastruktur web server?
1.3 Tujuan
- Mampu mengkonfigurasi jaringan dan web server (Nginx) dengan optimal
- Melakukan pengujian keamanan menggunakan tools yang diakui industri
- Memahami konsep hardening sistem dan best practices keamanan
- Menganalisis dan meningkatkan postur keamanan sistem berdasarkan hasil audit
1.4 Manfaat
- Mahasiswa memahami konsep jaringan komputer dan konfigurasi web server dalam konteks praktikum arsitektur sistem
- Mahasiswa mampu menerapkan knowledge tentang Nginx dan SSL/TLS dalam konfigurasi web server yang aman
- Mahasiswa dapat mengembangkan kemampuan security auditing dan penetration testing dalam konteks praktikum keamanan sistem
BAB II
TINJAUAN PUSTAKA
2.1 Jaringan Komputer Dasar
- TCP/IP - protokol dasar internet yang guarantee delivery
- HTTP - protokol untuk web (port 80)
- HTTPS - HTTP dengan enkripsi SSL/TLS (port 443)
- SSH - Secure Shell untuk akses remote (port 22)
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
2.2 Web Server
- 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.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:
2.3 Keamanan Sistem
- 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
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
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:
Table 3.2.1 Default Port dan FungsinyaPort Protocol / Service Fungsi 20FTP Data Transfer data FTP 21FTP Control Kontrol koneksi FTP 22SSH Akses remote server secara aman menggunakan Secure Shell 23Telnet Akses remote tanpa enkripsi 25SMTP Pengiriman email 53DNS Resolusi nama domain menjadi IP address 67DHCP Server Pemberian IP otomatis oleh server DHCP 68DHCP Client Penerimaan IP otomatis oleh client 80HTTP Akses website tanpa enkripsi 110POP3 Mengambil email dari mail server 123NTP Sinkronisasi waktu jaringan 143IMAP Akses email langsung di server 161SNMP Monitoring perangkat jaringan 443HTTPS Akses website dengan enkripsi SSL/TLS 3306MySQL Koneksi database MySQL/MariaDB 5432PostgreSQL Koneksi database PostgreSQL 6379Redis In-memory database dan cache server 8080HTTP Alternate Alternatif port web server atau aplikasi backend 27017MongoDB Koneksi database MongoDB - Firewall menerapkan rules yang ketat
BAB IV
IMPLEMENTASI
4.1 Setup Web Server (Nginx)
-
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
CPU total pemakaian sejak jalan: 89msTable 4.1.1 Nginx Status -
sudo systemctl enable nginx - mengatur Nginx agar otomatis jalan saat server boot (restart).
Gambar 4.1.2 Enable Nginx
-
-
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 Configbeberapa 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 konfigurasiGambar 4.1.5 api sites-enabled
tambahkan:Gambar 4.1.6 api site-enabled configkonfigurasi 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.spaceGambar 4.1.9 ssl/tls configuration
-
-
sudo ufw allow 80
sudo ufw allow 22
sudo ufw allow 443
sudo ufw deny 3000Gambar 4.1.10 ufw configGambar 4.1.11 ufw status -
Menambahkan DNS Record pada penyedia layanan domain A Record (DNS): mengarahkan domain ke IP VPS
103.93.160.199. Subdomainapidan 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
-
-
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 ToolsTabel 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 ufwSesudah Hardening
Port yang tidak diperlukan berhasil ditutup dan service private tidak lagi dapat diakses dari luar jaringan.
Gambar 4.1.15 nmap scan enable ufwLynis 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 detailsSesudah 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 freshclamdan 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.19 Lynis audit add malware scannerTable 3.2.5 sebelum dan sesudah hardening -
ClamAV (clamscan/freshclam) digunakan sebagai malware
scanner untuk mendeteksi file berbahaya pada sistem. Database
signature diperbarui menggunakan:
BAB IV
KESIMPULAN DAN SARAN
4.1 Kesimpulan Umum
- Perancangan sistem telah berhasil dilakukan dengan integrasi komprehensif antara VPS sebagai server utama dengan berbagai komponen sistem (jaringan, web server, keamanan).
-
Implementasi konfigurasi jaringan menunjukkan pentingnya konfigurasi IP yang tepat, routing yang efisien, dan connectivity testing yang komprehensif.
- Setup Nginx sebagai web server modern telah menunjukkan capabilities dalam hal reverse proxy, load balancing, dan virtual hosting.
- Implementasi firewall dengan UFW menunjukkan pentingnya security policies yang ketat dan whitelist approach untuk incoming traffic.
- Konfigurasi SSL/TLS dengan Let's Encrypt menunjukkan komitmen terhadap enkripsi data dalam transit dan compliance dengan HTTPS standard.
4.2 Pencapaian Tujuan Praktikum
- Pemahaman konsep jaringan komputer dan web server tercapai - Mahasiswa berhasil memahami IP addressing, protokol jaringan, dan arsitektur web server modern.
- Konfigurasi web server Nginx tercapai - Implementasi reverse proxy, load balancing, dan virtual hosting menunjukkan penguasaan praktis yang mendalam.
- Security hardening tercapai - Firewall configuration dan SSL/TLS implementation menunjukkan pemahaman tentang security best practices.
4.3 Kesimpulan Teknis
- Untuk pengembangan lebih lanjut, disarankan untuk mengimplementasikan monitoring dan logging solution seperti ELK Stack atau Prometheus untuk real-time visibility terhadap sistem infrastructure.
- Penambahan latihan practical tentang DDoS mitigation dan rate limiting di Nginx akan meningkatkan pemahaman tentang advanced security features dan attack prevention.
- Integrasi dengan container orchestration platform seperti Docker dan Kubernetes akan memberikan konteks yang lebih modern tentang deployment architecture dan infrastructure-as-code.

















Tidak ada komentar:
Posting Komentar