[Résolu] Question iptables pour couper l'acces réseau

Forum traitant de la distribution sécurisée montante nommée IP cop et basée sur la distribution Smoothwall. C'est à l'heure actuelle le forum le plus actif du site.

Modérateur: modos Ixus

[Résolu] Question iptables pour couper l'acces réseau

Messagepar rcageot90 » 09 Jan 2010 13:56

Bonjour

J'ai navigué sur moultes sites concernant iptables (dont le post [TUTORIAL] Guide de Survie Iptable/Netfilter sur ce forum) et mon problème "assez simple" ne trouve pas franchement la réponse simple attendu parmi les multitude d'exemples trouvés.
Je ne voudrais pas m'attirer les foudres des ayatolah des réseaux et de la config ipdatbles avec mes questions cons mais j'aimerais beaucoup trouver une solution ;-)

je m'explique, pour résumer, mon réseau est composé comme suit

Red : 192.168.0.x

Green :
- 10.0.20.x = @ip en dhcp dynamique
- 10.0.21.x = @ip en fixe
- Ipcop = 10.0.20.1

Je voudrais couper totalement l'accès réseau des adresses ip en dhcp et pas seulement via le protocole http (ce que je fais actuellement via squidguard de franck78) entre 20h du soir et 9h du matin.

N'étant pas du tout un spécialiste réseau et encore moins iptables, j'aimerais savoir, avant de tout casser si la manipulation suivante marcherait
Coupure de l'accès pour une adresse spécifique à 20h
1 - ajouter dans le cron à 20h
Code: Tout sélectionner
iptables -A INPUT -p all -s 10.0.20.159 -j DROP
iptables -A OUTPUT -p all -s 10.0.20.159 -j DROP

2 - ajouter dans le cron à 9h la même commande avec l'option -D
Code: Tout sélectionner
iptables -D INPUT -p all -s 10.0.20.159 -j DROP
iptables -D OUTPUT -p all -s 10.0.20.159 -j DROP


si je veux Interdire complètement l'accès à toutes les adresses en dhcp sauf à mon firewall ipcop, la manipulation suivante marcherait-elle ?
1 - ajouter dans le cron à 20h
Code: Tout sélectionner
iptables -A INPUT -p all -s 10.0.20.1/8 -j DROP
iptables -A OUTPUT -p all -s 10.0.20.1/8 -j DROP
iptables -A INPUT -p all -s 10.0.20.1 -j ACCEPT
iptables -A OUTPUT -p all -s 10.0.20.1 -j ACCEPT

2 - ajouter dans le cron à 9h les mêmes commandes avec l'option -D

merci de votre attention
Dernière édition par rcageot90 le 07 Fév 2010 12:26, édité 1 fois au total.
Avatar de l’utilisateur
rcageot90
Lieutenant de vaisseau
Lieutenant de vaisseau
 
Messages: 192
Inscrit le: 21 Avr 2005 12:03
Localisation: Breizh

Messagepar jdh » 09 Jan 2010 14:16

<mode apparté>

La gestion du temps dans un filtrage de navigation m'étonnera toujours :

- pourquoi autoriser à certaines heures ce qui est interdit à d'autres ?
- les sites de boules ne devraient-ils pas être interdits en totalité !
- que se passe-t-il quand on passe en 2x huit ?
- pourquoi on arrive difficilement à parler en adulte aux utilisateurs ?
- pourquoi un utilisateur se sent blessé qu'on lui reproche de naviguer sur des sites de boules alors que l'entreprise lui reproche de n'être pas disponible ?
- l'affichage de la liste des 100 sites les plus visités ne suffiraient elle pas à faire réfléchir certain ?
- pourquoi passe-t-on autant de temps sur des sites persos au travail alors que l'on a tous l'adsl à la maison ?

<mode /apparté>

On peut imaginer s'appuyer sur -A / -D via des cron (sauf que -D fonctionne sur des n° de lignes si je ne me trompe ?!).
(Peut-être qu'il serait mieux d'utiliser iptables-save/iptables-restore).

Il y a (bien) plus simple : SquidGuard gère le temps !

En partant du fichier de conf généré par l'(excellent) outil de Franck78, on devrait pouvoir ajouter la gestion du temps (quitte à recommencer après toute config : quelques lignes supplémentaires au début et une modif des lignes à la fin ...).

