Ajouter des DLL dans Wine

Lorsque vous installez un programme dans Wine, il est possible que celui ci ne fonctionne pas à cause de DLL manquantes.

Avant tout, n’oubliez pas d’installer la dernière version de wine!

Bien sûr, on peut copier toutes les DLL d’une installation windows ou trouver les DLL nécessaires au fonctionnement d’un programme et les copier dans les répertoires adaptés manuellement, mais…

Il existe un petit programme qui va faire ceci à votre place: winetricks

Téléchargez le programme , rendez le exécutable (chmod +x winetricks) et utilisez le ainsi:

./winetricks gdiplus riched20 riched30 msxml3 msxml4 msxml6 corefonts tahoma vb6run vcrun6 msi2

(l’exemple ci dessus télécharge les DLL nécessaires au fonctionnement d’office 2007)

Le fonctionnement est plus ou moins long, mais soyez indulgents, il faut tout à votre place. Ensuite, installez votre logiciel normallement.

Manipuler des PDF et JPG ou JPEG

Je scanne beaucoup de documents (pour tendre vers le zéro papier) et j’archive ensuite ceux ci dans des PDF une fois que je n’en ai plus besoin.

Je vous donne mes astuces pour ce faire. Il vous faudra avoir installé les programmes imagemagick et gs, disponibles sous le même nom avec Ubuntu.

Créer un PDF à partir d’images

Je scanne en niveaux de gris à 300 DPI vers jpeg, ce qui permet d’avoir une image nette et de réimprimer le document au besoin en ayant la même qualité qu’une photocopie classique.

Ensuite, je met ces images dans un même dossier, et je les convertis toutes en un seul PDF avec la commande suivante:

convert *.jpeg Factures_Avril09.PDF

Ce qui vous donne un PDF contenant une page par image, dans l’ordre alphabétique.

Cependant, le PDF est assez lourd, l’équivalent en poids du total des images. Si vous désirez envoyer ce PDF par mail (par exemple au comptable), il faut l’alléger car vous allez y gagner en poids et il n’a pas besoin d’avoir une qualité identique à la votre tant qu’il arrive à lire le contenu. Il suffit d’ajouter une compression et un niveau de qualité à la commande ainsi:

convert *.jpeg -compress jpeg -quality 30 Factures_Avril09.PDF

Avec une qualité réglée à 30, vous divisez par environs 2,5 le poids du PDF généré. Mais la qualité de l’image baisse (ce qui est normal, puisque c’est ce qui est demandé). A vous de faire varier ce chiffre entre 0 et 100 pour arriver à un compromis acceptable entre la qualité et le poids du résultat final.

Dans l’autre sens

Il est aussi possible de transformer un PDF en série d’images que vous pourrez ensuite traiter, avec la commande suivante:

convert fichier.pdf images.jpeg

Cela va vous produire images-0.jpeg, images-1.jpeg, images-2.jpeg, … Autant d’images que de pages dans le PDF.

Attention cependant, la qualité des images obtenues avec cette méthode laisse à désirer et j’ai eu des soucis avec des images: le format était bien en A4, mais le contenu de l’image était réduit sur la page. Sans doute un option manquante.

Mais ça reste lisible.

Résoudre Error: no « view » mailcap rules found for type « application/octet-stream »

Depuis ubuntu 7.10, le paquet xdg-utils qui offre le programme xdg-open a un bug qui ne lui permet plus de lancer les applications.

Le programme sort avec une erreur de ce type:

Warning: unknown mime-type for "/var/log/messages" -- using "application/octet-stream"
Error: no "view" mailcap rules found for type "application/octet-stream"

Pour retrouver un fonctionnement normal dans Jaunty et Karmic, il faut éditer le fichier /usr/bin/xdg-open et aller vers la ligne 383 et 384 pour commenter les lignes comme ci dessous.

 	if [ $? -eq 0 ]; then
 	    exit_success
#	else
#	    exit_failure_operation_failed
 	fi
     fi

Sauvegardez, et vous pourrez à nouveau profiter des programmes tels que GnomeDo et de tous ceux qui utilisent xdg-open.

Installer la dernière version de Wine

winehq_logo_glassWine est un programme qui permet de faire croire à certains exécutables qu’ils fonctionnent sur un environnement windows alors qu’ils tournent en fait sur GNU/Linux, BSD, Solaris ou MacOs.

Dans les dépôts de Jaunty Jackalope, vous accédez à la dernière version stable de Wine, la version 1.0.1, mais vous pourriez avoir besoin d’installer la version de développement qui est, à l’écriture de cet article, la version 1.1.24.

Il suffit alors de suivre les étapes suivantes:
– Ajoutons la clef du dépôt de développement de wine:

wget -q http://wine.budgetdedicated.com/apt/387EE263.gpg -O- | sudo apt-key add -

– Ajoutons le dépôt dans la liste des sources:

sudo wget http://wine.budgetdedicated.com/apt/sources.list.d/jaunty.list -O /etc/apt/sources.list.d/winehq.list

– Actualisons les sources:

sudo apt-get update

– Installons wine:

sudo apt-get install wine

Lorsqu’il n’existe pas d’équivalent linux d’un logiciel, Wine peut dépanner, mais gardez en tête que ce n’est qu’un pis aller (sans dénigrer le travail effectué par l’équipe de wine!) qui peut apporter plus d’inconvénients que d’avantages, en particulier au niveau sécurité (les virus aussi peuvent fonctionner avec Wine…).

Lire les mails de cron avec son lecteur de messagerie

Vous pouvez simplement lire vos mails système avec votre lecteur de messagerie, après quelques manipulations.

Explications sur le fonctionnement:

Si les opérations effectuées avec le crontab de root renvoient des informations, cron les envoie par mail à l’utilisateur root.

Root n’étant pas sensé se connecter, ces mails sont transférés à un des utilisateurs du système. Par défaut, il s’agit de l’utilisateur que vous avrez créé lors de l’installation système, mais vous pouvez le changer en modifiant le contenu du fichier /etc/aliases:

# Added by installer for initial user
root:	manu

Dans ce cas, c’est l’utilisateur manu qui va hériter des mails système à destination de root.

Attention: sur certaines versions, et en particulier la Jaunty 9.04, le fichier ne contient pas le nom d’utilisateur. Tout est renvoyé à root, mais root ne renvoie vers personne:

# /etc/aliases
mailer-daemon: postmaster
postmaster: root
nobody: root
hostmaster: root
usenet: root
news: root
webmaster: root
www: root
ftp: root
abuse: root
noc: root
security: root
clamav: root
root: manu

Il suffira d’ajouter « root: manu » tel que ci dessus pour que l’utilisateur manu accède aux mails système.

Ces mails sont lisibles en console par l’intermédiaire, par exemple, de la commande mail (disponible dans le paquet mailutils). Mais il faut reconnaître qu’il serait plus pratique de les avoir dans le lecteur de messagerie même, puisque celui ci est ouvert régulièrement.
La méthode ci dessous n’est utile et exacte que si vous n’installez pas de serveur imap ou pop sur cette machine même pour y lire les mails (par défaut, dans 99,9% des cas).

Paramétrage du client de messagerie

