Je désire intégrer dans mon firewall une liste d'adresses au format suivant
:
CSC COMPUTER SCIENCES CORP. CSC-COMP24-192-0 (NET-:12.164.192.0-12.164.192.7
ARMY HOUSING DIVISION, DAIM-FDH
ARMY-HOU13-208-128:12.165.208.128-12.165.208.255
CITY OF ELBERTON CITY-OF-53-228
(NET-12-166-228-0-:12.166.228.0-12.166.228.255
CITY OF WILLIAMSTOWN CITY-OF-25-35-128
(NET-12-169:12.169.35.128-12.169.35.159
DEPT. OF VERTERANS AFFAIRS 19D2 811 VERMONT AV NW
:12.170.154.0-12.170.155.255
Le problème est que la syntaxe d'iptables ne s'en accomode pas.
Je connais un moyen simple pour retenir uniquement la partie numérique de
l'adresse (grace à cut, en utilisant ":" comme séparateur) mais j'ignore
comment utiliser la partie "utile" pour qu'iptables construise ses règles.
Ce qui donnerait pour les deux dernières lignes quelque chose comme :
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
TiChou
Dans le message <news:40c32008$0$26917$, *François RONVAUX* tapota sur f.c.o.l.configuration :
Bonjour à tous.
Bonsoir,
Je désire intégrer dans mon firewall une liste d'adresses au format suivant :
CSC COMPUTER SCIENCES CORP. CSC-COMP24-192-0 (NET-:12.164.192.0-12.164.192.7 ARMY HOUSING DIVISION, DAIM-FDH ARMY-HOU13-208-128:12.165.208.128-12.165.208.255 CITY OF ELBERTON CITY-OF-53-228 (NET-12-166-228-0-:12.166.228.0-12.166.228.255 CITY OF WILLIAMSTOWN CITY-OF-25-35-128 (NET-12-169:12.169.35.128-12.169.35.159 DEPT. OF VERTERANS AFFAIRS 19D2 811 VERMONT AV NW :12.170.154.0-12.170.155.255
Le problème est que la syntaxe d'iptables ne s'en accomode pas. Je connais un moyen simple pour retenir uniquement la partie numérique de l'adresse (grace à cut, en utilisant ":" comme séparateur) mais j'ignore comment utiliser la partie "utile" pour qu'iptables construise ses règles. Ce qui donnerait pour les deux dernières lignes quelque chose comme :
Le but du jeu est d'extraire de cette liste l'adresse de début du bloc et l'adresse de fin du bloc, de déterminer le masque réseau correspondant et de passer en paramètre à la commande 'iptables' l'adresse de début avec le masque réseau. Soit le script suivant :
#!/bin/bash
LISTE=/chemin/liste
sed -rn 's/.*:(([0-9]+.){3}[0-9]+-([0-9]+.){3}[0-9]+).*/1/p' < $LISTE | while read do IPSTART=${REPLY%-*} IPEND=${REPLY#*-} MASK=$[0xffffffff-((((${IPEND//./<<8)+})+((((${IPSTART//./<<8)+})] MASK=$[$MASK>>24].$[$MASK>>16&0xff].$[$MASK>>8&0xff].$[$MASK&0xff]
echo iptables -A INPUT -s $IPSTART/$MASK done
Le fichier /chemin/liste contient la liste d'adresses et on remplacera la commande 'echo iptables ...' par la commande finale.
Merci d'avance aux gourous du bash :-)
De rien.
-- TiChou
Dans le message <news:40c32008$0$26917$626a14ce@news.free.fr>,
*François RONVAUX* tapota sur f.c.o.l.configuration :
Bonjour à tous.
Bonsoir,
Je désire intégrer dans mon firewall une liste d'adresses au format
suivant :
CSC COMPUTER SCIENCES CORP. CSC-COMP24-192-0
(NET-:12.164.192.0-12.164.192.7 ARMY HOUSING DIVISION, DAIM-FDH
ARMY-HOU13-208-128:12.165.208.128-12.165.208.255
CITY OF ELBERTON CITY-OF-53-228
(NET-12-166-228-0-:12.166.228.0-12.166.228.255
CITY OF WILLIAMSTOWN CITY-OF-25-35-128
(NET-12-169:12.169.35.128-12.169.35.159
DEPT. OF VERTERANS AFFAIRS 19D2 811 VERMONT AV NW
:12.170.154.0-12.170.155.255
Le problème est que la syntaxe d'iptables ne s'en accomode pas.
Je connais un moyen simple pour retenir uniquement la partie numérique de
l'adresse (grace à cut, en utilisant ":" comme séparateur) mais j'ignore
comment utiliser la partie "utile" pour qu'iptables construise ses règles.
Ce qui donnerait pour les deux dernières lignes quelque chose comme :
Le but du jeu est d'extraire de cette liste l'adresse de début du bloc et
l'adresse de fin du bloc, de déterminer le masque réseau correspondant et de
passer en paramètre à la commande 'iptables' l'adresse de début avec le
masque réseau.
Soit le script suivant :
#!/bin/bash
LISTE=/chemin/liste
sed -rn 's/.*:(([0-9]+.){3}[0-9]+-([0-9]+.){3}[0-9]+).*/1/p' < $LISTE
| while read
do
IPSTART=${REPLY%-*}
IPEND=${REPLY#*-}
MASK=$[0xffffffff-((((${IPEND//./<<8)+})+((((${IPSTART//./<<8)+})]
MASK=$[$MASK>>24].$[$MASK>>16&0xff].$[$MASK>>8&0xff].$[$MASK&0xff]
echo iptables -A INPUT -s $IPSTART/$MASK
done
Le fichier /chemin/liste contient la liste d'adresses et on remplacera la
commande 'echo iptables ...' par la commande finale.
Dans le message <news:40c32008$0$26917$, *François RONVAUX* tapota sur f.c.o.l.configuration :
Bonjour à tous.
Bonsoir,
Je désire intégrer dans mon firewall une liste d'adresses au format suivant :
CSC COMPUTER SCIENCES CORP. CSC-COMP24-192-0 (NET-:12.164.192.0-12.164.192.7 ARMY HOUSING DIVISION, DAIM-FDH ARMY-HOU13-208-128:12.165.208.128-12.165.208.255 CITY OF ELBERTON CITY-OF-53-228 (NET-12-166-228-0-:12.166.228.0-12.166.228.255 CITY OF WILLIAMSTOWN CITY-OF-25-35-128 (NET-12-169:12.169.35.128-12.169.35.159 DEPT. OF VERTERANS AFFAIRS 19D2 811 VERMONT AV NW :12.170.154.0-12.170.155.255
Le problème est que la syntaxe d'iptables ne s'en accomode pas. Je connais un moyen simple pour retenir uniquement la partie numérique de l'adresse (grace à cut, en utilisant ":" comme séparateur) mais j'ignore comment utiliser la partie "utile" pour qu'iptables construise ses règles. Ce qui donnerait pour les deux dernières lignes quelque chose comme :
Le but du jeu est d'extraire de cette liste l'adresse de début du bloc et l'adresse de fin du bloc, de déterminer le masque réseau correspondant et de passer en paramètre à la commande 'iptables' l'adresse de début avec le masque réseau. Soit le script suivant :
#!/bin/bash
LISTE=/chemin/liste
sed -rn 's/.*:(([0-9]+.){3}[0-9]+-([0-9]+.){3}[0-9]+).*/1/p' < $LISTE | while read do IPSTART=${REPLY%-*} IPEND=${REPLY#*-} MASK=$[0xffffffff-((((${IPEND//./<<8)+})+((((${IPSTART//./<<8)+})] MASK=$[$MASK>>24].$[$MASK>>16&0xff].$[$MASK>>8&0xff].$[$MASK&0xff]
echo iptables -A INPUT -s $IPSTART/$MASK done
Le fichier /chemin/liste contient la liste d'adresses et on remplacera la commande 'echo iptables ...' par la commande finale.
Merci d'avance aux gourous du bash :-)
De rien.
-- TiChou
François RONVAUX
"TiChou" a écrit dans le message de news:
sed -rn 's/.*:(([0-9]+.){3}[0-9]+-([0-9]+.){3}[0-9]+).*/1/p' < $LISTE | while read do IPSTART=${REPLY%-*} IPEND=${REPLY#*-} MASK=$[0xffffffff-((((${IPEND//./<<8)+})+((((${IPSTART//./<<8)+})] MASK=$[$MASK>>24].$[$MASK>>16&0xff].$[$MASK>>8&0xff].$[$MASK&0xff]
echo iptables -A INPUT -s $IPSTART/$MASK done
Argh ! J'ai rien comprendu mais ça à l'air de marcher.
Un GRAND merci :-)
PS : c'est fort Linux :-)
"TiChou" <gro.uohcit@uohcit> a écrit dans le message de
news:polom.20040606183050@florizarre.tichou.org...
sed -rn 's/.*:(([0-9]+.){3}[0-9]+-([0-9]+.){3}[0-9]+).*/1/p' < $LISTE
| while read
do
IPSTART=${REPLY%-*}
IPEND=${REPLY#*-}
MASK=$[0xffffffff-((((${IPEND//./<<8)+})+((((${IPSTART//./<<8)+})]
MASK=$[$MASK>>24].$[$MASK>>16&0xff].$[$MASK>>8&0xff].$[$MASK&0xff]
echo iptables -A INPUT -s $IPSTART/$MASK
done
Argh !
J'ai rien comprendu mais ça à l'air de marcher.
sed -rn 's/.*:(([0-9]+.){3}[0-9]+-([0-9]+.){3}[0-9]+).*/1/p' < $LISTE | while read do IPSTART=${REPLY%-*} IPEND=${REPLY#*-} MASK=$[0xffffffff-((((${IPEND//./<<8)+})+((((${IPSTART//./<<8)+})] MASK=$[$MASK>>24].$[$MASK>>16&0xff].$[$MASK>>8&0xff].$[$MASK&0xff]
echo iptables -A INPUT -s $IPSTART/$MASK done
Argh ! J'ai rien comprendu mais ça à l'air de marcher.