Saturday, June 24, 2006

OpenBSD RAID software

Et oui, OpenBSD sait aussi faire du RAID soft.
J'ai récupéré 2 disques durs SCSI de taille identiques (mais je crois qu'un mirroir soft sous OpenBSD peut se faire également entre disques de tailles différentes en perdant, bien évidemment la surface en trop sur le plus gros disque) et j'ai fait un mirroir soft.

Les étapes successives :
1 - télécharger les sources systèmes depuis comme indiqué sur le site officiel www.openbsd.org

2 - modifier le fichier GENERIC et compiler une version del'OS avec les options :
pseudo-device raid 4 <--- il faut décommenter cette option
option RAID_AUTOCONFIG <--- il faut ajouter cette option qui n'existe pas dans le fichier

3 - créer les disk labels sur les 2 disques :
disklabel -E /dev/sd0
disklabel -E /dev/sd1
ils devront être paramétrés de manières identiques et il faut choisir "RAID" comme "FS type" en lieu et place de 4.2BSD

4 - créer des file system sur les 2 disques :
newfs /dev/sd0a && newfs /dev/sd1a

5 - créer le fichier /etc/raid0.conf du raid :
START array
1 2 0
START disks
/dev/sd0a
/dev/sd1a
START layout
128 1 1 1
START queue
fifo 100

6 - créer le raid :
raidctl -C /etc/raid0.conf raid0
raidctl -I 100 raid0
raidctl -iv raid0

7 - créer le disklabel sur le raid :
disklabel -E raid0
toujours en choisissant "RAID" comme "FS type"

8 - créer le file system sur le raid :
newfs /dev/raid0a

9 - modifier le fichier /etc/fstab pour l'automount lors du boot
mkdir /cache && chmod 777 /cache && chown _squid:_squid /cache && echo "/dev/raid0a /cache ffs rw,nodev,nosuid 1 2" >> /etc/fstab

10 - la commande "mount -a" devrait monter le nouveau file system

Le test que j'ai fait consistait à faire en sorte que mon cache Squid soit sur le volume en raid1 pour tester la fiabilité et c'est réussi.

Encore merci aux développeurs et surout ACHETER DES CDROM et des t-shirt/posters pour les soutenir et les aider à faire du code toujours aussi performant.
A+

Friday, June 23, 2006

OpenBSD wi-fi

J'oubliais : avant de me lancer dans PHP/MySQL j'ai transformé un vieux portable Compaq 64Mo de RAM avec un seul port USB (il était quand même pas si vieux que ça) en HostAP Wi-Fi.
J'ai acheté un dongle USB Linksys/Cisco :

ural0 at uhub0 port 1
ural0: Cisco-Linksys Wireless-G USB Network Adapter, rev 2.00/0.04, addr 2
ural0: MAC/BBP RT2571 (rev 0x05), RF RT2526, address 00:14:bf:75:55:e7

^--- c'est ce qu'affiche la commande "dmesg"

J'ai récupéré une vieille carte PCMCIA Ethernet 3Com.
Et j'ai tranformé cette antiquité qui n'intéressait plus personne en HostAP Wi-Fi, mais également en client pppoe et enfin en firewall avec de la translation NAT.

Face à une connexion 512Kb/s de chez Wanadoo et son modem SpeedTouch 510 avec une adresse IP dynamique, c'était tout ce qu'il y avait de convenable.
J'ai depuis repris ma config sur un PC un peu plus balaise et mon firewall s'est doté d'un cache HTTP/FTP toujours en Wi-Fi.

Que vive OpenBSD !
A+

OpenBSD PHP MySQL

Je n'en suis qu'à l'installation mais cela s'est déroulé comme pour beaucoup d'installations de packages sous openBSD : comme dans un rêve, sans problème, avec des indications pertinentes à propos es commandes à saisir post-install qui fonctionnent parfaitement. Bref, une merveille cet OS et encore mille merci aux développeurs (penser à acheter des CDROM et des t-shirts ou des posters).

export PKG_PATH=ftp://ftp.openbsd.org/pub/OpenBSD/snapshots/i386
pkg_add mysql-server

Comme il y plusieurs flavor il faut être plus précis et resaisir la commande mais il suffit de suivre les indications.
Il installe ses dépendences et vous donne les commandes à saisir post-install.
pkg_add php-core
pkg_add php-mysql