La méthode est donnée ici pour Mozilla-Thunderbird, mais il est simple de l’adapter pour un autre lecteur de messagerie installée sur le système capable de lire le format Movemail¹ (testé avec Evolution et mutt).

  • Ouvrez votre lecteur de messagerie.
  • Si c’est la première ouverture, il vous est proposé de créer un nouveau compte. Dans le cas contraire, rendez vous dans le menu Edition / Paramètres des comptes … puis cliquez sur Ajouter un compte.
  • Dans le paramétrage d’un nouveau compte, sélectionnez Unix Mailspool (Movemail), puis cliquez sur suivant.
  • Sélection du type de compte

    Sélection du type de compte

  • Dans la fenêtre Identité, indiquez votre nom d’utilisateur (normalement déjà rempli). L’adresse de courrier n’a que peu d’importance (vous n’enverrez pas de courrier depuis ce compte), elle servira principalement à identifier ce compte dans la liste des comptes paramétrés.
  • S’il vous est demandé un serveur smtp, vous pouvez indiquer celui de votre FAI (souvent de la forme smtp.fai.fr). Si vous aviez déjà des comptes, le serveur smtp que vous aviez précédemment indiqué sera utilisé. Si votre ordinateur n’est pas connecté à internet ou n’envoie pas de mails par l’intermédiaire du lecteur de messagerie, vous pouvez mettre seulement « smtp » pour que la configuration puisse être finalisée.
  • Indiquez le nom du compte tel que vous désirez qu’il apparaisse dans la liste si la proposition ne vous convient pas.
  • Cliquez sur Terminer à l’affichage du résumé.

Il suffit désormais de relever le courrier pour pouvoir lire normalement les mails système et surveiller le fonctionnement de l’ordinateur.

Limitations

  • Les mails ne peuvent être lus QUE depuis la machine sur laquelle ils se trouvent. Pour les récupérer d’une autre machine, il faudra installer un serveur POP ou IMAP afin que le lecteur de messagerie de l’ordinateur client puisse accéder à ces mails. Cela fera l’objet d’un prochain article.
  • Il est possible d’envoyer les mails sur une autre adresse en indiquant l’adresse de destination pour l’alias du root dans le fichier /etc/aliases ainsi: root: manu@fai.fr. Cela oblige, par contre, l’ordinateur à posséder un système d’envoi de mails externes, tel que postfix ou exim4, paramétré correctement. Lorsque ce n’est pas nécessaire (si l’ordinateur est sur un réseau que je contrôle), je préfère éviter d’avoir un système d’envoi de mails que je serais obligé de maintenir et contrôler. En particulier si un logiciel s’affole et envoie plusieurs centaines de messages au système en quelques minutes (vécu), le risque de passer pour spammeur est grand!

Messages d’erreur

Impossible de localiser le fichier de spool du courrier

Impossible de localiser le fichier de spool du courrier

Ce message vous indique que le fichier /var/spool/mail/user n’existe pas. Il peut ne pas exister pour 2 raisons principales:²

  • L’utilisateur n’est pas déclaré comme devant recevoir les messages de root dans le fichier /etc/aliases
  • Aucun mail n’a été envoyé par le système, donc il n’y a pas de fichier contenant les mails…
Impossible de créer les verrours

Impossible de créer les verrours

Ce message vous informe que les droits ne sont pas corrects. Dans une console, la commande sudo chroot 01777 /var/spool/mail résoudra le problème.

¹ Opera mail ne semble pas pouvoir être utilisé pour accéder à ce type de compte mail.

² Assurez vous que la partition /var est montée, accessible à l’utilisateur, droits corrects, etc…

Modifier un fichier PPD

Il est parfois nécessaire de pouvoir modifier un driver d’imprimante pour ajuster son comportement. Ayant eu à le faire récemment, je vous livre mes observations pour vous éviter mes galères:

  • Le fichier utilisé pour contrôler l’imprimante se trouve dans /etc/cups/ppd
  • Il porte le nom que vous avez donné à l’imprimante lors de son installation (exemple: copieur.ppd si vous avez nommé votre imprimante copieur)
  • Lors de l’installation, ou en passant par le gestionnaire des imprimante (Système /Administration/ Impression ou system-config-printer), les options sélectionnées (bacs, format, couleur/gris, …) sont directement écrites dans le fichier ppd de l’imprimante
  • Après modification manuelle du fichier ppd, vous devez redémarrer cups (/etc/init.d/cupsys restart)
  • En cas d’erreur de syntaxe dans le fichier ppd, l’onglet correspondant à la section n’apparaît plus dans les options lors de l’impression
  • Si la commande est trop longue pour tenir sur une seule ligne, le reste de la commande est sur la ligne suivante, et la ligne suivante doit comporter *End pour clore la commande.
  • exemple:
    *OpenUI *Fold/Pliage: PickOne
    *OrderDependency: 3 AnySetup *Fold
    *DefaultFold: None
    *Fold None/Non:  "<< /FoldType (Off) >> /KMOptions /ProcSet findresource /setKMoptions get exec"
    *Fold Stitch/Pliage et Agrafage centre:  "<< /Collate true >> setpagedevice
     << /FoldType (CenterFoldIn) /StitchType true >> /KMOptions /ProcSet findresource /setKMoptions get exec"
    *End
    *Fold HalfFold/Pliage en deux:  "<< /Collate true >> setpagedevice
     << /FoldType (CenterFoldIn) /StitchType false >> /KMOptions /ProcSet findresource /setKMoptions get exec"
    *End
    *Fold Stapling/Agrafage au milieu:  "<< /Collate true >> setpagedevice
     << /Finish 1 >> /KMOptions /ProcSet findresource /setKMoptions get exec"
    *End
    *CloseUI: *Fold
  • Pour commenter une ligne, elle doit commencer par *%. Pour commenter une commande sur 2 lignes,  supprimer le saut de ligne et commenter la ligne.
  • Faire attention au codage du fichier (en particulier pour les accents dans les labels). Un mauvais codage et le ppd ne fonctionne plus! Il est normalement (si le ppd est bien écrit) déclaré en haut de fichier:*LanguageVersion: French et *LanguageEncoding: ISOLatin1
  • Toujours avoir une copie du ppd avant de le modifier. En cas d’erreur, il est parfois plus facile de tout recommencer au lieu de chercher quel caractère pose problème.
  • Éditez le code en root avec un éditeur de textes. Après enregistrement de vos modification, vous pourrez tester immédiatement un lancement d’impression pour aller vérifier les options que vous avez modifié.
  • Avancez étape par étape. En cas de problème, vous saurez que cela vient de votre dernière modification.

Grâce à cela, j’ai supprimé (mis en commentaire) les options qui apparaissaient dans les onglet lors de l’impression et qui perturbaient mes utilisateurs. J’ai aussi changé des labels pour les rendre plus explicites (1 face -> Recto, 2 Faces -> Recto Verso).

Une fois le ppd modifié et paramétré avec les options voulues par défaut, il suffit de le copier dans le dossier /etc/cups/ppd de chaque ordinateur en ayant besoin sous le nom de l’imprimante paramétrée et de relancer cups.

Identifier son système sous linux

Lorsque l’on doit faire une mise à jour du bios de son ordinateur, il est plus rassurant (et plus fiable) d’avoir le maximum d’informations sur son matériel.

Avec Debian/Ubuntu, vous pouvez obtenir ces informations facilement en installant le paquet libsmbios-bin et en utilisant la commande getSystemId (via sudo!)

exemples:

pour mon Aspire One (jaunty)

Libsmbios version:      2.2.13
Product Name:           AOA150
Vendor:                 Acer
Version du BIOS:        v0.3114
System ID:              0x0000
Service Tag:            xxxxxxxxxxxxxxxxxxxxx
Express Service Code:   xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Asset Tag:
Property Ownership Tag:

Pour mon Fujitsu Amilo (hardy):

Libsmbios:    0.13.10
Error getting the System ID   :
Error getting the Service Tag : std::exception
Product Name: AMILO Xa 2528
BIOS Version: 1.0L-4C15-000F
Vendor:       FUJITSU SIEMENS
Is Dell:      0

Un serveur Web (hardy):

Libsmbios:    0.13.10
Error getting the System ID   :
Error getting the Service Tag : std::exception
Product Name: EPIA
BIOS Version: 6.00 PG
Vendor:       VIA TECHNOLOGIES, INC.
Is Dell:      0

Une VirtualBox (jaunty):

Libsmbios version:      2.2.13
Product Name:           VirtualBox
Vendor:                 innotek GmbH
Version du BIOS:        VirtualBox
System ID:              0x0000
Service Tag:            0
Express Service Code:   0
Asset Tag:
Property Ownership Tag:

