Newsgroup: it.comp.os.linux.sys
Titolo: Chillispot & Iptables

Ciao a tutti,
sto cercando di configurare un hotspot con chillispot +iptables
+squid.
Cosa che ho fatto già altre volte con successo ma oggi proprio non
riesco.
Ho configurato squid (3.0stable1) con ANCHE questa direttiva:
http_port 
127.0.0.1:3128
 transparent
che lo mette correttamente in ascolto sulla 3128 su 127.0.0.1
Squid parte.
Ho configurato iptables (copiando la config da quella predefinita di
chillispot) aggiungendo:
$IPTABLES -t nat -A PREROUTING -i $CHILLIIF -p tcp -d ! 10.254.254.1 -
m multiport --dport 80 -j DNAT --to-destination 
127.0.0.1:3128
e non funziona un tubo. I client wifi non riescono a navigare.
Se invece, metto squid in ascolto su tutte le porte e cambio il DNAT
con REDIRECT, tutto funziona e si
naviga correttamente tramite proxy.
Il problema è che così facendo, basta impostare sui client il proxy
manualmente per bypassare l'autenticazione.
E' una cosa che ho fatto altre volte, ma non ho le configurazioni
funzionanti sottomano .
Avete qualche dritta? Proprio non riesco a vedere l'errore.

 Avete qualche dritta? Proprio non riesco a vedere l'errore.
Incollo tutto iptables, so già che manca una riga, ma oggi proprio non
riesco a trovare l'errore.
IPTABLES="/usr/sbin/iptables"
EXTIF="eth0"
WIFIIF="eth2"
CHILLIIF="tun0"
#Flush all rules
$IPTABLES -F
$IPTABLES -F -t nat
$IPTABLES -F -t mangle
#Set default behaviour
$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -P OUTPUT ACCEPT
#Allow related and established on all interfaces (input)
$IPTABLES -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
#Allow releated, established and ssh on $EXTIF. Reject everything
else.
$IPTABLES -A INPUT -i $EXTIF -p tcp -m multiport --dport 22,8080 --syn
-j ACCEPT
$IPTABLES -A INPUT -i $EXTIF -j REJECT
#Allow http and https on other interfaces (input).
#This is only needed if authentication server is on same server as
chilli
$IPTABLES -A INPUT -i $WIFIIF -p tcp -m multiport --dport 80,443 --syn
-j ACCEPT
$IPTABLES -A INPUT -i $CHILLIIF -p tcp -m multiport --dport 3990 --syn
-j ACCEPT
#Allow related and established from $WIFIIF. Drop everything else.
$IPTABLES -A INPUT -i $WIFIIF -j DROP
#Allow ICMP echo on other interfaces (input).
$IPTABLES -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
#Allow everything on loopback interface.
$IPTABLES -A INPUT -i lo -j ACCEPT
# Drop everything to and from $WIFIIF (forward)
# This means that access points can only be managed from ChilliSpot
$IPTABLES -A FORWARD -i $WIFIIF -j DROP
$IPTABLES -A FORWARD -o $WIFIIF -j DROP
# Forzatura proxy
$IPTABLES -t nat -A PREROUTING -i $CHILLIIF -p tcp -s 
10.254.254.0/24
 -
d ! 
10.254.254.1/32
 --dport 80 -j DNAT --to 
127.0.0.1:3128
# Natto le altre porte che non posso proxare
$IPTABLES -t nat -A POSTROUTING -o $EXTIF -p tcp -m multiport --dport
25,110,443 -j MASQUERADE
$IPTABLES -t nat -A POSTROUTING -o $EXTIF -p udp -m multiport --dport
53 -j MASQUERADE


Credo di aver risolto:
squid in ascolto su tutte le eth, DNAT verso 
127.0.0.1:3128
 e poi
blocco la porta 3128 sulla eth del wireless.
In questo modo i furbetti che tentano di passare tramite squid
direttamente sulla 3128 non possono perchè viene bloccata da iptables.
Però: perchè se metto squid in ascolto su 127.0.0.1 non riesco a fare
nat?

 direttamente sulla 3128 non possono perchè viene bloccata da iptables.
Non ho risolto niente, era solo la cache di firefox.
Non riesco a nattare verso una destinazione differente dalla sorgente
in nessun modo.
se son collegato su eth2, riesco a nattare solo verso eth2.


Alla fine ho risolto mandando in drop la 3128 come default per poi
attivarla mediante lo script connup di chillispot.