Archives de catégorie : Linux

[Vrac] Liens et questions

+ Depuis quelques temps Google modifie à fond son interface. Qu’on soit d’accord ou pas nous sommes obligés d’accepter. Je vous avouerais qu’ayant été fan de 1984, Farenheit 451 et autres romans d’anticipation, je suis assez mécontent. En effet je n’ai plus l’impression d’avoir le choix, d’être libre, de pouvoir penser par moi même et que cela ne soit pas forcément public. Par exemple le réseau Google+ qui a fait disparaitre certaines fonctionnalités sur des applications Google pour nous forcer à l’utiliser. Et qui par défaut refusait l’usage de pseudonymes, l’anonymat ou tout simplement la vie privée. Non je n’ai rien à cacher (pour reprendre le plus bel argument des fans des applications plus que propriétaires et fermées), c’est juste que je ne souhaite pas tout divulguer, je souhaite conserver mon jardin secret, choisir ce que je dévoile de ma vie privée et à qui. Je vous recommande d’ailleurs de lire cet article sur Framablog « L’ordinateur personnel est mort pour laisser place à des prisons dorées ? ». Je trouve la description qui y est faite assez édifiante sur l’acceptation que nous avons aujourd’hui de « prisons dorées » alors que par le passé nous hurlions sur les restrictions de Microsoft. En comparaison ils passent pour des anges 😉

De ces modifications proviens surtout celle de Google Reader. Bon outre le changement de design qui fait que les lignes sont plus grosses, qu’on voit moins d’informations, nous ne pouvons plus partager de flux que vers Google+. Personnellement je ne souhaite pas uniquement partager vers ce réseaux, je réfléchis même à limiter au maximum son intrusion dans ma vie. Mais j’aimais bien la possibilité de pouvoir partager simplement un article intéressant et d’avoir un flux pour le suivre. D’ailleurs ce flux était en lien sur ce blog (en bas à droite). Alors j’ai regardé ce qui se proposait rapidement et notamment grâce à cet article de Acessoweb sur 8 alternatives. Pour le moment je n’ai pas trouvé chaussure à mon pied. En effet ayant plusieurs ordinateurs sous Linux ou Windows (que ce soit côté personnel ou professionnel), je préfèrerais un système en ligne. Google Reader était simple et pratique et j’ai conscience de ne pouvoir retrouver la même chose. J’avais pensé aussi à utiliser Diigo, ayant déjà un compte professionnel dessus, ou bien un autre logiciel de ce type (delicious, …) mais je ne suis pas sûr. Il me faudrait soir gérer deux comptes Diigo pour ne pas mélanger les deux aspects soit utiliser un deuxième. Et pour le moment la vidéo de présentation de delicious ne m’inspire pas. Donc si vous avez des conseils, des suggestions je suis preneur 🙂

+ Pour ceux qui seraient intéressés j’ai vu passer un article sur LinuxFR à propos du projet Beedbox. En effet ils recherchent des dons et participants. Leur but serait de proposer une solution à bas prix et à basse consommation pour avoir son propre petit serveur à la maison, qui hébergerait des solutions concurrentes, en remplacement aux produits de Google. N’hésitez pas à lire l’article et à suivre les liens vers les sites officiels. Ci-dessous leur définition pour mieux illustrer :

Beedbox est un projet visant à permettre à tout un chacun d’héberger ses propres services web à domicile et d’apporter enfin une alternative simple aux services de Google, Facebook et consorts afin de reprendre le contrôle de vos données.

Nous concentrons d’abord nos efforts sur la création d’une distribution GNU/Linux puis le projet proposera par la suite, un matériel basse consommation et silencieux pour une solution clé en main.

+ Pour ceux qui auraient encore des illusions voici un autre petit article (il y en a eu pas mal sur ce sujet) sur un journaliste qui a enquêté sur Facebook, Google, Apple et ainsi de suite. Ce n’est qu’une illustration parmis tant d’autres. Jacques Henno (Prédateurs Silicon Valley) : « Facebook a menti au moins sept fois à ses utilisateurs ».