Pour les développeurs python, vous noterez que ça vous installe d’office python-libsmbios. Je vous laisse imaginer tous les usages possibles pour vos applications.

Modifier des fichiers PDF avec Openoffice.org

Installer PDFimport sur Openoffice.org

Il est désormais tout à fait possible d’éditer des PDF depuis openoffice.org sans avoir à recourir à Windows et des logiciels plus ou moins bien faits.
En effet, l’extention pdfimport fournie par SUN permet des éditions de ces fichiers peu amis avec le pingouin.

L’installation est simple:

  • Rendez vous sur http://extensions.services.openoffice.org/project/pdfimport
  • Téléchargez l’extention pour votre plateforme
  • Ouvrez openoffice (Writer, calc, ce que vous voulez)
  • Cliquez sur Outils/ Gestionnaire des extentions
  • Cliquez sur Ajouter et sélectionnez le fichier que vous venez de télécharger (pdfinmport.oxt)
  • Suivez les instructions d’installation
  • Fermez openoffice.org
  • Lancez Draw (le module de dessin d’openoffice.org)
  • Fichier/ Ouvrir, puis choisissez un fichier PDF

Les mauvaises nouvelles

  • L’ouverture de tous les documents ne fonctionnera pas. Une question de version ? Parfois, vous obtiendrez une erreur disant que le document est crypté (sic), parfois ce que vous ouvrirez ne correspondra pas au contenu du PDF (des hiéroglyphes).
  • L’ouverture sans modification puis export au format PDF augmenta la taille du fichier de façon non négligeable sur certains documents.

Les bonnes nouvelles

  • L’ajout de texte est simple (si vous savez utiliser draw) et permet de retoucher un document très rapidement.
  • Tous mes tests ont été lisibles correctement avec KPDF et Evince

Bientôt plus besoin de windows !

Htop toujours disponible

htop-05Données du problème

J’ai un serveur avec écran, dans une armoire fermée à clef avec un porte transparente qui démarre sans interface graphique. Je souhaitais faire apparaître un htop systématiquement à chaque démarrage.

Méthode testée sur Ubuntu, mais pouvant certainement être adaptée à d’autres distributions.

Il suffit de mettre le code suivant dans le fichier /etc/event.d/tty1

# tty1 - getty
#
# This service maintains a getty on tty1 from the point the system is
# started until it is shut down again.
 
start on stopped rc2
start on stopped rc3
start on stopped rc4
start on stopped rc5
 
stop on runlevel 0
stop on runlevel 1
stop on runlevel 6
 
respawn
exec /sbin/getty 38400 tty1 -nl /usr/bin/htop

Attention

  • Dans cette configuration, le clavier est actif. Il est donc utilisable par n’importe quel utilisateur accédant au clavier.
  • Le logiciel est lancé en root! Donc, si le clavier est accessible, n’importe quel utilisateur peut killer un processus appartenant à un autre (même init!)
  • htop consomme de la mémoire et de la puissance processeur. Même si c’est relativement peu, c’est à prendre en compte.

Du fait que le clavier est inacessible, dans mon cas, cela n’est pas un problème, mais c’est à garder en tête avant d’activer cette fonctionalité.

Update du 24/01/2011

Depuis que la version de Upstart a changé sur Ubuntu, cela ne fonctionne plus exactement de la même manière:

  • Il faut modifier le fichier /etc/init/tty1.conf
  • Il faut remplacer la ligne exec /sbin/getty -8 38400 tty1 par exec /usr/bin/htop </dev/tty6 >/dev/tty6
  • Le clavier est toujours actif! Attention: si vous avez installé GPM, la souris l’est aussi et permet d’utiliser les menus de htop! Pensez à la mettre sous clef.

Recevoir le log de rkhunter

Par défaut, rkhunter envoi un compte rendu succint lors de son lancement automatique.

Avouez qu’il serait quand même plus pratique de recevoir le log au lieu d’une simple phrase « Please inspect this machine, because it may be infected. ».

Heureusement, il est possible de modifier simplement ce comportement.

En root, éditez le fichier /etc/cron.daily/rkhunter.

Modifiez la ligne:

...
/usr/bin/nice -n $NICE $RKHUNTER --cronjob --report-warnings-only \
--createlogfile /var/log/rkhunter.log $RK_OPT &gt; $OUTFILE
...

pour qu’elle ressemble à celle ci

...
/usr/bin/nice -n $NICE $RKHUNTER --cronjob --report-warnings-only \
--createlogfile /var/log/rkhunter.log --display-logfile $RK_OPT &gt; $OUTFILE
...

Au prochain lancement automatique, si vous avez paramétré rkhunter pour qu’il vous envoie un mail, vous recevrez en plus le log du scan.

Filtrer les connexions ssh

Portier SSH

Si vous possédez un serveur avec SSH opérationnel, vous ne serez pas long à avoir des messages tels que ceux ci dans le fichier /var/log/auth.log:

...
Mar 11 12:48:21 serv sshd[12956]: Failed password for invalid user root from 64.71.148.162 port 47270 ssh2
Mar 11 15:45:04 serv sshd[6954]: Did not receive identification string from 210.21.30.72
Mar 11 15:46:48 serv sshd[7041]: Did not receive identification string from 81.93.188.5
Mar 11 15:47:50 serv sshd[7106]: User root from 210.21.30.72 not allowed because none of user s groups are listed in AllowGroups
Mar 11 15:47:50 serv sshd[7106]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=210.21.30.72  user=root
Mar 11 15:47:52 serv sshd[7106]: Failed password for invalid user root from 210.21.30.72 port 54346 ssh2
Mar 11 15:49:33 serv sshd[7241]: User root from 81.93.188.5 not allowed because none of user s groups are listed in AllowGroups
Mar 11 15:49:33 serv sshd[7241]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=81.93.188.5  user=root
Mar 11 15:49:35 serv sshd[7241]: Failed password for invalid user root from 81.93.188.5 port 44663 ssh2
Mar 12 00:51:18 serv sshd[22229]: User root from host.ongamemarketing.com not allowed because none of user s groups are listed in AllowGroups
Mar 12 00:51:18 serv sshd[22229]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=host.ongamemarketing.com  user=root
Mar 12 00:51:20 serv sshd[22229]: Failed password for invalid user root from 174.133.12.130 port 48089 ssh2
Mar 12 00:51:22 serv sshd[22236]: User root from host.ongamemarketing.com not allowed because none of user s groups are listed in AllowGroups
Mar 12 00:51:22 serv sshd[22236]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=host.ongamemarketing.com  user=root
Mar 12 00:51:24 serv sshd[22236]: Failed password for invalid user root from 174.133.12.130 port 48521 ssh2
Mar 12 01:47:10 serv sshd[30827]: Did not receive identification string from 114.200.199.144
Mar 12 01:53:17 serv sshd[31227]: Invalid user staff from 114.200.199.144
Mar 12 01:53:17 serv sshd[31227]: pam_unix(sshd:auth): check pass; user unknown
Mar 12 01:53:17 serv sshd[31227]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=114.200.199.144
Mar 12 01:53:19 serv sshd[31227]: Failed password for invalid user staff from 114.200.199.144 port 35343 ssh2
Mar 12 01:53:27 serv sshd[31234]: Invalid user sales from 114.200.199.144
...

Vous avez besoin de pouvoir vous connecter en ssh depuis le réseau local, depuis l’extérieur, mais vous voulez limiter les risques. Il existe plusieurs solutions, qui peuvent être cumulées:

Sécuriser par la configuration de SSH

N’autoriser QUE certains utilisateurs à accéder au service

Si vous avez peu d’utilisateurs nécessitant un accès ssh, vous pouvez les déclarer ainsi en ajoutant cette ligne dans le fichier de configuration /etc/ssh/sshd_config (et en redémarrant le service après chaque modification)

