Administration de mon serveur Samba (2/2)

Suite et fin de mes aventures avec Samba.

Une fois l’identification des users faite sur mysql, il me reste à mettre à jour la base de mots de passe de samba. Je rappelle que lors d’une mise à jour du mot de passe unix (voir mes posts précédents), le mot de passe samba n’est mis à jour que quand l’utilisateur se logge. Ce qui ne correspond pas à mon application, mes utilisateurs ne se loggent pas.

Par conséquent, il est nécessaire de faire la mise à jour de la base de mots de passe samba par un autre moyen. J’ai décidé, à regret, de faire un cron sur la liste (pas longue) de mes utilisateurs. Voici mon scripts et les explications associées:
-Le script prend en paramètre un fichier de connexion à la base mysql où sont stockés les users. Ce fichier est sensible, il faut par conséquent restreindre les droits à root seulement.
-Le format de ce fichier est le suivant:

USER=monuser
PASS=sonmotdepass
USERDB=systemdb
UTABLE=usertable

-Le principe de ce script est de passer la commande smbpasswd pour tous les utilisateurs listés dans la base mysql. Cette commande met à jour les mots de passe de la base samba. J’utilise l’option -s qui permet de passer le mot de passe et sa confirmation par stdin.
Je passe la commande comme ceci:

(echo motdepasse; echo motdepasse) | smbpasswd -s -a leuser

Pour la périodicité du cron associé, il ne vous reste qu’à choisir sa fréquence et d’avertir les utilisateurs du service.
Si vous avez mieux…

Posted in admin, samba | Leave a comment

Petit tip samba avec libpam-smbpass

Dans la suite de mon post sur libpam-smbpass, je note qu’il est important d’utiliser le backend samba tdbsam, et par conséquent, d’avoir l’option dans /etc/samba/smb.conf.

passdb backend = tdbsam

Pourquoi? Parce si ce n’est pas le cas, vous utilisez le back-end avec fichier smbpasswd, qui ne gère pas bien l’effacement des users en base. Je rappelle que libpam-smbpass permet de synchroniser les users unix et samba. Par conséquent, si vous effacez un compte unix, vous espérez qu’il soit aussi effacé en base samba. Avec smbpasswd, ce n’est pas le cas, il faut le supprimer ensuite soi-même et, c’est là que la mini-catastrophe se produit:

smbpasswd -x monuser

vous dit que monuser n’est pas un user unix et que la base est corrumpue. Il faut alors recréer le compte unix, passer la commande smbpasswd -x mon user et effacer le compte unix à nouveau.
Avec tdbsam, à la suppression du user unix, la suppression du user samba est effective.

Posted in admin, samba | Leave a comment

Administration de mon serveur Samba (Etape 1/2)

A titre de rappel, j’ai une série de bases mysql qui stockent les utilisateurs de certaines applications, ces bases sont synchronisées par des triggers mysql. Je cherche depuis hier à mettre en place un serveur samba dont les users seraient provisionnés à partir de la base mysql centrale de mon système. Mes utilisateurs ne se loggent pas sur la machine en tant qu’utilisateurs unix, mais comme requis par samba, il doivent être vus comme des utisateurs unix. J’ai donc décidé, après de longues recherches sur google, dans les codes de certaines applications, d’aller au plus simple:

-Mes utilisateurs unix seront des utilisateurs virtuels, je vais utiliser libnss-mysql pour les gérer, ce qui me permettra de les synchroniser facilement avec mes triggers mysql. (Etape 1)

-Mes utilisateurs samba (les mêmes en fait) seront gérés par le backend tbdsam, backend par défaut de samba. Il me faudra une passerelle de ma base mysql vers ma base samba. Je ne suis pas encore fixé sur ce fonctionnement, mais je vois mal comment je vais pouvoir éviter le polling sur un changement de champs mysql par un cron.(Etape 2)

Etape 1: gestion des comptes unix par mysql

On trouve de nombreux posts d’autres bloggers sur ce sujet, et j’ai dû prendre un peu partout pour faire fonctionner le tout sur mon serveur debian, en lenny.

Voici ma démarche:

  • Installation de libnss-mysql et de libpam-mysql
apt-get install libnss-mysql libpam-mysql

Et non libnss-mysql-bg. Il y a confusion dans debian sur le package.

  •  Configuration de /etc/nsswitch.conf

Par défaut, nss est configuré pour utiliser /etc/passwd et /etc/shadow pour faire l’authentification et l’autorisation. Le principe dans notre cas consiste non pas à remplacer cela par mysql, mais à compléter la possibilité d’utiliser mysql. Ce qui signifiera qu’on pourra utiliser les deux, d’abord, le mode fichier, par exemple pour les comptes systèmes, puis mysql pour les autres. Pour se faire, il faut avoir un fichier /etc/nsswitch.conf comme celui-ci:

passwd:         compat mysql

group:          compat mysql

shadow:         compat mysql

hosts:          files dns

networks:       files

protocols:      db files

services:       db files

ethers:         db files

rpc:            db files

netgroup:       nis

Dans certains cas, le “compat”, décrivant le mode d’utilisation par fichier peut être remplacé par “files”.

  • configuration de /etc/nss-mysql.conf et de /etc/nns-mysql-root.conf

La conf de libnss-mysql se fait pas ces deux fichiers, le premier pour les comptes et le deuxième pour shadow. On décrit simplement le moyen d’accéder à la base mysql qu’on va utiliser (host, dbname, user, password, table et correspondance de champs). Les deux sont basés sur le même principe. La syntaxe est assez explicite et bien expliquée dans les commentaires (au moins pour debian).

Attention,  /etc/nss-mysql-root.conf ne doit être lisible que par root, donc

