Génération clés SSH

4 mars 2010 – 10:59

Génération des clés privées et publiques

machine-locale:$ ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/login/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/login/.ssh/id_dsa.
Your public key has been saved in /home/login/.ssh/id_dsa.pub.
The key fingerprint is:
11:ee:bc:47:b0:c8:40:03:4f:a0:09:a4:71:39:93:93 login@machine-locale
The key's randomart image is:
+--[ DSA 1024]----+
|+.+*+   .        |
|o=E+ . . .       |
|+  +o   +        |
|     o + +       |
|      o o .      |
|         +       |
|        . .      |
|         .       |
|                 |
+-----------------+

Transfert du fichier contenant la clé publique sur la machine distante

machine-locale : cat ~/.ssh/id_dsa.pub | ssh login@machine-distante "cat - >> ~/.ssh/authorized_keys"

Migration Samba 2.2.7 (rpm) vers 3.0.x (compilé à partir des sources)

4 mai 2008 – 16:19

L’idée est donc de mettre à jour (sur la même machine donc) un Samba 2.2.7(rpm) vers Samba 3.0.28a (compilé à partir des sources)….
Serveur : Red Hat 8.0 kernel 2.4 !!!

Aucun souci… la migration s’est très bien déroulée, voici donc les commandes utilisées…

Voici juste un aperçu de la version initiale de Samba sur le contrôleur de domaine (RedHat) :

# smbd -V
Version 2.2.7-security-rollup-fix
# rpm -qa | grep samba
samba-swat-2.2.7-5.8.0
samba-common-2.2.7-5.8.0
samba-client-2.2.7-5.8.0
samba-2.2.7-5.8.0

1) Sauvegarde du serveur avec Partimage (sauvegarde de toutes les partitions / /home /usr /var /tmp…)
2) Reconstitution de ce serveur sur une vielle becane pour tester la migration (On restaure les partitions sauf /home qui est énorme…)
-> pour restaurer une partition avec partimage il faut avoir une partition aussi grande (c’est à dire identique ou +) que l’originale… donc impossible de restaurer /home sur la vieille becane : il suffit de se bricoler un /home en recopiant quelques comptes pour les tests…)
on finalise à coup de chroot + grub-install…. voilà le serveur reconstitué!

Maintenant tout se passe sur le serveur de test!!!!

Il est conseillé de changer, dans smb.conf (sur la machine de test), la valeur de “WORKGROUP” afin qu’il n’y a pas de conflit avec le PDC qui est toujours en prod. De plus, il est bon d’intégrer au moins 2 machines à ce nouveau domaine… afin de ce rendre compte, après la migration, s’il n’y a pas d’incidence sur les PC du domaine…

3) Migration de Samba :

Installation de samba 3.0.28a:

# cd /usr/local/install
# export http_proxy=http://monsquid.mondomaine:3128
# wget http://us3.samba.org/samba/ftp/stable/samba-3.0.28a.tar.gz
# tar zxvf samba-3.0.28a.tar.gz
# cd samba-3.0.28a/source
# ./configure --prefix=/usr/local/samba
# make
# /etc/init.d/smb stop
# make install

On met les fichiers de conf à la bonne place :

# cp /etc/samba/smbpasswd /usr/local/samba/lib/
# cp /etc/samba/smb.conf /usr/local/samba/lib/
# cp /etc/samba/secrets.tdb /usr/local/samba/private/
# mkdir /usr/local/samba/lib/conf
# cp /etc/samba/lib/* /usr/local/samba/lib/conf
# mkdir /usr/local/samba/var/locks
# cp /var/cache/samba/* /usr/local/samba/var/locks
# cp /etc/samba/lib/users.map /usr/local/samba/lib

On ne supprime pas les anciens fichiers de configuration :

# mv /etc/samba /etc/sambaold

Modification/adaptation du fichier smb.conf :

  • changement des chemins de smbpasswd et de users.map
  • add user script devient add machine script
  • rajout de l’attribut (si on veut intégrer des Vista sans changer le mode d’authentification par défaut) :
    client NTLMv2 auth = Yes

On teste smb.conf :

# /usr/local/samba/bin/testparm

On configure la variable d’environnement $PATH :

echo "export PATH=$PATH:/usr/local/samba/bin:/usr/local/samba/sbin" >> /etc/profile
export PATH=$PATH:/usr/local/samba/bin:/usr/local/samba/sbin

Copie du script de démarrage /etc/init.d/smb :

#!/bin/sh

# Check that the Samba configuration file exists
[ -f /usr/local/samba/lib/smb.conf ] || exit 0

start(  )
{
       echo -n "Starting SMB services: "
       /usr/local/samba/sbin/smbd -D
       ERROR=$?
       echo

       echo -n "Starting NMB services: "
       /usr/local/samba/sbin/nmbd -D
       ERROR2=$?
       if [ $ERROR2 -ne 0 ]
       then
               ERROR=1
       fi
       echo

       return $ERROR
}