AllowUsers titi toto

Après relance du service ssh, les utilisateurs titi et toto pourront se connecter en ssh, les autres utilisateurs se verront refuser leur mot de passe.

Vous pouvez aussi créer un groupe (par exemple: sshusers) et autoriser tous les utilisateurs de ce groupe à se connecter en ssh. Ceux n’appartenant pas à ce groupe se verront refuser leur mot de passe.

addgroup sshusers
adduser toto sshusers
adduser titi sshusers

Puis ajoutez la ligne suivante dans /etc/ssh/sshd_config:

AllowGroups sshusers

IN and OUT

Oui, mais voilà un nouveau problème:

  1. Le serveur fait passerelle avec internet, et possède une carte sur le réseau interne, et une carte vers le réseau internet.
  2. Tous mes utilisateurs internes doivent pouvoir accéder par ssh (ce qui est le cas avec la configuration par défaut), mais ne doivent pas pouvoir accéder depuis l’extérieur (parce qu’ils n’en ont pas besoin, ou parce que les mots de passe des utilisateurs sont trop simples)
  3. Si je laisse la configuration ainsi, le serveur sera piraté très rapidement.

Il est possible d’ajouter une directive à la liste des autorisations, permettant de faire ceci:

AllowUsers *@192.168.0.*

Ainsi, tous les utilisateurs du réseau local (et possédant un compte sur le serveur) pourront accéder par ssh, mais ne pourront pas le faire s’ils ne proviennent pas du réseau local (par internet).
Si je veux pouvoir ensuite me connecter depuis l’internet pour faire de la télémaintenance, il me suffit d’ajouter mon compte et de transformer la ligne en ceci:

AllowUsers manu *@192.168.0.*

(1)

Il est possible aussi de cumuler les directives Users et Groups pour obtenir des possibilités supplémentaires. Exemple:

  1. Seuls certains de mes utilisateurs locaux doivent pouvoir se connecter au serveur, depuis le net ou en local.
  2. Je veux pouvoir m’y connecter de partout (local et internet)

La configuration est la suivante:

AllowGroups sshusers
AllowUsers manu

Ainsi, seuls les utilisateurs appartenant au groupe sshusers pourront se connecter au serveur, en plus de l’utilisateur manu qui pourra se connecter depuis n’importe où.

Si je possède un adresse IP fixe, et que je suis assez bête pour crée un compte manu avec le mot de passe manu, je peux tout de même limiter l’accès par mon adresse IP (80.80.80.80)

AllowUsers @80.80.80.80

Je suis désolé, ça va pas être possible…

Vous pouvez même ajouter des directives inverses, pour interdire les connexions:

DenyUsers invite
DenyGroups stagiaires

Autres configurations conseillées de ssh

Vous pouvez modifier d’autres éléments du fichier de configuration, qui permettront de sécuriser un peu plus votre serveur ssh:

  • Changer le port d’écoute par défaut: vous pouvez changer ce port par autre chose que 22. Sachez cependant que la protection apportée par ce changement est TRÈS FAIBLE. Un scan de vos port repérera le port que vous avez choisi, et des logiciels de scans sont capable de déterminer le service qui tourne derrière ce port. Cela vous permettra seulement d’échapper à certains robots qui ne tentent des connexions que sur le port 22.
  • N’autoriser une identification que par clef: il vous faudra générer des clefs d’identification (avec seahorse pour gnome ou ssk-keygen) pour tous vos utilisateurs et empêcher l’autentification par mot de passe dans la configuration de SSH. Cette protection est très efficace, par contre, il faut que les clefs soient sécurisées (pas sur une clef usb qui peut se perdre ou se faire voler, pas sur un partage accessible, pas échangées par courriel, …). L’autre inconvénient, c’est que vos clefs doivent voyager avec vous et être installées sur les ordinateurs que vous utilisez; d’où une incompatibilité avec le point précédent, si vous n’avez pas une politique stricte de stockage des clefs.
  • Ne JAMAIS autoriser la connexion de l’utilisateur root: (PermitRootLogin no).  Il y a toujours un utilisateur root sur tous les Linux (même sur Ubuntu) et vous facilitez le travail d’un éventuel pirate, puisqu’il n’a qu’un mot de passe à trouver. Autrement, il doit d’abord trouver un login valide, puis son mot de passe, puis celui du root. Si vos mots de passe et vos logins sont adaptés, cela lui prendra des années avant d’y arriver par ce moyen.

Ajouter des logiciels de sécurisation

fail2ban

fail2ban est un logiciel qui va surveiller les tentatives de connexion échouées dans le fichier /var/log/auth.log , et bloquer, en modifiant les règles iptables à la volée, un nombre trop élevé de connexions échouées. Ce logiciel permet aussi, de la même manière, de protéger votre serveur apache, postfix, vsftpd, proftpd, wuftpd, sasl, dns, …
Une fois installé, il vous suffit d’éditer le fichier /etc/fail2ban/jail.conf pour configurer son comportement. Exemple pour ssh:

...
[DEFAULT]
# "ignoreip" can be an IP address, a CIDR mask or a DNS host
ignoreip = <a class="linkification-ext" title="Linkification: http://10.0.0.0/24" href="http://10.0.0.0/24">10.0.0.0/24</a>
bantime  = 600
maxretry = 3
...
[SECTION_NAME]
enabled = true # vérifier que cette valeur est à True, sinon le logiciel n'est pas activé!
...
[ssh]
enabled = true
port	= ssh
filter	= sshd
logpath  = /var/log/auth.log
maxretry = 6

Dans cette configuration:

  • Tout ce qui vient du réseau local (10.0.0.0/24) est ignoré. Donc je pourrais me tromper autant de fois que voulu, je ne me ferais pas bannir.
  • En dehors de mon réseau local, par ssh, j’ai droit à 6 tentatives (par session) de connexions échouées. Ensuite, je me ferais bannir. Si je m’identifie, la fois suivante, j’ai encore droit à 6 tentative (ça repart à zéro avec l’identification réussie)
  • Si je suis banni, toutes mes tentatives de connexions pendant les 600 prochaines secondes (10 minutes) seront refusées, sans possibilité d’identification.

La configuration de fail2ban vous offre plein d’autres possibilité, comme de recevoir des mails en cas de tentatives échouées, d’utilisateurs inconnus, etc. Consultez la documentation pour exploiter cet outils très pratique.

denyhosts

denyhosts permet de faire la même chose, un peu différemment. Il maintient une base d’IP bannies dans /etc/hosts.deny et les compare avec les tentatives de connexions.

Il a quelques avantages sur fail2ban, même si je le trouve plus lent (consommateur) à l’usage:

  1. Il permet de bloquer les tentatives d’accès ssh sur l’utilisateur root dès la première tentative.
  2. Il permet de paramétrer comme on le veut les champs from et subject des mails envoyés
  3. Il permet d’envoyer les rapports vers le syslog, qui peut être distant (et ineffaçable)

Simple à configurer, le fichier /etc/denyhosts.conf est largement commenté

Sur le même sujet:

(1) Ne pensez pas que je suis assez bête pour utiliser un login simple tel que « manu » sur mes serveurs… C’est juste pour l’exemple.

Changer les applications par défaut dans Gnome

Lorsque vous introduisez pour la première fois un CD audio dans votre lecteur, Gnome vous demande avec quelle application l’ouvrir. Vous pouvez même lui demander, en cochant la case,  de s’en souvenir pour la prochaine fois.

application-par-defaut

application-par-defaut

Mais si vous désirez changer d’application, comment faut il faire ? Encore une fois, avec le libre, c’est simple si vous savez où aller chercher l’information.

La liste des associations entre les type de fichiers et les applications à lancer se trouvent dans le fichier ~/.local/share/applications/mimeapps.list (ces dossiers et fichiers ne sont présents qu’une fois que vous avez créé au moins une association)