cf http://www.squidguard.org/Doc/extended.html section "Blocking based on times"

(De toute façon le fichier de conf de SquidGuard n'est pas très long)


NB : Je trouve cela assez inutile mais je sais comment il faudrait le faire.
Avatar de l’utilisateur
jdh
Amiral
Amiral
 
Messages: 4741
Inscrit le: 29 Déc 2002 01:00
Localisation: Nantes

Messagepar Franck78 » 09 Jan 2010 14:39

@jdh, c'est précisément notre breton rcageot qui a ajouté l'extension 'horaire' à SquidGuard. Après moi, c'est lui qui le connait le plus ;-)

Je pense qu'il veut obtenir quelquechose du style "bloquer MSN sauf de 17h à 19h", ce que j'ai fait il me semble dans mon IPCop, pour une IP.
Ca donne ceci:


dans cron:

Code: Tout sélectionner
0 17 * * * /etc/rc.d/rc.firewall.local msn
0 19 * * * /etc/rc.d/rc.firewall.local nomsn


et dans rc.firewall.local:
Code: Tout sélectionner
nomsn()
{
    $IPTABLES -A CUSTOMFORWARD -p tcp -s 10.0.0.10 -m tcp --dport 1863 -j DROP # Port MSN
    $IPTABLES -A CUSTOMFORWARD -p tcp -s 10.0.0.10 -m tcp -d 65.52.0.0/16 -j DROP # Plage Adresse MSN
    $IPTABLES -A CUSTOMFORWARD -p tcp -s 10.0.0.10 -m tcp -d 65.53.0.0/16 -j DROP # Plage Adresse MSN
    $IPTABLES -A CUSTOMFORWARD -p tcp -s 10.0.0.10 -m tcp -d 65.54.0.0/16 -j DROP # Plage Adresse MSN
    $IPTABLES -A CUSTOMFORWARD -p tcp -s 10.0.0.10 -m tcp -d 65.55.0.0/16 -j DROP # Plage Adresse MSN
}

msn()
{
    $IPTABLES -D CUSTOMFORWARD -p tcp -s 10.0.0.10 -m tcp -d 65.55.0.0/16 -j DROP # Plage Adresse MSN
    $IPTABLES -D CUSTOMFORWARD -p tcp -s 10.0.0.10 -m tcp -d 65.54.0.0/16 -j DROP # Plage Adresse MSN
    $IPTABLES -D CUSTOMFORWARD -p tcp -s 10.0.0.10 -m tcp -d 65.53.0.0/16 -j DROP # Plage Adresse MSN
    $IPTABLES -D CUSTOMFORWARD -p tcp -s 10.0.0.10 -m tcp -d 65.52.0.0/16 -j DROP # Plage Adresse MSN
    $IPTABLES -D CUSTOMFORWARD -p tcp -s 10.0.0.10 -m tcp --dport 1863 -j DROP # Port MSN
}


IPTABLES="/sbin/iptables "       ## Le programme de controle

# Comment est-on appel�.
case "$1" in
  start)
        iptables_init   #calcule quelques variables utiles
        iptables_start  #d�marrage
        nomsn           #bloque MSN...

        ;;
  stop)
        $IPTABLES -F SRC   #nettoyage
   #$IPTABLES -X SRC
   ;;
  msn)
        msn
        ;;
  nomsn)
        nomsn
        ;;
  *)
        echo "Ce script est appele par rc.firewall !"
   ;;
esac



Ma fille me dit que ca marche pô...bien. Toujours coupé qu'elle dit ;-) Je pense que cela ce produit si je 'redémarre' ipcop entre 17h et 19h (deux jeux de règles nomsn)

Bye
Franck
L'art de poser une question sur ce site afin d'obtenir la réponse
A LIRE
Avatar de l’utilisateur
Franck78
Amiral
Amiral
 
Messages: 5625
Inscrit le: 20 Fév 2004 01:00
Localisation: Paris

Messagepar jdh » 09 Jan 2010 14:59

Il est vrai que je n'ai essayé qu'une fois Ipcop et que je ne connais pas bien l'outil que tu as développé !


Par contre, puisque -D ne fonctionne pas comme imaginé par rcageot, ta proposition me parait excellente : le script firewall est redémarré depuis le début avec ou sans les lignes idoines (dans une fonction bash).

