Firewalls

By Muhammad Aditiya Rakhman


Firewall digunakan untuk mengontrol akses masuk dan keluar ke sistem dan jaringan lokal Anda, dan merupakan fasilitas keamanan yang penting dalam jaringan modern.


What Is a Firewall?

Firewall adalah sistem keamanan jaringan yang memantau dan mengontrol semua lalu lintas jaringan. Sistem ini menerapkan aturan pada koneksi dan paket jaringan yang masuk dan keluar serta membangun penghalang yang fleksibel (yaitu, firewall).

Packet Filtering

Firewall membuat seperangkat aturan yang digunakan untuk setiap paket:

  • Diterima atau ditolak berdasarkan konten, alamat, dll.

  • Memanipulasi paket data sebelum atau setelah melewati firewall.

  • Dialihkan ke alamat lain

  • Diperiksa untuk alasan keamanan, dll.

Firewall Interfaces and Tools

Mengkonfigurasi firewall sistem Anda dapat dilakukan dengan:

  • Menggunakan alat bantu yang relatif sederhana dari baris perintah, dikombinasikan dengan pengeditan berbagai file konfigurasi di pohon subdirektori /etc: iptables, firewall-cmd, ufw, dll.

  • Menggunakan antarmuka grafis yang tangguh: system-config-firewall, firewall-config, gufw, yast, dll.

Berikut ini, kita akan berkonsentrasi pada penggunaan paket firewalld modern, yang mencakup firewall-cmd dan firewall-config. Untuk distribusi yang tidak memiliki paket ini secara default, paket ini dapat diinstal dari sumbernya dengan mudah, seperti yang akan kita lakukan jika diperlukan dalam latihan.


firewalld and firewall-cmd

firewalld adalah Manajer Firewall Dinamis. Ia menggunakan zona jaringan/firewall yang memiliki tingkat kepercayaan yang ditentukan untuk antarmuka atau koneksi jaringan. Ini mendukung protokol IPv4 dan IPv6.

File konfigurasi disimpan di /etc/firewalld dan /usr/lib/firewalld. Alat bantu baris perintah sebenarnya adalah firewall-cmd yang akan kita bahas.


firewalld Service Status

firewalld adalah layanan yang harus dijalankan untuk menggunakan dan mengkonfigurasi firewall, dan diaktifkan/dinonaktifkan, atau dimulai atau dihentikan dengan cara biasa:

$ sudo systemctl [enable/disable] firewalld
$ sudo systemctl [start/stop] firewalld

Anda dapat menampilkan status saat ini dengan salah satu cara berikut ini:

$ sudo systemctl status firewalld
firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled)
   Active: active (running) since Tue 2015-04-28 12:00:59 CDT; 5min ago
 Main PID: 777 (firewalld)
...

$ sudo firewall-cmd --state
running

Perhatikan bahwa jika Anda memiliki lebih dari satu antarmuka jaringan saat menggunakan IPv4, Anda harus mengaktifkan ip fordwading. Untuk melakukannya, Anda harus menambahkan baris berikut ini ke /etc/sysctl.conf:

net.ipv4.ip_forward=1

and then reboot or type:

$ sudo sysctl -p


Zones

drop

Semua paket yang masuk akan dibuang tanpa balasan. Hanya koneksi keluar yang diizinkan.

block

Semua koneksi jaringan yang masuk akan ditolak. Satu-satunya koneksi yang diizinkan adalah koneksi dari dalam sistem.

public

Jangan mempercayai semua komputer di jaringan; hanya koneksi masuk tertentu yang dipilih secara sadar yang diizinkan.

external

Digunakan saat penyamaran sedang digunakan, seperti di router. Tingkat kepercayaan sama seperti public.

dmz (Demilitarized Zone)

Digunakan ketika akses ke beberapa (tetapi tidak semua) layanan akan diizinkan untuk umum. Hanya koneksi masuk tertentu yang diizinkan.

work

Percaya (tetapi tidak sepenuhnya) node yang terhubung tidak berbahaya. Hanya koneksi masuk tertentu yang diizinkan.

home

Percaya sebagian besar node jaringan lain, namun tetap memilih koneksi masuk mana yang diizinkan.

internal

Mirip dengan zona work.

trusted

Semua koneksi jaringan diperbolehkan.

Pengendalian firewalld dilakukan melalui program firewall-cmd. Informasi lebih detail dapat diperoleh dengan:

$ man firewalld-cmd


Source Management

Zona apa pun dapat diikat tidak hanya ke antarmuka jaringan, tetapi juga ke alamat jaringan tertentu.

Untuk menetapkan sumber ke zona (secara permanen):

$ sudo firewall-cmd --permanent --zone=trusted --add-source=192.168.100.22/24
success

Perhatikan bahwa Anda dapat menghapus sumber yang telah ditetapkan sebelumnya dari zona dengan menggunakan opsi --remove-source, atau mengubah zona dengan menggunakan --change-source.


Service Management

Untuk melihat semua layanan yang tersedia:

$ sudo firewall-cmd --get-services
RH-Satellite-6 amanda-client bacula bacula-client dhcp dhcpv6 dhcpv6-client dns ftp high-availability http https imaps ipp ipp-client ipsec kerberos kpasswd ldap ldaps libvirt libvirt-tls mdns mountd ms-wbt mysql nfs ntp openvpn pmcd pmproxy pmwebapi pmwebapis pop3s postgresql proxy-dhcp radius rpc-bind samba samba-client smtp ssh telnet tftp tftp-client transmission-client vnc-server wbem-https

Untuk menambah sebuah layanan ke zona:

$ sudo firewall-cmd --permanent --zone=home --add-service=dhcp
success
$ sudo firewall-cmd --reload


Port Management

Manajemen pelabuhan sangat mirip dengan manajemen layanan:

$ sudo firewall-cmd --zone=home --add-port=21/tcp
success
$ sudo firewall-cmd --zone=home --list-ports
21/tcp

di mana dengan melihat /etc/services kita dapat memastikan bahwa port 21 berhubungan dengan ftp:

$ grep " 21/tcp" /etc/services
ftp              21/tcp


Lab 16.1: Service Managemenet

Question

1. Install nginx and configure it to listen on port 8080

2. Replace index.html to Hello adinusa, I am username

3. Change document root to /opt/lab16

4. Configure firewalld to allow port 8080 in public zone when accessed via web server.

Answer

$ sudo apt install nginx -y
$ sudo -i
$ vim /etc/nginx/sites-available/default
Edit port dan Document root sesuai dengan yang diminta
$ systemctl restart nginx
$ systemctl status nginx

$ mkdir /opt/lab16
$ vim /opt/lab16/index.html
Tambahkan "Hello adinusa, I am username"

# firewall-cmd --get-default-zone
# firewall-cmd --add-port=8080/tcp --zone=public --permanent
# firewall-cmd --list-all
# firewall-cmd --add-service=http --zone=public --permanent
# firewall-cmd --set-default-zone=public
Disini saya menambahkan interface, karena zone publik belum ada interfacenya
# firewall-cmd --add-interface=docker0 --zone=public --permanent
# firewall-cmd --reload

Last updated