In DD WRT, nei router con chip Athereos non c'è lo scheduler per accendere o spegnere il WiFi in
automatico.
Ecco i comandi da impostare in Cron per accendere e spegnere il wireless.
In questo caso: acceso dalle 08:30 del mattino e spento alle 23:30 di ogni giorno.
30 23 * * * root /sbin/ifconfig ath0 down
30 8 * * * root /sbin/ifconfig ath0 up; startservice lan
Direzionare il traffico da un IP sorgente verso una VPN
Qui la spiegazione di come applicare delle policy in base alle quali instradare (routing) il traffico di un certo indirizzo IP (o blocco di indirizzi IP) verso una interfaccia diversa dalla default.
Obiettivo: configurare una VPN PPTP, quindi direzione il traffico proveniente solo da un ristretto numero di dispositivi verso la VPN, mentre per i restanti dispositivi, uscire normalmente verso Internet.
Finalità: utilizzare un unico dispositivo (router) evitando l'acquisto di un secondo router; permettere la sicurezza dello scambio di dati solo per un PC o device, mentre evitare tale pratica per gli altri (Wifi devices, altri pc).
Una volta configurata una connessione VPN PPTP, viene creata una nuova interfaccia (generalmente chiamata PPP0) che altri non è che il tunnel VPN PPTP.
A questo punto, bisogna semplicemente dire al nostro router che tutto il traffico proveniente, ad esempio, dall'IP 192.168.1.10 deve transitare verso l'interfaccia ppp0 invece che verso l'eth0. Come ?
Ecco la mia domanda posta su ServerFault.
Giustamente, chi mi ha risposto, mi ha fatto notare che il routing di rete, non si preoccupa dell'indirizzo ip sorgente, ma si preoccupa solo dell'indirizzo ip di destinazione, ossia "non mi interessa chi sei, ti dico come raggiungere il tuo indirizzo di destinazione".
Allora, mi ha suggerito questa soluzione:
- Create a new default route on an alternative table
ip route add table 55 default via 192.168.120.10 dev ppp0
- Mark traffic you want to route
iptables -t mangle -I PREROUTING 1 -s 192.168.1.40 -j MARK --set-mark 55
- Create a rule so that traffic marked as 55 is routed via table 55
ip rule add fwmark 55 table 55
- ip route del default via 192.168.120.10 dev ppp0
- ip route add default via 192.168.1.254 dev eth0
Per rendere tutto persistente, ho salvato tutti i punti sopra citati nella sezione Amministrazione -> Comandi -> Startup:
echo "myip=$(ifconfig | grep -A 1 'ppp0' | tail -1 | cut -d ':' -f 2 | cut -d ' ' -f 1") >> /tmp/firewallscript.sh
rm /tmp/firewallscript.sh echo "ip=\$(ifconfig | grep -A 1 'ppp0' | tail -1 | cut -d ':' -f 2 | cut -d ' ' -f 1)" >> /tmp/firewallscript.sh echo "ip route del default via \$ip dev ppp0;" >> /tmp/firewallscript.sh echo "ip route add default via 192.168.1.254 dev eth0;" >> /tmp/firewallscript.sh echo "ip route add table 55 default via \$ip dev ppp0;" >> /tmp/firewallscript.sh echo "iptables -t mangle -I PREROUTING 1 -s 192.168.1.40 -j MARK --set-mark 55;" >> /tmp/firewallscript.sh echo "iptables -t mangle -I PREROUTING 1 -s 192.168.1.41 -j MARK --set-mark 55;" >> /tmp/firewallscript.sh echo "iptables -t mangle -I PREROUTING 1 -s 192.168.1.42 -j MARK --set-mark 55;" >> /tmp/firewallscript.sh echo "ip rule add fwmark 55 table 55;" >> /tmp/firewallscript.sh
Quindi, sempre in crontab ho aggiunto il lancio dello script schedulato ogni 5 minuti (lo so, non è bello farlo ripetere, ci vorrebbe un if che controlli se già non esista la regola..ma fa niente)
*/5 * * * * root sh /tmp/firewallscript.sh
Che dire... funziona bene!!
E finalmente ho imparato un pò di quel mondo che è il routing con Linux !
Nessun commento:
Posta un commento