stop(  )
{
       echo -n "Shutting down SMB services: "
       /bin/kill -TERM -a smbd
       ERROR=$?
       echo

       echo -n "Shutting down NMB services: "
       /bin/kill -TERM -a nmbd
       ERROR2=$?
       if [ $ERROR2 -ne 0 ]
       then
               ERROR=1
       fi
       echo

       return $ERROR
}

case "$1" in
 start)
       start
       ;;
 stop)
       stop
       ;;
 *)
       echo "Usage: $0 {start|stop}"
       exit 1
esac

exit $?

On rend le script exécutable :

# chmod +x /etc/init.d/smb

Dans /etc/rc.local on met :

/etc/init.d/smb start

Lancement :

# /etc/init.d/smb start

Pour finir (on supprime les rpms) :

rpm -e samba-swat-2.2.7-5.8.0 samba-common-2.2.7-5.8.0 samba-client-2.2.7-5.8.0 samba-2.2.7-5.8.0

TADAAAA !!! C’est aussi simple que cela ;)
L’authentification depuis les PC du domaine fonctionne comme avant… c’est tout bon ^^

La migration s’est donc bien passée sur le serveur de test… on peut donc le faire sur le serveur de prod !

[debian] PDC Linux Samba pour 70 clients XP

15 décembre 2007 – 20:39

[en cours de création]
à venir le fichier smb.conf détaillé puis les différentes stratégies et commandes…

On a 4 salles informatiques avec entre 15 et 20 postes clients Windows XP Pro SP2. L’idée est d’avoir un compte utilisateur unique pour tout le monde avec un profil obligatoire : non modifiable (les profils sont effacés du poste client lors de la déconnexion… donc il est re-téléchargé à l’ouverture de la session)

Sur le serveur :

aptitude install samba
groupadd machines

# comptes étudiants :
useradd --home "/dev/null" --shell "/bin/false" utilisateur
# comptes enseignants :
useradd --home "/dev/null" --shell "/bin/false" enseignant
# L'enseignant est dans le groupe utilisateur :
adduser enseignant utilisateur

mkdir /etc/samba/netlogon
mkdir /etc/samba/profile

Sur le client

Les postes clients seront clonés après avoir installé convenablement un poste qui nous servira de modèle.

- Installation de XP Pro
- Installation d’un antivirus
- Windows Update
- Installation des logiciels de base : OpenOffice, Archiveur…
- Base de registre :

Afin d’éviter que les profils restent enregistrés –>
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
“DeleteRoamingCache”=dword:00000001

- Intégration du poste au domaine
- Mise en place d’un utilisateur du domaine comme administrateur local.

[debian] Comment éteindre des ordinateurs Windows XP depuis une debian

15 décembre 2007 – 19:31

Voici le script qui permet d’éteindre automatiquement tous mes postes Windows XP depuis le contrôleur de domaine (PDC) Linux samba situé dans le même sous réseau (192.168.0.0/24) :

