lcat
My personal /var/log
  • Home
  • Contact
  • HackMe!

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