Bahas Firewalld di Redhat

Source Image : kindpng.com

Apa itu firewalld?

Firewalld merupakan utilitas firewall yang dimana firewalld ini "d" nya merupakan daemon atau prosesnya di belakang dan tidak bisa dilihat secara interaktif. Cara kerjanya ya sama seperti firewall pada umumnya kita kenal yaitu mengatur lalu - lintas atau traffic unutuk kemanan jaringan. Firewalld pengembangan dari iptables yang dimana iptables mengatur berdasarkan rules dan chain sedangkan firewalld mengatur berdasarkan zone dan services.


Firewalld zones

Zone adalah kumpulan aturan yang telah ditetapkan, koneksi jaringan apa yang harusnya diizinkan berdasarkan tingkat kepercayaan pada jaringan terhubung ke sistem. Kita dapat menetapkan nama interface jaringan dan sumber jaringan ke dalam zones.

    Firewalld yang disusun berdasarkan tingkat kepercayaan dan tidak terpercaya ke terpercaya :

  1. drop: Semua koneksi jaringan yang masuk didrop tanpa adanya notifikasi atau pesan error. Hanya koneksi jaringan yang keluar dari sistem yang diijinkan.
  2. block: Semua koneksi jaringan yang masuk direject dengan pesan icmp-host-prohibitied untuk IPv4 dan icmp6-adm-prohibited untuk IPv6. Hanya koneksi jaringan yangkeluar yang diijinkan.
  3. public: Jaringan publik, jaringan yang tidak bisa dipercaya. Kita dapat memilikih koneksi jaringan apa yang diijinkan.
  4. external: Jaringan eksternal, jika kita menggunakan linux sebagai gateway atau router. Dikonfigurasi sebagai NAT masquerading.Hanya trafik yang dipilih yang diijinkan.
  5. internal: Digunakan pada jaringan internal, saat Linux berfungsi sebagai gateway atau router. Sistem lain pada jaringan internal secara umum dapat dipercaya, hanya koneksi jaringan yang dipilih yang diizinkan.
  6. dmz: Demilitarized zone, jika kita ingin memberikan akses terhadap services ke jaringan publik. Hanya koneksi jaringan yang dipilih saja yang diizinkan.
  7. work: Zona yang diperuntukkan jaringan internal kantor. Semua sistem dalam jaringan kantor dapat dipercaya, hanya koneksi jaringan yang dipilih yang diizinkan.]
  8. home: Zona yang diperuntukkan jaringan internal rumah. Semua sistem dalam jaringan kantor dapat dipercaya, hanya koneksi jaringan yang dipilih yang diizinkan.
  9. trusted: Zona yang paling terbka, semua sistem pada jaringan dipercaya, dan semua koneksi jaringan diizinkan.

Konfigurasi Zones

  • Menampilkan semua zones

[root@server1 ~]# firewall-cmd --get-zones
block dmz drop external home internal libvirt nm-shared public trusted work
 
  • Membuat zona

[root@server1 ~]# firewall-cmd --permanent --new-zone=zonazakaria
success 


  • Menghapus zona

[root@server1 ~]# firewall-cmd --permanent --delete-zone=zonazakaria
success 

  • Melihat zona dan rulesnya
[root@server1 ~]# firewall-cmd --list-all-zones

  • Melihat zona yang dipilih

[root@server1 ~]# firewall-cmd --zone=public --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens192
  sources:
  services: cockpit dhcpv6-client dns http https ssh
  ports: 433/tcp 443/tcp
  protocols:
  forward: no
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:






  • Menampilkan zona yang aktif
[root@server1 ~]# firewall-cmd --get-active-zone
public
  interfaces: ens192


  • Mengubah interface pada zona
[root@server1 ~]# firewall-cmd --zone=public --change-interface=virbr0
success


Konfigurasi Service

  • Tampilkan service yang didukung oleh firewalld
