Tuesday, August 15, 2006

installation de MySQL server depuis les ports sur OpenBSD

A la date de ce post, les packages OpenBSD ne sont pas tous utilisables avec la version current (4.0béta) d'où nécessité d'utiliser les ports.
1 - récupérez le fichier des ports :
mkdir -p /root/root/pkg ; cd /root/root/pkg
ftp
ftp://ftp.openbsd.org/pub/OpenBSD/snapshots/ports.tar.gz
2 - décompressez le fichier dans l'arborescence /usr :
(cd /usr ; tar zxf /root/root/pkg/ports.tar.gz)
3 - installation...
Certains ports s'installent sans aucune autre commande que les classiques.
par exemple :
cd /usr/ports/net/arpwatch ; make && make install
cd /usr/ports/mail/amavisd-new ; make && make install
cd /usr/ports/securite/clamav ; make && make install
d'autres disposent de plusieurs FLAVORS qu'il faut préciser.
par exemple :
cd /usr/ports/www/squid ; env FLAVOR=transparent make && env FLAVOR=transparent make install
cd /usr/ports/mail/postfix; env FLAVOR=sasl2 make && env FLAVOR=sasl2 make install

Le mécanisme d'installation par les ports se charge de gérer les dépendances.

Enfin, certains ports sont dotés de subpackages :
make show=MULTI_PACKAGES
ce qui est le cas de MySQL :
cd /usr/ports/databases/mysql
env SUBPACKAGE="-server" make
env SUBPACKAGE="-server" make install

Le packages mysql-client est une dépendance et sera installé.

Je ne sais pas pourquoi, si on ne précise pas de subpackage, seul le client est installé
ATTENTION : cette compilation, installation a été très longue sur mon PC de récup.

Faites ce qui est demandé après l'installation :
création d'un mot de passe pour l'utilisateur 'root'...

Dans /etc/rc.local :
mysqld_safe &

Et vive les développeurs d'OpenBSD et les mainteneurs de packages/ports

REMARQUE :
Sur le site officiel il est rappelé qu'il est préférable d'installer à partir des packages pré-compilés car ce sont ces mêmes packages qui sont obtenus à partir des fichiers Makefile trouvés dans l'arbre des ports.
cf
http://openbsd.org/faq/faq15.html#Ports
Ici nous avons eu besoin de compiler notre propre package mysql-server car le package trouvé à l'adresse
ftp://ftp.openbsd.org/pub/OpenBSD/snapshots/packages/i386 ne s'installait pas sur la version 4.0beta du jour.

A+

squidGuard et squid

1 - tout d'abord récupérer les sources de Berkeley db :
lynx http://dev.sleepycat.com/downloads/optreg.html?fname=db-3.2.9.tar.gz&prod=core
2 - décompressez le tarball par un :
tar zxf db-3.2.9.tar.gz
3 - (cd db-3.2.9/dist && ./configure && make && make install)
4 - récupérer les sources de squidGuard :

ftp ftp://ftp.univ-tlse1.fr/pub/reseau/cache/squidGuard/squidGuard-1.2.0.tar.gz
5 - décompressez le tarball par un :

tar zxf squidGuard-1.2.0.tar.gz
6 - (cd && ./configure --with-db=/usr/local/BerkeleyDB.3.2 && make && make install)
7 - mkdir -p /usr/local/squidGuard/log
8 - copiez le fichier de config que vous avez créé :
cp /root/root/usr/local/squidGuard/squidGuard.conf /usr/local/squidGuard/squidGuard.conf
9 - récupérez les blacklists :
ftp ftp://ftp.univ-tlse1.fr/pub/reseau/cache/squidguard_contrib/blacklists.tar.gz
A - décompressez le fichier blacklists.tar.gz :
(cd /usr/local/squidGuard && tar zxf /root/root/pkg/blacklists.tar.gz)
B - lancez la création des .db tout en vérifiant que tout se passe bien :
squidGuard -C all ; tail -f /usr/local/squidGuard/log/squidGuard.log
ATTENTION : ici une erreur dans le fichier de config sera consignée dans le log
C - chown -R _squid:_squid /usr/local/squidGuard
D - renseignez le fichier de config de squid :
redirect_program /usr/local/bin/squidGuard
dans le fichier /etc/squid/squid.conf
E - relancez squid :
squid -k reconfigure

Sunday, July 30, 2006

Quelques commandes utiles...

Ces quelques commandes pour mémoire sont utiles à connaître.
Il s'agit de commandes livrées tout en vrac et mon environnement est OpenBSD.

Démarrer Apache : apachectl start

Démarrer MySQL : mysqld_safe &

Squid doit relire son fichier de configuration : squid -k reconfigure
Arrêter Squid : squid -k shutdown <---- il est très long à s'arrêter et je pense qu'il faut lancer cette commande plusieurs fois avant de tuer tous les process fils. ATTENTION : il ne faut pas utiliser newsyslog pour archiver les log de Squid mais ce n'est pas grave car Squid lui même dispose de cette fonctionnalité en interne. Il suffit de lancer squid -k rotate pour qu'il utilise les paramètres de son fichier de configuration pour savoir quoi faire. Un simple crontab fera donc l'affaire pour lancer automatiquement la commande squid -k rotate.

Faire relire sa config à PostFix : postfix reload
PostFix dispose lui même dans son binaire tout ce qu'il faut pour relire sa config, s'arrêter, checker son fichier de configuration.
Il n'y a qu'en cas de modification de /etc/postfix/master.cf qu'il faut arrêter Postfix et le relancer ; en cas de modification de /etc/postfix/main.cf il suffit de le faire relire la conf.
Relancer Postfix en cas de modif de /etc/postfix/master.cf : postfix stop && postfix start

etc, etc, à suivre...

RoboCopy de Microsoft

Eh oui, il y a tout de même nécessité d'utiliser de temps en temps des outils de chez Bill !
La commande robocopy permet de recopier une arborescence de fichiers/répertoires dans une autre avec une foultitude de paramètres.
Ma commande à moi qui me permet de sauvegarder l'intégralité du répertoire C:\DOC vers un disque USB D:
robocopy C:\DOC D:\ /S /E /Z /COPYALL /XO /R:10 /W:30 /LOG:roboc.log /TEE /NP /X /XF *.iso *~ *.swp *.bak *.tmp *.old *.orig
Je veux exclure quelques types de fichiers et le choix se fait sur leur extension (bien évidemment si j'avais eu besoin d'utiliser des expressions régulières, je l'aurais dans l'OS).
Je veux à la fois un affichage écran et dans un fichier journal.
Pour le reste, regardez dans l'aide.
Cette commande est fournie dans le kit de ressources techniques de Windows 2003 disponible en libre téléchargement http://download.microsoft.com ou Google "resource kit windows 2003 microsoft download".

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 !

Sunday, February 12, 2006

Salut

Pour mes premiers pas avec ce blog je ne vais pas écrire grand chose seulement que j'espère avoir du temps pour poster des choses intéressantes (au moins pour moi).
À bientôt pour une suite.