chmod 400 /etc/nss-mysql-root.conf
  • configuration de pam

On ne touche qu’aux fichiers communs aux services d’autorisation (common-auth, common-password, common-session, common-account). De la même façon qu’on a configuré nss, on va configurer les moyens d’accès par pam en fonction du besoin

/etc/pam.d/common-auth :

account    sufficient        pam_unix.so nullok_secure

account    required        pam_mysql.so user=monuser passwd=xxxxxxx host=localhost db=nss_mysql table=user usercolumn=user.user_name

/etc/pam.d/common-passwd :

password   sufficient   pam_unix.so nullok obscure min=5 max=12 md5

password    required      pam_mysql.so nullok user=root passwd=bullit host=localhost db=nss_mysql table=user usercolumn=user.user_name passwdcolumn=user.password crypt=1

Le crypt = 1, signifie que le mot de passe sera encrypté dans le base mysql. Pour qu’il soit en clair (à éviter, bien entendu), c’est crypt=0. Pour débugger, c’est plus pratique.

/etc/pam.d/comm-account

auth    sufficient        pam_unix.so nullok_secure

auth    required        pam_mysql.so user=root passwd=bullit host=localhost db=nss_mysql table=user usercolumn=user.user_name passwdcolumn=user.password crypt=1

Et le dernier
/etc/pam.d/common-session :

session    sufficient        pam_unix.so nullok_secure

session    required        pam_mysql.so user=root passwd=bullit host=localhost db=nss_mysql table=user usercolumn=user.user_name
  • Il est maintenant temps de créer la base mysql.
create database nss_mysql;

USE nss_mysql;DROP TABLE IF EXISTS groups;

CREATE TABLE groups (

group_id int(11) NOT NULL auto_increment primary key,

group_name varchar(30) DEFAULT '' NOT NULL,

status        char(1) DEFAULT 'A',

group_password varchar(64) DEFAULT 'x' NOT NULL,

gid int(11) NOT NULL

);

DROP TABLE IF EXISTS user;

CREATE TABLE user (

user_id int(11) NOT NULL auto_increment primary key,

user_name varchar(50) DEFAULT '' NOT NULL,

realname varchar(32) DEFAULT '' NOT NULL,

shell varchar(20) DEFAULT '/bin/sh' NOT NULL,

password varchar(40) DEFAULT '' NOT NULL,

status char(1) DEFAULT 'N' NOT NULL,

uid int(11) NOT NULL,

gid int(11) DEFAULT '65534' NOT NULL,

homedir varchar(32) DEFAULT '/tmp' NOT NULL,

lastchange varchar(50) NOT NULL default '',

min int(11) NOT NULL default '0',

max int(11) NOT NULL default '0',

warn int(11) NOT NULL default '7',

inact int(11) NOT NULL default '-1',

expire int(11) NOT NULL default '-1'

);

DROP TABLE IF EXISTS user_group;

CREATE TABLE user_group (

  user_id int(11) DEFAULT '0' NOT NULL,

  group_id int(11) DEFAULT '0' NOT NULL

);

Attention, le mot de passe doit être crypté (rappelez-vous le crypt=1), donc pour importer les utilisateurs, il est nécessaire d’utiliser la fontion interne à mysql encrypt().

  • Il est maintenant temps de provisionner ses users pour faire des premiers tests.

Les outils pour débugger ont été les suivants:

-Activation des logs mysql pour tracer les requêtes. Ne pas oublier de les désactiver car les performances de mysql sont très impactées par l’activation des logs.

-/var/log/auth.log où les erreurs de libnss-mysql m’ont permis de naviguer à plusieurs reprises dans le fichier shadow.c de celle-ci.

  • Dernier point, après les tests, je change le shell par défaut de mes users en /bin/false, car je rappelle que ce sont des utilisateurs virtuels qui ne se loggeront pas.

A bientôt pour l’étape 2.

PS:
Mes références pour ce sujet (et je les en remercie)
-http://www.spencerstirling.com/computergeek/mysqluser.html

-http://www.cavecanen.org/linux/nssmysql.php

-http://wiki.druidesmetal.org/doku.php?id=pam-mysql (Que j’ai trouvé bien trop tard, malheureusement…)

Posted in admin, mysql, samba | Leave a comment

En recherche d’une solution d’administration décente pour un serveur samba

Dans la suite de mon article précédent, je suis confronté à un problème d’administration d’un serveur samba que je vous présente ici.

J’utilise plusieurs bases mysql qui gèrent des comptes utilisateurs de différentes applications. Les utilisateurs étant communs aux différents projets, j’utilise donc des triggers mysql pour modifier les comptes de l’une à l’autre des bases. A l’ensemble de ce projet, je cherche à installer un serveur samba pour lequel, dans le même esprit, je veux pouvoir provisionner les utilisateurs samba depuis la base mysql de mon application centrale.

Il y a bien longtemps que le monde du libre ne m’offre pas de solutions servies sur un plateau, mais là, je dois reconnaître que je tourne un peu en rond:

-Samba a supprimé son backend mysql, en raison du manque de mainteneur. Cela m’aurait permis de synchroniser les bases de la même façon.

-La synchronisation des comptes unix (que je pourrais gérer en mysql) et samba, comme expliquée dans mon post précédent, n’est pas satisfaisante pour être “industrialisée”, puisqu’elle nécessite que l’utilisateur se logge après avoir changé son mot de passe unix pour qu’il soit pris en compte dans la base smb.

A moins que google ait gardé un secret, je n’ai pas l’impression de pouvoir trouver une solution intéressante, qui ne soit pas un bricolage immonde et j’en arrive à la conclusion que samba, malgré le large spectre de fonctionnalités et de paramétrage, n’est pas un outil particulièrement bien adapté à un univers de production administré en souplesse.

