Di utas saya yang lain, saya berbicara tentang beberapa hal menarik tentang kebijakan dan status iptables , sekarang saya ingin lebih memahami tentang cara kerja DHCP dan bagaimana iptables memahaminya.
ETH0 terhubung ke saklar utama saya yang menerima ip dinamis dari router saya untuk mendapatkan tidak hanya akses internet tetapi juga akses ke jaringan luar saya.
ETH1 adalah kartu internal yang terhubung ke sakelar internal tempat klien X menerima IPS mereka dari server ini
Jaringan ETH1 adalah 192.168.1.0/255.255.255.0 di mana ip server adalah 192.168.1.254.
Dari apa yang saya mengerti, dhcp adalah protokol bootp jadi bahkan jika Anda memiliki kebijakan firewall untuk MENGURANGI segalanya, jaringan Anda akan tetap menerima DHCP, yang dalam tes yang saya buat sepertinya benar.
Dari tcpdump:
root@test:~# tcpdump -i eth1 port 67 or 68
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), capture size 96 bytes
11:34:03.943928 IP 192.168.1.2.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 00:0c:29:29:52:8b (oui Unknown), length 303
11:34:03.957647 IP 192.168.1.254.bootps > 192.168.1.2.bootpc: BOOTP/DHCP, Reply, length 300
11:34:06.492153 IP 192.168.1.2.bootpc > 192.168.1.254.bootps: BOOTP/DHCP, Request from 00:0c:29:29:52:8b (oui Unknown), length 303
11:34:06.506593 IP 192.168.1.254.bootps > 192.168.1.2.bootpc: BOOTP/DHCP, Reply, length 300
Saya membuat aturan log sederhana untuk melihat apa yang iptables lakukan:
root@test:~# tail -f /var/log/syslog
Oct 15 11:30:58 test kernel: IN=eth1 OUT= MAC=ff:ff:ff:ff:ff:ff:00:0c:29:29:52:8b:08:00 SRC=192.168.1.2 DST=255.255.255.255 LEN=331 TOS=0x00 PREC=0x00 TTL=128 ID=9527 PROTO=UDP SPT=68 DPT=67 LEN=311
Oct 15 11:31:43 test kernel: IN=eth1 OUT= MAC=ff:ff:ff:ff:ff:ff:00:0c:29:29:52:8b:08:00 SRC=192.168.1.2 DST=255.255.255.255 LEN=331 TOS=0x00 PREC=0x00 TTL=128 ID=9529 PROTO=UDP SPT=68 DPT=67 LEN=311
Oct 15 11:33:32 test kernel: IN=eth1 OUT= MAC=ff:ff:ff:ff:ff:ff:00:0c:29:29:52:8b:08:00 SRC=192.168.1.2 DST=255.255.255.255 LEN=331 TOS=0x00 PREC=0x00 TTL=128 ID=9531 PROTO=UDP SPT=68 DPT=67 LEN=311
Oct 15 11:34:03 test kernel: IN=eth1 OUT= MAC=ff:ff:ff:ff:ff:ff:00:0c:29:29:52:8b:08:00 SRC=192.168.1.2 DST=255.255.255.255 LEN=331 TOS=0x00 PREC=0x00 TTL=128 ID=9533 PROTO=UDP SPT=68 DPT=67 LEN=311
Ini aturan iptables saya di momment:
# deny all traffic
$IPT -P INPUT DROP
$IPT -P FORWARD DROP
$IPT -P OUTPUT DROP
# Use stateful inspection feature to only allow incoming connections
# related to connections I have already established myself
$IPT -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
$IPT -A OUTPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# allow all traffic on lo interface
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT
Jadi, bahkan dengan KEBIJAKAN standar untuk menghapus semua hal, saya masih mendapatkan DHCP di jaringan saya sementara itu membutuhkan waktu lebih lama untuk memperbarui IP dan semacamnya.
Jika saya menambahkan aturan ikuti ke firewall saya:
$IPT -I OUTPUT -o $INTIF -p udp --dport 67:68 --sport 67:68 -j ACCEPT
Dibutuhkan BANYAK WAKTU KURANG untuk memperbarui klien dhcp.
Mempertimbangkan hal di atas:
- mengapa memang butuh waktu lebih lama untuk memperbaruinya bahkan jika tidak diblokir?
- apakah mungkin untuk DROP server dhcp sama sekali tanpa mematikannya?
- apakah mungkin untuk MENERIMA server dhcp di dalam iptables dengan BOOTP? bagaimana itu dilakukan?
Jika Anda tahu tautan bagus, saya tidak akan keberatan mengambil banyak :)
Are you monitoring the network interface in promiscuous mode
saya masih belajar ...