mercredi 23 février 2011

Utilisation des commandes dpkg et apt-get (Debian like)

Purger les paquets marqués "rc" :
$ sudo dpkg --purge $(COLUMNS=200 dpkg -l | grep "^rc" | tr -s ' ' | cut -d ' ' -f 2)

Faire un peu de ménache (!) :
$ sudo apt-get clean
$ sudo apt-get autoclean

Enlever automatiquement les dépendances d'un paquet installé :
$ sudo apt-get autoremove "lenomdupaquet"

Cloner un système Debian-like avec dpkg/apt-get :
# dpkg --get-selections > install.txt
# dpkg --set-selections < install.txt
# apt-get dselect-upgrade

lundi 14 février 2011

Configuration IMAP + SSL (Debian way)

Voici la méthode de configuration d'un serveur IMAP + SSL :

Installer les paquets debian "openssl" et "courier-imap-ssl" :
# apt-get install openssl courier-imap-ssl

Décompresser ce script dans le répertoire "/usr/local/ssl" (par exemple)
# tar xzvf ce_script.tgz /usr/local/ssl/.

Ce dernier va vous permettre de gérer votre propre autorité de certification en créant un CA, puis les CSR pour générer vos CRTs. (voir ce site)

Le fichier de configuration de courier-imap-ssl est /etc/courier/imapd-ssl, il faut l'éditer pour que la variable "TLS_CERTFILE" reflète votre configuration. Voilà un exemple de fichier fonctionnant avec la version "4.1.1.20060828-5" de courier-imap-ssl (dpkg -l | grep courier-imap-ssl)

Il faut maintenant générer le fichier .pem servant de certificat pour votre serveur IMAPS :
# cat /usr/local/ssl/CERTIFICATES/imaps.cert /usr/local/ssl/PRIVATE_KEYS/imaps.pem > /usr/local/ssl/imaps.pem

Chmoder le fichier .pem fraichement créé en 400
# chmod 400 imaps.pem

Redémarrer le serveur IMAPS qui écoute par défaut sur le port 993
# /etc/init.d/courier-imap-ssl restart

