Outils pour utilisateurs

Outils du site


linux:ssh

SSH : Serveur & client


SSH
  • SSH : Secure Shell
  • Protocole de transport TCP.
  • Port par défaut : 22



Secure Shell (SSH) est à la fois un programme informatique et un protocole de communication sécurisé. Le protocole de connexion impose un échange de clés de chiffrement en début de connexion. Par la suite toutes les trames sont chiffrées. Il devient donc impossible d'utiliser un sniffer pour voir ce que fait l'utilisateur.

SSH peut également être utilisé pour « forwarder » des ports TCP d'une machine vers une autre, créant ainsi un tunnel. Cette méthode est couramment utilisée afin de sécuriser une connexion qui ne l'est pas (par exemple le protocole email POP3) en la faisant transférer par le biais du tunnel chiffré SSH.

Serveur SSH

  • Installation du daemon SSH:

aptitude install openssh-server

  • Le fichier de configuration du daemon :

/etc/ssh/sshd_config

Client SSH

  • Réaliser une connexion SSH

ssh username@ipaddress -p <port>

  • Copier des fichiers à travers le tunnel SSH

scp 'fichier' username@ipaddress:DestinationDirectory
scp username@ipaddress:DestinationDirectory 'fichier'

Echange de clefs

  • Sur le client qui souhaite ne plus avoir à s'authentifier

ssh-keygen -t dsa -b 1024

  • Envoi de la clef publique sur le serveur

scp /root/.ssh/id_dsa.pub /home/user/.ssh/authorized_keys

Après cet échange de clef publique, la connexion ne nécessite plus de password.
Si ça ne fonctionne pas, vérifier les fichiers de conf SERVEUR (/etc/sshd/sshd_config) et CLIENT (/etc/ssh/ssh_config).

Tunneling SSH

SSH tunneling

Afin de gagner en sécurité ou pour des raisons réseaux restrictives,
il est possible de configurer un tunnel SSH pour forwarder à peu près tout ce qu'on veut !

Le protocole RDP dans un tunnel SSH

Cet exemple sort d'un réseau LAN vers le un serveur Firewall qui fait office de routeur.
Il nous faut :

  • un accès SSH LAN-Firewall
  • un accès RDP Firewall-DMZ

Les règles IPTABLE adéquates :

iptables -A INPUT -i eth0 -s 192.168.1.0/24 -p tcp --dport 22 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT 
iptables -A OUTPUT -o eth0 -d 192.168.1.0/24 -p tcp --sport 22 -m state --state ESTABLISHED,RELATED -j ACCEPT 
echo "SSH ACCES LAN-FW : OK"
iptables -A OUTPUT -o eth2 -d 192.168.2.0/24 -p tcp --dport 3389 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i eth2 -s 192.168.2.0/24 -p tcp --sport 3389 -m state --state ESTABLISHED,RELATED -j ACCEPT 
echo "RDP ACCES FW-DMZ : OK"

  • Sur le client SSH, via Putty, créer le tunnel du port local 10000 vers le serveur RDP port 3389 :

RDP in SSH

N'oubliez pas d'ajouter la règle (ADD !) avant d'initier votre connexion SSH…

  • Lancer votre connexion SSH et vérifier le mappage :

RDP SSH mapping

  • La connexion SSH et le tunnel établie, lancer votre connexion RDP sur le socket local :

Connexion RDP in SSH

Connexion SSH via un proxy HTTP

  • Installer le paquet nécessaire sur le client SSH:

aptitude install connect-proxy

  • Ajuster votre configuration SSH en fonction des IP proxy/destination :

vi /etc/ssh/ssh_config
host IP_SERVEUR_SSH
ProxyCommand connect-proxy -H IP_PROXY:PORT %h %p

  • LOL Connectez vous normalement :

ssh USER@IP_SERVEUR_SSH

linux/ssh.txt · Dernière modification: 15/04/2016 à 21:15 (modification externe)

Outils de la page