Étiquette : ssh

8 avril 2017 /

Pour faire un déport de l’affichage X11 depuis un serveur Linux qui n’a pas d’environnement graphique sur un poste Windows, on peut se servir de l’outil Xming.

Une fois Xming installé sur le poste Windows, on vérifie coté serveur que le X11 forwarding est bien activé:

vi  /etc/ssh/sshd_config

X11Forwarding yes

On installe également xauth:

yum install -y xorg-x11-xauth

ou pour Debian:

apt-get install -y xauth

Maintenant on retourne coté client sur le poste Windows, et on active le X11Forwarding et on spécifie la variable DISPLAY dans putty:

Il ne reste plus qu’a se connecter et faire un test en lançant une application graphique, exemple firefox:

firefox

10 mai 2016 /

SSHGate est un proxy qui redirige de manière transparente les paquets à travers des tunnels chiffrés SSH, en dissimulant les éléments d’authentification aux utilisateurs.

Reposant entièrement sur le projet OpenSSH, communautaire et non modifié, cet outil propose une CLI d’administration, la gestion d’ACL, gestion de groupe, ainsi que l’enregistrement des sessions utilisateurs, qui peuvent être rejouées ultérieurement à des fins d’analyse.

Un petit mémo des commandes SSHGate

Se connecter:

sshgate-cli -u <login>

 

1 – Gestion des utilisateurs

Lister tous les utilisateurs:

user list

Ajouter un nouvel utilisateur:

user add <user> mail <email>

Supprimer un utilisateur:

user del <user>

Reconstruire le fichier authorized_keys

user build auth_keys

Afficher de la configuration d’un utilisateur:

user <user> display conf

Définir une variables/valeur dans la configuration de l’utilisateur:

user <user> set conf <variable>

Supprimer une variables/valeur dans la configuration de l’utilisateur:

user <user> del conf <variable>

Lister les machines auquels l’utilisateur a accès:

user <user> list targets

Lister les groupes d’utilisateurs de l’utilisateur:

user <user> list usergroups

Lister les groupes de machines auquel l’utilisateur a accès:

user <user> list targetgroups

Savoir si un utilisateur a accès à une machine:

user <user> has access [<login>@]<target>

Lister tous les accès de l’utilisateur, et comment les accès lui sont accordés:

user <user> access info

Envoyer un mail à l’utilisateur pour l’informer de ses accès:

user <user> access notify

Modifier la clef ssh publique d’un utilisateur:

user <user> edit sshkey

Afficher la clef ssh publique d’un utilisateur:

user <user> display sshkey

Mettre à jour la clef ssh Publique d’un utilisateur dans le fichier authorized_keys:

user <user> update auth_keys

 

2 – Gestion des groupes d’utilisateurs

Liste de tous les groupes d’utilisateurs:

usergroup list

Créer un groupe d’utilisateurs:                                             

usergroup add <group>

Supprimer un groupe d’utilisateurs:

usergroup del <group>

Liste des utilisateurs d’un groupe:

usergroup <user-group> list users

Liste les groupes machines qui sont accessible par  un groupe d’utilisateurs:

usergroup <user-group> list targetgroups

Ajouter un utilisateur dans un groupe:

usergroup <user-group> add user <user>

Supprimer un utilisateur d’un groupe:

usergroup <user-group> del user <user>

Liste les cibles qui sont accessibles par un groupe d’utilisateurs:

usergroup <user-group> list targets

Liste toutes les machines accessibles par un groupe d’utilisateurs:

usergroup <user-group> access info

 

3 – Gestion des machines

Liste toutes la machines enregistrées dans SSHgate:

target list

Ajoute une machine:

target add [<login>@]<target>

Ajoute une machine derriere un proxy:

target add [<login>@]<target> with proxy [<login>@]<target>

Ajoute une machine en passant par un rebond:

target add [<login>@]<target> via [<login>@]<target>

Supprime une machine:

target del <target>

