(Created page with "== Skenario Server == Sebagai contoh kita memiliki sebuah '''Ubuntu Server 22.04''' yang menjalankan layanan-layanan berikut: {| class="wikitable" !Layanan !Port !Protokol !Fungsi |- |SSH |22 |TCP |Akses administrasi jarak jauh |- |Web Server (HTTP) |80 |TCP |Menyajikan situs tidak terenkripsi |- |Web Server (HTTPS) |443 |TCP |Menyajikan situs terenkripsi |- |Database Server (MySQL/MariaDB) |3306 |TCP |Menyimpan data untuk web apps |- |FTP Server |21 |TCP |Transfer file...")
 
m (Protected "Ubuntu : UFW (Real Use Case)" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite)) [cascading])
 
(2 intermediate revisions by the same user not shown)
Line 33: Line 33:
|}
|}


== '''Tujuan Keamanan:''' ==
== Hal yang akan di lakukan ==


# Hanya layanan yang perlu diakses publik yang terbuka (HTTP/HTTPS).
# Hanya layanan yang perlu diakses publik yang terbuka (HTTP/HTTPS).
Line 44: Line 44:
sudo ufw default deny incoming
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw default allow outgoing
</syntaxhighlight><blockquote>Artinya: semua koneksi masuk diblokir kecuali ada aturan yang mengizinkan.</blockquote>
</syntaxhighlight><blockquote>Artinya: semua koneksi masuk diblokir kecuali ada aturan yang mengizinkan.</blockquote>Langkah 2: Izinkan SSH dari IP Address tertentu, misalkan dari komputer admin saja
 
Misalnya IP Address komputer admin: <code>192.168.1.10</code>  maka perintahnya sebagai berikut<syntaxhighlight lang="shell">
sudo ufw allow from 192.168.1.10 to any port 22 proto tcp
</syntaxhighlight><blockquote>
Ini lebih aman dibanding <code>sudo ufw allow 22/tcp</code> yang membuka SSH ke seluruh dunia.
</blockquote>Langkah 3: Izinkan web service publik<syntaxhighlight lang="shell">
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
 
</syntaxhighlight><blockquote>HTTP dan HTTPS boleh diakses siapa saja, karena memang untuk publik.</blockquote>Langkah 4: Batasi database hanya dari jaringan internal
 
Misalnya IP Network jaringannya adalah <code>192.168.1.0/24</code><syntaxhighlight lang="shell">
sudo ufw allow from 192.168.1.0/24 to any port 3306 proto tcp
 
</syntaxhighlight><blockquote>Dengan begitu, hanya Client di jaringan internal yang bisa mengakses database.</blockquote>Langkah 5: Izinkan FTP hanya dari jaringan lokal<syntaxhighlight lang="shell">
sudo ufw allow from 192.168.1.0/24 to any port 21 proto tcp
</syntaxhighlight><blockquote>Jika FTP hanya digunakan antar-server internal, langkah ini mencegah orang luar login via FTP.</blockquote>Langkah 6: Aktifkan UFW<syntaxhighlight lang="shell">
sudo ufw enable
 
</syntaxhighlight>Langkah 7: Cek status dengan detail<syntaxhighlight lang="shell">
sudo ufw status numbered
</syntaxhighlight>Output yang dihasilkan sebagai berikut<syntaxhighlight lang="shell" line="1">
Status: active
 
To                        Action      From
--                        ------      ----
22/tcp                    ALLOW      192.168.1.10
80/tcp                    ALLOW      Anywhere
443/tcp                    ALLOW      Anywhere
3306/tcp                  ALLOW      192.168.1.0/24
21/tcp                    ALLOW      192.168.1.0/24
</syntaxhighlight>Langkah 8: (Opsional) Logging dan Monitoring
 
Aktifkan logging untuk melihat aktivitas koneksi:<syntaxhighlight lang="shell">
sudo ufw logging on
</syntaxhighlight>Log bisa dilihat di:<syntaxhighlight lang="shell">
/var/log/ufw.log
</syntaxhighlight>

Latest revision as of 13:51, 31 October 2025

Skenario Server

Sebagai contoh kita memiliki sebuah Ubuntu Server 22.04 yang menjalankan layanan-layanan berikut:

Layanan Port Protokol Fungsi
SSH 22 TCP Akses administrasi jarak jauh
Web Server (HTTP) 80 TCP Menyajikan situs tidak terenkripsi
Web Server (HTTPS) 443 TCP Menyajikan situs terenkripsi
Database Server (MySQL/MariaDB) 3306 TCP Menyimpan data untuk web apps
FTP Server 21 TCP Transfer file (kadang diperlukan untuk web upload)

Hal yang akan di lakukan

  1. Hanya layanan yang perlu diakses publik yang terbuka (HTTP/HTTPS).
  2. SSH hanya boleh diakses oleh admin (IP tertentu).
  3. Database dan FTP hanya boleh diakses dari jaringan internal.
  4. Semua lalu lintas lain diblokir secara default.

Langkah-langkah Konfigurasi UFW:

Langkah 1: Atur kebijakan dasar (default policy)

sudo ufw default deny incoming
sudo ufw default allow outgoing

Artinya: semua koneksi masuk diblokir kecuali ada aturan yang mengizinkan.

Langkah 2: Izinkan SSH dari IP Address tertentu, misalkan dari komputer admin saja Misalnya IP Address komputer admin: 192.168.1.10 maka perintahnya sebagai berikut

sudo ufw allow from 192.168.1.10 to any port 22 proto tcp

Ini lebih aman dibanding sudo ufw allow 22/tcp yang membuka SSH ke seluruh dunia.

Langkah 3: Izinkan web service publik

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

HTTP dan HTTPS boleh diakses siapa saja, karena memang untuk publik.

Langkah 4: Batasi database hanya dari jaringan internal Misalnya IP Network jaringannya adalah 192.168.1.0/24

sudo ufw allow from 192.168.1.0/24 to any port 3306 proto tcp

Dengan begitu, hanya Client di jaringan internal yang bisa mengakses database.

Langkah 5: Izinkan FTP hanya dari jaringan lokal

sudo ufw allow from 192.168.1.0/24 to any port 21 proto tcp

Jika FTP hanya digunakan antar-server internal, langkah ini mencegah orang luar login via FTP.

Langkah 6: Aktifkan UFW

sudo ufw enable

Langkah 7: Cek status dengan detail

sudo ufw status numbered

Output yang dihasilkan sebagai berikut

Status: active

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       192.168.1.10
80/tcp                     ALLOW       Anywhere
443/tcp                    ALLOW       Anywhere
3306/tcp                   ALLOW       192.168.1.0/24
21/tcp                     ALLOW       192.168.1.0/24

Langkah 8: (Opsional) Logging dan Monitoring Aktifkan logging untuk melihat aktivitas koneksi:

sudo ufw logging on

Log bisa dilihat di:

/var/log/ufw.log