Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Chapitre4 SecuriteReseaux

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 26

SERVICES RESEAUX ET SECURITE

SOUS LINUX

Sécurité des services réseaux


o Accès sécurisé SSH (du secure shell)
o Protection des services : Firewall
o SElinux
SSH
Objectifs:
- Accéder a son serveur distant à partir de SSH,
- Les commandes SSH,
- L’authentification à clés publiques,
- La configuration SSH.
La théorie

Le terme SSH (Secure Shell) désigne un ensemble de commandes et de


protocoles qui assure la confidentialité des échanges et l’authentification des
correspondants. Il a été créé par Tatu Ylonen en 1995, Il existe actuellement
une version OpenSSH créée par Aaron Campbell & all qui est libre de droit.

OpenSSH supporte plusieurs algorithmes symétriques pour le chiffrement,


notamment le triple DES et BlowFish. En ce qui concerne l’authentification, il
supporte le RSA et le DSA. Il existe des implémentations de SSH pour les
environnements Unix, Linux, Windows et Macintosh.
Installation

Si les package ci-dessus ne sont pas installé, installé les avec


# yum install openssh-server openssh-6 openssh-client
Le fichier et dossier installé avec le serveur openssh
1. #systemctl is-active sshd.service
Le service est –il activé ( c’est-à-dire qu’il démarrera automatiquement au boot du système) ?

2. Systemctl status sshd.service


Le service a-t-il démarré?
Les commandes SSH

ssh Exécute une commande à distance. Par défaut un shell réalisant ainsi une connexion distante.
scp Transfert des fichiers entre systèmes
sftp Transfert des fichiers mais avec une interface similaire à ftp.
sshd Le serveur SSH.

Les fichiers

~/.ssh/known_hosts Contient une copie des clés publiques des serveurs avec lesquelles
on dialogue. Ces clés permettent leur authentification.
/etc/ssh/ssh_host_key.pub La clé publique (RSA) SSHv1 du serveur.
/etc/ssh/ssh_host_rsa_key.pub La clé publique RSA SSHv2 du serveur.
/etc/ssh/ssh_host_dsa_key.pub La clé publique DSA SSHv2 du serveur.
Connexion depuis Windows
On peut utiliser:
- putty
- SSH SecureShell
- WinSCP
Sous linux

Sous linux, un client SSH est installé par défaut, on se connecte a un serveur SSH distant avec la
commande SSH

$ ssh <username>@serveur
L’authentification à clés publiques
Un utilisateur n’est pas obligé de fournir son mot de passe pour ouvrir une session SSH. Il peut
utiliser l’ authentification à clés publiques. L’intérêt majeur de cette méthode est de permettre une
exécution automatique de commandes SSH présentes dans un script.

Les étapes de mise en œuvre de l'authentification à clés publiques.

1. Un utilisateur génère un couple de clés publiques/privées RSA ou DSA.


2. L’utilisateur transfère une copie de sa clé publique sur le serveur.
3. L’utilisateur peut se connecter au serveur sans mot de passe.

IMPORTANT !
En fait, quand on génère un couple de clés, le fichier qui les stocke est protégé par un mot de passe. Dans ce cas, lors
de la connexion, ce mot de passe vous est demandé pour que vous puissiez lire votre clé locale (ce mot de passe
n’est pas transmis sur le réseau). Il faut expressément ne pas fournir de mot de passe lorsque vous créez vos clés si
vous désirez une connexion automatique comme celle exigée dans un script.
Commande
ssh-keygen Crée un couple de clés publiques/privées RSA ou DSA
ssh-keygen -p L’option p provoque le changement du mot de passe protégeant le fichier
contenant sa clé privée. Il est possible ainsi de supprimer ce mot de passe.

Les fichiers

~/.ssh/identity La clé privée (RSA) SSHv1.


~/.ssh/id_rsa La clé privée RSA SSHV2.
~/.ssh/id_dsa La clé privée DSA SSHv2.
~/.ssh/identity.pub La clé publique (RSA) SSHv1.
~/.ssh/id_rsa.pub La clé publique RSA SSHv2.
~/.ssh/id_dsa.pub La clé publique DSA SSHv2.
~/.ssh/authorized_keys Ce fichier, présent sur le serveur, contient une copie des clés
publiques des utilisateurs distants (une par ligne).
Connexion à travers les clés publiques,