+ Pour ceux qui auraient été dans une grotte ces dernières semaines ou qui n’auraient pas suivi ce type d’actualité, la France s’est mise à l’Open Data avec un portail par notre Gouvernement où on peut trouver énormément d’informations et de statistiques. Ils ont donc rendu accessibles les données publiques de l’état et des collectivités locales. N’hésitez pas à visiter le portail data.gouv.fr ou bien à lire cet article sur LinuxFR.org.

+ Comme chaque année Tom’s Guide nous gratifie de sa sélection de logiciels gratuits (surtout sous Windows mais on trouve assez facilement sous Linux aussi 😉 ). Cela m’est déjà arrivé d’en parler par rapport aux logiciels libres ou aux solutions alternatives. Je vous invite donc à faire un tour sur cette liste de plus de 100 logiciels gratuits classés par thématiques des suites bureautiques aux jeux en passant par la vidéo, l’audio, les utilitaires divers, le multimédia, la photo, le travail, les navigateurs, … C’est ici.

+ Un autre article d’Accessoweb avec une infographie en français sur le principe de protéger sa e-Réputaion. Assez édifiant et instructif tout en restant simple. Même moi je me rends compte que je devrais me chercher dans les moteurs de recherche plus souvent pour mieux maitriser tout cela 🙂

Voici donc pour cette première mouture du Vrac. Je devrais m’y adonner plus souvent. En effet je n’ai pas toujours le temps de faire de gros articles, c’est même plutôt l’inverse. Mes brouillons s’agglutinent et le Blog semble mort. Donc en dehors de l’excuse du CNAM et du travail je ne puis vraiment le justifier. Et parfois un partage plus rapide n’est pas plus mal non plus 😉

Paramétrage de ProFTP avec un utilisateur système dédié

Dans le cadre d’une intervention pour un client, j’ai du mettre en place un serveur FTP avec paramétrage d’un utilisateur unique qui ne pouvait accéder qu’à un dossier, propriété d’un autre utilisateur. Cet utilisateur ne devait pas pouvoir se logguer en SSH ou par un autre moyen. Autre souci, le serveur n’avait pas d’accès au Net et étant distant nous ne pouvions y insérer un CD-ROM avec les sources. Il fallait donc un serveur FTP que nous pouvions installer avec un minimum de RPM.

Installation

Bien que je sois plus habitué à Pure-FTP [link] j’ai choisi ProFTP car il ne présentait qu’un seul fichier RPM sur la configuration du serveur client (Mandriva 2009.0). Pour l’installer, soit vous avez déjà le RPM, soit vous pouvez le télécharger en ligne. Pour les serveurs installés sous Mandriva 2009.0 il s’agit du paquetage proftpd-1.3.2-0.4mdv2009.0.i586.rpm

wget ftp://ftp.proxad.net/pub/Distributions_Linux/MandrivaLinux/official/2009.0/i586/media/main/updates/proftpd-1.3.2-0.4mdv2009.0.i586.rpm

Procédez ensuite à son installation :

rpm -i proftpd-1.3.2-0.4mdv2009.0.i586.rpm

Vérifiez que les services se lanceront bien automatiquement :

chkconfig –list | grep proftpd

Nous devons alors avoir cet affichage :

proftpd 0:arrêt 1:arrêt 2:arrêt 3:marche 4:marche 5:marche 6:arrêt

Si cela n’est pas le cas, vous pouvez changer les démarrages du service en fonction des niveaux d’init avec la commande suivante :

chkconfig proftpd –level 2345 on

Configuration

Afin de lancer le serveur FTP nous utiliserons l’utilisateur nobody du groupe nobody. Pour cela nous allons vérifier son existence et son appartenance à ce groupe.

cat /etc/group | grep nobody

Si vous n’avez rien d’affiché, exécutez la commande suivante :

groupadd nobody

Ensuite nous vérifions la présence de l’utilisateur en question :

cat /etc/passwd | grep nobody

Si vous n’avez rien d’affiché il est possible de le créer :

useradd nobody -d / -s /bin/false usermod
nobody -g nobody

Nous nous servirons d’une commande similaire pour créer notre utilisateur de connexion en FTP, mais avant il nous faut définir /bin/false dans le fichier /etc/shells. Editez le avec VI (ou votre éditeur préféré) et ajoutez cette entrée en fin de fichier.