[root@server1 ~]# firewall-cmd --get-services
RH-Satellite-6 RH-Satellite-6-capsule amanda-client amanda-k5-client amqp amqps apcupsd audit bacula bacula-client bb bgp bitcoin bitcoin-rpc bitcoin-testnet bitcoin-testnet-rpc bittorrent-lsd ceph ceph-mon cfengine cockpit collectd condor-collector ctdb dhcp dhcpv6 dhcpv6-client distcc dns dns-over-tls docker-registry docker-swarm dropbox-lansync elasticsearch etcd-client etcd-server finger foreman foreman-proxy freeipa-4 freeipa-ldap freeipa-ldaps freeipa-replication freeipa-trust ftp galera ganglia-client ganglia-master git grafana gre high-availability http https imap imaps ipp ipp-client ipsec irc ircs iscsi-target isns jenkins kadmin kdeconnect kerberos kibana klogin kpasswd kprop kshell kube-apiserver ldap ldaps libvirt libvirt-tls lightning-network llmnr managesieve matrix mdns memcache minidlna mongodb mosh mountd mqtt mqtt-tls ms-wbt mssql murmur mysql nbd nfs nfs3 nmea-0183 nrpe ntp nut openvpn ovirt-imageio ovirt-storageconsole ovirt-vmconsole plex pmcd pmproxy pmwebapi pmwebapis pop3 pop3s postgresql privoxy prometheus proxy-dhcp ptp pulseaudio puppetmaster quassel radius rdp redis redis-sentinel rpc-bind rquotad rsh rsyncd rtsp salt-master samba samba-client samba-dc sane sip sips slp smtp smtp-submission smtps snmp snmptrap spideroak-lansync spotify-sync squid ssdp ssh steam-streaming svdrp svn syncthing syncthing-gui synergy syslog syslog-tls telnet tentacle tftp tftp-client tile38 tinc tor-socks transmission-client upnp-client vdsm vnc-server wbem-http wbem-https wsman wsmans xdmcp xmpp-bosh xmpp-client xmpp-local xmpp-server zabbix-agent zabbix-server


  • Tampilkan service pada zona
[root@server1 ~]# firewall-cmd --zone=public --list-services
cockpit dhcpv6-client dns http https ssh


  • Menambahkan service pada zona
[root@server1 ~]# firewall-cmd --zone=public --add-service=http

Agar service tadi yang ditambahkan tadi tidak hilang setelah reboot tambahkan --permanent 

  • Reload diperlukan setelah kita konfigurasi
[root@server1 ~]# firewall-cmd --reload


  • Hapus service
[root@server1 ~]# firewall-cmd --zone=public --remove-service=http

Jika nama services yang ingin dimasukkan pada zone tidak tersedia secara default, kita dapat menggunakan nomor port dari service tersebut atau membuat nama service baru.

File deskripsi services berada di direktori /usr/lib/firewalld/services/ dengan ektensi file xml.

Membuka isi file ssh.xml

nano /usr/lib/firewalld/services/ssh.xml

<?xml version="1.0" encoding="utf-8"?>
<service>
<short>SSH</short>
<description>Secure Shell (SSH) is a protocol for logging into and executing commands on remote machines. It provides secure encrypted communications. If you plan on accessing your machine remotely via SSH over a firewalled interface, enable this option. You need the openssh-server package installed for this option to be useful.</description>
<port protocol="tcp" port="22"/>
</service>
Membuat deskripsi service baru dengan mengcopy file service.xml yang sudah ada
$ cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/example.xml

contoh isinya

<?xml version="1.0" encoding="utf-8"?>
<service>
<short>Example Service</short>
<description>This is just an example service. It probably shouldn't be used on a real system.</description>
<port protocol="tcp" port="7777"/>
<port protocol="udp" port="8888"/>
</service>

reload dan cek service nya

$ firewall-cmd --reload
$ firewall-cmd --get-services

Konfigurasi port


  • Menampilkan port di zona tertentu
[root@server1 ~]# firewall-cmd --zone=public --list-ports
433/tcp 443/tcp

  • Menambahkan port dari protokol tcp atau udp
