Sécuriser l'accès à votre
Fedora
I. Le necessaire, coté serveur
I.1 Les rpms
I.2 Parametrez L'Authentification des mots de passes (PAM ou Pluggable
Authentication Modules)
A partir de Fedora 17, rajoutez la ligne suivante dans le fichier
/etc/pam.d/system-auth-ac :
auth sufficient pam_opie.so |
juste après la ligne
:
Jusqu'à Fedora 16, remplacez le contenu du
fichier
/etc/pam.d/system-auth-ac par
celui-ci:
auth
required
pam_env.so auth
sufficient
pam_opie.so auth
sufficient pam_unix.so nullok
try_first_pass auth
requisite pam_succeed_if.so uid >= 500
quiet auth
required
pam_deny.so
account
required
pam_unix.so account
sufficient
pam_localuser.so account
sufficient pam_succeed_if.so uid < 500
quiet account
required
pam_permit.so
password
requisite pam_cracklib.so try_first_pass
retry=3 password sufficient
pam_unix.so md5 shadow nullok try_first_pass
use_authtok password
required
pam_deny.so
session
optional pam_keyinit.so
revoke session
required
pam_limits.so session [success=1
default=ignore] pam_succeed_if.so service in crond quiet
use_uid session
required
pam_unix.so |
I.3 Configurer correctement openssh
Assurez-vous que le
fichier /etc/ssh/sshd_config contient
bien l'option suivante:
ChallengeResponseAuthentication
yes |
I.4 Authoriser uniquement les mots de passes jetables en ssh
A partir de Fedora 17, modifiez le contenu du fichier
/etc/pam.d/sshd :
Mettez cette ligne en commentaire:
#auth substack password-auth |
et remplacez-la par ceci:
auth sufficient pam_opie.so
|
Jusqu'à Fedora 16, remplacez le contenu du fichier
/etc/pam.d/sshd par ceci:
auth
sufficient
pam_opie.so
no_warn no_fake_prompts account
include
system-auth password
include system-auth # pam_selinux.so
close should be the first session rule session
required pam_selinux.so
close session
include
system-auth session
required pam_loginuid.so # pam_selinux.so
open should only be followed by sessions to be executed in the user
context session required
pam_selinux.so open env_params session
optional pam_keyinit.so force
revoke |
I.5 Initialisation du mot de
passe
Utilisez la commande opiepasswd pour initialiser votre mot
de passe et pas la commande passwd :
opiepasswd -c
I.6 La configuration de selinux
Il faut d'abord provoquer un message d'erreur dans le noyau, afin de
pouvoir identifier sshd avec opiekeys pour SElinux.
Il faut aussi que le rpm policycoreutils-devel soit installé.
Tappez les commandes suivantes (en root lorsque le prompt se termine par #):
~$ ssh localhost
user@localhost's password:
Permission denied, please try again.
~$ su -
~# grep type=AVC /var/log/audit/audit.log|grep sshd|awk 'NR == 1
{print;}'| audit2allow -M opiek
~# semodule -i opiek.pp
|
II. Le necessaire, coté client
II.1 Client pour GNU/Linux
Sur
la machine cliente, il vous suffit d'installer aussi le rpm
opie-2.4-726.1.x86_64.rpm, ce dernier contient aussi un
calculateur de mot de passe jetable ( opiekey
):
~> ssh
tux.seveur.org otp-md5 490
oc1012 ext Response: | ~>
opiekey 490
oc1012 Using the MD5 algorithm to compute
response. Reminder: Don't use opiekey from telnet or dial-in
sessions. Enter secret pass phrase: ROSE GAM BONA SITS NO
BAIT |
II.2 Client pour Windos
Vous
trouverez sur l'internet le logiciel
Winkey.exe qui sert à calculer les mots
de passes jetables sous windos.
II.2 Client pour PalmOS
Il faut installer sur votre Palm les programes
suivants:
PalmOTP.prc
SHALib.prc
mdlib.prc
Calculer
son mot de passe jetable sur un Palm, c'est à dire sur une
mahcine non connectée à l'internet ou à un réseau informatique
quelquonque est surement
la meilleure
solution du monde.
II.3 Client en java
Voici un client écrit pour la machine
virtuelle java, donc fonctionnant sur toutes les plateformes:
jotp:
java jotp 490 oc1012 mon_mot_de_passe_secret md5
ROSE GAM BONA SITS NO BAIT
III. Plus d'informations
III.1 Faille locale (anciennes versions)