Nous créons ensuite notre utilisateur FTP :

useradd ftp-monserveur -s /bin/false -d /home/user-ftp/sauvegardes/ -g user-system1

Nous avons normalement cet affichage lors de sa création car le dossier existe déjà :

useradd: warning: the home directory already exists.
Not copying any file from skel directory into it.

Nous définissons son mot de passe :

passwd user-ftp

Afin de limiter les connexions en FTP, nous nous arrangeons pour que tout les utilisateurs en dehors de user-ftp soient bien renseignés dans le fichier /etc/ftpusers Nous aurons alors le contenu suivant dans ce fichier :

root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody

rpm
messagebus
polkituser
vcsa
haldaemon
avahi
avahi-autoipd
postfix
ntp
sshd
mysql
apache
memcached
user-system1
user-system2
ftp

Nous passons ensuite au fichier de configuration de proftp : /etc/proftpd.conf Voici ci dessous les entrées à modifier, nous laisserons les autres par défaut.

# le nom du serveur
ServerName « Mon Serveur FTP »

# Autoriser l’usage de /etc/ftpusers
UseFtpUsers on

# Cantonner les utilisateurs dans leur répertoire personnel (déjà présente mais commentée)
DefaultRoot : ~

PassivePorts 40000 40020

Se servir de drakfirewall afin d’ouvrir les ports du serveur FTP : 21 donné dans la liste par défaut puis 40000:40020/tcp dans la partie avancée.

Nous pouvons maintenant démarrer le service :

service proftpd start

Voici deux liens vers des tutoriaux qui m’ont aidé dans cette configuration. Vous pourrez y constater que je ne me sers de presque rien côté options du serveur FTP et que vous pouvez aussi avec ProFTP  utiliser des utilisateurs virtuels comme avec Pure-FTP.

Erreur Postfix : main.cf n’existe pas

Dans la continuité de la nouvelle installation de mon serveur, j’ai rencontré un petit souci sur Postfix. J’avais fais l’installation classique avec un apt-get install postfix. A l’issue, mon serveur ne pouvait pas envoyer de courriels. En me penchant la dessus je me suis heurté à deux soucis. Le premier était l’ignorance de ce dernier de la commande « mail » ce qui peut-être gênant.

root@monserveur:~# mail monmail@mondomaine.ext
-bash: mail: command not found

Normalement l’installation de Postfix aurait dû s’occuper aussi de cette partie. Au moins ce point est assez simple à résoudre, il suffit d’installer le paquetage « mailutils ».

apt-get install mailutils

A cette issue je pouvais me servir de cette commande ce qui est plus que pratique afin de faire des tests. En envoyant un courriel en ligne de commande et en analysant les retours dans le fichier de logs /var/log/ail.info j’ai pu constater cette erreur :

Jun 13 11:06:36 monserveur postfix/sendmail[7208]: fatal: open /etc/postfix/main.cf: No such file or directory

En faisant quelques recherches sur Internet j’ai pu trouver pas mal d’information et notamment une discussion [link] au sein de laquelle se trouvait ma solution. Au départ ils invitaient tous à re-installer postfix, ou bien à se servir de dpkg pour purger le tout. Personnellement je n’étais pas fan de tout refaire car si cela ne s’est pas installé au premier coup, pourquoi cela reviendrait à la normale la deuxième fois sans modifications de ma part ? oui je sais que cette logique peut facilement être contrée. En revanche l’un d’eux a donné une solution qui a parfaitement fonctionné dans mon cas.

Bien que le fichier main.cf soit absent, nous pouvons trouver un fichier « main.cf.debian » sur le serveur. Nous copions donc ce fichier en place du précédent :

cp /usr/share/postfix/main.cf.debian /etc/postfix/main.cf

Si nous essayons alors de nous servir de postfix, nous obtenons le message d’erreur suivant :

postfix/local[17422]: fatal: open database /etc/aliases.db: No such file or directory

Il faut alors lancer la commande suivante afin de pouvoir démarrer postfix :

newaliases
/etc/init.d/postfix restart