Liste tous les alias:

target alias list

liste les alias d’une machine:

target <target> list alias

Obtenez le vrai nom d’une machine:

target <target> realname

Ajouter un nom d’alias pour la machine:

target <target> add alias <alias>

Supprime un nom d’alias pour la machine:

target <target> del alias <alias>

Renommer une machine:

target <target> rename <new-name>

 Afficher le fichier de configuration de la machine:

target <target> display conf

Définir une variables/valeur dans le fichier de configuration de la machine:

target <target> set conf <variable> <value>

Supprimer une variables/valeur dans le fichier de configuration de la machine:

target <target> del conf <variable>

Liste de tous les utilisateurs ayant accès à la machine , et comment:

target [<login>@]<target> access info

Liste des utilisateurs qui ont accès à la machine:

target [<login>@]<target> access list users

Permet à l’utilisateur d’accéder à la machine:

target [<login>@]<target> access add user <user>

Supprime à l’utilisateur l’accès à la machine:

target [<login>@]<target> access del user <user>

Liste tous les groupes qui ont accès à la machine:

target [<login>@]<target> access list usergroups

Permet au groupe d’utilisateur d’accéder à la machine:

target [<login>@]<target> access add usergroup <group>

Supprime au groupe d’utilisateur l’accès à la machine:

target [<login>@]<target> access del usergroup <group>

 

4 – Gestion des clef SSH

Edite le fichier de configuration SSH d’une machine ou d’un login:

target <target> ssh edit config

Afficher le fichier de configuration de SSH d’une machine:

target <target> ssh display config

Affiche entièrement le fichier de configuration SSH d’un login sur une machine:

target [<login>@]<target> ssh display full config

Mise à jour du fichier « known_hosts » pour toutes les machines:

target ssh update known_hosts

Test pour se connecter sur une machine:

target <target> ssh test

Test pour se connecter à toutes les machines:

target <target> ssh test all

Liste tous les logins SSH valident sur une machine:

target <target> ssh list logins

Ajoute un login SSH sur une machine:

target <target> ssh add login <login>

Enleve un login SSH sur une machine:

target <target> ssh del login <login>

Affiche la clef publique de la machine:

target <target> ssh display key

Edite la clef privée de la machine:

target <target> ssh edit key

Tente d’installer la clef publique sur une machine:

target <target> ssh install key

Installe toute les clef SSH publique sur la cible:

target <target> ssh install all key

Mets une clef SSH par défaut pour une machine:

target <target> ssh use default key

 

5 – Gestion des groupe de machines

Liste de tous les groupes de machines:

targetgroup list

Création d’un groupe de machines:

targetgroup add <target-group>

Suppression d’un groupe de machines:

targetgroup del <target-group>

Liste les utilisateurs qui ont accès au groupe de machines:

targetgroup <target-group> list targets

Ajoute une machine dans un  groupe de machine:

targetgroup <target-group> add target [<login>@]<target>

Supprime une machine d’un groupe de machines:

targetgroup <target-group> del target [<login>@]<target>

Liste les utilisateurs ayant accès au groupe de machines:

targetgroup <target-group> access list users

Donne à l’utilisateur l’accès à toutes les machines du groupe de machines:

targetgroup <target-group> access add user <user>

Révoquer l’accès des utilisateurs à cibler l’hôte du groupe de machines:

targetgroup <target-group> access del user <user>

Liste les machines du groupe de machines accessible par le groupe d’utilisateur:

targetgroup <target-group> access list usergroups

Donne au groupe d’utilisateurs l’accès au groupe de machines:

targetgroup <target-group> access add usergroup <user-group>

Enlève au groupe d’utilisateurs l’accès au groupe de machines:

targetgroup <target-group> access del usergroup <user-group>

 

6 – Gestion des sessions

Liste les sessions en cours:

session list current

Liste les dernières sessions connectées:

session list last

Liste les sessions en cours sur une machine:

session target <target> list