Ca cela parait efficace !
Avatar de l’utilisateur
jdh
Amiral
Amiral
 
Messages: 4741
Inscrit le: 29 Déc 2002 01:00
Localisation: Nantes

Messagepar rcageot90 » 09 Jan 2010 16:05

jdh a écrit:<mode apparté>

La gestion du temps dans un filtrage de navigation m'étonnera toujours :

- pourquoi autoriser à certaines heures ce qui est interdit à d'autres ?
- les sites de boules ne devraient-ils pas être interdits en totalité !
- que se passe-t-il quand on passe en 2x huit ?
- pourquoi on arrive difficilement à parler en adulte aux utilisateurs ?
- pourquoi un utilisateur se sent blessé qu'on lui reproche de naviguer sur des sites de boules alors que l'entreprise lui reproche de n'être pas disponible ?
- l'affichage de la liste des 100 sites les plus visités ne suffiraient elle pas à faire réfléchir certain ?
- pourquoi passe-t-on autant de temps sur des sites persos au travail alors que l'on a tous l'adsl à la maison ?

<mode /apparté>

On peut imaginer s'appuyer sur -A / -D via des cron (sauf que -D fonctionne sur des n° de lignes si je ne me trompe ?!).
(Peut-être qu'il serait mieux d'utiliser iptables-save/iptables-restore).

Il y a (bien) plus simple : SquidGuard gère le temps !

Bonjour, Concernant mon problème, il s'agit d'un réseau local à mon habitation et non d'un réseau d'entreprise ou d'université ;-)

De plus, mon soucis n'est pas vraiment avec les horaires d'accès au web car, comme précisé, j'utilise l'addon de franck qui marche à merveille concernant les horaires d'accès et le filtrage via les black lists de l'université de toulouse.

Mon problème est que mon fils, 12ans, un fois connecté à : msn, ses jeux en réseaux et diverses autres applications, malgré les horaires d'accès continue de pouvoir les utiliser après la limite de temps impartie si il s'est connecté avant la coupure web.

Je voudrais donc carrément lui couper l'accès au net (pas que web) qui passe par mon ipcop.

c'est pourquoi j'ai commencé à regarder iptables qui à priori devrait pouvoir le faire mais suite à mes longues lectures de howto et autres guides, je suis plus paumé que rassuré !

merci
Avatar de l’utilisateur
rcageot90
Lieutenant de vaisseau
Lieutenant de vaisseau
 
Messages: 192
Inscrit le: 21 Avr 2005 12:03
Localisation: Breizh

Messagepar Franck78 » 09 Jan 2010 16:26

Code: Tout sélectionner
$IPTABLES -A CUSTOMFORWARD -p tcp -s 10.0.0.10 -j DROP #


avec ça, il pourra pinguer à loisir l'internet. Mais ça le lassera surement très vite.....

(on suppose que l'IP n'est pas modifiable par le mome)

Règle idoine (-D) pour rétablir la situation.


c'est pourquoi j'ai commencé à regarder iptables qui à priori devrait pouvoir le faire mais suite à mes longues lectures de howto et autres guides, je suis plus paumé que rassuré

une bonne lecture des explicaion du prof Caleca suffit à régler le problème de compréhension d'IPTables ;-) Rien d'autre.
Dernière édition par Franck78 le 09 Jan 2010 16:36, édité 1 fois au total.
Franck
L'art de poser une question sur ce site afin d'obtenir la réponse
A LIRE
Avatar de l’utilisateur
Franck78
Amiral
Amiral
 
Messages: 5625
Inscrit le: 20 Fév 2004 01:00
Localisation: Paris

Messagepar rcageot90 » 09 Jan 2010 16:29

Franck78 a écrit:@jdh, c'est précisément notre breton rcageot qui a ajouté l'extension 'horaire' à SquidGuard. Après moi, c'est lui qui le connait le plus ;-)

Salut franck,
le plus c'est un bien grand mot, mais je vois bien comment ça marche ;-)
Franck78 a écrit:Je pense qu'il veut obtenir quelquechose du style "bloquer MSN sauf de 17h à 19h", ce que j'ai fait il me semble dans mon IPCop, pour une IP.
Ca donne ceci:

Merci franck,
donc, comme moi je veux TOUT couper, si je te suis, et que je remplace dans ton exemple
dans cron:
Code: Tout sélectionner
0 8 * * * /etc/rc.d/rc.firewall.local netaccess
0 20 * * * /etc/rc.d/rc.firewall.local nonetaccess

