LPI 101

2007-01-31 22:59:10

J'ai passé l'examen pour la certification LPI 101 aujourd'hui.

Commenter (0)

Par yansanmo

Section:

Une image vaut milles mots

2007-01-23 20:10:40

Aujourd'hui, je devais configurer un serveur en arrière d'un firewall (linux/debian). J'avais prévu un petit plan des étapes à faire. Puisque le serveur est protégé par un serveur-pare-feu, je devais ajouter une règle de "Destination NAT" ou DNAT au logiciel firewall de linux: iptables. J'ai cherché, cherché, cherché et je n'arrivais pas à trouver la raison pourquoi ma règle de DNAT ne fonctionnait pas. Admettons que j'avais une configuration comme celle-ci: INTERNET -> FIREWALL -> SERVEUR. J'étais capable de passer d'internet à firewall et de firewall à serveur, mais pas d'internet à serveur. J'ai essayé d'utiliser tcpdump port XXXX et netcat pour faire des tests. Ça n'a pas trop aidé.

Enfin, vers la fin de la journée, j'ai lu une documentation sur iptables qui indiquait que les paquets envoyés à la table de PREROUTING étaient "filtrés" par la suite. Ce qui veut dire que les paquets passaient effectivement d'internet au firewall, mais étaient bloqués lorsqu'il transférait les paquets au serveur interne (transférer = FORWARD). Donc, j'ai réalisé ce chemin 1. ils vont dans le PREROUTING, 2. ensuite le routing (route -n), 3. ils sont filtrés par INPUT (interface locale) ou FORWARD (interface externe). Dans mon idée, il n'y avait que 1. "PREROUTING" et 2. "routing". Puisque les paquets étaient redirigés vers un autre serveur, je croyais qu'il n'y avait pas de filtrage par la suite. J'avais tord. Finalement, mon ami, a cherché sur google images "iptables" et tout c'est éclairci. Voici un exemple de schéma qui explique le cheminement des paquets sur linux 2.6.

J'ai testé par la suite, en ajoutant la règle dans la section FORWARD et tout fonctionnait parfaitement comme prévu. Donc, si vous voulez faire du DNAT, pensez à FORWARD/INPUT!

# Voici un exemple de règles iptables
# je permet à l'adresse source 192.168.1.10 de se connecter 
# via l'interface eth0, protocole udp 
# à mon firewall et je redirige vers 10.0.0.2
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 12345 -s 192.168.1.10 -j DNAT --to 10.0.0.2
# Je permet de forwarder le paquet à mon serveur 10.0.0.2
# noter que seulement l'ip de destination (-d) a été modifiée
iptables -A FORWARD -i eth0 -p udp --dport 12345 -s 192.168.1.10 -d 10.0.0.2 -j ACCEPT

Concernant netcat, si vous voulez faire un client et un serveur udp, voici la syntaxe:

# clients udp: netcat -u ip_du_serveur port_du_serveur
netcat -u 10.0.0.2 12345

# serveur udp: netcat -u -l -s ip_du_serveur -p port_du_serveur
netcat -u -l -s 10.0.0.2 -p 12345

Ça m'a pris ben du temps avant de comprendre que les options -s et -p étaient obligatoires pour créer un serveur!

Commenter (0)

Par yansanmo

Section:

Nouveautés pour mon projet GenList

2007-01-08 00:01:25

Voici des nouveautés pour mon projet GenList : un générateur de liste pour PHP/MySQL/XHTML.

  • Nouvelle interface pour les renseignements globaux (base de données)
  • Onglet pour plusieurs tables/liste
  • Ajout de la colonne "FOREIGN KEY" avec la syntaxe nomTable.nomChamp
  • Amélioration de l'analyse des champs pour les mots-clés NULL, NOT NULL et DEFAULT.
  • Comprend la syntaxe "REFERENCES nomTable (nomChamp)".
  • Librairies externes pour des classes avec héritages et pour une fonction d'affichage de balises SELECT.
  • Permet une abstraction de premier niveau pour la classe (fichier clsAbstractList.php) et la base de données (fichier dbConnection.php).
  • Générateur de diagrammes et de relations. On peut tracer des relations entre PK et FK. Utilisation: 1. ajouter deux tables dans le diagrammes, 2. cliquer (sans relâcher) sur le texte PK d'une table, bouger la souris jusqu'au texte "FK" d'une autre table, relâcher la souris. 3. Afficher l'onglet de la table avec la clé étrangère. 4. Cliquer sur "Générer".
  • Nouvelle interface pour le chargement de requêtes CREATE TABLE. Permet aussi de charger plusieurs tables dans plusieurs onglets.