Si quelqu’un lit ces lignes et a une solution, je suis preneur…

Posted in admin, mysql, samba | 3 Comments

Petite installation d’un serveur samba avec authentification unix

J’ai eu le besoin de configurer un serveur samba pour des utilisateurs linux et windows, mais je n’arrive pas à trouver de solution d’administration satisfaisante. Le serveur de partage est hébergé sur un serveur debian.
Tout d’abord, rappelons que samba est une implémentation unix du partage de fichier au format NTFS de windows. Il permet de mettre à disposition des fichiers sur un réseau pour tous les utilisateurs d’un lan, avec une gestion des droits assez fine. J’ai personnellement une nette préférence pour NFS, mais bien entendu, NFS n’est pas disponible pour les utlisateurs windows.

Pour l’installer, pas de soucis:

apt-get install samba samba-common

Le fichier de configuration est /etc/samba/smb.conf . Le fichier d’installation de base de debian est une mine d’information.

Les aspects de sécurité sont importants dans l’installation d’un montage Samba.

-Les users autorisés à se connecter sont des utilisateurs unix du serveurs
-Leurs mots de passe (unix et samba) sont synchronisés dans le sens unix vers samba. Toutefois l’implémentation que j’ai de cette synchronisation a un défaut majeur qui la rend selon presque inutilisable. Nous verrons cela plus bas.

-On restreint les interfaces en écoute et on met des iptables pour restreindre l’accés à certains ports (ceux de nmbd et smbd, les démons utilisés).

Je vous donne ici les seuls paramètres que j’ai changés par rapport au smb.conf d’origine:

# interfaces sur laquelle tourne le serveur samba
interfaces = 192.168.3.0/24
# bind seulement sur les interfaces ci-dessus
bind interfaces only = yes
# tout utilisateur samba doit être un utilisateur unix
security = user
# le home de root ne peut pas être un partage et root ne peut pas se connecter
invalid users = root
# le nombre max de partages utilisateurs
usershare max shares = 10

Ce qui nous donne:

[global]
workgroup = WORKGROUP
server string = %h server
;   wins server = w.x.y.z
dns proxy = no
;   name resolve order = lmhosts host wins bcast
interfaces = 192.168.3.0/24
bind interfaces only = yes
log file = /var/log/samba/log.%m
max log size = 1000
syslog = 0
panic action = /usr/share/samba/panic-action %d
security = user
invalid users = root
encrypt passwords = true
passdb backend = tdbsam
obey pam restrictions = yes
unix password sync = yes
passwd program = /usr/bin/passwd %u
passwd chat = *Entersnews*spassword:* %nn *Retypesnews*spassword:* %nn *passwordsupdatedssuccessfully* .
pam password change = no
usershare max shares = 10
[homes]
comment = Home Directories
browseable = no
read only = no
create mask = 0700
directory mask = 0700
valid users = %S
donne pour le fichier dans son ensemble:

Afin de pouvoir synchroniser les mots de passe, j’ai besoin de libpam-smbpass :

apt-get install libpam-smbpass

Afin de pouvoir utiliser ce module PAM pour synchroniser les users, j’ai besoin de modifier les fichiers suivants:
/etc/pam.d/common-password

password   required   pam_unix.so nullok obscure md5
password   required   pam_smbpass.so nullok use_authtok try_first_pass

/etc/pam.d/common-auth

auth    required        pam_unix.so nullok_secure
auth    optional        pam_smbpass.so migrate

Ce dernier, par l’option migrate, permet de modifier (et créer) les utilisateurs samba quand on modifie le mot de passe par passwd. La restriction que j’exprimais est que le mot de passe n’est effectivement changé en base smb que quand l’utilisateur se sera loggé sur son compte par mot de passe. Ceci est particulièrement contraignant dans l’administration du système au quotidien et je suis à la recherche d’autres solutions.

Par conséquent pour activer un compte blah:

$useradd -m blah
$passwd blah

Attention pour être en base smb, le user doit maintenant se logger lui-même.

Comment utiliser le système?
Sur un poste linux:

sudo mkdir /mnt/blah
sudo mount -t smbfs //192.168.3.253/blah /mnt/blah -o user=blah,password=xxxxxx,uid=1000

où user blah est le user distant, password est le mot de passe et uid est l’uid de l’utilsateur local qui utilisera /mnt/blah. Sinon, il n’aura pas les droits en écriture.

Sur un poste windows: je ne sais pas bien, mais cela se fait en quelques clics, non?

Afin de sécuriser l’accès aux services, en ne l’autorisant que depuis le réseau local, j’applique les iptables suivantes:

iptables -A INPUT -p udp -m udp  --dport 137 -j DROP
iptables -A INPUT -p udp -m udp  --dport 138 -j DROP
iptables -A INPUT -p udp -m udp  -s 192.168.3.0/24 --dport 137 -j ACCEPT
iptables -A INPUT -p udp -m udp  -s 192.168.3.0/24 --dport 138 -j ACCEPT

En conclusion, je ne peux pas me satisfaire de cette solution, mais c’est la seule que j’ai pour le moment. Si quelqu’un a d’autres idées, je suis preneur!

Posted in admin | Leave a comment

Un petit conseil openvpn pour la route

Bonjour,

Presque un an que je n’ai pas écrit ici. Je ne m’en satisfais pas car cette année encore, la communauté open-source m’a enrichi d’idées, de nouveautés, de méthodes et de nouveaux softs toujours plus performants. Alors, stephbul parle à stephbul:

“Et toi, stephbul, qu’as-tu fait pour la communauté?” Pas grand chose répond stephbul, pas grand chose.

Ce petit conseil est une goutte d’eau dans la marée heureuse de l’open-source, mais il est bien utile.