Configurer votre client de messagerie (par exemple thunderbird)
[Nom du serveur] : imap.monsite.net
[Nom d'utilisateur] : monuser
[Port] : 993
[Sécurité de la connexion] : SSL/TLS
[Méthode d'authentification] : Mot de passe normal

Voilà c'est fini !

-- Voir aussi --

vendredi 18 juin 2010

Sauvegarde et restauration d'un MBR

Pour sauver tout le MBR (code de chargeur et tables des partitions) en
prenant comme exemple un disque dur ATA branché en maître au premier
contrôleur IDE :
# dd if=/dev/hda of=hda.mbr bs=512 count=1
Pour restaurer le MBR complet :
# dd if=hda.mbr of=/dev/hda bs=512 count=1

lundi 17 mai 2010

Installation de Xen + domU (lenny)

Pour installer Xen (l'hyperviseur), sous Debian Lenny il suffit de faire :

# apt-get install linux-image-2.6.26-2-xen-686 xen-tools

Laisser le système résoudre les dépendances pour vous, à la fin de la procédure, redémarrer la machine sur le nouveau noyau Xen (par défaut)

Vous êtes maintenant prêt à créer un nouveau domU (machine virtuelle), le dom0 étant la machine hôte.

Pour créer un domU, il faudra utiliser par exemple ce script :

-- début du script --

#!/bin/sh

# Vars
export http_proxy="http://192.168.1.1:3128" #si vous passez par un proxy
export ftp_proxy="http://192.168.1.1:3128" #si vous passez par un proxy
distrib=lenny
hostname=my-domU
ip=192.168.1.10
mask=255.255.255.0
gw=192.168.1.254
disk_size=5Gb
kernel_version=`uname -r`
memory=512Mb
swap=$memory
mirror=http://ftp.fr.debian.org/debian/

# commande xen-tools
xen-create-image --verbose --hostname=$hostname --size=$disk_size --swap=${swap} --ide \
--ip=$ip --netmask=$mask --gateway=$gw --force --role=udev \
--dir=/home/xen --memory=${memory} --arch=i386 --kernel=/boot/vmlinuz-${kernel_version} \
--initrd=/boot/initrd.img-${kernel_version} --install-method=debootstrap --dist=${distrib} \
--mirror=$mirror --passwd

-- fin du script --

RQ : l'interrupteur "role" est très important et vous permettra de vous connecter directement en SSH sur votre nouveau domU fraichement créé.

RQ2 : Pour pouvoir directement vous connecter en console sur votre domU, il faut (sous lenny) au préalable installer le paquet "udev"
# mount -o loop /home/xen/domains/my-domU/disk.img /mnt/loop
# chroot /mnt/loop
# apt-get install udev
# exit

Pour gérer votre domU :

Démarrage,
# xm create my-domU.cfg

Se connecter en console,
# xm console my-domU

Arrêter son domU,
# xm shutdown my-domU

-- Squeeze --

# xm info
WARNING! Can't find hypervisor information in sysfs!
Error: Unable to connect to xend: No such file or directory. Is xend running

[solution]
# mv /etc/grub.d/10_linux /etc/grub.d/50_linux
# update-grub2

Méthode de création rapide d'un domU :

# export http_proxy="http://myproxy.com:myport"
# vi /etc/xen-tools/xen-tools.conf (il faut adapter les réglages du domU)
# xen-create-image --hostname=mynewdom --ip=mynewIP --passwd

-- Voir aussi --

mardi 11 mai 2010

Configuration OpenVPN pfSense (v1.2.3) site à site

Schéma de configuration du réseau utilisé :


Image tirée de ce livre

-- Configuration pfSense (v1.2.3) Site A (Serveur) --

Protocol : UDP
Local port : 1194 (par exemple)
Address pool : 172.31.55.0/30
Remote network : 10.0.10.0/24
Cryptography : BF-CBC (128-bit)
Authentication method : Shared key
Shared key : "le_contenu_du_fichier_secret.key"
Description : OpenVPN_serveur

Le reste des options est par défaut et en majeure partie à "blank"

Puis ajouter une règle Firewall sur le WAN,

Proto : UDP
Source : 4.3.2.1
Port : *
Destination : 1.2.3.4
Port : 1194
Gateway : *
Schedule : ---
Description : OpenVPN

-- Configuration pfSense (v1.2.3) Site B (Client) --

Protocol : UDP
Server address : 1.2.3.4
Server port : 1194 (par exemple)
Interface IP : 172.31.55.0/30
Remote network : 192.168.1.0/24
Cryptography : BF-CBC (128-bit)
Authentication method : Shared key
Shared key :
"le_contenu_du_fichier_secret.key"
Description : OpenVPN_client

Le reste des options est par défaut et en majeure partie à "blank"

-- Génération de la clef partagée --

Sur une distribution de votre choix (debian par exemple), installer le paquet "openvpn" (apt-get install openvpn), puis :
# openvpn --genkey --secret secret.key

Copier ensuite le contenu du fichier "secret.key" dans le champ "Shared key" (la clef générée sur ma distro est une clef 2048 bits)

A ce stade tout est opérationnel, les machines du LAN 10.0.10.1 peuvent désormais atteindre les machines du LAN 192.168.1.1, tester avec une commande ping par exemple.

RQ : Il est aussi possible d'utiliser une PKI pour crypter le tunnel, et aller un peu plus loin.

mardi 16 mars 2010

Firefox et RDP (handler)

Le saviez vous ?

Il est possible de configurer Firefox à sa guise, pour par exemple, ouvrir automatiquement un lien RDP (exemple --> rdp://mon_serveur) ^^

RQ : La méthode étant adaptable pour d'autre protocoles... Vnc, etc...

Intéressant non ?

Voilà les ingrédients :

[Méthode Linux]

-- Un petit script "rdp_url" --
#! /bin/sh
# rdp_url : run RDP from browser
# Transform rdp://ip to ip
HOSTIP=`echo "$1" | /bin/sed -s 's/^rdp:\/\///'`
# Run RDP
rdesktop $HOSTIP
Et placer celui-ci dans (par exemple), /usr/local/bin (le PATH quoi...)

Ensuite il faut (le plus compliqué) modifier le fichier "mimeTypes.rdf" se trouvant dans votre profil Firefox (le plus souvent ~vous/.mozilla/firefox/.default/.)

Dispo ici pour les fainéants comme moi : Firefox_handler_linux

[Méthode Windows] (sisi c'est possible ^^)

-- Un petit script "rdp_url.cmd" --

@echo off
set URL=%1
set SERVER=%URL:~6%
%SystemRoot%\system32\mstsc.exe /f /v:%SERVER%

Et placer celui-ci dans (par exemple), c:\windows (le PATH quoi...)

Ensuite il faut (le plus compliqué) modifier le fichier "mimeTypes.rdf" se trouvant dans votre profil Firefox (Documents and settings \ Application Data \ etc...)

Dispo ici
pour les fainéants comme moi : Firefox_handler_windows

Ces 2 méthodes ont été testés sous :
1/ Firefox 3.6 / Ubuntu Hardy
2/ Firefox 3.6 / WinXPSP2

mardi 23 février 2010

OpenVPN

OpenVPN est un système permettant de relier des postes distants sur un réseau informatique en passant par Internet mais de manière sécurisée (Tunnel VPN).

Une solution assez rapide consiste à installer pfSense, il s'agit d'une distribution fonctionnant sur un PC classique (ou spécialisé type Alix), qui contient un serveur OpenVPN.

OpenVPN est muti-plateforme, voilà comment commençer l'installation sur une Debian Etch :

# source ./vars
# ./clean-all
# ./build-ca
# ./build-key-server LeServeurVPN
# ./build-key Client01
# ./build-dh

Et voilà le (très bon) tutoriel au complet :
Voir aussi :