Ce que je prévois améliorer:

  • Corriger le problème de recharger un diagramme (les liens sont perdus)
  • Charger les liens (clés étrangères) dans le diagramme à partir du formulaire
  • Permette d'exporter les énoncés CREATE TABLE de tous les onglets dans un textarea.

Le projet avance assez bien à mon goût...

Commenter (0)

Par yansanmo

Section:

Extraction ODS : OpenDocument Spreadsheet

2006-12-13 23:53:02

Je me suis lancé un petit défi de convertir un fichier ods (OpenDocument) en base de données MySQL + pages PHP. Voici les étapes:

  1. Ouvrir et extraire les données du fichier ods
  2. Créer la(les) table(s) relationnelle(s) SQL
  3. Créer les requêtes SQL avec les données et les exécuter
  4. Construire l'interface PHP pour les modifier avec mon générateur
  5. Modifier mon générateur pour ajouter de nouvelles fonctionnalités selon celle que j'ai besoin.
  6. Utiliser.

C'est un projet à long terme, mais j'ai déjà fait mon premier test pour l'étape #1.

Commenter (0)

Par yansanmo

Section:

Les non-dits de PHP5

2006-12-09 23:04:56

PHP5 indique que les objets sont détruits (la fonction __destruct() est appelée) lorsqu'il n'existe plus de références à un objet. Sauf que ça ne fonctionne plus vraiment dans PHP 5.2. En fait, on se retrouve avec des questions fondamentales qui date de l'orienté-objet et même avant avec les allocations/désallocations de mémoire. Quand détruire un objet?

On peut les détruire lorsqu'il n'existe plus de références à l'objet, mais il faut préciser ce qu'est une référence, les compter, décrémenter leur nombre, c'est énormément de travail pour le langage. On peut les détruire en ordre de construction, on peut les détruire en ordre inverse de construction. On peut les détruire aléatoirement. Dans la documentation de PHP, on dit lorsqu'il n'existe pas de références. Cependant, une référence d'un objet avec "global" dans un destructeur, on en fait quoi? Dans PHP5.2, on en tient pas compte. Donc, l'objet va être supprimer à un moment presque indéterminé. En fait pas indéterminé, déterminé par la version de votre PHP. En PHP 5.0, 5.1, c'est en ordre de construction, en PHP 5.2 c'est en ordre inverse de construction.

Tout ça pour dire que plusieurs scripts qui utilisent __destruct risque de ne plus fonctionner. Par exemple, Wordpress.

Ah les non-dits, un autre problème de communications, documentation...

D'un autre côté, si on y pense, la destruction des objets est compliqué en programmation. Imaginez dans la vraie vie. Moi je dis qu'on devrait faire des scripts qui ne se terminent pas et qui recyclent leur objets. À quand la programmation verte?

Commenter (0)

Par yansanmo

Section:

Pourquoi ça marche pas?

2006-12-09 12:59:29

mount -t ext3 /dev/hdc1 /mnt/c1: Unable to mount hdc1. lsof n'indique aucun fichier, /mnt/c1 est un nouveau répertoire. Je suis présentement sur le / (seul usager connecté sur la machine). fsck -f /dev/hdc1 est crrect, fdisk /dev/hdc est correct. mkfs.ext3 /dev/hdc1 est correct.

1. Google: disk busy to mount another device
http://www.google.ca/search?q=disk+busy+to+mount+another+device&hl=en&lr=&safe=off&client=firefox-a&rls=org.mozilla:fr:official&start=10&sa=N
2. 10e lien
http://www.debianhelp.org/node/1296
3. 1er lien dans les commentaires (solutions):
http://www.linuxquestions.org/questions/showthread.php?t=251293
4. erreur qui a donné l'intuition "kernel: device-mapper: dm-linear: Device lookup failed"
5. Google: device-mapper: dm-linear: Device lookup failed
http://www.google.ca/search?q=device-mapper%3A+dm-linear%3A+Device+lookup+failed&start=0&ie=utf-8&oe=utf-8&client=firefox-a&rls=org.mozilla:fr:official
6. 5e lien:
http://bugs.centos.org/view.php?id=1050
7. indique qu'il a enlevé dmraid

Donc, j'enlève le dmraid, je reboote, et voilà, plus d'erreur.

Commenter (0)

Par yansanmo

Section:

Serveur de FACIL surmené

2006-12-01 23:38:50

Après la panne du DNS interne de FACIL, c'est maintenant à la connexion de tomber, à moins que ça soit les deux serveurs DNS principaux, qui sait?

Hum... pas de jabber pour quelques temps...

Commenter (0)

Par yansanmo

Section:

Party SQIL 2006 à Montréal

2006-11-18 18:41:11

Bon, moi j'y vais, au party de la SQIL (de 20h à midi demain). Et vous, vous y allez?

Commenter (1)

Par yansanmo

Section:

⇐ Précédente Suivante ⇒