|
|
Ligne 1 : |
Ligne 1 : |
| [[Catégorie:Trucs]] | | [[Catégorie:Trucs]] |
| Comment bien tirer parti d'un réseau local, d'internet, les trucs sur le mail, etc. | | Comment bien tirer parti d'un réseau local, d'internet, les trucs sur le mail, etc. |
|
| |
| == Truc script shell pour le par feux iptables ==
| |
|
| |
| Je propose un petit script qui aidera les débutant pour iptables avec un ou 2 lien a disposition
| |
|
| |
| il est loin d'être complet, il gere que les regles de bases, INPUT, OUTPUT.
| |
| ce qui suffi largement sous linux, pour les experts il n'on pas besoin de ce script.
| |
|
| |
| Q.-Déja pourquoi un script ?
| |
| R.-Parce qu'il permet d'être transportable, donc il est possible de le sauvgarder et de le modifier facilment.
| |
|
| |
| Le scripte avec les commantaires :)
| |
| Début du script
| |
| ----
| |
|
| |
| #!/bin/sh
| |
| PATH=/usr/eth0cal/sbin:/usr/eth0cal/bin:/sbin:/bin:/usr/sbin:/usr/bin:/sbin/iptables
| |
| DAEMON=/etc/init.d/fw
| |
| NAME=fw
| |
| ID=$$
| |
| DESC="Par Feux 1.13"
| |
| FAMOPTS="-T 0"
| |
| set -e
| |
|
| |
| case "$1" in
| |
| start)
| |
| #variable ceci facilite la lisibilité et permet de modifier facilment les paramettres les plus #courament utiliser.
| |
| MAC="-m mac --mac-source XX:XX:XX:XX:XX:XX"
| |
| #note: n'est pas indispansable!
| |
| MACROUTEUR="-m mac --mac-source XX:XX:XX:XX:XX:XX"
| |
| RL="192.168.0.0/16"
| |
| #l'id de l'utilisateur en console taper :id pour le connaître
| |
| id="1000"
| |
|
| |
| echo "Démarage de $DESC Pour l'user $id"
| |
|
| |
| #Mise a zero des regle (par précaution)
| |
| #
| |
| # On remet la police par défaut à ACCEPT
| |
| #
| |
| iptables -P INPUT ACCEPT
| |
| iptables -P FORWARD ACCEPT
| |
| iptables -P OUTPUT ACCEPT
| |
|
| |
| #
| |
| # On remet les polices par défaut pour la table NAT
| |
| #
| |
| iptables -t nat -P PREROUTING ACCEPT
| |
| iptables -t nat -P POSTROUTING ACCEPT
| |
| iptables -t nat -P OUTPUT ACCEPT
| |
|
| |
| #
| |
| # On vide (flush) toutes les règles existantes
| |
| #
| |
| iptables -F
| |
| iptables -t nat -F
| |
|
| |
| #
| |
| # Et enfin, on efface toutes les chaînes qui ne
| |
| # sont pas à defaut dans la table filter et nat
| |
|
| |
| iptables -X
| |
| iptables -t nat -X
| |
| #============================================================================================
| |
| # policy defaut
| |
| iptables -P INPUT DROP
| |
| #============================================================================================
| |
|
| |
| #règle de filtrage
| |
| #Pour émettre un service Cupsys
| |
| #iptables -A INPUT -m state --state NEW -p TCP --dport 631 -j ACCEPT
| |
| #Service DNS
| |
| #Contacter un DNS, surtout si le réseau local en comporte un, est important,
| |
| #même pour les services DNS sur Internet,
| |
| #entres autres avec votre FAI ; il faut donc ouvrir les protocoles (TCP) et UDP
| |
| iptables -A INPUT -m state --state NEW,ESTABLISHED,RELATED -p TCP --sport 53 -j ACCEPT
| |
| iptables -A INPUT -m state --state NEW,ESTABLISHED,RELATED -p UDP --sport 53 -j ACCEPT
| |
| #Service SaMBa
| |
| # EPMAP => définit toutes les RPC !
| |
| iptables -A INPUT -p tcp -m multiport --source-port 135,137,138,445 $MACROUTEUR -s $RL -d $RL -j ACCEPT
| |
| iptables -A INPUT -p udp -m multiport --source-port 135,137,138,445 $MACROUTEUR -s $RL -d $RL -j ACCEPT
| |
| iptables -A INPUT -p tcp -m multiport --source-port 135,137,138,445 $MAC -s $RL -d $RL -j ACCEPT
| |
| iptables -A INPUT -p udp -m multiport --source-port 135,137,138,445 $MAC -s $RL -d $RL -j ACCEPT
| |
| #iptables -A INPUT $MAC -m state --state NEW,ESTABLISHED,RELATED -p TCP --sport 135 -j ACCEPT
| |
| #iptables -A INPUT $MAC -m state --state NEW,ESTABLISHED,RELATED -p UDP --sport 135 -j ACCEPT
| |
| # NetBios-NS
| |
| #iptables -A INPUT $MAC -m state --state NEW,ESTABLISHED,RELATED -p TCP --sport 137 -j ACCEPT
| |
| #iptables -A INPUT $MAC -m state --state NEW,ESTABLISHED,RELATED -p UDP --sport 137 -j ACCEPT
| |
| # NetBios-DGM => exploration du réseau (basé sur SMB browser service)
| |
| #iptables -A INPUT $MAC -m state --state NEW,ESTABLISHED,RELATED -p UDP --sport 138 -j ACCEPT
| |
| # NetBios-SSN => partage fichiers, imprimantes par Microsoft
| |
| #iptables -A INPUT $MAC -m state --state NEW,ESTABLISHED,RELATED -p TCP --sport 139 -j ACCEPT
| |
| # SMB/IP => partage fichiers, imprimantes par SaMBa
| |
| #iptables -A INPUT $MAC -m state --state NEW,ESTABLISHED,RELATED -p TCP --sport 445 -j ACCEPT
| |
| #iptables -A INPUT $MAC -m state --state NEW,ESTABLISHED,RELATED -p UDP --sport 445 -j ACCEPT
| |
| #Service SSH
| |
| iptables -A INPUT -m state --state NEW,ESTABLISHED,RELATED -p TCP --sport 22 -j ACCEPT
| |
| #Service FTP
| |
| iptables -A INPUT -m state --state NEW,ESTABLISHED,RELATED -p TCP --sport 21 -j ACCEPT
| |
| #Ce proteger contre les ping , mai en permettre quelque un
| |
| iptables -A INPUT -p icmp -m limit --limit 16/d -j ACCEPT
| |
| #de cette manière, une erreur ICMP passera, mais votre passerelle ne répondra pas aux reste ICMP.
| |
| iptables -A INPUT -p icmp -m state --state RELATED -j ACCEPT
| |
| #Ouverture des port pour les navigateurs
| |
| iptables -A INPUT -p tcp -m multiport --source-ports 21,80,81,82,83,84,8080 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
| |
| #laisser msn sortire fichier compris
| |
| iptables -A INPUT -p tcp -m multiport --source-port 1863,6891 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
| |
| iptables -A INPUT -p tcp --sport 443 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
| |
| #laisser sortire IRC
| |
| iptables -A INPUT -p tcp --sport 6667 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
| |
| #Les e-mail
| |
| iptables -A INPUT -p tcp -m multiport --source-port 119,110,25 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
| |
| #on autorise le transfere dans le reseau local ceci est a éviter !
| |
| #iptables -A INPUT -i eth0 -s 192.168.0.0/16 -j ACCEPT
| |
|
| |
| # Le service xvnc4viewer (mode graphique de pc a pc)
| |
| iptables -A INPUT $MAC -m state --state NEW,ESTABLISHED,RELATED -p TCP --sport 5900 -j ACCEPT
| |
| #loopack
| |
| iptables -A INPUT -i lo -j ACCEPT
| |
|
| |
| #on autorise le multicast DNS sur IP (pas d'adress mac en OUTPUT) et le port 5353 sinon gnome plente a l'arret!
| |
| #iptables -A INPUT -i eth0 -s 192.168.1.0/24 -d 224.0.0.0/24 -j ACCEPT
| |
| #iptables -A INPUT -i eth0 -d 192.168.1.0/24 -s 224.0.0.0/24 -j ACCEPT
| |
|
| |
| # on log ce qui est stopper
| |
| #iptables -A INPUT -i eth0 -j LOG -m limit --limit 1/d --log-prefix="INPUT Final: " --log-level debug
| |
| #iptables -A INPUT -i eth0 -j LOG --log-prefix="N1 INPUT Final: " --log-level debug
| |
|
| |
| #=================================SECTION OUTPUT=============================================================
| |
| # policy defaut
| |
| iptables -P OUTPUT DROP
| |
| #===========================================================================================================
| |
| #règle de filtrage
| |
| #Pour émettre un service Cupsys
| |
| iptables -A OUTPUT -m state --state NEW -p TCP --dport 631 -j ACCEPT
| |
| #Service DNS
| |
| #Contacter un DNS, surtout si le réseau local en comporte un, est important,
| |
| #même pour les services DNS sur Internet,
| |
| #entres autres avec votre FAI ; il faut donc ouvrir les protocoles TCP et UDP
| |
| iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -p TCP --dport 53 -m owner --uid-owner $id -j ACCEPT
| |
| iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -p UDP --dport 53 -m owner --uid-owner $id -j ACCEPT
| |
| #Service SaMBa
| |
| # EPMAP => définit toutes les RPC !
| |
| iptables -A OUTPUT -p tcp -m multiport --destination-port 135,137,138,445,5900 -s $RL -d $RL -m owner --uid-owner $id -j ACCEPT
| |
| iptables -A OUTPUT -p udp -m multiport --destination-port 135,137,138,445,5900 -s $RL -d $RL -m owner --uid-owner $id -j ACCEPT
| |
| #iptables -A INPUT $MAC -m state --state NEW,ESTABLISHED,RELATED -p TCP --sport 135 -j ACCEPT
| |
| #iptables -A INPUT $MAC -m state --state NEW,ESTABLISHED,RELATED -p UDP --sport 135 -j ACCEPT
| |
| # NetBios-NS
| |
| #iptables -A INPUT $MAC -m state --state NEW,ESTABLISHED,RELATED -p TCP --sport 137 -j ACCEPT
| |
| #iptables -A INPUT $MAC -m state --state NEW,ESTABLISHED,RELATED -p UDP --sport 137 -j ACCEPT
| |
| # NetBios-DGM => exploration du réseau (basé sur SMB browser service)
| |
| #iptables -A INPUT $MAC -m state --state NEW,ESTABLISHED,RELATED -p UDP --sport 138 -j ACCEPT
| |
| # NetBios-SSN => partage fichiers, imprimantes par Microsoft
| |
| #iptables -A INPUT $MAC -m state --state NEW,ESTABLISHED,RELATED -p TCP --sport 139 -j ACCEPT
| |
| # SMB/IP => partage fichiers, imprimantes par SaMBa
| |
| #iptables -A INPUT $MAC -m state --state NEW,ESTABLISHED,RELATED -p TCP --sport 445 -j ACCEPT
| |
| #iptables -A INPUT $MAC -m state --state NEW,ESTABLISHED,RELATED -p UDP --sport 445 -j ACCEPT
| |
| #Service SSH
| |
| iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -p TCP --dport 22 -m owner --uid-owner $id -j ACCEPT
| |
| #Service FTP
| |
| iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -p TCP --dport 21 -m owner --uid-owner $id -j ACCEPT
| |
| #Ce proteger contre les ping , mai en permettre quelque un
| |
| iptables -A OUTPUT -p icmp -m limit --limit 16/d -j ACCEPT
| |
| #de cette manière, une erreur ICMP passera, mais votre passerelle ne répondra pas aux reste ICMP.
| |
| iptables -A OUTPUT -p icmp -m state --state RELATED -j ACCEPT
| |
| #Ouverture des port pour les navigateurs
| |
| iptables -A OUTPUT -p tcp -m multiport --destination-port 21,80,81,82,83,84,8080 -m owner --uid-owner $id -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
| |
| #laisser msn sortire fichier compris
| |
| iptables -A OUTPUT -p tcp -m multiport --destination-port 1863,6891 -m owner --uid-owner $id -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
| |
| iptables -A OUTPUT -p tcp --dport 443 -m owner --uid-owner $id -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
| |
| #laisser sortire IRC
| |
| iptables -A OUTPUT -p tcp --dport 6667 -m owner --uid-owner $id -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
| |
| #Les e-mail
| |
| iptables -A OUTPUT -p tcp -m multiport --destination-port 119,110,25 -m owner --uid-owner $id -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
| |
| #on autorise le transfere dans le reseau local ceci est a éviter !
| |
| #iptables -A INPUT -i eth0 -s 192.168.0.0/16 -j ACCEPT
| |
|
| |
| #on autorise le loopack
| |
| iptables -A OUTPUT -o lo -j ACCEPT
| |
|
| |
| #on autorise le multicast DNS sur IP (pas d'adress mac en OUTPUT) et le port 5353 sinon gnome plente a l'arret!
| |
| #iptables -A OUTPUT -o eth0 -s 192.168.1.0/24 -d 224.0.0.0/24 -j ACCEPT
| |
| #iptables -A OUTPUT -o eth0 -d 192.168.1.0/24 -s 224.0.0.0/24 -j ACCEPT
| |
| #iptables -A OUTPUT -o eth0 -j ACCEPT
| |
| #iptables -A OUTPUT -o eth0 -s 192.168.1.0/24 -j ACCEPT
| |
| # Le service xvnc4viewer (mode graphique de pc a pc)
| |
| #iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -p TCP --dport 5900 -j ACCEPT
| |
| # on log ce qui est stopper
| |
| #iptables -A OUTPUT -o eth0 -j LOG --log-prefix="N2 OUTPUT Final: " --log-level debug
| |
|
| |
|
| |
| echo "!! Chargement terminer !!"
| |
| ;;
| |
| root)
| |
| #====================================================================================================================
| |
| #====================================================================================================================
| |
| # ROOT ID 0
| |
| #====================================================================================================================
| |
| #====================================================================================================================
| |
| MAC="-m mac --mac-source 00:0A:EE:55:22:2F"
| |
| MACROUTEUR="-m mac --mac-source 00:00:00:00:00:00"
| |
| RL="192.168.0.0/16"
| |
| idroot="0"
| |
| echo "!! PASSAGE EN MODE ROOT !!"
| |
| echo "!! Effacement !!"
| |
| #On efface les regles pour root
| |
| #
| |
| # On remet la police par défaut à ACCEPT
| |
| #
| |
| iptables -P INPUT ACCEPT
| |
| iptables -P FORWARD ACCEPT
| |
| iptables -P OUTPUT ACCEPT
| |
|
| |
| #
| |
| # On remet les polices par défaut pour la table NAT
| |
| #
| |
| iptables -t nat -P PREROUTING ACCEPT
| |
| iptables -t nat -P POSTROUTING ACCEPT
| |
| iptables -t nat -P OUTPUT ACCEPT
| |
|
| |
| #
| |
| # On vide (flush) toutes les règles existantes
| |
| #
| |
| iptables -F
| |
| iptables -t nat -F
| |
|
| |
| #
| |
| # Et enfin, on efface toutes les chaînes qui ne
| |
| # sont pas à defaut dans la table filter et nat
| |
|
| |
| iptables -X
| |
| iptables -t nat -X
| |
| echo "!! Chargement un moment s'il vou plaît !!"
| |
| #============================================================================================
| |
| # policy defaut
| |
| iptables -P INPUT DROP
| |
| #============================================================================================
| |
| iptables -A INPUT -m state --state NEW,ESTABLISHED,RELATED -p TCP --sport 53 -j ACCEPT
| |
| iptables -A INPUT -m state --state NEW,ESTABLISHED,RELATED -p UDP --sport 53 -j ACCEPT
| |
| iptables -A INPUT -p tcp -m multiport --source-port 135,137,138,445 $MACROUTEUR -s $RL -d $RL -j ACCEPT
| |
| iptables -A INPUT -p udp -m multiport --source-port 135,137,138,445 $MACROUTEUR -s $RL -d $RL -j ACCEPT
| |
| iptables -A INPUT -p tcp -m multiport --source-port 135,137,138,445 $MAC -s $RL -d $RL -j ACCEPT
| |
| iptables -A INPUT -p udp -m multiport --source-port 135,137,138,445 $MAC -s $RL -d $RL -j ACCEPT
| |
| iptables -A INPUT -m state --state NEW,ESTABLISHED,RELATED -p TCP --sport 22 -j ACCEPT
| |
| iptables -A INPUT -m state --state NEW,ESTABLISHED,RELATED -p TCP --sport 21 -j ACCEPT
| |
| iptables -A INPUT -p icmp -m limit --limit 16/d -j ACCEPT
| |
| iptables -A INPUT -p icmp -m state --state RELATED -j ACCEPT
| |
| iptables -A INPUT -p tcp -m multiport --source-ports 21,80,81,82,83,84,8080 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
| |
| iptables -A INPUT -p tcp -m multiport --source-port 1863,6891 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
| |
| iptables -A INPUT -p tcp --sport 443 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
| |
| iptables -A INPUT -p tcp --sport 6667 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
| |
| iptables -A INPUT -p tcp -m multiport --source-port 119,110,25 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
| |
| iptables -A INPUT $MAC -m state --state NEW,ESTABLISHED,RELATED -p TCP --sport 5900 -j ACCEPT
| |
| iptables -A INPUT -i lo -j ACCEPT
| |
| #=================================SECTION OUTPUT=============================================================
| |
| # policy defaut
| |
| iptables -P OUTPUT DROP
| |
| #===========================================================================================================
| |
| iptables -A OUTPUT -m state --state NEW -p TCP --dport 631 -j ACCEPT
| |
| iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -p TCP --dport 53 -m owner --uid-owner $idroot -j ACCEPT
| |
| iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -p UDP --dport 53 -m owner --uid-owner $idroot -j ACCEPT
| |
| iptables -A OUTPUT -p tcp -m multiport --destination-port 135,137,138,445,5900 -s $RL -d $RL -m owner --uid-owner $idroot -j ACCEPT
| |
| iptables -A OUTPUT -p udp -m multiport --destination-port 135,137,138,445,5900 -s $RL -d $RL -m owner --uid-owner $idroot -j ACCEPT
| |
| iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -p TCP --dport 22 -m owner --uid-owner $idroot -j ACCEPT
| |
| iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -p TCP --dport 21 -m owner --uid-owner $idroot -j ACCEPT
| |
| iptables -A OUTPUT -p icmp -m limit --limit 16/d -j ACCEPT
| |
| iptables -A OUTPUT -p icmp -m state --state RELATED -j ACCEPT
| |
| iptables -A OUTPUT -p tcp -m multiport --destination-port 21,80,81,82,83,84,8080 -m owner --uid-owner $idroot -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
| |
| iptables -A OUTPUT -p tcp -m multiport --destination-port 1863,6891 -m owner --uid-owner $idroot -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
| |
| iptables -A OUTPUT -p tcp --dport 443 -m owner --uid-owner $idroot -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
| |
| iptables -A OUTPUT -p tcp --dport 6667 -m owner --uid-owner $idroot -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
| |
| iptables -A OUTPUT -p tcp -m multiport --destination-port 119,110,25 -m owner --uid-owner $idroot -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
| |
| iptables -A OUTPUT -o lo -j ACCEPT
| |
| echo "!! Chargement terminer !!"
| |
| ;;
| |
| stop)
| |
| echo -n "Stopping $DESC: "
| |
| #
| |
| # On remet la police par défaut à ACCEPT
| |
| #
| |
| iptables -P INPUT ACCEPT
| |
| iptables -P FORWARD ACCEPT
| |
| iptables -P OUTPUT ACCEPT
| |
|
| |
| #
| |
| # On remet les polices par défaut pour la table NAT
| |
| #
| |
| iptables -t nat -P PREROUTING ACCEPT
| |
| iptables -t nat -P POSTROUTING ACCEPT
| |
| iptables -t nat -P OUTPUT ACCEPT
| |
|
| |
| #
| |
| # On vide (flush) toutes les règles existantes
| |
| #
| |
| iptables -F
| |
| iptables -t nat -F
| |
|
| |
| #
| |
| # Et enfin, on efface toutes les chaînes qui ne
| |
| # sont pas à defaut dans la table filter et nat
| |
|
| |
| iptables -X
| |
| iptables -t nat -X
| |
|
| |
|
| |
| echo "$NAME."
| |
| ;;
| |
| *)
| |
| N=/etc/init.d/$NAME
| |
| echo "Usage: /etc/init.d/fw {start|stop|root} " $DAEMON >&2
| |
| exit 1
| |
| ;;
| |
| esac
| |
|
| |
| exit 0
| |
|
| |
| ----
| |
| Fin du script
| |
| Voila c'es tun exemple a adapter selon vos besoin. ici j'efface les regle aux depart pour eviter par la suite de taper un /etc/ini.d/fw stop puis un /etc/ini.d/fw start!
| |
| Quand a root il ne devrai pas pouvoire sortire !!!!!
| |
|
| |
| attention eglament a la vertion d'iptables ici j'ai la vertion 1.3.5 avec les module aproprier.
| |
|
| |
| un peut de doc :)
| |
| http://www.linux-france.org/prj/inetdoc/guides
| |