Vous avez des services qui ont besoin d’écouter sur votre interface tun0 créée par openvpn, mais ce service est lancé avant openvpn. Que va-t-il se passer? Ou le service écoutera sur les autres interfaces ou le service ne démarrera pas. Et si le service openvpn est soudainement arrêté, que se passera-t-il?  Que faire?

Plusieurs méthodes vont sourdre des esprits. Une seule méritera qu’on la retienne!

A jeter dans /dev/null:

-Le cron qui reloadera le service… Je suis sûr que certains y ont pensé! Voire, certains plus malins que les autres ne reloaderont le service que si tun0 est up, ce qu’ils auront testés par un [ ! -z “`ifconfig | grep tun0`” ]… brrrr, j’en ai des frissons.

-Changer l’ordre des initscripts avec update-rc.d… Très mauvais, car ce n’est pas l’ordre de démarrage qui compte. Il faut juste que les services soient lancés alors que tun0 est up. Si les initscripts sont rapprochés, votre service aura été appelé après openvpn, mais tun0 ne sera pas encore up pour autant.

Non, la seule solution à garder est celle offerte par openvpn lui même:

-L’option –up cmd . Celle-ci permet d’exécuter une commande, un script au moment où l’interface devient up . Je recommande donc de mettre dans le fichier /etc/default/openvpn:


OPTARGS="--script-security 2 --up monscript.sh"

Le script-security 2 permet d’exécuter un code tiers, nécessaire pour exécuter monscript.sh, en charge de recharger les services.

Je vous laisse deviner ce que peut signifier l’option –down .

Posted in admin, openvpn, shell | 2 Comments

Des soucis de disque dur

Lors de la panne d’un disque dur, il me semble que personne n’a pu éviter de penser que ce n’était vraiment pas le moment. Quand il s’agit d’un serveur sur lequel est hébergé des services (ce blog notamment), il faut réagir vite pour ne pas frustrer les innombrables lecteurs que vous êtes. La panne d’un disque a des effets différents et par chance, par moment, elle s’annonce par quelques symptômes avant-coureur, des petits bruits, des problèmes de système de fichier. Hier, ce ne sont pas des bruits qui m’ont alerté puisque ma machine se trouve à environ 250 km de mon domicile, mais l’impossibilité d’effectuer certaines commandes unix, celles qui nécessitaient notamment l’écriture dans ma partition / de mon file system.

La commande dmesg du serveur sous une distribution linux ubuntu server me renseignait alors très bien:

[1815129.630045] hda: dma_intr: status=0x51 { DriveReady SeekComplete Error }
[1815129.630055] hda: dma_intr: error=0x40 { UncorrectableError }, LBAsect=61642, high=0, low=61642, sector=61639
[1815129.630069] ide: failed opcode was: unknown
[1815129.630076] end_request: I/O error, dev hda, sector 61639
[1815129.630136] journal_bmap: journal block not found at offset 7180 on hda1
[1815129.630167] Aborting journal on device hda1.
[1815129.631994] journal commit I/O error
[1815129.632192] ext3_abort called.
[1815129.632211] EXT3-fs error (device hda1): ext3_journal_start_sb: Detected aborted journal
[1815129.632237] Remounting filesystem read-only

L’impossibilité d’accéder à certains secteurs avait obligé ext3 à placer la partition / en read-only. La partition /home n’est pas passée en lecture seule, enfin pas encore et il est préférable d’agir immédiatement, en prenant le temps d’aller vite et garder son calme.

La principale contrainte: faire du back-up rapide en évitant les écritures sur le disque.

Sauvegarder ce blog utilisant le moteur de blog wordpress:
Impossible de faire un dump de la base sql, puisque mysqldump a besoin d’écrire dans /tmp. Il va donc falloir faire une copie de l’arborescence. Ce n’est pas une solution à recommander, mais c’est la seule que j’ai. Je vais devoir récupérer /var/lib/mysql

Backuper /home:
La dernière version de son backup est évidemment trop ancienne.

Backup les confs:
La mauvaise gestion de mes arborescences de configuration est flagrante, elles sont toutes dans /etc, ce qui m’oblige aussi à le sauvegarder. Je ne m’y referai plus prendre, elles seront toutes, c’est décidé, dans /home/user/etc afin que la sauvegarde soit plus simple.

Bien, comment faire un backup de tout cela qui soit rapide?
-scp? Non, trop lent, pas besoin de chiffrer, d’autant que je passe déjà par un vpn, l’overhead de chiffrement de ssh ne me satisfait pas.
-L’élégant tar, tar cvf – /source-dir | ssh user@backup-server.home “cat > /backup/source-dir.tar n’est pas plus souhaitable, pour la même raison.
-Puis, toujours dans l’idée d’aller lentement pour aller vite, je parle à iMil de mes soucis. Il me glisse l’idée de passer par netcat pour effectuer un back-up rapide. Je ne connais pas et l’idée de prendre le temps d’apprendre, là maintenant, dans la panade ne me me plait pas d’emblée. Je dois prendre le temps, mais tout de même. Le principe est d’écouter sur un port d’un côté et de mettre dans stdout ce qu’on y reçoit, et d’envoyer stdin de l’autre machine sur ce port. L’intérêt est alors de l’associer à tar. L’idée fait son chemin. Quelques minutes plus tard:

$ man netcat

me donne nc – TCP/IP swiss army knife. J’aime bien l’idée.

Après quelques essais, j’obtiens sur la machine où je veux backuper:

$ netcat -l 3869 | tar xfp -

Cette commande met en écoute netcat sur le port 3869 et envoie le résultat vers le stdin (-) de tar pour l’extraire.

Sur la machine que je veux backuper:

