redirect
========

fichier de conf mark_group::

    513:1
    514:2

la règle NFQUEUE est dans la table mangle::

    iptables -A PREROUTING -t mangle IPCRIT -i IFIN -j NFQUEUE

cas d'utilisation, si élève -> redirect, si prof non

une règle utilisateur marquée::

    iptables -A PREROUTING -t nat IPCRIT -i IFIN -m mark --mark 0x1 -j REDIRECT --to 3128
    
    iptables -A PREROUTING -t nat IPCRIT2 -i IFIN -m mark --mark 0x3 -j REDIRECT --to 443

(si élève -> redirect, si prof non)

politique par défaut : seulement les autorisations sont écrites (puisque de toute façon c'est interdit par défaut)


filtrage authentifié
--------------------

Contrainte d'Eole :
 Flux d'interface à interface sont soit en politique ACCEPT par défaut
 soit en politique DROP par défaut
 Les règles sont forcément de décision opposée à la politique par
 défaut.

Contrainte de NuFW :
 Les règles sont terminales
 Si le groupe ne matche pas le paquet est droppé

Proposition de modelisation :

1. Gestion des exceptions :
En effectuant le filtrage IP avant le filtrage authentifié, on peut
gérer les exceptions.

2. Filtrage authentifié :
Il faut contourner la limitation de NuFW (règle terminale) en ajoutant
une règle par défaut d'acceptation (ou de DROP) en fin de règles
authentifiées (dans le backend uniquement). Ceci assure un fallback
conforme à la politique par défaut de la bichaine. Par exemple,
lorsque l'admin exprime "les élèves sont bloqués en sortie port 80",
cela suppose que les autres groupes passent. La règle par défaut sera
donc une règle sans information de protocole établie pour un groupe
par défaut (configurable, domain user dans la plupart des cas est
suffisant).

NuFW et journalisation :
NuFW loggue par défaut. Pour désactiver le journalisation dans une acl,
il faut positionner ``flags = 2``.


----

en redirect, il n'y a pas de outdev, et c'est mis dans la table mangle



Ruleset pour eleve par proxy
----------------------------

**pour la gestion du REDIRECT**

On suppose que on a
Le mapping : éleves: 513, professeurs: 514

On fait alors le fichier mark_group.conf::

 513:1
 514:2

On note IPCRIT les critères IP
On note IFIN l'interface d'entrée
On note IFOUT l'interface de sortie

Règles iptables
---------------

::

 iptables -A PREROUTING -t mangle IPCRIT -i IFIN -j NFQUEUE
 iptables -A PREROUTING -t nat IPCRIT -i IFIN -m mark --mark 0x1 -j
 REDIRECT --to 3128

 iptables -A INPUT -i IFIN -p tcp --dport 3128 -j ACCEPT
 iptables -A FORWARD IPCRIT -i IFIN -o IFOUT -j ACCEPT

Règles plaintext
----------------

::

 [tproxy]
 IPCRIT
 indev=IFIN
 group = 513
 decision = 1

Et bien sur la règle de décision par défaut.



----


cas de redirection
------------------

Deux cas de redirection :

Flux montant (ACCEPT par défaut)

Lorsque je fais une règle de prerouting, je limite les droits de
l'utilisateurs. Les autres ont donc le droit de passer.  Il
n'est pour l'instant pas possible de faire une politique mixte
DROP pour un groupe et REDIRECTION pour un autre dans ce mode.
Mettre plusieurs groupes dans la politique de redirection est
faisable en dupliquant les règles.


Flux descendant (DROP par défaut)

Lorsque je fais une règle de prerouting, j'augmente les droits de
l'utilisateurs. Les autres n'ont donc pas le droit de passer. Il
n'est pour l'instant pas possible de faire une politique mixte
ACCEPT pour un groupe et REDIRECTION pour un autre dans ce mode.
Mettre plusieurs groupes dans la politique de redirection est
faisable en dupliquant les règles.


Il faut donc positionner ce flag par défaut et le supprimer si
on souhaite logguer les résultats de l'ACLs.