A partir de maintenant vous pouvez tester le statut de postfix et valider qu’il tourne correctement. Pour les erreurs, consultez les fichiers de log 🙂 Voila en espérant que cela pourra en aider d’autres.

Installation et configuration de pure-ftp sur Ubuntu serveur Hardy Heron (8.04 LTS)

Voici peu de temps j’ai du procéder à la re-installation complète de mon serveur Web. En effet suite à un crash de la machine physique, le serveur virtuel avait prit un léger coup. Sa restauration sur un nouveau système de virtualisation (Xen au lieu de vserver) semblant difficile, j’ai préféré repartir avec une installation propre du système. Mon hébergeur a donc installé le même OS, Ubuntu 8.04LTS server (Hardy Heron). Oui je sais que la version date un peu mais nous étions dans l’urgence et nous avons fait au plus simple pour la restauration derrière 🙂

Ayant rencontré quelques difficultés pour installer de nouveau le serveur FTP, j’ai décidé de faire profiter d’autres de ma méthode afin de leur faciliter la vie plus tard. A l’époque, étant en train de développer un site Web qui devait accueillir une page de téléchargement avec potentiellement pas mal de connexions, j’avais choisi Pure-FTP. En effet avec son système d’utilisateurs virtuels, il présentait un fonctionnement plus simple et la possibilité d’un utilisateur virtuel en lecture seulement afin de créer des liens ftp et non http, ce qui aurait permit une sérieuse économie sur les ressources du serveur. Cette interface na jamais été mise en production, mais j’ai conservé ce serveur FTP car il était simple de configuration et de fonctionnement, du moins à mon goût.

Tout d’abord installons le serveur :

sudo apt-get install pure-ftpd pure-ftpd-common

Si vous n’êtes pas sur un serveur, mais sur un bureau (desktop), je vous invite à installer aussi pureadmin. Reportez-vous aux documentations accessibles par les liens plus bas pour ce point.

Une fois le serveur installé, nous avons un groupe pour les utilisateurs ftp et un utilisateur réel pour le serveur.

sudo groupadd ftpgroup
sudo useradd -g ftpgroup -d /dev/null -s /usr/sbin/nologin ftpuser

Il est possible d’apporter de nombreuses configurations au serveur FTP en lui même comme une limitation sur le type d’IP pouvant se connecter (IP V4 ou V6), des logs plus verbeux, …etc… Suivre les deux liens suivants pour consulter ces options [link1link2].

Une fois cette étape terminée, nous allons pouvoir créer nos utilisateurs virtuels. Attention dans cette partie je n’utilise que la ligne de commande car je suis sur un serveur, mais étonnamment il est conseillé de n’utiliser que cette méthode, même si vous avez installé pureadmin 😉

sudo pure-pw useradd user1 -u ftpuser -g ftpgroup -d /var/www/html/site1
sudo pure-pw useradd user2 -u ftpuser -g ftpgroup -d /var/www/html/site2

A chaque utilisateur ajouté, il vous sera demandé de saisir le mot de passe de ce dernier (deux fois). Il est bien sûr possible de rajouter diverses options pour les utilisateurs comme des quotas, une IP/mask pour un compte donné et ainsi de suite. Toutes ces options se retrouvent dans la documentation de Pure-FTP mais en voici déjà une bonne vision :

pure-pw useradd <login> [-f <passwd file>] -u <uid> [-g <gid>]
-D/-d <home directory> [-c <gecos>]
[-t <download bandwidth>] [-T <upload bandwidth>]
[-n <max number of files>] [-N <max Mbytes>]
[-q <upload ratio>] [-Q <download ratio>]
[-r <allow client host>[/<mask>][,<allow client host>[/<mask>]]…]
[-R <deny client host>[/<mask>][,<deny client host>[/<mask>]]…]
[-i <allow local host>[/<mask>][,<allow client host>[/<mask>]]…]
[-I <deny local host>[/<mask>][,<deny local host>[/<mask>]]…]
[-y <max number of concurrent sessions>]
[-z <hhmm>-<hhmm>] [-m]

Une fois les utilisateurs créés il faut générer leur fichier. Utilisez pour cela la commande suivante :

