In questo post descriverò la procedura che ho utilizzato per creare una sottorete all’interno della mia rete domestica da utilizzare per eseguire analisi delle cominicazioni di rete ( per motivi di sviluppo o di sicurezza) o per creare Honeypot. L’idea era quella di creare una seconda rete collegata alla rete domestica e quindi a internet attraverso un host che fa da proxy ( nel senso etimologico del termine) che chiameremo Routing server e logga tutte le conversazioni verso l’esterno per poterle analizzare in seguito.
I requisiti sono quindi:
- La sottorete creata deve aver accesso diretto e trasparente ad internet
- Tutto il traffico che attraversa il gateway della sottorete deve essere loggato ( quindi sia quello che esce che quello che entra)
- Il traffico della sottorrete esistente ( incluso quello generato dal server di routing su eth1 che non è di forwarding) non deve essere loggato
- Il traffico strettamente interno alla sottorete è irrilevante
- L’interazione della sottorete con la rete interna preesistente deve essere minimo
La topologia di rete utilizzata è
Descrivendo la topologia dal punto di vista del Routing Server si ha la configurazione seguente:
- All’interfaccia Eth1 è collegato il router che ha l’accesso ad internet, ad esso è collegata anche la sottorete preesistente
- L’indirizzo del Routing server in Eth0 è 192.168.1.64
- L’indirizzo del Routing server in Eth0 è 192.168.0.5, dovrà fare da gateway per il router interno
- L’indirizzo (interno) del router connesso ad internet è 192.168.1.254
- L’indirizzo del router interno è 192.168.0.1
- All’interfaccia Eth0 è collegato un secondo router ( in particolare un router wireless visto che la funzione principale del progetto è studiare applicazioni Android)
- Il router connesso ad internet ha una sottorrete definita dalla netmask 192.168.1.0/24
- il router interno una sottorete definita dalla netmask 192.168.0.0/24
Routing Server collega le due sottoreti attraverso funzioni di forwarding implementate attraverso iptables, è quindi un host Linux
Configurazione del Routing server
Come dicevo il routing server è un host linux con due schede di rete che collega le due sottoreti forwardando i pacchetti con iptables. Per rendere possibile questo dobbiamo innanzitutto terminare il servizio network manager ( /etc/init.d/network-manager stop )
La configurazione viene eseguita attraverso uno script e viene quindi annullata al riavvio. lo script è il seguente:
#parte1 pkill dhclient ifconfig eth0 192.168.0.5 route add -net 192.168.0.0 netmask 255.255.255.0 dev eth0 gw 192.168.1.64 route del default route add default gw 192.168.1.254 #parte2 echo 1 > /proc/sys/net/ipv4/ip_forward iptables -F iptables -t nat -P PREROUTING ACCEPT iptables -t nat -P POSTROUTING ACCEPT iptables -t nat -P OUTPUT ACCEPT iptables -t mangle -P PREROUTING ACCEPT iptables -t mangle -P OUTPUT ACCEPT iptables -A POSTROUTING -t nat -o eth1 -j MASQUERADE iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT iptables -A FORWARD -o eth1 -i eth0 -j ACCEPT #parte3 iptables -A FORWARD -p tcp -s 192.168.0.5/24 --sport 135 -j DROP #microsoft epmap iptables -A FORWARD -p udp -s 192.168.0.5/24 --sport 137 -j DROP #netbios ns iptables -A FORWARD -p tcp -s 192.168.0.5/24 --sport 138 -j DROP #netbios dgm iptables -A FORWARD -p udp -s 192.168.0.5/24 --sport 1900 -j DROP #SSDP iptables -A FORWARD -p tcp -s 192.168.0.5/24 --sport 445 -j DROP #microsoft-ds
vediamo di descrivere lo script:
la #parte1
termina i servizi di dhcp ancora in vita e poi setta in maniera statica l’indirizzo di Eth0 e setta il gateway di Eth0 a 192.168.1.64 e il gateway di default a 192.168.1.254 (il router connesso)
la #parte2
attiva e configura il forwarding tra le due interfacce, la prima riga lo attiva nel caso fosse disattivato
la #parte3
filtra i pacchetti provenienti da protocolli tipici di windows e provenienti dalla rete preesistente . questi pacchetti gonfierebbero inutilmente la dimensione dei file di log
Configurazione del router interno
Il router interno dovrà utilizzare 192.168.0.5 come gateway ( indirizzo di Router Server su Eth0) ma utilizzare un dns esterno ( nel mio caso opendns)
L’indirizzamento dhcp deve essere configurato facendo in modo che siano dinamici solo gli indirizzi superiori a 192.168.0.5
Sniffing!
Una volta configurato il tutto lo sniffing è molto semplice, basta avviare uno sniffer qualunque ( tcpdump, wireshark) e metterlo in ascolto su Eth0
In questo modo possiamo anche continuare a navigare senza che il nostro traffico compaia nei log