#!/bin/sh
if [ $# = 0 ]; then
        echo "Usage : $0 nombre-de-secondes-avant-arret"
        exit 1
fi
echo "Ce programme eteind toutes les machines comprises entre 192.168.0.2 et 192.168.0.150.
echo "Vous avez 10 secondes pour faire CTRL-C."
sleep 10
for IP in $(nmap -sP 192.168.0.2-150 | grep "appears to be up" | cut
-d" " -f2);do
/usr/bin/net rpc SHUTDOWN -f -I $IP -U utilisateur_du_domaine%mot_de_passe -t $1
done

PS: Les postes Windows XP Pro (sp2) ont leur firewall Windows d’activé, et, l’exception “Partage de fichiers et d’imprimante” est cochée. De plus, dans les stratégies de sécurité locale des postes XP, j’autorise l’utilisateur “RESEAU” à “Forcer l’arrêt à partir d’un système distant”.

Les utilisateurs des postes XP sont de simples utilisateurs (groupe “utilisateurs”), ils n’ont donc pas la possibilité d’exécuter la commande shutdown de Windows afin d’éteindre un ordinateur distant (ils ont un message d’erreur…).

[debian etch] Configurer ma carte wifi ipw2200 pour un AP Freebox WPA2

4 décembre 2007 – 0:27

La carte est reconnue et les pilotes déjà installés !

shell# lspci | grep -i wireless
02:03.0 Network controller: Intel Corporation PRO/Wireless 2200BG Network Connection (rev 05)

Téléchargement du firmware (non libre) ici :http://ipw2200.sourceforge.net/firmware.php (la version 3.0)
Et installation des fichiers dans /lib/firmware

Quelques outils indispensables :

shell# aptitude install wireless-tools
shell# aptitude install wpa_supplicant

Tout est chargé?

shell# lsmod | grep ipw2200
ipw2200               126084  0
ieee80211              29416  1 ipw2200
firmware_class          9600  2 pcmcia,ipw2200

Dans /etc/network/interfaces :

# The loopback network interface
auto lo
iface lo inet loopback

iface eth2 inet dhcp
pre-up /sbin/wpa_supplicant -i eth2 -c "/etc/wpa_supplicant.conf" -Dwext -B -w
post-down /sbin/wpa_cli -i eth2 terminate
auto eth2

Dans /etc/wpa_supplicant.conf :

# WPA-PSK/TKIP
ap_scan=1
dot11RSNAConfigSATimeout=10
update_config=1
ctrl_interface=/var/run/wpa_supplicant
network={
    ssid="canard"
    mode=managed
    priority=1
    scan_ssid=1
    key_mgmt=WPA-PSK
    proto=WPA2
    pairwise=TKIP
    group=TKIP
    key_mgmt=WPA-PSK
    psk="ma clef WPA2"
}

[debian] installation de virtualbox

27 novembre 2007 – 23:46

Rajouter à /etc/apt/sources.list :

deb http://www.virtualbox.org/debian etch non-free

Importer et ajouter la clé :

# wget -q http://www.virtualbox.org/debian/innotek.asc -O- | apt-key add -

Mettre à jour et installer :

# aptitude update
# aptitude install virtualbox

Pour finir :

# adduser arnaud vboxusers
# chmod 666 /dev/vboxdrv

[debian] Installer Apache 2, PHP5 et Mysql5

11 juillet 2007 – 14:26

Installation d’Apache version 2, PHP5 et Mysql5 :

# aptitude install apache2 php5 libapache2-mod-php5 mysql-server php5-mysql

Pour sécuriser (un minimum) le serveur mysql, on s’y connecte (en chosissant la base de données préexsitante s’appelant “mysql”) :

# mysql mysql

On supprime les utilisateurs qui ne servent pas…Je garde seulement root@localhost et debian-sys-maint@localhost…

mysql> DELETE FROM user WHERE user='root' AND host<>‘localhost’;

Ensuite on met un mot de passe pour root!!!
1) Soit :

mysql> UPDATE user SET password=PASSWORD("mon_mot_de_passe") WHERE user='root';

2) ou bien :

mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('mon_mot_de_passe');
mysql> FLUSH PRIVILEGES;

Afin de gérer les bases de données mysql, on peut installer phpmyadmin afin de le faire via une interface web…

Installation de phpmyadmin :

Pré-requis :

# aptitude install mcrypt php5-mcrypt

On continue :
1) soit avec aptitude :

# aptitude install phpmyadmin

Et voilà !!! Pour vérifier que « phpmyadmin » fonctionne, il suffit de saisir l’url suivante dans un navigateur :
http://localhost/phpmyadmin

2) soit en téléchargeant l’archive .zip sur le site officiel de phpmyadmin. Ensuite, on peut l’extraire, au plus simple, à la racine du serveur web /var/www/, et, l’on renomme le répertoire extrait avec un nom plus court.. par exemple “phpmyadmin” (au lieu de PhpMyAdmin-versionX.Y.Z). Puis on édite le fichier /var/www/phpmyadmin/config.sample.inc.php et on donne une valeur à l’attribut “blowfish_secret”.

Par exemple :

$cfg['blowfish_secret'] = 'tourterellemagique'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */

Enfin on renomme ce fichier en config.inc.php.. et voilà.. on peut tester phpmyadmin dans un navigateur..

[debian] Changer la date

3 juillet 2007 – 17:14

Voici la syntaxe :
date mmjjhhmmaaaa

Ainsi pour le 3 juillet 2007 à 17h14, saisir :

[root@localhost root]# date 070317142007

[debian] Upgrade sarge vers etch

1 juin 2007 – 14:06

Remplacer “sarge” par “etch” dans “/etc/apt/sources.list”,

Puis, récupèrer les listes de packages Etch :

[ root@localhost root] # apt-get update

Il reste à mettre à jour la distribution :

[ root@localhost root] # apt-get dist-upgrade

[debian] Configurer le proxy pour apt-get

17 avril 2007 – 17:24

Rajouter, la ligne suivante dans le fichier /etc/apt/apt.conf (s’il n’existe pas le créer) :

Acquire::http::Proxy “http://192.168.0.1:3128″;

192.168.0.1 est votre serveur proxy
3128 le port d’écoute http du proxy.

EDIT:
On peut également généraliser la config du proxy pour toutes les applis avec des “exports”:

export http_proxy=http://ip:port
export ftp_proxy=ftp://ip:port