Cara Melakukan Pemfilteran Paket, Terjemahan Alamat Jaringan, dan Mengatur Parameter Runtime Kernel - Bagian 2


Seperti yang dijanjikan dalam Bagian 1 (“Menyiapkan Perutean Jaringan Statis”), dalam artikel ini (Bagian 2 dari seri RHCE) kita akan mulai dengan memperkenalkan prinsip pemfilteran paket dan terjemahan alamat jaringan (NAT) di Red Hat Enterprise Linux 7, sebelum mendalami pengaturan parameter kernel waktu proses untuk mengubah perilaku kernel yang berjalan jika kondisi tertentu berubah atau diperlukan.

Pemfilteran Paket Jaringan di RHEL 7

Ketika kita berbicara tentang pemfilteran paket, kita mengacu pada proses yang dilakukan oleh firewall yang membaca header setiap paket data yang mencoba melewatinya. Kemudian, ia memfilter paket dengan mengambil tindakan yang diperlukan berdasarkan aturan yang telah ditentukan sebelumnya oleh administrator sistem.

Seperti yang mungkin Anda ketahui, dimulai dengan RHEL 7, layanan default yang mengelola aturan firewall adalah firewalld. Seperti iptables, ia berkomunikasi dengan modul netfilter di kernel Linux untuk memeriksa dan memanipulasi paket jaringan. Tidak seperti iptables, pembaruan dapat langsung berlaku tanpa mengganggu koneksi aktif – Anda bahkan tidak perlu memulai ulang layanan.

Keuntungan lain dari firewalld adalah memungkinkan kita menentukan aturan berdasarkan nama layanan yang telah dikonfigurasi sebelumnya (lebih lanjut tentang itu sebentar lagi).

Di Bagian 1, kami menggunakan skenario berikut:

Namun, Anda pasti ingat bahwa kami menonaktifkan firewall di router #2 untuk menyederhanakan contoh karena kami belum membahas pemfilteran paket. Sekarang mari kita lihat bagaimana kita dapat mengaktifkan paket masuk yang ditujukan untuk layanan atau port tertentu di tujuan.

Pertama, mari kita tambahkan aturan permanen untuk mengizinkan lalu lintas masuk di enp0s3 (192.168.0.19) ke enp0s8 (10.0.0.18):

firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -i enp0s3 -o enp0s8 -j ACCEPT

Perintah di atas akan menyimpan aturan ke /etc/firewalld/direct.xml:

cat /etc/firewalld/direct.xml

Kemudian aktifkan aturan agar aturan tersebut segera berlaku:

firewall-cmd --direct --add-rule ipv4 filter FORWARD 0 -i enp0s3 -o enp0s8 -j ACCEPT

Sekarang Anda dapat melakukan telnet ke server web dari kotak RHEL 7 dan menjalankan tcpdump lagi untuk memantau lalu lintas TCP antara kedua mesin, kali ini dengan firewall di router #2 diaktifkan.

telnet 10.0.0.20 80
tcpdump -qnnvvv -i enp0s3 host 10.0.0.20

Bagaimana jika Anda hanya ingin mengizinkan koneksi masuk ke server web (port 80) dari 192.168.0.18 dan memblokir koneksi dari sumber lain di 192.168.0.0/ jaringan 24?

Di firewall server web, tambahkan aturan berikut:

firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.18/24" service name="http" accept'
firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.18/24" service name="http" accept' --permanent
firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="http" drop'
firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="http" drop' --permanent

Sekarang Anda dapat membuat permintaan HTTP ke server web, dari 192.168.0.18 dan dari beberapa mesin lain di 192.168.0.0/24. Dalam kasus pertama koneksi akan berhasil diselesaikan, sedangkan pada kasus kedua koneksi akan habis waktu.

Untuk melakukannya, salah satu perintah berikut akan berhasil:

telnet 10.0.0.20 80
wget 10.0.0.20

Saya sangat menyarankan Anda untuk memeriksa dokumentasi Firewalld Rich Language di Fedora Project Wiki untuk rincian lebih lanjut tentang aturan kaya.

Terjemahan Alamat Jaringan di RHEL 7

Penerjemahan Alamat Jaringan (NAT) adalah proses di mana sekelompok komputer (bisa juga hanya salah satunya) di jaringan pribadi diberi alamat IP publik yang unik. Hasilnya, mereka masih diidentifikasi secara unik berdasarkan alamat IP pribadi mereka di dalam jaringan, namun dari luar semuanya “tampak” sama.