====== OpenSSH ======
====Installation====
root$ urpmi openssh openssh-clients openssh-server
=====Paramétrage=====
====Créer sa paire clé publique/clé privée====
$ ssh-keygen -t dsa
#dsa est libre
#rsa est toujours sous instance de brevet...
====Connexion====
$ ssh -vCX user@host
# -v pour verbose
# -C pour compresser et crypter la longueur de la clé...
# -X pour exporter le X11
# emacs -display :0 pour ouvrir sur le serveur d'origine
====Paramétrage avec msec====
En mode de sécurité élevé avec Mandriva, le programme msec, le remet à jour, et tu te retrouves à chaque instant avec cette ligne dans /etc/hosts.deny
#ALL:ALL EXCEPT 127.0.0.1:DENY
Solution éditer le fichier /etc/hosts.allow
# hosts.allow This file describes the names of the hosts which are
# allowed to use the local INET services, as decided
# by the '/usr/sbin/tcpd' server.
#
sshd: 192.168.000.000/255.255.255.255 : allow
===Log===
sshd: ALL : twist = echo "%d de %u@%h - %c le `date` " >> /var/ssh/ssh.log
====Le fichier ssh_config====
le fichier ///etc/ssh/sshd_config//
HostName workshop
Port 22
ListenAddress 0.0.0.0
SyslogFacility AUTH
LogLevel INFO
PermitRootLogin no
AllowUsers toto
DenyUsers root
KeepAlive yes
PrintMotd no
PrintLastLog yes
AuthorizedKeysFile .ssh/authorized_keys2
PermitEmptyPasswords no
X11Forwarding yes
Compression yes
BatchMode no
ChallengeResponseAuthentication yes
NoHostAuthenticationForLocalhost yes
PubkeyAuthentication yes
=====Surfer dans un tunnel SSH=====
===Sur le Serveur===
Vérifier que dans le fichier **/etc/ssh/sshd_config** que vous avez les lignes
*X11Forwarding yes
*AllowTcpForwarding yes
*PermitTunnel yes
*Compression yes
===En Local===
Configurer le navigateur pour qu'il passe par un proxy SOCKS (choisissez un port supérieur à 1024, par exemple 9999)
sous linux : ssh -D 9999 user@host
sous win : "putty" ajoutez le port source 9999 en dynamique
===== Limiter l'accès SSH par pays pour économiser de SSH Brute Force =====
# Installation de geoip
$ aptitude install geoip-bin geoip-database
# Création d'un script d'identification des pays par rapport à l'IP
$ nano /etc/sshfilter.sh
#!/bin/bash
# country codes to ACCEPT
ALLOW_COUNTRIES="FR"
if [ $# -ne 1 ]; then
echo "Usage: `basename $0` " 1>&2
exit 0 # return true in case of config issue
fi
COUNTRY=`/usr/bin/geoiplookup $1 | awk -F ": " '{ print $2 }' | awk -F "," '{ print $1 }' | head -n 1`
[[ $COUNTRY = "IP Address not found" || $ALLOW_COUNTRIES =~ $COUNTRY ]] && RESPONSE="ALLOW" || RESPONSE="DENY"
logger "$RESPONSE sshd connection from $1 ($COUNTRY)"
if [ $RESPONSE = "ALLOW" ]
then
exit 0
else
exit 1
fi
$ chmod +x /etc/sshfilter.sh
$ nano /etc/hosts.deny
# Ajouter la ligne suivante
sshd: ALL
$ nano /etc/hosts.allow
# Ajouter la ligne suivante
sshd: ALL: aclexec /etc/sshfilter.sh %a
$ service ssh restart
$ tail -f /var/log/user.log
$ tail /var/log/syslog