1. Génération des clés RSA ou DSA


$ssh-keygen
2. Export de la clé publique vers le serveur
$ssh-copy-id <username>@server

3. Connexion au serveurs sans mot de passe


$ssh <username>@server

Remarque: Ne pas confondre le mot de passe et « la phrase de passe » dont il est question
lors de la génération des clés. La phrase de passe protège uniquement la clé privé
La configuration de SSH

Il existe une multitude d‘options SSH aussi bien pour le serveur que pour les clients. Ces options sont
soit stockés dans des fichiers de configuration ou fournit sur la ligne de commande.

Les fichiers de configuration

/etc/ssh/sshd_config La configuration du serveur


/etc/ssh/ssh_config La configuration par défaut des clients
~/.ssh/sshd_config La configuration d’un client
Les principales directives de configurations du serveur

Port
Le port d’ écoute du serveur, par défaut 22.

ListenAddress
Indique sur quelles cartes réseau le serveur se met à l’écoute. Par défaut le serveur écoute
l’ensemble des cartes.

Protocol
La (les) version(s) du protocole SSH supportée(s) par le serveur. Les valeurs possibles sont l, 2 et
2,1 et par défaut 2,1.

AllowUsers
Ce mot clé est suivi d’une liste de noms d’utilisateurs, séparés par des espaces. Cette directive
restreint l’usage de SSH aux seuls utilisateurs mentionnés.
DenyUsers
Cette directive interdit l’usage de SSH à certains utilisateurs.

AllowGroups, DenyGroups
Ces directives suivent la même logique que les directives AllowUsers et DenyUsers, mais s’appliquent à
des groupes d’utilisateurs.

PermitEmptyPasswords
Autorise ou non des mots de passe vides.

PermitRootLogin
Autorise ou non la connexion à distance de l'administrateur (root).

PubkeyAuthentication
L’authentification à clé publique, par défaut à yes

X11Forwarding
Autorise la retransmission X11, par défaut no.
FirewallD
http://doc.fedora-fr.org/wiki/Parefeu_-_firewall_-_FirewallD
Qu’est ce que FirewallD ?
 FirewallD est un service qui permet la mise en place d’un pare-feu sous RedHat, CentOS
 Il s’appuit sur l’infrastructure netfilter.
 Historiquement, il a été introduit avec Fedora 15.
 FirewallD est un service qui permet d’apporter une fonction de parefeu avec une gestion
dynamique. C’est à dire que les règles gérées par le service FireWallD sont appliquées sans
le redémarrage complet du parefeu. Les règles existantes, toujours utiles, restent donc en
place. Et les modules noyaux complémentaires utilisés ne sont pas déchargés.

Contraintes : FirewallD nécessite que l’ensemble des règles de filtrage soient appliquées
par lui même de façon à ce que son état (règles en cours) reste synchronisé avec celui du
noyau. Il est donc indispensable de désactiver le service iptables

 Remarque:
Dans les version précédente, était utilisé iptables.
Installation de FirewallD et démarrage

#yum -y install firewalld


#systemctl start firewalld
Les zones

Firewalld organise le réseau en zones, de sorte à appliquer les restrictions suivant les
zones.

Vous pouvez voir la liste des zones par défaut à travers l’interface graphique ou la
commande firewall-cmd
Paramétrage de FirewallD
On regarde les règles existantes :
 Voir la zone par defaut
[root~]# firewall-cmd –get-default-zone
public

Voir les règles définies dans la zone


[root ~]# firewall-cmd –zone=public –list-all
public (default)
interfaces:
sources:
services: ssh seul SSH est autorisé
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
On ajoute http (TCP/80) dynamiquement

[root ~]#firewall-cmd –add-service http


success

Puis on ajoute http (TCP/80) pour une prise en compte au redémarrage


[root ~]# firewall-cmd –permanent –add-service http
success
On vérifie la prise en compte :
[root ~]# firewall-cmd --zone=public --list-all
public (default)
interfaces:
sources:
services: http ssh
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:

Vous aimerez peut-être aussi