$ tar cvfp - source-dir | netcat host 3869

où source-dir est le répertoire à sauvegarder sur la machine host.
Comme je ne sais pas si tar -z a besoin des droits d’accès en écriture, j’évite de l’utiliser. Si d’ailleurs quelqu’un a la réponse, il peut me laisser un petit comment.

La phase la plus difficile est de prioriser le backup sans rien oublier. Je pense la phrase “Tu n’as rien oublié?” complètement inutile et parfaitement stupide. Le risque d’oubli n’est pas nul, et comme je ne peux pas envisager faire un backup total de la machine qui serait beaucoup trop long et inutile, il faut se concentrer, faire le tour de l’arborescence, puis refaire un tour… et se lancer.

Se lancer, cela veut dire, ouvrir un ticket chez le hoster de mon serveur dédié. Je dois reconnaître qu’OVH, mon hoster a été très rapide pour intervenir. Deux heures plus tard, mon disque était changé, l’install d’une debian 5.0 terminée. J’abandonnai ubuntu pour debian.

Il me reste à cet instant l’install, la config de tous les services, aussi proprement que possible pour faciliter les backups.

Je vous fais une liste des opérations que j’ai effectuées pour avoir mon service up and running:

-Changement du mot de passe root
-Modification du /etc/apt/sources.list pour le faire pointer sur une debian testing ou stable, au choix. stable est plus conseillé sur une machine de prod, bien entendu.

/etc/apt/sources.list:

deb http://ftp.fr.debian.org/debian/ stable main contrib non-free
deb-src http://ftp.fr.debian.org/debian/ stable main contrib non-free
deb http://security.debian.org/ stable/updates main contrib non-free
deb-src http://security.debian.org/ stable/updates main contrib non-free

-Je ne veux pas utiliser lilo, et préfère grub.

apt-get remove lilo
apt-get install grub
update-grub
grub-install "(hd0,0)"
grub
>root (hd0,0)
>setup (hd0)
>quit

Il faut alors installer le kernel pour ne pas utiliser le kernel monolythique proposé par le hoster.

apt-get update
apt-cache search kernel-image et choisir le bon.
apt-get install kernel-image-2.6.26-2.i686
apt-get dist-upgrade

Rebooter.
Tout s’est bien passé dans mon cas. Je peux continuer:

-Modification du hostname
-Création de mon user principal useradd -m user
-Modification du /etc/ssh/sshd_config pour interdire l’accès en ssh à root et l’accès par mot de passe:

PermitRootLogin no
PubkeyAuthentication yes
PasswordAuthentication no

-Récupération du répertoire .ssh des utilisateurs qui se connectent par ssh dans lequel on a les clés autorisées.
Attention, à partir de cet instant, il ne faut plus fermer son terminal avant d’avoir tester la connexion par clé, sous peine de devoir rebooter en mode rescue avec un mot de passe root fourni par OVH, monter ses partitions à la main et changer la config de ssh. Le mode rescue d’OVH est excellent, mais il est préférable d’en éviter la lourdeur inévitable.

etc/init.d/ssh restart

Essayer de se connecter avec un autre terminal, si c’est ok, on continue.

-Installation de openvpn en tant que serveur.
Pour respecter mon engagement, je place tous mes fichiers de conf dans /home/user/etc/openvpn et rien dans /etc/openvpn et je n’utilise pas le script /etc/init.d/openvpn start pour le démarrer, mais je préfère screener l’application

cd /home/user/openvpn/
screen -S openvpn
openvpn --config server.conf

Ctrl a-d # pour détacher le screen sans le terminer
A cet instant, si vous êtes encore plus novice que moi et que nous ne connaissez pas screen, un “man screen” est obligatoire.

server.conf est mon fichier de conf server.conf, récupéré de mon backup. J’ai bien entendu modifié les chemins d’accès vers /home/user dans celui-ci.

Passons au service apache pour relancer blog et wiki.

sudo apt-get install apache2 php5 mysql-server php5-mysql libapache2-mod-gnutls

L’utilisateur www-data est créé automatiquement par l’installaton d’apache2, mais je lui crée son répertoire et mot de passe. Je déplace toutes les conf apache dans /home/www-data/ et fais un dans /etc fait un ln -s /home/www-data/etc/apache2 apache2 en modifiant /home/www-data/etc/apache2/apache2.conf

Je laisse mysql configuré comme par défaut dans /etc/mysql, celui-ci ne nécessite pas de modification dans mon cas et la sauvegarde doit se faire par mysqldump.

Je copie la base sql de mon blog dans /var/lib/mysql/bulblog, je modifie les propriétés avec chown.
J’utilise wordpress comme moteur de blog. Le nom du user utilisant la base mysql se trouve dans wp-config.php avec son mot de passe. Je crée l’utilisateur avec des droits d’accès depuis localhost seulement.

mysql -u root -p

mysql> CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'wpuserpass';
mysql>  GRANT ALL ON *.* TO 'wpuser'@'localhost';
mysql> quit

Attention, il est important de ne laisser l’accès que depuis localhost, car l’utilisateur a tous les droits.

Dans apache, il faut maintenant recopier tous les contenus des pages backupées dans les bons répertoires des config de site définis dans /home/www-data/etc/apache2/sites-available
Un test préalable du serveur apache lui-même est conseillé avec la page par défaut “it works”.
Ensuite, il faut activer les sites avec la commande:

a2ensite filename

où filename est le nom du fichier de conf du site dans /etc/apache2/sites-available qui est un lien vers /home/www-data/etc/apache2/sites-available .

On termine avec un /etc/init.d/apache2 restart

Utilisant dokuwiki pour mon wiki, la gestion par fichier plat des données simplifie grandement le backup, la simple copie avec les bons droits et bons propriétaires suffit pour remettre l’ensemble en service.