sudo pure-pw mkdb

Si nous nous arrétions là nous obtiendrions une erreur 530 en essayant de nous connecter. Afin d’activer ll’authetification liée à Pure-FTP, il faut créer un lien symbolique vers le fichier PureDB dans le dossier auth :

sudo ln -s /etc/pure-ftpd/conf/PureDB /etc/pure-ftpd/auth/50pure

On peut trouver dans ce dossier d’autres liens symboliques. Personnellement j’ai toujours du réaliser cette étape. D’après certains sites il faudrait idéalement que le lien symbolique de l’identification choisie soit en premier dans le dossier. Si l’erreur 530 persiste, il est conseillé de désactiver l’identification PAM en remplaçant « yes » par « no » dans le fichier « /etc/pure-ftpd/conf/PAMAuthentication ».

Si à l’issue cela persistait encore et que dans le fichier /var/log/syslog vous avez un affichage proche du suivant :

Jun  9 11:46:41 monserveur pure-ftpd: (?@monserveur) [INFO] New connection from monserveur
Jun  9 11:46:46 monserveur pure-ftpd: (?@monserveur) [INFO] PAM_RHOST enabled. Getting the peer address
Jun  9 11:46:47 monserveur pure-ftpd: (?@monserveur) [WARNING] Authentication failed for user [monuserftp]
Jun  9 11:46:53 monserveur pure-ftpd: (?@monserveur) [INFO] Logout.

Je vous invite alors à redémarrer votre serveur. Oui je sais que cela peut-être considéré comme hérétique que de vouloir redémarrer un serveur Linux mais dans le cadre présent cela peut aider 😉

Si au démarrage du serveur FTP vous obtenez l’erreur suivante dans le fichier /etc/var/syslog :

Jun 9 16:55:37 monserveur pure-ftpd: (?@?) [ERROR] Sorry, invalid address given

Il y a fort à parier que la résolution DNS de votre serveur soit dans les choux. Je vous invite alors à vérifier la configuration des serveur DNS disponibles dans le fichier /etc/resolv.conf.

Voici maintenant quelques commandes utiles pour le fonctionnement immédiat de votre serveur.

Lister les utilisateurs virtuels :

sudo pure-pw list

Lister les utilisateurs connectés et leurs états :

sudo pure-ftpwho

Changer le mot de  passe d’un utilisateur :

pure-pw passwd monuser -f /etc/pure-ftpd/pureftpd.passwd

Il est aussi possible d’ajouter un message personnalisé pour chaque utilisateur. Pour cela je vous inviterai à consulter la première documentation sur Doc Ubuntu 🙂 Voila pour toute cette partie. J’espère que cela sera utile à certains 🙂

Liens complémentaires / sources :

 

Cron : Exécuter une tâche le deuxième ou troisième dimanche du mois

Ayant du mettre en place des scripts pour un client qui ne devaient s’exécuter que le deuxième dimanche de chaque mois pour l’un, et le troisième dimanche pour l’autre, je me suis dis que j’allais partager cette astuce.

Voici donc des exemples à ajouter à votre crontab si vous souhaitez réaliser ce cas :

2eme dimanche :

0 12 * * 0 [ $(date ‘+\%-d’) -ge 8 -a $(date ‘+\%-d’) -le 14 ] && sh /var/scripts/MonScript.sh>> /var/log/Mon_Log.txt

3eme dimanche :

0 12 * * 0 [ $(date ‘+\%-d’) -ge 15 -a $(date ‘+\%-d’) -le 21 ] && sh /var/scripts/MonScript.sh>> /var/log/Mon_Log.txt

Je me suis beaucoup inspiré de la page de Wikipedia sur la Crontab [link]. Dans le cas présent on lance le script tout les dimanches et nous vérifions que nous sommes bien susceptibles d’être le deuxième ou le troisième. Fort heureusement pour nous les fourchettes de dates ne se chevauchent pas ce qui nous aide grandement 🙂 Le pourcentage (%) doit être échappé (\) dans la crontab, mais pas si vous voulez le faire en ligne de commande pour tester. J’espère que cette astuce sera utile à d’autres.