Archive for octobre 9th, 2010

GIP – Calculateur de protocole internet – dimensionner son réseau IPV4

GIP, un utilitaire qu'il est bon de connaître pour determiner sa topologie réseau IPV4 sous GNU/Linux est gip :

Capture GIP

GIP permet de calculer simplement les éléments composant son réseau, en determinant la classe, le masque de sous-reseau, et la plage IP adaptée aux besoins.

Determiner des tranches adaptées permet d'affecter un routage adapté à votre réseau, spécialement dans le cas d'installations multi-sites ! En effet, pour supporter le routage, comme par exemple au travers de VPN, il est nécessaire que les différents sites ne soient pas sur le même sous réseau, ceci afin de déterminer des routes par défaut pour chaque sous-reseau cible.

Ainsi, les passerelles, ou les machines avec les routes enregistrées seront capable de communiquer simplement au travers d'un VPN, via des routeurs/passerelles.

Petit rappel, l'utilisation des classes IP est normalisée, et on ne peut utiliser que des classes "privées" pour un usage local. En utilisant une classe publique, votre réseau "masquerait" toute une partie du net, laquelle serait alors inaccessible.

Les classes privées sont :
10.0.0.0/8 (Classe A)
172.16.0.0/12 (Classe B)
192.168.0.0/16 (Classe C)

Plus d'informations ici :
http://fr.wikipedia.org/wiki/Adresse_IP#IPv4
http://www.commentcamarche.net/contents/internet/ip.php3#adresses-ip-reservees
http://code.google.com/p/gip/

Loading

Tags: , , , , , , , ,

samedi, octobre 9th, 2010 GNU - Linux, Technologie Aucun commentaire

Rechercher un fichier sous GNU-Linux, la commande FIND, et autre

Il peut faire peur (find), alors que l'outil est fantastique, et finalement assez simple !

De base sous GNU/Linux, vous disposez de plusieurs outils pour retrouver des fichiers ou programmes. On connait "whereis" qui permet de trouver l'emplacement d'un programme, son source si présent, et le manuel associé, par exemple :

[bash]whereis whois[/bash]

Mais ceci ne permet pas de chercher des fichiers spécifiques. Vous disposez ensuite de "locate" qui permet de chercher dans la liste des fichiers indexés par "updatedb" (mlocate), dont les chemins sont configurés généralement dans /etc/updatedb.conf, exemple :

[bash]locate mon_fichier.txt[/bash]

Si des fichiers contenant la chaine dans leurs noms sont indéxés alors ils apparaîtront. Si vous voulez effectuer la recherche sur la base la plus récente possible, il suffit de mettre à jour en lançant la commande à la main :
[bash]sudo updatedb[/bash]
(peut prendre du temps si votre disque contient beaucoup de fichiers !)

Mais revenons au sujet qui nous interesse, la commande find. Jusqu'ici  nous avons vu des outils de recherche limités, ou conditionné par une indexation. La commande find permet de lancer une recherche n'importe où, plus ou moins approfondie.

Par exemple, je veux chercher dans le dossier courant tous les fichiers et dossiers contenant "tableau", voici la commande :
[bash]find ./ -name ‘*tableau*'[/bash]
Voilà qui est fait !

Si je ne suis pas dans le dossier qui m'interesse, je peux aussi lancer la recherche comme ceci :
[bash]find /home/user/ -name ‘*tableau*'[/bash]

Très simple non ?
Allons un peu plus loin, je veux maintenant chercher tous les fichiers finissant par .php qui contiennent la chaine "Content-Transfer-Encoding: 8bit" :
[bash]find ./ -name ‘*.php’|xargs grep "Content-Transfer-Encoding: 8bit"[/bash]

Ca peut être très utile !

Autre exemple avec find et la commande associée, je souhaite trouver tous les dossiers vides, et les supprimer :
[bash]find ./ -depth -type d -empty -exec rmdir {} \;[/bash]
ou simplement chercher tous les dossiers vides (ici dans le home de user) :
[bash]find /home/user/ -empty -type d[/bash]

Autre possibilité, trouver les fichiers uniquement contenus dans un seul et même dossier, et n'afficher QUE le nom du fichier sans les "slash" autour :
[bash]find /home/user/dossier/ -maxdepth 1 -type f -exec /bin/basename {} \;[/bash]

On va finir ce post avec deux autres exemples bien utiles à mon sens, dabord compter le nombre de fichiers dans une arborescence en combinant la commande avec wc:
[bash]find ./ -type f|wc -l[/bash]
et enfin, la possibilité de chercher par date, avec par exemple, tous les fichiers modifiés il y a 2 jours :
[bash]find /home/user/ -mtime 2 -type f[/bash]
ou tous mes fichiers modifiés ce jour :
[bash]find $HOME -mtime 0[/bash]

Voilààà! pour plus d'info : man find
En espérant que ça puisse vous être utile.

Loading

Tags: , , , , , , , ,

samedi, octobre 9th, 2010 GNU - Linux, Technologie 2 Comments

Firewall iptables : Rediriger un port vers un autre

Pour plusieurs raisons, on peut avoir besoin de rediriger un port vers un autre, pour permettre par exemple, d'acceder à un service sur plusieurs ports sans avoir à changer la configuration du service.

Ici je veux permettre l'utilisation du smtp (port 25, sur le port 26) :

Dabord, autoriser la connexion au port voulu :
en tcp :
[bash]iptables -A INPUT -p tcp –dport 26 -j ACCEPT[/bash]
en udp :
[bash]iptables -A INPUT -p udp –dport 26 -j ACCEPT[/bash]

Puis rediriger le port vers celui du service concerné (ici le SMTP 25) :
[bash]iptables -t nat -A PREROUTING -i eth0 -p tcp –dport 26 -j REDIRECT –to-port 25
iptables -t nat -A PREROUTING -i eth0 -p udp –dport 26 -j REDIRECT –to-port 25[/bash]

Et voilà ! Tout le traffic arrivant sur le port 26 sera renvoyé en local sur le 25. On pourra ainsi contourner un blocage du port 25 chez certains opérateurs pour l'envoi des mails, en utilisant le port 26.

Ensuite, par exemple, nous avons une machine sur notre reseau qui heberge un serveur web (port 80), et on souhaite rediriger tout le traffic du port 80 vers cette machine. Voici la règle qui permet de faire ça :
Autoriser les connexions au port voulu (sur la machine frontale) :
[bash]iptables -A INPUT -p tcp –dport 80 -j ACCEPT[/bash]
Interception de tous les paquets entrant sur eth0, et on les renvoie sur 192.168.1.2 :
[bash]iptables -t nat -A PREROUTING -j DNAT -i eth0 -p tcp –dport 80 –to-destination 192.168.1.2[/bash]
Traitement des réponses et masquage des paquets de la machine interne, comme etant emis de la notre :
[bash]iptables -t nat -A POSTROUTING -j MASQUERADE -o eth0 -p tcp –dport 80 -d 192.168.1.2[/bash]

Sources et références :

http://www.debian-administration.org/articles/73
http://aide.sivit.fr/index.php?2007/04/04/172-redirection-de-ports-avec-iptables
http://www.cyberciti.biz/faq/linux-port-redirection-with-iptables/
http://www.go2linux.org/iptables-port-26-redirection-accept-email-on-another-port
http://www.lea-linux.org/documentations/index.php/Reseau-secu-iptables

Loading

Tags: , , , , , , , , ,

samedi, octobre 9th, 2010 GNU - Linux, Paranoïa, Technologie 4 Comments