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
Was this helpful?