Ubuntu : UFW (Real Use Case): Difference between revisions
No edit summary |
|||
| Line 33: | Line 33: | ||
|} | |} | ||
== | == 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 50: | Line 50: | ||
</syntaxhighlight><blockquote> | </syntaxhighlight><blockquote> | ||
Ini lebih aman dibanding <code>sudo ufw allow 22/tcp</code> yang membuka SSH ke seluruh dunia. | Ini lebih aman dibanding <code>sudo ufw allow 22/tcp</code> yang membuka SSH ke seluruh dunia. | ||
</blockquote> | </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> | |||
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
- Hanya layanan yang perlu diakses publik yang terbuka (HTTP/HTTPS).
- SSH hanya boleh diakses oleh admin (IP tertentu).
- Database dan FTP hanya boleh diakses dari jaringan internal.
- 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/tcpyang 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