Liste les sessions en cours d’un utilisateur:

session user <user> list

Tue une session SSHGate:

session kill <pid>

Debug de SSHgate (équivalent « set -x » en bash):

debug

Plus d’information ici.

25 avril 2016 /
Installation de Openssh
yum -y install openssh-server
Création du répertoire qui va accueillir le Chroot
mkdir /chroot_sftp
On s'assure d'avoir une version supérieur à la 4.9
ssh -V
On s'assure que root:root est propriétaire
chown root:root /chroot_sftp

Le répertoire chrooté doit impérativement appartenir à root (login:groupe).
Pour un autre utilisateur voir l’option « bind » de la commande mount.

Création du groupe sftpusers
addgroup sftpusers
Configuration d'Openssh
vi /etc/ssh/sshd_config

Il faut préciser ici, que l’on utilise le serveur sftp interne à OpenSSH.
Nous activons également le chroot sur le répertoire /chroot_sftp pour tous les utilisateurs du groupe sftpusers et nous interdisons, par mesure de sécurité, la redirection X11 ainsi que le tunnel TCP.

On commence par commenter et modifie le paramètre « Subsystem »:

#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp

Puis on met ça juste à la fin du fichier :

 Match Group sftpusers
ChrootDirectory /chroot_sftp
ForceCommand internal-sftp
AllowTCPForwarding no
X11Forwarding no

Le partie « Match » doit absolument se trouver à la fin du fichier comme on peut le voir dans le man de sshd_config.

Dans le paramètre « ChrootDirectory » on peut rajouter %u pour un répertoire portant le nom de l’utilisateur, ou simplement %h pour le répertoire /home de l’utilisateur

Match
Introduces a conditional block. If all of the criteria on the Match line are satisfied, the keywords on the following lines override those set in the global section of the config file, until either another Match line or the end of the file.

Création du compte client sftp1
useradd  --gid sftpusers --groups sftpusers -m --shell /bin/false -d /chroot_sftp sftp1
Création de son répertoire de travail sftp
mkdir /chroot_sftp/sftp1
chown sftp1:sftp1 /chroot_sftp/sftp1
chmod 700 /chroot_sftp/sftp1
On relance ssh
/etc/init.d/ssh restart
ou
systemctl restart sshd.service
Test de bon fonctionnement
sftp sftp1@localhost

 

1 décembre 2015 /

Lors d’une première connexion en SSH sur un serveur, on obtient ce genre de message:

$ ssh starmate@192.168.0.24
The authenticity of host '192.168.0.24 (192.168.0.24)' can't be established.
RSA key fingerprint is 4e:1c:f5:bc:c2:ba:c1:1f:bf:4e:1f:cf:53:fa:d7:28.
Are you sure you want to continue connecting (yes/no)?

Pour ne pas avoir ce message, il y a deux solutions.

Solution 1

Editer le fichier /etc/ssh/ssh_config et rajouter ces deux paramètres:

StrictHostKeyChecking no
UserKnownHostsFile=/dev/null

Solution 2

Pour un usage plus ponctuel:

ssh -o StrictHostKeyChecking=no starmate@192.168.0.24

12 octobre 2015 /

Pour copier le fichier /home/starmate/message.txt de la machine Starwold dans mon répertoire courant:

scp starmate@starworld:/home/starmate/message.txt .

Pour déposer le fichier messages.txt sur la machine Starwold dans /home/starmate/:

scp message.txt starmate@starworld:/home/starmate/

Pour déposer le répertoire Messages sur la machine Starwold dans /home/starmate/:

scp -r Messages starmate@starworld:/home/starmate/

Pour copier un fichier d’un ordinateur vers un autre tout en étant sur un troisième ordinateur:

scp starmate@starworld:/home/starmate/message.txt lamnam@starfky:home/lamnam/

Pour changer le port SSH si le port par défaut a été changé (22):

scp -P 1234 message.txt starmate@starworld:/home/starmate/