Puisque vous pouvez lire ces lignes, c’est que mon aventure s’est bien terminée et que j’ai pu reprendre le cours normal de mes opérations. Si j’étais un habitué des bonnes résolutions, je me promettrais de travailler plus proprement sur les backups.

En tout cas merci à iMil pour ses conseils, innombrables et toujours judicieux.

Posted in admin, apache2 | 8 Comments

Le monde tousse…

Fabio est un pizzaïolo avec service de livraison à domicile réputé sur Paris dans le 12eme arrondissement. Il a de l’ambition, il veut ouvrir une pizzeria dans le 13ème arrondissement basée sur le même modèle. Il recherche un local, il va voir son banquier, pèse le pour le contre, vérifie sa situation financière et constate que son affaire sera rentable un an plus tard, le temps d’effectuer les travaux, monter l’installation. Pour amortir l’investissement, Fabio a tout intérêt à commencer à trouver des clients sur place dès la signature du bail, les livrer depuis le 12ème arrondissement le temps des travaux, afin de monter plus rapidement en puissance à l’installation finale.
Quelques années plus tard, l’entreprise de Fabio a très bien fonctionné, ses méthodes commerciales ont été créatives, son entreprise de pizza est devenue un grand groupe qui au fil des années, au grés de stratégies nouvelles est devenue un laboratoire pharmaceutique très puissant. Aujourd’hui, Fabio est à la retraite, son fils, Giaccomo a pris sa succession. L’entreprise investit dans la construction d’une usine d’anti-grippaux à hauteur de 100M€ en Hongrie avec un partenariat avec le ministère de la santé du pays. Comme depuis toujours, il a intérêt à trouver des clients sur place, en plus de ceux habituels afin de rentabiliser l’investissement colossal que représente cette construction. Giaccomo a de bonnes relations avec le ministre de la Santé, qui joue bien au golf. Ils sont partis à plusieurs reprises ensembles lors des négociations pour l’implantation de l’entreprise. Le ministre aime beaucoup l’île Maurice, il a apprécié les invitations, l’hospitalité de Giaccomo, ils ont sympathisé, sa femme est agréable et intelligente, ses enfants très drôles. L’autre jour, juste après la signature du contrat, ils ont ri d’un cas étrange de décès par infection bactérienne suite à un virus grippal dans une province du pays.

Mais fallait-il en rire, vraiment?

Giaccomo attend le lendemain, lorsque ils sont loins de femmes et enfants pour ne pas les inquiéter, sur le trou 12, pour évoquer le sujet de ce cas de grippe. Il faut absolument informer les services de santé du pays, ce peut être une pandémie qui démarre, cela ressemble aux hypothèses envisagées par les laboratoires. Les jours se passent, et à bien y chercher, on trouve plusieurs autres cas comme celui-là dans le pays. Giaccomo prend l’information très au sérieux et d’un ton solennel annonce au ministre de la Santé, son ami, que la pandémie guette. Il faut agir. Organiser la communication pour informer et ne pas inquiéter. Le ministre en difficulté sur deux autres dossiers n’a pas envie de mal gérer la situation de crise qui s’est enclenchée.

Compte tenu de la situation, 12 jours plus tard, l’état signe avec l’entreprise une commande de 20 millions de doses d’anti-grippaux. C’est un pur hasard, mais cela permet de provisionner quelques rentrées d’argent pour l’investissement dans l’usine.

AVERTISSMENT: ce petit texte est une pure fiction. Ce que vous lirez sur ce lien n’a sûrement rien à voir.

Posted in nouvelle, politique, presse | Leave a comment

Un Conti.

Le bip sonore a retenti comme à son habitude, pas de surprise. C’était toujours pareil, quand Jean-Michel revenait de vacances, ce geste automatique et le son à l’approche de son badge sur le mur, le replongeaient dans l’univers de l’atelier. Conti. Bientôt trente ans qu’il travaille pour la maison. Le mêtier a suivi de nombreuses évolutions, il a fallu à chaque fois s’y faire, mais si Jean-Michel regarde derrière lui, il n’est pas mécontent, il connaît son mêtier, dernièrement, il a quitté l’équipe qui s’occupait du curage pour être maintenant au contrôle-qualité. Premier passage visuel de tous les pneus, puis passage à la radio. Les procédés ont beaucoup progressé, il y a de moins en moins de déchets. Il pensait que c’était moins difficile, plus reposant la qualité, mais finalement, la cadence est là, sa responsabilité est engagée, il prend à coeur de bien faire, mais parfois, un coup de mou, une fatigue, un stress, il se sent moins vigilant et pense qu’il a peut-être baissé en attention, laissé passer un défaut.

La pointeuse

Les 35h, c’est de l’histoire ancienne, les 35h, on les a vite oubliées, toutes les équipes sont repassées à 40h pour sauvegarder l’emploi, la décision n’avait pas été facile, les 35h, tout de même c’était un peu plus de confort, les cadences avaient un peu été modifiées, mais pas tant que ça. Maintenant, les cadences sont restées avec le passage aux 40h. Les emplois aussi. Ca valait le coup quand même. Se retrouver au chômage, c’est pas possible, quitter la région, en vacances oui, mais prendre ses bagages, les enfants sont grands, ils n’ont pas envie, ils tiennent encore plus à leurs amis qu’à leurs parents. La sortie de terre, ce n’était pas ici, mais on est venu et on a pris racine. Enfin, pas possible. Si bien sûr. Jean-Michel se dit bien qu’il aimerait parfois aller ailleurs, le proposer à Michèle, repartir vers d’autres aventures. Jean-Michel, c’est le Sud-Ouest qui l’attire. Il n’ose pas vraiment l’évoquer avec Michèle, juste parce qu’il a peur qu’elle saute sur l’occasion, elle est moins pantouflarde. Lui, c’est une idée qu’il a, un projet, c’est la possibilité de se dire qu’il peut. Une roue de secours. De là à le faire.