[root@server1 ~]# firewall-cmd --zone=public --add-port=5000/tcp
[root@server1 ~]# firewall-cmd --zone=public --add-port=5000/udp


  • Menambahkan range port 
[root@server1 ~]# firewall-cmd --zone=public --add-port=4990-4999/udp

  • Menghapus port
[root@server1 ~]# firewall-cmd --zone=public --remove-port=5000/tcp


Port Forwarding

Port Forwarding adalah mengalihkan koneksi dari satu port ke port lainnya, misalnya client mengakses port 80 kemudian diteruskan ke port 12345.

[root@server1 ~]# firewall-cmd --zone=public --add-forward-port=port=80:proto=tcp:toport=12345

  • Forward ke serverlain

Aktifkan masquerade pada zone, lalu tambahkan rule forward.
[root@server1 ~]# firewall-cmd --zone=public --add-masquerade 
[root@server1 ~]# firewall-cmd --zone=public --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=10.10.10.2

  • Rich Rules
Rich Rules adalah rule firewall yang lebih luas tidak hanya memasukkan nama services saja tetapi juga IP address.

  • Menampilkan rich rules
[root@server1 ~]# firewall-cmd --list-rich-rules

  • Ijinkan ip yang diijinkan
[root@server1 ~]# firewall-cmd --zone=public --add-rich-rule ‘rule family=ipv4 source address=10.10.0.2 accept’
  • Tolak koneksi ip
[root@server1 ~]# firewall-cmd --zone=public --add-rich-rule ‘rule family=ipv4 source address=10.10.0.2 port port=22 protocol=tcp reject’
  • Forwarding
[root@server1 ~]# firewall-cmd --zone=public --add-rich-rule ‘rule family=ipv4 source address=10.10.10.3 forward-port port=80 protocol=tcp to-port=6532’

  • Izinkan koneksi TCP pada port 80 yang diteruskan ke IP 172.31.4.2 port 8080 (Masquerade harus aktif pada zone)
[root@server1 ~]# firewall-cmd --zone=public --add-rich-rule ‘rule family=ipv4 forward-port port=80 protocol=tcp to-port=8080 to-addr=172.31.4.2’
  • Izinkan network 192.168.0.0/24 mengakses https
[root@server1 ~]# firewall-cmd --zone=public --add-rich-rule ‘rule family=ipv4 source address=192.168.0.0/24 service name=https accept’
Tambahkan opsi - -permanent agar rule tetap ada setelah reload dan reboot sistem. Jika ingin menghapus rich rule, ganti opsi - -add-rich-rule menjadi - -remove-rich-rule.


IP Set

IP Set adalah sekumpulan IP address yang digunakan sebagai source rule firewall.

  • Menampilkan ip set
[root@server1 ~]# firewall-cmd --get-ipsets

  • Menambahkan IP baru dengan nama blacklist
[root@server1 ~]# firewall-cmd --permanent --new-ipset=blacklist --type=hash:ip
[root@server1 ~]# firewall-cmd --reload


  • Menampilkan IP address dari IP Set

[root@server1 ~]# firewall-cmd --ipset=blacklist --get-entries

  • IP Set yang sudah dibuat kemudian dimasukkan ke rule sebagai source
[root@server1 ~]# firewall-cmd --add-rich-rule='rule source ipset=blacklist drop'

  • Hapus Ip set
[root@server1 ~]# firewall-cmd --permanent --delete-ipset=blacklist
[root@server1 ~]# firewall-cmd --reload
  • IP Set juga dapat berisi 2 atau lebih network yang berbeda

[root@server1 ~]# firewall-cmd --permanent --new-ipset=netlist --type=hash:ip
[root@server1 ~]# firewall-cmd --reload
[root@server1 ~]# firewall-cmd --ipset=netlist --add-entry=10.10.1.2/24
[root@server1 ~]# firewall-cmd — ipset=netlist --add-entry=10.10.1.2/24















Komentar

Postingan populer dari blog ini

Konfigurasi DNS Server (Master Zone, Slave Zone, RPZ Zone) di RedHat