Ce fichier se compose ainsi:

[Added Associations]
x-content/audio-cdda=vlc.desktop;

Si je désire changer l’application associée aux fichiers audio CD, il me suffit de modifier le fichier pour lui donner le nom du lanceur de l’application voulue.

Voici un autre exemple de fichier sur un ordinateur utilisé quotidiennement:

[Added Associations]
application/x-shellscript=userapp-kwrite-MEM3AU.desktop;gedit.desktop;
application/x-extension-inf=gedit.desktop;
application/x-designer=userapp-designer-qt4-YG48AU.desktop;
text/x-python=userapp-wing-101-3.1-NFH9NU.desktop;userapp-wing-101-3.1-SGDVNU.desktop;gedit.desktop;userapp-python-CDV5AU.desktop;
video/x-mng=gimp.desktop;
image/svg+xml=inkscape.desktop;
audio/x-vorbis+ogg=userapp-audacity-ENNGCU.desktop;
image/x-ico=gimp.desktop;
application/x-executable=userapp-wine-HQHEDU.desktop;userapp-bash-V6E5CU.desktop;
application/msword=ooo-writer.desktop;kwrite.desktop;gedit.desktop;
application/pdf=userapp-kpdf-8V7VLU.desktop;evince.desktop;gimp.desktop;
application/x-cd-image=userapp-vlc-Z4WYDU.desktop;
application/x-extension-2008=eog.desktop;
application/octet-stream=eog.desktop;
application/x-dia-diagram=dia-common.desktop;
application/x-extension-dat=gedit.desktop;
application/x-extension-QCM=ooo-template.desktop;
text/html=firefox.desktop;geany.desktop;
text/css=geany.desktop;
image/x-xcf=
image/png=eog.desktop;
text/x-gettext-translation=poedit.desktop;userapp-poedit-8NECLU.desktop;
application/x-flash-video=vlc.desktop;totem.desktop;
 
[Removed Associations]
application/x-shellscript=ooo-writer.desktop;wine.desktop;userapp-wine-HQHEDU.desktop;userapp-kwrite-3738AU.desktop;kde-kate.desktop;kde-kwrite.desktop;
text/x-python=ooo-writer.desktop;wine.desktop;userapp-wine-HQHEDU.desktop;userapp-eclipse-0HNYBU.desktop;
application/x-dia-diagram=opera.desktop;firefox.desktop;thunderbird.desktop;kde-kfmclient_html.desktop;geany.desktop;gedit.desktop;
image/x-xcf=userapp-inkscape-0BW2KU.desktop;
image/png=inkscape.desktop;
text/html=kwrite.desktop;ooo-writer.desktop;thunderbird.desktop;

Vous pouvez noter qu’on peut associer plusieurs applications à un type de fichier: ce seront les applications lancées si vous double cliquez sur un fichier. Si la première n’est pas trouvée, la deuxième sera lancée, et ainsi de suite.

Cette liste d’applications est celle que vous pouvez voir si vous faites un clic droit sur un fichier, que vous choisissez Propriétés et que vous allez dans l’onglet Ouvrir avec.

liste-des-applications-pour-html

liste-des-applications-pour-html

Si vous supprimez une des applications de la liste proposée (en cliquant sur le bouton Enlever de cette fenêtre), cette suppression d’association sera notée dans la liste [Removed Associations] du fichier  ~/.local/share/applications/mimeapps.list. Par exemple, nous voyons dans le fichier ci dessus (ligne 31) que les images au format png ne doivent pas être ouvertes avec le logiciel inskape.

Changer un mot de passe Windows sans le connaitre

Il arrive qu’on doive accéder à un ordinateur Windows mais qu’on ne connaisse pas le mot de passe ou qu’on l’ait oublié… Dans mon cas, j’utilise tellement peu le serveur de test que le mot de passe m’est sorti de l’esprit.

Heureusement, il est possible de le modifier sans avoir à tout réinstaller!

De plus, l’aide nous vient de GNU/linux et des outils libres par ntpasswd (par l’intermédiaire de ntfs-3g et busybox)

Il suffit de graver l’iso et de démarrer l’ordinateur sur le CD pour obtenir un prompt de style MSDOS, de sélectionner la partition d’installation de windows.

Ensuite, il faut préciser le chemin d’accès à la base de registre (\windows\system32\config pour XP) et presser Enter. Puis choix 1 Edit user data and password.

Entrez l’utilisateur dont vous voulez modifier le mot de passe et saisissez le nouveau mot de passe.

Vous pouvez modifier tous les comptes de la machine, administrateur compris. Sortez et validez par Y pour enregistrer les modification, puis redémarrez normalement.

Un outil pratique qui nous rapelle qu’un système d’exploitation protégé par mot de passe ne l’est (protégé) QUE si l’ordinateur qui le fait tourner est sécurisé (mot de passe au BIOS, démarrage sur le disque dur en premier, boitier de ordinateur fermé à clef et ordinateur inaccessible), sinon, n’importe qui pourrait modifier votre mot de passe et vous empêcher d’avoir accès à vos données.

Dans mon cas, c’est une réinstallation complète de windows qui m’a été évitée, et ça, ça n’a pas de prix!

Note: cet outil permettant d’accéder à la base de registre, il est possible de faire bien d’autres choses que de modifier le mot de passe (ajout/modification/suppression de clefs). Pratique pour supprimer cet antivirus nommé comme une bonne marque de moto et qu’il est difficile (voire pénible) de supprimer correstement pour mettre un bon anti virus.

Délai d’installation des extensions de Firefox

Vous avez remarqué que lorsque vous voulez installer une extension dans Firefox, vous devez attendre un certain délai avant de pouvoir cliquer sur le bouton qui vous permet de lancer l’installation.
Il est possible de modifier ce délai pour ne plus avoir à attendre, ou pour fixer un délai trèèèès long pour empêcher l’installation d’extensions sur un poste en libre service (bien sûr, si l’utilisateur connait l’astuce, cela ne l’empêchera nullement, mais cela est suffisant pour des postes dans des écoles, par exemple).

  • Ouvrez firefox
  • dans la barre d’adresses, tapez about:config
  • validez le message d’avertissement en cliquant sur le bouton je ferais attention, promis
  • Dans la barre de filtre, entrez security.dialog_enable_delay
  • Double cliquez sur la ligne affichée
  • Modifiez la valeur selon ce que vous désirez faire:
    • 0 pour pouvoir installer les extensions sans attendre
    • 2000 (valeur par défaut à l’installation) pour attendre environs 3 secondes
    • 999999999 pour devoir attendre 11 jours 27 minutes et une poignée de secondes avant de pouvoir cliquer sur le bouton (calcul validé par des scientifiques grâce à un pifomètre laser de dernière génération)(en fait, la valeur entrée est en millisecondes, à vos calculettes)
  • Validez votre choix

Inutile de redémarrer firefox, le changement est immédiat.

Vous pouvez tenter d’installer une extension par le site http://extensions.geckozone.org/Firefox et vérifier vos réglages

delai_installation_extension

delai_installation_extension

Mettre en avant l’onglet actif de firefox

Avec les couleurs par défaut de firefox, en particulier si vous souffrez de déficience visuelle, il n’est pas toujours facile de savoir sur quel onglet vous êtes, et vous fermez parfois un mauvais onglet.

Même s’il est possible d’annuler la fermeture de l’onglet lorsqu’on se rend compte de son erreur, il est aussi très facile de modifier les couleurs affichées et de mettre visuellement l’onglet actif en avant.Pour vous permettre de voir le résultat obtenu, voici un avant/après:

onglets_firefox_default

onglets_firefox_default

onglets_firefox_apres

onglets_firefox_apres