Il retrouve l’atelier, son poste, on passe le voir, on le salue, on lui tape sur l’épaule, on lui propose un bière demain soir et un billard au “bon coin”. Il demande des nouvelles, à Marc de Cynthia, sa femme, malade. Ca peut aller, mais le regard est lourd et plonge. Il ne s’attarde pas, aimerait dire à Marc, courage, mais juste, ça lui couperait les jambes à Marc. A Erwan de son père, qui est parti à la retraite l’année dernière et qui déprime. Arrivent en même temps Candice, Agnès, ses collègues de la qualité. Mais c’est Jean-Mimi, je croyais que tu rentrais mercredi. j’te fais la bise, hein. Ca a été tes vacances? T’étais où? Sur la côté d’Azur, Fréjus, c’est ça? Non, la Creuse. Ah, mais, qu’j’suis conne, tu me l’avais dit. Jean-Michel pense, mais non, t’es pas conne, tu t’en fous, c’est tout. Puis je ne t’en veux pas, je voudrais juste que tu ne fasses pas semblant. Candice est plus discrète. Bonjour, ça va? Bon, ça va faire du bien de retrouver l’homme de l’atelier, parce qu’entre filles, ça craint, reprend Agnès, ça se crèpe le chignon. Tout l’atelier éclate de rire. Jean-Michel, juste plus lent à revenir, a un sourire moins franc. Les pneus arrivent, on reprend. La pause ne va pas tarder à être attendue, en fait, c’est vrai, les premiers pneus du matin, on est souvent motivé, on est strict, le moindre doute, double contrôle. Par contre, la fatigue vient vite, la vigilance n’est pas constante, parfois, on reprend un pneu, le doute, à d’autres moments, on ne le reprend pas. Jean-Michel, dans l’automatisme, est encore un peu en vacances, il aurait bien aimé rester avec Michèle aujourd’hui, qui a pris un jour de plus, pour ranger, faire les lessives, un plein de courses. Les vacances leur ont fait un bien fou, ils ont été pleinement à deux une semaine et Jean-Michel craignait un peu ce moment et non, ils ont vraiment aimé être tous les deux, ils ont bien ri, en prenant le pneu suivant, un sourire, l’allégresse est là, son coeur est ailleurs, son coeur est léger. Quelques instants.
La pause.
Café, ça ne discute de rien en faisant du bruit, quand il parle avec Michèle, il parle de tout de rien, mais c’est pas grave, ils sont juste là, bien, c’est pas pour fuir, maintenant, ici, ce n’est pas pareil, tout le monde se fuit, Jean-Michel trouve qu’il y a moins de projets, d’amitié dans les équipes, de solidarité, lui le premier, il n’accuse pas, c’est juste un constat. Il a bien conscience que son jugement est faux, biaisé par l’humeur de retour de vacances, il a bien des amis ici. Il se demande si on retrouverait autant de solidarité s’il fallait sauver des emplois aujourd’hui, s’il fallait se battre. Est-ce qu’on n’est pas un peu anesthésié?

Les délégués sont sombres, le climat n’est pas bon, le dialogue est tendu, pas de perspectives claires de la Direction et finalement aucune info. De toute façon, la situation n’est pas bonne, le groupe va sans doute licencier, la cadence des 40000 pneus est lointaine, mais ici, on se sent protégés, puisque on est passé aux 40h, avec engagement de la Direction sur pas de licenciement. L’accord, les détails, les conditions précises sont un peu oubliés, mais l’accord est là. Un rempart. D’ailleurs, personne n’en parle, ni eux, ni les délégués, ni la direction. L’autruche. Le délégué cfdt qui n’est pas né de la dernière pluie, qui est plus rigoureux, personne ne l’aime parce que c’est lui qui a peut-être le plus conscience que la protection est peut-être un peu légère, un peu fictive. Une ligne Maginot.
Reprise. Jean-Michel passe au toilette rapidement, il croise Urbain, le délégué CGT, ça va, Urbain? Ouais, et toi? Fait longtemps que je ne t’avais pas vu? J’étais en vacances. Eh, eh, les congés payés. Ouais. A plus.

Michèle passe prendre Jean-Michel à la fin de la matinée, ils n’ont qu’une voiture, et elle en avait besoin pour les courses. Il pourra d’ailleurs l’aider à tout ranger. Michèle n’a pas repris le travail, mais l’hypermarché, dans la grisaille, le long de la Nationale, avec les herbes salies, les détritus de la bretelle d’accès, ça la mine. Dans la voiture, ils ne parlent pas beaucoup. Jean-Michel a son coeur gros, son estomac noué, là, à l’instant, il pourrait dire à Michèle qu’il l’aime, il voudrait lui dire aussi de ne pas prendre la sortie, continue, on part, on prend la route. Mais non.

De retour, ils sortent une poëlée paysanne surgelée, la font réchauffer, rapidement, Jean-Michel passe arroser les géraniums le long de la véranda. Ils ont bientôt fini de payer la maison, pense-t-il, c’est bon, de rentrer ce midi. Il retrouve son sourire, Michèle a l’air mieux qu’il y a quelques minutes. A table, il soupire, il peut maintenant parler, reprendre le contrôle aujourd’hui lui a moyennement plu, dans la routine avant les vacances, ça lui plaisait, mais là, l’idée de faire ça est moins attirante. Michèle le réconforte, c’est la reprise, ça ira mieux dans quelques jours.