et dans /etc/rc.d/rc.firewall.local:
Code: Tout sélectionner
nonetaccess()
{
    $IPTABLES -A INPUT -p all -s 10.0.20.159 -j DROP # tout ce qui arrive dans ipcop depuis green = drop
    $IPTABLES -A OUTPUT -p all -d 10.0.20.159 -j DROP # tout ce qui arrive dans ipcop pour green = drop
    $IPTABLES -A FORWARD -p all -d 10.0.20.159 -j DROP # est ce bien nécessaire après les deux du dessus ?
}

netaccess()
{
    $IPTABLES -D INPUT -p all -s 10.0.20.159 -j DROP
    $IPTABLES -D OUTPUT -p all -d 10.0.20.159 -j DROP
    $IPTABLES -D FORWARD -p all -d 10.0.20.159 -j DROP
}


IPTABLES="/sbin/iptables "       ## Le programme de controle

# Comment est-on appelé
case "$1" in
  netaccess)
        netaccess
        ;;
  nonetaccess)
        nonetaccess
        ;;
  *)
        echo "Ce script est appele par rc.firewall !"
   ;;
esac

Cela pourrait-il marcher ?

Je suis nul en iptables mais j'aime bien comprendre
la chaine -A INPUT -p all -s 10.0.20.159 -j DROP correspond-elle bien à : tout ce qui arrive dans ipcop depuis 10.0.20.159, je le drop
et
la chaine -A OUTPUT -p all -d 10.0.20.159 -j DROP correspond-elle bien à : tout ce qui arrive dans ipcop à destination de 10.0.20.159, je le drop

merci en tout cas de ne pas m'avoir tué avant de tenter de m'expliquer :)
Avatar de l’utilisateur
rcageot90
Lieutenant de vaisseau
Lieutenant de vaisseau
 
Messages: 192
Inscrit le: 21 Avr 2005 12:03
Localisation: Breizh

Messagepar Franck78 » 09 Jan 2010 16:39

merci en tout cas de ne pas m'avoir tué avant de tenter de m'expliquer

mais je vais le faire si tu ne vas pas potasser Caleca ;-)
Franck
L'art de poser une question sur ce site afin d'obtenir la réponse
A LIRE
Avatar de l’utilisateur
Franck78
Amiral
Amiral
 
Messages: 5625
Inscrit le: 20 Fév 2004 01:00
Localisation: Paris

Messagepar rcageot90 » 09 Jan 2010 16:47

Franck78 a écrit:
merci en tout cas de ne pas m'avoir tué avant de tenter de m'expliquer

mais je vais le faire si tu ne vas pas potasser Caleca ;-)

Tu me parles de ceci bien sur ?
http://irp.nain-t.net/doku.php/130netfilter:060_iptables
que j'ai potassé parmi les nombreux site sur iptables qu'on trouve sur le net !

j'y retourne donc de ce pas !
Kenavo
Ipcop 1.4.21 (dhcp, ntp) + squidGuard 1.4 sur AMD K6/450 + 256 Mo Ram + 6Go HD / Freebox en Ethernet
Si un ricard vaut un steak, j'ai bien bouffé une vache hier soir
Avatar de l’utilisateur
rcageot90
Lieutenant de vaisseau
Lieutenant de vaisseau
 
Messages: 192
Inscrit le: 21 Avr 2005 12:03
Localisation: Breizh

Messagepar jdh » 09 Jan 2010 16:58

Si on lit Christian CALECA, on apprend que

- la règle INPUT désigne le flux entrant dans le firewall, par exemple, Green vers ipcop ou Red vers ipcop
- la règle FORWARD désigne le flux traversant le firewall, par exemple Green vers Red ou Red vers Orange.

Je pense qu'une règle FORWARD -j DROP (assez tôt) suffit à empêcher le passage. (Ne pas oublier que l'ordre est TRES important). (Et que INPUT -j DROP ne sert pas à grand chose ...)
Avatar de l’utilisateur
jdh
Amiral
Amiral
 
Messages: 4741
Inscrit le: 29 Déc 2002 01:00
Localisation: Nantes

Messagepar rcageot90 » 09 Jan 2010 17:23