Bien sûr, les couleurs sont personnalisables, tout dépend du résultat que vous désirez obtenir.

    1. Ouvrez nautilus par Raccourcis/Dossier personnel (pour KDE, lancez votre navigateur de fichier)
    2. Affichez les fichiers cachés (cochez Affichage/Afficher les fichiers cachés)
    3. Ouvrez le dossier .mozilla
    4. Ouvrez le dossier firefox
    5. Ouvrez le dossier xxxxx.default (où xxxxx est différent d’un compte à l’autre)
    6. Ouvrez le dossier chrome
    7. Renommez le fichier userChrome-sample.css (ou userChrome-example.css) en userChrome.css (cette opération permet de le faire prendre en compte par Firefox)
    8. Cliquez avec le bouton droit et choisissez Ouvrir avec éditeur de textes
    9. Insérez le contenu suivant à la fin du fichier:
tab {
-moz-appearance: none !important;
}
tab[selected="true"] {
background-color: #F2F547 !important;
color: black !important;
}
tab:not([selected="true"]) {
background-color: #DEDED7 !important;
color: gray !important;
}
  1. Sauvez le fichier
  2. Fermez les fenêtres du navigateur de fichier (vous n’en avez plus besoin)
  3. Fermez et relancez Firefox

Pour aller plus loin

  • Vous pouvez spécifier les couleurs par leur nom normalisé (grey, black, white, …), par leur code couleur (#FFC2D1) ou par leur valeur RGB (en utilisant rgb(200,150,82) )
  • L’onglet actif est défini dans le paragraphe tab[selected= »true »], les onglets non actifs sont définis dans le paragraphe tab:not([selected= »true »]).
  • Vous trouverez des exemples de personalisation à l’adresse http://www.mozilla.org/unix/customizing.html
  • Le fichier est lu au chargement de firefox, mais si vous ne relancez pas le navigateur après avoir sauvegardé des modifications dans le fichier (donc, si vous laissez firefox ouvert pour continuer votre navigation), il peut arriver que firefox se fige. Redémarrez votre session.

Utilisation de Bazaar

Bazaar est un gestionnaire de version. L’un de ses avantages est qu’il permet d’utiliser les protocoles ssh ou ftp, ce qui signifie qu’il n’est pas nécessaire de monter un « serveur » bazaar pour l’utiliser; il suffit d’un serveur où vous pouvez vous connecter en ssh.

Classement des dossiers

L’organisation des dossiers est laissée à votre goût, mais pour simplifier les explications, voici l’organisation que nous allons adopter sur le serveur:

  • Un dossier à la racine nommé bzr qui contiendra les divers projets à versionner
  • Un dossier par projet dans le dossier /bzr (projet1 et projet2 )
  • Les droits en lecture/écriture pour les membres du groupe projets sur le dossier /bzr (récursivement)
addgroup projets              # ajout d'un groupe projets
adduser manu projets        # ajout de l'utilisateur au groupe projets
mkdir -p /bzr/projet1         # création du dossier du premier projet
mkdir -p /bzr/projet2         # création du dossier du deuxième projet
chgrp -R projets /bzr         # attribution du groupe projet à tous les fichiers du répertoire /bzr
chmod -R g+rw /bzr          # attribution des droits en lecture/écriture à tous les fichiers pour les membres du groupe projets

Il n’est pas nécessaire d’installer bazaar sur le serveur, mais il est nécessaire que l’accès par ssh fonctionne, avec ou sans mot de passe.

Sur les clients

Mise en place du projet sur le serveur

Ce sont les clients (qui vont modifier le code des projets) qui doivent installer le logiciel bazaar

apt-get install bzr python-paramiko

Les préférences de bazaar (limitées) se trouvent dans Système/Préférences/Bazaar preferences

Ce sont eux, aussi, qui vont initier le versionning, à l’endroit qui leur va bien:

mkdir ~/projets
mv ~/Bureau/monprojet ~/projets # déplacement des fichiers du prototype dans les projets
cd ~/projets/monprojet
bzr init                        # initialisation du versionning du projet
bzr add *                    # ajout de tous les fichiers (récursif) au versionning
bzr commit -m "Création" # prise en compte des modifications avec le commentaire "Création"
bzr push sftp://manu@server/bzr/projet1 --use-existing-dir # envoi de la version du projet sur le serveur en utilisant les répertoires créés plus haut.

Récupération des fichiers sur un autre client

mkdir ~/beauprojet     # création du dossier qui va accueillir le projet
cd ~/beauprojet
bzr init                     # initialisation du dossier au versionning
bzr merge sftp://toto@server/bzr/projet1/  # intégration des fichiers de "monprojet" dans le dossier "beauprojet" dans lequel on se trouve

Chacun des clients possède maintenant les fichiers sur lesquels effectuer les développements

Codage!

Les clients vont effectuer les modifications sur les documents. Après chaque modification (enfin, chaque fin de bloc de modification) ou avant l’envoi des fichiers modifiés, il faudra effectuer la commande suivante (qu’ils aient décidé ou non d’envoyer les fichiers sur le serveur. Les commit peuvent être fait hors connexion.):

bzr commit -m "message"

qui permet de prendre en compte les modifications effectuées dans le versionning et, accessoirement, de revenir à une version antérieure.

Il suffit ensuite « d’assembler » les fichiers modifiés avec ceux du serveur, que ceux ci aient été modifiés ou non par une autre personne:

bzr merge sftp://toto@server/bzr/projet1/

Enfin, les fichiers « finaux » sont envoyés sur le serveur afin d’être disponibles pour tous les développeurs:

bzr push sftp://toto@server/bzr/projet1/

A retenir

  • Il ne suffit pas d’ajouter un fichier/dossier au répertoire du projet pour qu’il soit pris en compte. Il faut le faire manuellement avec bzr add lefichier
  • Pour supprimer un fichier, il faut utiliser bzr remove lefichier
  • la commande bzr status permet de savoir l’état des fichier (plus exactement, du versionning)
  • La commande bzr log permet de voir le log des changements avec les commentaires
  • la commande bzr conflicts affiche les versions de fichiers en conflits
  • La commande bzr resolve lefichier permet de résoudre les conflits dans le fichier lefichier
  • Le manuel de bzr donne plein d’informations et de commandes utilisables

Interface graphique

Il existe une interface graphique pour bazaar nommée olive (paquet bzr-gtk) que je n’ai pas réussi à utiliser: impossible de comprendre les messages d’erreur (pas parlant) et pas trouvé de configuration à effectuer (ni dans le programme, ni dans les fichiers de configuration).

Pas grave, je suis un adepte de la ligne de commande.

Autres sources:

http://bazaar-vcs.org/fr/IntroductionABzr

Identification SSH sans mot de passe

Pour utiliser SSH (et dérivés tels que sftp) sans mot de passe, il faut ajouter votre clef sur le serveur. Nous aurons donc un ordinateur (manu-desktop) qui pourra se connecter à un serveur (server) par ssh sans avoir besoin de spécifier de mot de passe.

Notez qu’il existe des outils graphiques pour réaliser ces opérations (par exemple seahorse sous Gnome), mais je n’en parlerais pas.

Sur l’ordinateur client (manu-desktop)

La première chose à faire, si vous n’avez pas de clef pour votre machine, est d’en générer une

manu@manu-desktop:~$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/manu/.ssh/id_rsa):
Created directory '/home/manu/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/manu/.ssh/id_rsa.
Your public key has been saved in /home/manu/.ssh/id_rsa.pub.
The key fingerprint is:
cd:9e:bb:0a:1e:22:29:fa:e3:dc:12:72:8a:15:13:58 manu@manu-desktop
manu@manu-desktop:~$ ls -l ~/.ssh
total 8,0K
3367418 -rw------- 1 manu manu 1,7K 2009-01-15 13:26 id_rsa
3367419 -rw-r--r-- 1 manu manu  399 2009-01-15 13:26 id_rsa.pub
manu@manu-desktop:~$

Ne mettez pas de passphrase et laisser les options par défaut pour la création de la clef. Il est aussi possible de spécifier les options via la ligne de commande:

ssh-keygen -qt rsa -b 1024 -C manu -f ~/.ssh/manu@manu-desktop.rsa -N ""

La commande précédente crée une clef rsa (-t) avec le commentaire (-C) manu d’une longueur de 1024 bits (-b) dans le fichier ~/.ssh/manu@manu-desktop.rsa (-f) avec une passphrase (-N) vide.

Sur le serveur (server)

Le compte utilisateur de connexion doit exister. Il n’est pas obligé que ce soit le même identifiant que sur le client. Par exemple, sur le serveur, mon compte est nommé zephir.

[root@server]:# adduser zephir
Ajout de l'utilisateur « zephir »...
Ajout du nouveau groupe « zephir » (1002)...
Ajout du nouvel utilisateur « zephir » (1002) avec le groupe « zephir »...
Création du répertoire personnel « /home/zephir »...
Copie des fichiers depuis « /etc/skel »...
Entrez le nouveau mot de passe UNIX :
Retapez le nouveau mot de passe UNIX :
passwd : le mot de passe a été mis à jour avec succès
Modification des informations relatives à l'utilisateur zephir
Entrez la nouvelle valeur ou « Entrée » pour conserver la valeur proposée
Nom complet []:
N° de bureau []:
Téléphone professionnel []:
Téléphone personnel []:
Autre []:
Ces informations sont-elles correctes ? [o/N] o
[root@server]:#

Sur l’ordinateur client (manu-desktop), fin des opérations

Il ne reste plus au client qu’à envoyer sa clef d’identification au serveur simplement par la commande suivante:

ssh-copy-id -i ~/.ssh/id_rsa.pub zephir@server

Acceptez l’identification du serveur, le mot de passe est demandé (puisque vous n’avez pas encore envoyé la clef) et la clef est copiée dans le fichier /home/zephir/.ssh/authorized_keys.
Tentez la commande suivante (Ctrl+D pour sortir)

ssh zephir@server

Vous ne devriez plus avoir de demande de mot de passe.

Sur le serveur, fin des opérations

Il est possible de sécuriser le serveur afin de n’accepter que les authentifications avec clef et sans demande de mot de passe (pour ssh. L’accès en local demandera toujours un mot de passe).
Ainsi, les tentatives d’attaque par force brute sont vouées à l’échec. MAIS, soyez conscient que vous ne pourrez plus vous connecter depuis une autre machine que celle pour laquelle vous avez envoyé la clef, pas plus que vous ne pourrez envoyer d’autres clefs.
Paramétrez le fichier /etc/ssh/sshd_config tel que ci dessous:

# Authentication:
LoginGraceTime 120
PermitRootLogin yes
StrictModes yes
 
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      %h/.ssh/authorized_keys
 
# Change to no to disable tunnelled clear text passwords
PasswordAuthentication no

Relancez ensuite le serveur ssh pour prendre en compte les modifications.

Note sur la sécurité

L’accès au serveur est possible sans authentification par l’utilisateur manu depuis l’ordinateur client (manu-desktop). Si cet ordinateur est un portable et qu’il se fait voler, celui qui arrivera à se connecter avec l’identité de manu arrivera sans demande de mot de passe à se connecter au serveur !
Réfléchissez bien à l’utilisation de ce mode de fonctionnement avant de le mettre en place.
En cas de vol, il suffira de supprimer le fichier /home/zephir/.ssh/authorized_keys pour que la clef volée avec le portable ne soit plus opérationnelle.
Vous pouvez, de même, recréer et changer vos clefs d’identification lorsque vous le voulez en réutilisant les commandes données en début d’article.

Liens:

http://doc.ubuntu-fr.org/gnupg
http://doc.ubuntu-fr.org/ssh

Serveur de synchronisation rsync

Mettre en place un serveur de synchronisation peut être utile pour éviter les saturations par http ou la mise en place d’un FTP anonyme.
De plus, rsync a l’avantage de ne transférer que les différences entre les dossiers à synchroniser, ce qui est plus rapide et moins consommateur de ressources.

L’installation du paquet rsync, sur Ubuntu, ne suffit pas à activer un serveur rsync; il reste quelques manipulations simples à mettre en place.

Tout d’abord, si le progrmme rsync n’est pas installé, faites le:

apt-get install rsync

Le serveur rsyncd a besoin d’un fichier de configuration /etc/rsyncd.conf. Voici un exemple de fichier:

# sample rsyncd.conf configuration file

# GLOBAL OPTIONS

#motd file=/etc/motd
#log file=/var/log/rsyncd
# for pid file, do not use /var/run/rsync.pid if
# you are going to run rsync out of the init.d script.
pid file=/var/run/rsyncd.pid
#syslog facility=daemon
#socket options=
read only = yes
list = yes
uid = nobody
gid = nogroup
use chroot = yes
max connections=10
log format = %t: host %h (%a) %o %f (%l bytes). Total %b bytes.
syslog facility=local5

# MODULE OPTIONS
[astuces]
	comment = repertoire des astuces
	path = /var/www/astuces
#	use chroot = yes
#	max connections=10
	lock file = /var/lock/rsyncd
# the default for read only is yes...
	#read only = yes
	#list = yes
	#uid = nobody
	#gid = nogroup
#	exclude =
#	exclude from =
#	include =
#	include from =
#	auth users =
#	secrets file = /etc/rsyncd.secrets
	strict modes = yes
#	hosts allow =
#	hosts deny =
	ignore errors = no
	ignore nonreadable = yes
	transfer logging = no
#	log format = %t: host %h (%a) %o %f (%l bytes). Total %b bytes.
	timeout = 600
	refuse options = checksum dry-run
	dont compress = *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz

Pour la définition des options, consulter le man.
Les options peuvent être placées dans une section (auquel cas elles ne s’appliquent qu’à cette section, ou en tête de fichier (hors section) et s’appliquent alors à toutes les sections, sauf configuration contraire dans l’une d’elle.

Le serveur peut désormais être lancé manuellement ainsi:

sudo rsync --daemon

Mais il est plus simple d’activer le lancement en démon au démarrage en modifiant le fichier /etc/default/rsync. Voici un fichier correctement paramétré:

# defaults file for rsync daemon mode
# start rsync in daemon mode from init.d script?
#  only allowed values are "true", "false", and "inetd"
#  Use "inetd" if you want to start the rsyncd from inetd,
#  all this does is prevent the init.d script from printing a message
#  about not starting rsyncd (you still need to modify inetd's config yourself).
RSYNC_ENABLE=true
# which file should be used as the configuration file for rsync.
# This file is used instead of the default /etc/rsyncd.conf
# Warning: This option has no effect if the daemon is accessed
#          using a remote shell. When using a different file for
#          rsync you might want to symlink /etc/rsyncd.conf to
#          that file.
# RSYNC_CONFIG_FILE=
# what extra options to give rsync --daemon?
#  that excludes the --daemon; that's always done in the init.d script
#  Possibilities are:
#   --address=123.45.67.89        (bind to a specific IP address)
#   --port=8730                (bind to specified port; default 873)
RSYNC_OPTS=''
# run rsyncd at a nice level?
#  the rsync daemon can impact performance due to much I/O and CPU usage,
#  so you may want to run it at a nicer priority than the default priority.
#  Allowed values are 0 - 19 inclusive; 10 is a reasonable value.
RSYNC_NICE='10'
# Don't forget to create an appropriate config file,
# else the daemon will not start.

Une fois ceci fait, il ne reste plus qu’à relancer rsync:

sudo killall rsync
sudo /etc/init.d/rsync restart

Désormais les utilisateurs peuvent synchroniser anonymement le répertoire que vous avez programmé par la commande:

rsync -avP www.montsite.org::astuces /mon/dossier/a/synchroniser/

Notez que dans la commande ci dessus, astuces est appelé module par rsync. Ce module correspond à la section entre crochets que vous avez défini dans le fichier de configuration ([astuces])

Autres sources d’information:

http://doc.ubuntu-fr.org/rsync
http://prendreuncafe.com/blog/?q=rsyncd
http://man.developpez.com/man5/rsyncd.conf.5.php

Se faire tourner la tête…

Certains écrits peuvent être renversants!
¡ ʇuɐsɹǝʌuǝɹ :ʇuǝɯıɐɹʌ ʇsǝ ʇɐnbépɐ ɟıʇɔǝɾpɐ,ʃ ʇƎ ˙uɐɹɔé,ʃ no˙˙˙ǝʇêʇ ɐʃ ǝuɹnoʇǝɹ uo,nbsɹoʃ ǝʃqısıʌ ʇuǝɯǝʃıɔɐɟ snʃd ʇsǝ ǝʇxǝʇ ǝɔ ‘ǝʃdɯǝxǝ ɹɐԀ

Pour ce faire, rien de plus facile. Certains sites vous rendront service en le faisant à votre place, il ne vous reste plus qu’à gérer le copier/coller.

www.fileformat.info
www.revfad.com
D’autres peuvent être trouvés avec google

Inutile, donc obligatoire. A utiliser avec modération, sinon c’est vite barbant…

Faire fonctionner le micro avec skype sur l’Aspire One et Ubuntu 8.10

Après installation de Ubuntu sur l’Acer aspire One (ou AAO), le microphone ne fonctionne pas avec skype.

Je vous livre les manipulations qui m’ont permis de le faire fonctionner:

  • Ouvrir le contôleur de volume (clic droit sur l’icone du haut parleur sur la barre des tâches et « ouvrir le contrôleur de volume »)
  • Régler les options comme sur les captures ci dessous. Notez le périphérique contrôlé (HDA Intel)
Réglage de l'onglet lecture

Réglage de l'onglet lecture

Réglages de l'onglet enregistrement

Réglages de l'onglet enregistrement

Réglages de l'onglet options

Réglages de l'onglet options

  • Lancer skype et ouvrir le réglage des préférences
  • Ouvrir l’onglet son et régler comme sur la capture

    Options audio de skype

    Options audio de skype

  • Cliquez sur « Appliquer » et vous pouvez lancer un appel et profiter des communications par le réseau

A noter que j’utilise le noyau de FOZZY optimisé pour le AAO (http://aspireoneuser.com/forum/viewtopic.php?f=28&t=7560&start=0)

Créer (compiler et packager) ses programmes en paquet .deb pour ubuntu ou debian

Le programme Debdevel permet de créer facilement et rapidement des paquet deb pouvant être installés sur Ubuntu, mais aussi toutes les dérivées de debian utilisant le gestionnaire de paquets apt (knoppix, mepis, …), à partir de vos propres programmes ou à partir de sources d’autres programmes.

Vous pourrez packager vos programmes, quel que soit le language de programmation (python, bash, C, …), voire même des documentations, fiches techniques, fichiers texte, … (bien que l’intérêt en soit limité, ça reste possible).

Mais ce logiciel (cette suite de logiciels, en fait), va plus loin, puisqu’elle vous permet aussi de:

  • Générer automatiquement des squelettes de documentation qu’il ne reste plus qu’à remplir (il est possible de rajouter vos propres modèles de documentation, au format voulu),
  • Créer un dépôt personnel en local,
  • Gérer un dépôt public (local ou distant),
  • Gérer trois niveaux de développement (dev, beta et stable),
  • Publier seulement l’un ou plusieurs niveaux de développement, et garder les autres privés,
  • Gérer autant de paquets que désiré, dans chacun des niveaux de développement,
  • Gérer autant de dépôts que désiré,
  • Tout faire graphiquement, sans ligne de commande ,
  • Tout fonctionne avec le clic droit de nautilus (bientôt konqueror et dolphin pour les utilisateurs de KDE, mais les logiciels fonctionnent cependant en ligne de commande avec KDE) ,
  • Trouver facilement une dépendance dans l’ensemble de vos paquets,
  • Trouver facilement et rapidement un terme ou du code dans l’ensemble des scripts de vos paquets,
  • Et d’autres choses en cours de développement.

Menu du clic droit

Bref, il faut 3 minutes sans connaissance particulière pour créer un dépôt, 3 minutes pour créer un paquet et y installer votre programme, 1 minute pour en faire un paquet deb et une minute pour le rendre public et accessible à vos utilisateurs par leur gestionnaire de paquet (apt-get, aptitude ou synaptic) qui les avertira automatiquement lorsqu’une mise à jour sera disponible. Et la mise à jour d’un paquet (en dehors du temps de correction de votre programme) prend moins d’une minute.

De quoi développer rapidement et facilement, sans se préoccuper de gérer les versions ou craindre de mélanger les programmes de dev avec les versions publiques, et éviter de passer du temps à se demander comment créer un paquet deb pour les publier!

Précisons quand même que ce programme ne développera pas de programmes à votre place mais vous simplifiera le packaging et la distribution de ceux ci.

La documentation est accessible ici . Elle vous indique toutes les procédures, du téléchargement à l’utilisation.

Utiliser kprinter avec openoffice.org3 sur Ubuntu

Les boites de dialogue natives d’openoffice sont loin d’être…jolies, disons.

De plus, l’accès aux options des imprimantes est très peu ergonomique.

Heureusement, il existe une possibilité d’utiliser kprinter, le gestionnaire d’impression de KDE, qui est plus joli que celui de cups .

Installez le paquet kdeprint, qui contient kprinter.

Localisez le programme spadmin (si vous avez installé à partir des deb fournis par openoffice.org, il se trouve dans /opt/openoffice.org3/program ) et lancez le par un double clic.(1)

Dans la fenêtre, cochez la case Désactiver le support de cups, ce qui ne laissera de visible qu’une seule imprimante: Generic Printer.

Ensuite, il faut la modifier de manière à ce qu’elle n’apparaisse pas comme choix avant le lancement de kprinter.

  • Cliquez sur propriétés…
  • Dans l’onglet Commande, entrez kprinter dans la première liste déroulante.
  • Cochez la case utiliser la boite de dialogue d’impression du système
  • Entrez kprinter dans la commande pour l’impression rapide sans boite de dialogue
  • Cliquez sur OK
  • Cliquez sur Fermer

Vous pouvez désormais imprimer avec OpenOffice en utilisant l’interface de kprinter.

(1) – Vous pouvez aussi lancer le programme par Applications/Bureautique/Gestion des imprimantes de openoffice.org3. Mais il arrive que ce raccourci ne soit pas disponible. Lancer directement spadmin fonctionne à chaque fois.

PS: cette configuration ne fonctionne pas avec OpenOffice2.4

PS2: cette configuration n’est activée QUE pour l’utilisateur l’ayant lancée. Elle est à faire pour tous les utilisateurs. Cependant, la configuration est réglée dans ~/.openoffice.org/3/user/psprint/psprint.conf et le fichier peut être copié chez les autres utilisateurs.

Boite de dialogue enregistrer d’openoffice.org

Après une mise à jour (récupération d’un profile sur un ordinateur fraîchement installé), openoffice.org s’est retrouvé avec des boites de dialogue (en particulier « enregistrer sous… ») d’un aspect vieillot et peu pratique pour mes utilisateurs.

Aspect ancien de la boite de sauvegarde

Après quelques minutes de recherche, j’ai trouvé le fichier en cause.

Fermez openoffice (le lanceur rapide également le cas échéant) et supprimez le fichier « .openoffice.org 2/user/registry/data/org/openoffice/Office/Common.xcu » du profile concerné, puis relancez openoffice.org.

Vous ne perdrez aucun des réglages (seuls les derniers fichiers ouverts ont été perdus), mais vous retrouverez une boite de dialogue claire et adaptée au thème.

Boite de dialogue correcte