pkg_add pear-Mail <--- celui-ci pour gérer les envois de mail en SMTP pur sans avoir à passer par la commande "mail" de l'OS qui est trop restrictive.

Modifiez le fichier /etc/rc.conf.local pour le lancement automatique de Apache :
httpd_flags=-u
Le "-u" c'est pour abandonner le "chroot" (je n'ai eu qu'à créer /var/www/tmp pour rester chrooté mais j'ai pas encore tout bien testé alors A+).
Modifiez /etc/rc.local :
/usr/local/bin/mysqld_safe &
pour lancer MySQL automatiquement au boot de la machine.

Googlisez un peu pour les commandes de changement de mot de passe root et de test de bon fonctionnement et créez un fichier index.php (j'ai téléchargé un "Hello World" en PHP bien entendu) dans /var/www/htdocs et voilà !

OpenBSD c'est d'là balle, je ne vois pas pourquoi j'irais me perdre dans la jungle des Linux alors que les *BSD sont aussi sexy.
A+

OpenBSD

J'ai profité de ma semaine d'arrêt maladie (il n'y a qu'assis bien droit sur une chaise où je n'avais pas mal) pour reprendre mon Makefile sous OpenBSD.

Tout d'abord, installez OpenBSD en ayant soin de disposer de 2 interfaces réseau, une pour le LAN (votre réseau interne) et une pour l'Internet (pppoe fonctionne à merveille maintenant et sait renégocier la connexion en cas de coupure Internet due à une changement d'adresse IP par exemple).

Le but de mon fichier make est qu'après un minimum d'installation à la main de certains packages, la configuration du firewall PF, du cache DNS, du serveur de mail Postfix, du proxy HTTP, du proxy FTP, du proxy SMTP, du scan antivirus ClamAV, du scan Spamassassin soit automatisée.

Les packages minimum à installer avant de lancer le Makefile sont :
squid flavor transparent
postfix
amavisd-new
clamav
arpwatch
...

Quelques lignes de commande :
export PKG_PATH=ftp://ftp.openbsd.org/pub/OpenBSD/snapshots/i386
pkg_install postfix
De temps en temps, comme il existe plusieurs "flavors" de package, il faudra resaisir la commande en étant plus précis.
ATTENTION : pour ces 2 derniers il y aura quelques packages que l'on ne trouvera pas dans les ports (problème de license).
Il faudra télécharger le fichier ftp://ftp.openbsd.org/ports.tar.gz ou mieux utiliser un serveur FTP plus proche de vous.
Le décompresser avec la commande :
cd /usr ; tar zxf ports.tar.gz
Et chaque fois que l'installation des packages vous donne un message d'erreur du style "unarj non trouvé" il faut aller dans le répertoire :
cd /usr/ports/archives/unarj ; make && make install
Et reprendre l'installation du port qui devrait maintenant aller plus loin, jusqu'à l'installation complète.

Mon fichier "Makefile" doit se trouver dans le répertoire /root/root et là il suffit de taper la commande :
make
Le but de ce fichier est de fabriquer une arborescence sous /root/root avec les fichiers de config puis de les modifier, et enfin de les installer à leur place définitive à la place des fichiers de config par défaut. En fait, la 1ère étape de mon fichier make est de sauvegarder tous les fichiers de config d'origine en .orig.

Si ça fonctionne, vous avez une passerelle firewall avec des fonctions de proxy http/ftp/smtp et un cahe DNS.

Je dis "si ça fonctionne" mais je dirais que c'est bien avancé parceque ce fichier, je le bichonne, je le polis depuis quelques années déjà...
Je dirais même qu'il m'a aidé à déployer des passerelles Internet qui sont maintenant en production.

Prochaine étape : une interface PHP/MySQL ou SQLite pour pouvoir modifier la config (ajouter des utilisateurs au serveur de mail par exemple) et également récupérer certains logs.
Mais là c'est une autre paire de manches.
A+

ET RAPPELEZ VOUS :
achetez des CD OpenBSD avec un t-shirt, vous aiderez au développement de l'OS le plus excitant et le plus sécurisé du moment et vous aurez un beau t-shirt pour faire de la pub.
Le site FTP n'est là que pour vous permettre de bénéficier de la version plus plus up-to-date mais donnez un peu d'argent pour participer au développement !