après consultation de cette page :
http://irp.nain-t.net/doku.php/130netfilter:030_filter

si je veux completement couper l'accès depuis cette machine de mon green au réseau interne et externe
je dois aussi couper le FORWARD

en fait plus je lis les docs, plus je m'enbrouille, il faudrait que je test en fait pour bien comprendre les effets de tout ça
car d'après ce que j'ai lu/comprendu
la chaine -A INPUT -p all -s 10.0.20.159 -j DROP correspond à : tout ce qui arrive dans ipcop depuis 10.0.20.159, je le drop
et
la chaine -A INPUT -p all -d 10.0.20.159 -j DROP correspond à : tout ce qui arrive dans ipcop à destination de 10.0.20.159, je le drop

donc il me faudrait aussi couper les forward de et à destination de l'ip cible
-A FORWARD -p all -s 10.0.20.159 -j DROP
-A FORWARD -p all -d 10.0.20.159 -j DROP

j'ai bon ? ou franck va me tuer ?
:?
Kenavo
Ipcop 1.4.21 (dhcp, ntp) + squidGuard 1.4 sur AMD K6/450 + 256 Mo Ram + 6Go HD / Freebox en Ethernet
Si un ricard vaut un steak, j'ai bien bouffé une vache hier soir
Avatar de l’utilisateur
rcageot90
Lieutenant de vaisseau
Lieutenant de vaisseau
 
Messages: 192
Inscrit le: 21 Avr 2005 12:03
Localisation: Breizh

Messagepar jdh » 09 Jan 2010 17:41

"-A FORWARD -p all -s 10.0.20.159 - j DROP" coupe toute liaison vers Internet à partir de cette adresse ip (au travers du firewall).
Avatar de l’utilisateur
jdh
Amiral
Amiral
 
Messages: 4741
Inscrit le: 29 Déc 2002 01:00
Localisation: Nantes

Messagepar Franck78 » 09 Jan 2010 17:43

si tu admets qu'un ipcop est en config green+red un assemblage de TROIS cartes réseau, branchées sur le même switch, tu as gagné (le droit de vivre).

carte RED
carte GREEN
carte IPCOP

Après, c'est qu'une question de logique. Comme une partie à trois. Il y a des sens unique :!:

A quoi bon interdire à GREEN de parler à IPcop?

Pourquoi rajouter une interdiction de RED vers GREEN alors même que IPCop gére ceci?
Franck
L'art de poser une question sur ce site afin d'obtenir la réponse
A LIRE
Avatar de l’utilisateur
Franck78
Amiral
Amiral
 
Messages: 5625
Inscrit le: 20 Fév 2004 01:00
Localisation: Paris

Messagepar Franck78 » 09 Jan 2010 17:46

CUSTOMFORWARD
Franck
L'art de poser une question sur ce site afin d'obtenir la réponse
A LIRE
Avatar de l’utilisateur
Franck78
Amiral
Amiral
 
Messages: 5625
Inscrit le: 20 Fév 2004 01:00
Localisation: Paris

Messagepar rcageot90 » 09 Jan 2010 18:25

Franck78 a écrit:si tu admets qu'un ipcop est en config green+red un assemblage de TROIS cartes réseau, branchées sur le même switch, tu as gagné (le droit de vivre).

carte RED
carte GREEN
carte IPCOP

Après, c'est qu'une question de logique. Comme une partie à trois. Il y a des sens unique :!:

A quoi bon interdire à GREEN de parler à IPcop?

Pourquoi rajouter une interdiction de RED vers GREEN alors même que IPCop gére ceci?

Il me semblait qu'interdire green de parler à IPcop c'est du genre ceinture ET bretelle
je coupe tout, plus de dns, plus de dhcp, plus de partage, plus rien, plus de jeu en local avec son autre frère non plus !

merci de ta patience en tout cas
Kenavo
Ipcop 1.4.21 (dhcp, ntp) + squidGuard 1.4 sur AMD K6/450 + 256 Mo Ram + 6Go HD / Freebox en Ethernet
Si un ricard vaut un steak, j'ai bien bouffé une vache hier soir
Avatar de l’utilisateur
rcageot90
Lieutenant de vaisseau
Lieutenant de vaisseau
 
Messages: 192
Inscrit le: 21 Avr 2005 12:03
Localisation: Breizh

Suivant

Retour vers IPCop

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité

cron