Belajar iptables sedikit
Sebenarnya ini dari belajar cara pakai `airbase-ng` untuk MITM, tapi sudah ada feeling kalau pasti akan belajar `iptables`. Jadi misalkan ada interface `eth0` (terhubung ke internet) dan `at0`. Interface `at0` diatur menjadi access point wifi. Diberi IP address dan menjadi gateway. ``` ip addr add at0 10.0.0.1/24 ip route add 10.0.0.0/24 via 10.0.0.1 ``` Diatur juga server DHCP dengan `udhcpd` dengan lease block yg sesuai dan listen di interface `at0` untuk memfasilitasi client AP. Sebelumnya, sudah ada default route via gateway-nya `eth0`. Jadi, sekarang kalau ada paket ke IP address di internet, pasti akan dirouting ke `eth0`. Namun, ini saja tidak cukup, karena pasti gateway `eth0` akan men-drop paketnya kalau source IP nya tidak diketahui. Alhasil, internet tidak bisa diakses oleh client yang terhubung ke `at0`. Untuk solve masalah ini, perlu dilakukan NAT (dengan `iptables`). ``` iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE ``` 1. `-t nat` untuk select tabel `nat`, 2. `-A POSTROUTING` untuk append rule-nya ke chain `POSTROUTING`, 3. `-o eth0` artinya rule hanya berlaku untuk paket-paket yang keluar dari `eth0` 4. `-j MASQUERADE` artinya action untuk paket-paket yg sesuai kriteria tadi adalah `MASQUERADE` atau diganti source IP-nya dengan source IP dari `eth0` (mungkin *masquerade* artinya di-masking atau disamarkan?) Dengan begini, semua paket yang sebelumnya punya source IP dari jaringan lokal `10.0.0.0/24` dan destination IP ke internet, akan diforward sesuai routing table ke gateway via interface `eth0` dan header source IP-nya akan ditranslate ke source IP `eth0`. Ini namanya SNAT atau source NAT. Kemudian, saya jadi bertanya-tanya, bagaimana paket dari internet dirouting balik ke suatu client dari `at0`? Ternyata, `netfilter` atau `iptables` (saya juga masih bingung) punya komponen yang namanya `conntrack`, jadi ada tabel tracking juga untuk translasi paket-paket dari internet (keren juga, bisa baca [di sini](https://superuser.com/a/255708)). Bacaan [ini](https://www.karlrupp.net/en/computer/nat_tutorial) juga sangat membantu untuk belajar NAT dengan `iptables` meski saya juga belum selesai baca.Created: 2023-12-30 15:03:47, Updated: 2023-12-30 15:03:47, ID: 828dbbdc-625a-4dc6-a182-bcc05fcd3bdd