En fond sonore, Michèle a allumé le JT de TF1, pour se mettre un peu au goût du jour. Les deux semaines les ont coupés du monde. Quand dans le fond, ils entendent Clairoix, ils sursautent, pas tous les jours qu’on parle de Clairoix. Continental qui annonce un plan de suppression de poste. 1600 postes, dont la fermeture du site de Clairoix. La fermeture du site de Clairoix. La fermeture du site de Clairoix.

Jean-Pierre Pernaut est déjà passé à autre chose. Le reste devient insupportable à Jean-Michel, qui se lève pour éteindre le téléviseur avant de se diriger vers la vitre de la véranda. Il regarde le jardin, immobile. Michèle est restée à table et le regarde, silencieuse. Jean-Michel n’a pas envie de pleurer, il n’est pas non plus en colère. Impassible. Les flashs lui viennent un à un, désorganisés, que vont-ils faire? Pourquoi ne lui ont-ils pas dit, ce matin, à l’usine? La grève? Préparer son départ? Son jardin, sa maison, tout ça pour ça. Il était assez fier d’avoir réussi à acheter le pavillon, l’avoir fait à leur image, tout cela semble s’évanouir, en deux phrases de journal télévisé, par une décision de quelques bonshommes à Hanovre. Quelle blague ces 40h? Le sentiment d’humiliation éclot au moment où Michèle prononce les premiers mots. Allez, tu vas voir, on va s’en sortir. Que dire d’autre? Rien. Tu as raison. Michèle s’était approchée et il la serre par l’épaule. Faut y retourner. Je te conduis? Si tu veux, si tu as besoin de la voiture.

De retour à l’atelier, Jean-Michel entre, il ne sait pas comment dire ce qu’il a vu, il a peur de passer pour un imbécile parlant d’histoire ancienne, en même temps, il ne voit pas comment personne ne lui aurait parlé ce matin.
Personne n’a regardé le journal, ce midi?
Non, j’ai mangé ici.
Non, pas envie.Vous êtes au courant? L’usine?
Quoi?
Ce midi, à TF1, ils ont dit qu’ils ferment l’usine.
Le silence s’installe et un à un, ils quittent tous l’atelier, se dispersent, la nouvelle court d’atelier en atelier. Le travail ne reprend pas et ne reprendra pas de la journée, de la semaine. La grève s’organise, la colère gronde, la direction ne communique pas. Les organisations syndicales sont déboussolées mais déterminées et se rassemblent. L’inter-syndicale s’active déjà. Jean-Michel devant la réaction de tous est un peu rassuré.

Jean-Michel, à cet instant, réalise qu’il doit choisir, la lutte au côté des autres, ou la lutte seul avec Michèle, seuls dans la jungle. Vendre, partir avant que tout s’écroule, sauver sa peau, oublier, reconstruire ailleurs, prendre la route ou faire confiance une fois de plus à la lutte syndicale.
Ils choisiront tous la lutte collective, la solidarité. Tous n’auront pas le même engagement charnel, la même mobilisation physique mais tous sentent monter la rage.
Tous ne passeront pas aux actes violents mais tous, face à tant de mépris, d’humiliation, les accepteront.

Posted in nouvelle | Leave a comment

On s’étrangle.

L’après-midi avance, le printemps s’installe, l’atmosphère est paisible pourtant une magistrale erreur politique, l’illustration de l’incompétence crasse d’un côté et de la persévérance de l’autre ont eu lieu ce midi sur les bancs de l’Assemblée Nationale. La loi “Création et Internet” a été rejetée par les députés, en raison de l’absence de nombreux députés ump. Les députés de l’opposition, du centre, tous peu nombreux eux-aussi, auront eu, à la surprise générale, raison d’une logique dépassée, d’une méthode politique d’un autre temps. L’avenir dira si cette loi sera finalement votée au forceps par le sénat avant de revenir à l’Assemblée Nationale, mais là, n’est pas l’important.

Cet après-midi, le net fête cela à sa manière, chacun se déchaîne, les railleries envers la ministre de la Culture, Christine Albanel, envers Frédéric Lefebvre, vont bon train, alors que déjà, le jeune Franck Riester, rapporteur de la loi est oublié. Cet échec est assurément l’illustration de la vacuité de ces trois larons, marionnettes politiques d’intérêts plus hauts et plus sournois, mais aussi d’une politique générale qui, à force de manipuler l’opinion, à force de ne travailler qu’en faveur d’intérêts privés quand on s’attendrait, à l’Assemblée Nationale, à un travail tourné vers l’intérêt général, échoue face à un combat politique vaillamment mené par l’ensemble d’une communauté, la communauté du logiciel libre, emmenée par la Quadrature du Net, groupe de travail, de réflexion, apportant son appui aux députés opposés à cette loi et permettant aux députés ump de comprendre le risque politique à voter une telle loi, expliquant leur absence ce jour.

Le propos de ce post est avant tout de remercier personnellement l’ensemble des participants à la lutte, _jz, en premier lieu ainsi que tous les membres de la Quadrature du Net, pour la qualité et la pertinence de leurs réflexions, GCU-squad et iMil ensuite, pour la détermination et l’humour, et enfin tous ceux qui ont apporté leur petite pierre à la lutte.

Je suis enfin persuadé que cet évènement peut être aujourd’hui l’illustration que le combat démocratique, même si parfois décourageant, si épuisant, vaut toujours la peine d’être mené quelqu’en soit l’issue. Puisse être ce jour la renaissance de la défense des idées, puisse être ce jour l’avènement d’une conscience politique parfois éteinte, puisse être ce jour la prise de conscience de l’utilité de chacun dans notre démocratie.

Posted in open-source, politique | Leave a comment

Swedish Greys - a WordPress theme from Nordic Themepark.