Bonjour,
Je suis en train d’installer un portail captif : NoTalweg > talweg.univ-metz.fr/doku.php?id= … ationlenny
Tout est Ok, ça fonctionne très bien ! C’est la solution la plus simple que j’ai testé, très efficace !
Voici les règles iptables qui rendent la chose “possible”…
Les paquets sont soit acceptés, soit rejetés en fonction d’une authentification par login/mot de passe et d’un marquage.
#!/bin/sh
IPT="/sbin/iptables"
#Ip of notalweg gateway
IP_PRIVATE="10.13.0.1"
#Notalweg private interface
NTINT="eth1"
test -f $IPT || exit 0
case "$1" in
start)
echo -n "Loading firewall's rules: "
echo 1 > /proc/sys/net/ipv4/ip_forward
# Flush table
$IPT -t nat -F
$IPT -t mangle -F
$IPT -t filter -F
$IPT -t mangle -A PREROUTING -i $NTINT -j CONNMARK --restore-mark
$IPT -t mangle -A PREROUTING -p TCP -i $NTINT -d $IP_PRIVATE -j ACCEPT
$IPT -t mangle -A PREROUTING -p TCP -i $NTINT -m state --state NEW -j QUEUE
$IPT -t nat -A PREROUTING -p TCP -i $NTINT -j CONNMARK --save-mark
# MARK 0xFFFFFFFF = Openacls
$IPT -t nat -A PREROUTING -p TCP -i $NTINT -m mark --mark 0xFFFFFFFF -j ACCEPT
# MARK 0xFFFFFFFE = use http-to-https redirection
$IPT -t nat -A PREROUTING -p TCP -i $NTINT -m mark --mark 0xFFFFFFFE -j DNAT --to-destination $IP_PRIVATE
# MARK 0x0 = unauthenticated - 80 is redirected to authentication page
$IPT -t nat -A PREROUTING -p TCP --dport 80 -i $NTINT -m mark --mark 0 -j DNAT --to-destination $IP_PRIVATE:8080
# MARK 0x1 blacklistacls
$IPT -t filter -A FORWARD -m mark --mark 0x1 -j REJECT
$IPT -t nat -A POSTROUTING -m mark ! --mark 0 -j MASQUERADE
echo "Done."
;;
stop)
echo -n "Flushing firewall's rules: "
echo 0 > /proc/sys/net/ipv4/ip_forward
###########################
# FLUSH TABLES
###########################
$IPT -t filter -F
$IPT -t nat -F
$IPT -t mangle -F
echo "Done."
;;
status)
# List tables
echo
echo "---------- FILTER TABLE -----------"
echo
$IPT -t filter -L -v
echo
echo "---------- NAT TABLE -----------"
echo
$IPT -t nat -L -v
echo
echo "---------- MANGLE TABLE -----------"
echo
$IPT -t mangle -L -v
echo
;;
restart|force-reload)
$0 stop
$0 start
echo "Done."
;;
*)
echo "Usage: /etc/init.d/firewall {start|stop|status|restart}"
exit 1
;;
esac
exit 0
Ma question… J’aimerais que certaines IP (un pool d’adresses distribuées par DHCP en fonction de l’adresse MAC) puissent accéder à Internet sans authentification (peut-être via un proxy transparent ?).
Pourriez-vous me donner un coup de main parce que je suis une brèle en iptables, et marquage des paquets ne simplifie pas mon apprentissage…
Je ne sais pas comment m’y prendre… 
Merci d’avance !



[/quote]
Mais il y a bien plus fort que moi, et ce n’est pas difficile 
