Soutenir Vision du Web dans son partage de logiciels et de ressources libres

Chargement du mineur pour soutenir Vision du Web ...
Démarrer le mineur va utiliser les ressources de votre machine pour créer de la monnaie numérique Monero.
Le montant des donations pour Vision du web est de 0.018026365499642 Monero.

SSH

De Wiki. Analyse, Communication, Développement, Hacking.
Aller à : navigation, rechercher
Naviguer sur le wiki : Accueil du wiki - Sommaire Administrateur - Sommaire des projets - Sommaire pour Webmaster - Sommaire We make Hack
Naviguer sur le site : Accueil du site - Les annuaires - Les éditoriaux - Le forum - Les outils - Les projets
Les deux liens suivants sont des outils qui vous assistent pour écrire en Markdown : Stackedit et Tables Generator.
Pour participer à la rédaction du contenu sur ce wiki il est nécessaire de créer un compte utilisateur.

Sommaire

Installer SSH

Sur GNU/Linux, installer les paquets openssh openssh-client.

Créer une clé SSH

# Générer une clé SSH.
ssh-keygen -b 4096
# Changer éventuellement la localisation de la clé SSH.
Enter file in which to save the key (/home/user/.ssh/id_rsa):
# Entrer la passephrase
Enter passphrase (empty for no passphrase):
# Lire et afficher la clé publique avec la commande suivante :
cat /home/user/.ssh/id_rsa

Importer la clé publique dans l'espace client distant

Ici, j'ajoute une clé dans l'espace client OVH avant de réinstaller mon VPS.

Se rendre dans l'espace client (Votre nom, mon compte.)
Cliquer sur Clés SSH
Cliquer sur Ajouter une clé
Cliquer sur Une clé SSH
Nommer la clé
Copier la clé récupérée précédemment dans le cadre "Saisissez votre clé"
Cliquer sur Ajouter
Ok.png Source : Tutoriel OVH : https://www.ovh.com/fr/g1769.creation_des_cles_ssh

Ajouter une clé SSH spéciale pour le support OVH

Ajouter une clé SSH spéciale pour le support OVH : https://docs.ovh.com/fr/fr/cloud/dedicated/ovh-ssh-key/

Modifier une clé SSH en mode rescue chez OVH

Modifier une clé SSH en mode rescue chez OVH : https://www.ovh.sn/publiccloud/guides/g2069.changer_sa_cle_ssh_en_cas_de_perte

Ouvrir des ports sur sa box

Un pense bête pour ouvrir les ports de sa box. Ne pas ouvrir le port par défaut mais choisir un autre port.

Ok.png Source : craym.eu/tutoriels/utilitaires/ouvrir_les_ports_de_sa_box.html

Se connecter à une adresse avec SSH

Avec une clé SSH déjà installée et partagée

La clé SSH a été générée localement et partagée sur la machine distante.

ssh [email protected]

Avec une clé pem déjà installée et partagée

Ici, la clé pem est crée depuis AWS pour utiliser Amazon Lightsail.

Une fois la clé .pem chargée en local, la connexion peut se faire de la façon suivante :

chmod 400 /path/my-key-pair.pem
ssh -i AWS750heures.pem [email protected]
The authenticity of host '35.176.60.197 (35.176.60.197)' can't be established.
ECDSA key fingerprint is SHA256:KIQFYJt2fzdoM+jibnlR5S2THIVxFBOyO4lrg7Uzi4g.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '35.176.60.197' (ECDSA) to the list of known hosts.

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.

Sécuriser SSH

À faire sur votre serveur pour limiter les risques.

Installer denyhosts

Installer le paquet denyhosts pour protéger ssh avec hosts.deny.

Refuser toutes les connexions SSH. Autoriser des connexions depuis hosts.allow.

Fichier de configuration de SSH

Éditer le fichier de configuration avec la commande sudo nano /etc/ssh/sshd_config.

Changer le port de connexion 22 par défaut du serveur SSH

Changer le port par défaut du serveur SSH permet de réduire les attaques provenant de robots qui scannent en permanence les ports pour y trouver des failles.
Certains des ports sont connus. Le port 21 pour le service FTP, le port 22 pour SSH, le port 80 pour le WEB (http), le port 53 pour les DNS, le port 443 pour le WEB crypté https.
Il existe au maximum 65535 ports au sein du protocole TCP/IP, certains sont normalisés du port numéro 0 à 1023 pour êtres utilisés par un service Internet.
La plupart sont libres de 1024 à 65535. Choisir un nombre élevé comme nouveau numéro de port. Choisir par exemple le numéro de port 11033, mais, vérifier sa disponibilité.

Lister les ports utilisés avec Netstat

Netstat permet de connaître les ports en écoute sur votre machine, sur quelles interfaces, avec quels protocoles de transport (TCP ou UDP), les connexions actives et de connaître les routes.
Pour voir les connexions actives netstat -nt, pour les ports ouverts netstat -ntl. On peut aussi vérifier s'il existe une route par défaut.
Par exemple existe-t-il une route par défaut vers la machine 213.186.xx.xx utilisez alors netstat -nr | grep 213.186.xx.xx.
L'option -a énumère les ports en cours d'utilisation ou ceux qui sont écoutés par le serveur : netstat -a ou netstat -a |grep ssh.
Retourne la liste avec le nom des services - donne des informations sur les interfaces réseau : netstat -a | grep 'listen' -i.
Des informations, paquets reçus, perdus, forwardés, taille options,..., sur le trafic réseau dans le protocole donné : netstat -p ip.
Liste les adresses locales utilisées : netstat -ltunp.

Rechercher avec lsof

lsof permet de lister les fichiers ouverts et les processus actifs.
lsof -i indique les processus de type internet.
On peut ne demander que pour un protocole lsof -ni tcp:25 ou que vers une machine lsof -ni @213.186.xx.xx:25
Pour connaître tous les fichiers ouverts sur /hda1 utiliser lsof /dev/hda1
lsof -i -a -p 1234 permet de connaître tous les ports réseau ouverts par le processus 1234 (-a est interprété comme AND).
lsof -p 1234, 12345 -u 500, toto permet de connaître tous les fichiers ouverts par l'utilisateur 500 ou toto ou par le processus 1234 ou 12345.
Il existe des commandes pour faire cela (fuser, ps, netstat...), mais lsof est très complet.
Ok-ko.png Source : http://www.hsc.fr/ressources/breves/ports-ouverts.html.fr

Configurer SSH pour l'utilisateur Git zer00cool

En local :

Autoriser l'utilisateur zer00cool

Ajouter les deux lignes suivantes pour n'autoriser que le ou les utilisateurs et groupes renseignés.

AllowUsers zer00cool
AllowGroups zer00cool

Autoriser une seule adresse IP

Décommenter la ligne ListenAddress et ajouter l'adresse IP de la seule interface que le serveur ssh doit écouter.

ListenAddress 127.0.0.1
ListenAddress 127.0.1.1

Interdire à l'utilisateur root de se connecter en SSH

Remplacer la première ligne par la seconde.
# PermitRootLogin prohibit-password
PermitRootLogin no

Attention

Redémarrez le service SSH après vos modifications

/etc/init.d/ssh restart

Utiliser deux ports pour ne pas couper le réseau

Lors de la reconfiguration du fichier sshd_config il est possible voir nécessaire d'utiliser deux ports pour ne pas se couper le réseau.
Préciser le nouveau port 11033 à la prochaine connexion en ligne de commande.
ssh -l NomUtilisateur -p NumeroDePort IP
Préciser également le nouveau port 11033 à la prochaine connexion avec votre client SSH, par exemple, Putty. Au passage, passer Putty en UTF8.

Supprimer les clés qui ne sont pas nécessaires

Les clés ssh sont stockées dans le fichier ~/.ssh/known_hosts
Pour l'utilisateur zer00cool et son dossier Git de référence, la clé est stockée dans le fichier /var/git/.ssh/known_hosts

Utiliser verbose pour connaître la configuration chargée

L'utilisateur zer00cool utilise le dossier /var/git/ comme dépôt de référence Git.

La clé ssh est stockée dans le fichier /var/git/.ssh/known_hosts

Exemple 1

# Utiliser verbose
ssh -v [email protected]
OpenSSH_7.2p2 Ubuntu-4ubuntu2.2, OpenSSL 1.0.2g  1 Mar 2016
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to alienware-17-r3 [127.0.1.1] port 22.
debug1: Connection established.
debug1: key_load_public: No such file or directory
debug1: identity file /var/git/.ssh/id_rsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /var/git/.ssh/id_rsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /var/git/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /var/git/.ssh/id_dsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /var/git/.ssh/id_ecdsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /var/git/.ssh/id_ecdsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /var/git/.ssh/id_ed25519 type -1
debug1: key_load_public: No such file or directory
debug1: identity file /var/git/.ssh/id_ed25519-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_7.2p2 Ubuntu-4ubuntu2.2
ssh_exchange_identification: read: Connection reset by peer

Exemple 2

ssh -v [email protected]
OpenSSH_7.2p2 Ubuntu-4ubuntu2.2, OpenSSL 1.0.2g  1 Mar 2016
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to alienware-17-r3 [127.0.1.1] port 22.
debug1: Connection established.
debug1: key_load_public: No such file or directory
debug1: identity file /var/git/.ssh/id_rsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /var/git/.ssh/id_rsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /var/git/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /var/git/.ssh/id_dsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /var/git/.ssh/id_ecdsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /var/git/.ssh/id_ecdsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /var/git/.ssh/id_ed25519 type -1
debug1: key_load_public: No such file or directory
debug1: identity file /var/git/.ssh/id_ed25519-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_7.2p2 Ubuntu-4ubuntu2.2
debug1: Remote protocol version 2.0, remote software version OpenSSH_7.2p2 Ubuntu-4ubuntu2.2
debug1: match: OpenSSH_7.2p2 Ubuntu-4ubuntu2.2 pat OpenSSH* compat 0x04000000
debug1: Authenticating to alienware-17-r3:22 as 'zer00cool'
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: algorithm: [email protected]
debug1: kex: host key algorithm: ecdsa-sha2-nistp256
debug1: kex: server->client cipher: [email protected] MAC: <implicit> compression: none
debug1: kex: client->server cipher: [email protected] MAC: <implicit> compression: none
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ecdsa-sha2-nistp256 SHA256:QAfc3awmrnSUyMWsJ6PIL48dJmXUVsX26D4BSaZumSs
debug1: Host 'alienware-17-r3' is known and matches the ECDSA host key.
debug1: Found key in /var/git/.ssh/known_hosts:1
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_EXT_INFO received
debug1: kex_input_ext_info: server-sig-algs=<rsa-sha2-256,rsa-sha2-512>
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Trying private key: /var/git/.ssh/id_rsa
debug1: Trying private key: /var/git/.ssh/id_dsa
debug1: Trying private key: /var/git/.ssh/id_ecdsa
debug1: Trying private key: /var/git/.ssh/id_ed25519
debug1: Next authentication method: password
[email protected]'s password: 
debug1: Authentication succeeded (password).
Authenticated to alienware-17-r3 ([127.0.1.1]:22).
debug1: channel 0: new [client-session]
debug1: Requesting no-more-ses[email protected]
debug1: Entering interactive session.
debug1: pledge: network
debug1: client_input_global_request: rtype [email protected] want_reply 0
debug1: Sending environment.
debug1: Sending env LANG = fr_FR.UTF-8
Welcome to Linux Mint 18 Sarah (GNU/Linux 4.4.0-21-generic x86_64)

* Documentation:  https://www.linuxmint.com

8 paquets peuvent être mis à jour.
0 mise à jour de sécurité.

Last login: Wed Jul 26 16:36:57 2017 from 127.0.0.1

Le manager de votre VPS ou de votre serveur dédié ne trace plus le SSH

Suite au changement du port par défaut de SSH sur mon VPS chez OVH, le manager n'arrive plus à savoir si SSH est activé. Normal, il recherche un service sur le port 22.

Manager-ovh-ssh-off-defaut-22.jpg

Modifier l'action fail2ban qui bloque le port 22 SSH pour le nouveau port SSH choisi

Pour cette config, le port par défaut de SSH a changé, l'indiquer dans jail.local, dans la partie SSH

[ssh]
enabled = true
port = ssh,sftp,NumeroDePort
filter = sshd
logpath = /var/log/auth.log
maxretry = 3

Contrôler les règles selinux

Todo.png

Copier la clef publique ssh sur le serveur

Todo.png

Désactiver la connexion ssh par mot de passe

Todo.png

Créer un nouvel utilisateur

dev.petitchevalroux.net/linux/interdire-ssh-root-linux.21.html

A l'aide de webmin, je place mon utilisateur dans le groupe sudo afin qu'il puisse faire partie de la liste des sudoers et soit en mesure d'effectuer des tâches d'administration.

Ou

Editer le fichier "/etc/sudoers" et copier la ligne avec les "ALL" et changer "root" par "toto".

Modifier le mot de passe root surtout si celui-ci vous a été attribué par défaut

Identifiez-vous d'abord en root puis entrez la commande : passwd root

ATTENTION : A NE PAS FAIRE POUR LA RELEASE 3 OVH, CAR, WEBMIN et peut être d'autres services utilisent le mot de passe root. @ suivre.

Alerte login Root

Vous pouvez éditer le fichier /root/.bashrc qui est exécuté au démarrage d'une session root pour envoyer un e-mail de notification. De cette façon, vous serez prévenu lorsqu'un login est effectué.

vi /root/.bashrc Ajoutez la ligne (en modifiant l'adresse e-mail de destination) : echo 'Accès Shell Root le ' `date` `who` | mail -s `hostname` Shell Root de `who | cut -d"(" -f2 | cut -d")" -f1` [email protected]

Personnalisation esthétique avec ces lignes

alias ls='ls $LS_OPTIONS --color=auto'
alias ll='ls $LS_OPTIONS -al --color=auto'
alias vi='vim'

Source (?) : http://www.octetmalin.net/linux/tutoriels/ssh-fichier-etc-sshd_config-configuration-machine-serveur.php

Se connecter en ssh

ssh -nNT -R 1103:localhost:22 [email protected]

Sécuriser SSH sur le VPS et sa distribution Release3 OVH

Suivre la procédure pour sécuriser SSH sur le VPS et sa distribution Release3 OVH.

Excellent et complet : Propre ! Rapide !

http://www.how-to.ovh/viewtopic.php?f=10&t=16

http://www.pingouinrouge.com/index.php/9-blog/7-tutoriel-installation-cle-prive-publique-sur-release3-ovh

Google Authenticator pour SSH

Vous pouvez utiliser Google Authenticator pour protéger votre connexion SSH avec un code de validation à 2 facteurs.

http://pirmax.fr/2014/02/13/securiser-les-connexions-ssh-avec-google-authenticator/

Créer un tunnel SSH inverse

Créer un tunnel SSH inverse : https://renoirboulanger.com/blog/2012/02/creer-un-tunnel-ssh-inverse-pour-pouvoir-supporter-a-distance-un-ami-utilisant-linux/

Reverse SSH Tunneling : https://www.howtoforge.com/reverse-ssh-tunneling

CCM : http://www.commentcamarche.net/forum/affich-18070378-reverse-ssh

SSH avec Windows

Source : ftp://ftp.dsfc.net/SupportSsh.pdf

Bibliographie

https://openclassrooms.com/courses/reprenez-le-controle-a-l-aide-de-linux/la-connexion-securisee-a-distance-avec-ssh
https://renoirboulanger.com/blog/2012/02/creer-un-tunnel-ssh-inverse-pour-pouvoir-supporter-a-distance-un-ami-utilisant-linux/
https://doc.ubuntu-fr.org/tutoriel/reverse_ssh
http://geekfault.org/2011/02/19/reverse-ssh-acceder-a-un-serveur-derriere-un-natfirewall/
https://forum.ubuntu-fr.org/viewtopic.php?id=232602
https://doc.ubuntu-fr.org/ssh
http://www.generation-nt.com/reponses/fermer-ssh-sans-arreter-commande-entraide-283224.html
http://www.commentcamarche.net/faq/29784-securiser-son-acces-ssh
https://www.debian-fr.org/t/fermer-un-tunnel-ssh/35424
http://www.alsacreations.com/tuto/lire/612-Premiere-connexion-SSH.html
https://openclassrooms.com/forum/sujet/script-shell-arreter-un-serveur-depuis-un-poste-client-30870
http://www.developpez.net/forums/d813001/systemes/linux/reseau/debutant-empecher-connection-ssh/
www.jordimir.com/2009/07/31/optimiser-proteger-son-serveur-2/
www.howtoforge.com/community/threads/fail2ban-is-doing-nothing.37944/
www.cafe-web.fr/tutoriels/configurer-fail2ban-sur-un-serveur.html
www.coolcoyote.net/linux-debian/configuration-dun-serveur-dedie-chez-ovh (Guide -vieux- de suivi d'un dédié chez OVH.)
www.bobotig.fr/contenu/documents/securiser-site-web/
forum.ovh.com/showthread.php?13053-Sécurisation-serveur-aide-débutant-question-pour-les-pros
formation-debian.via.ecp.fr/ssh.html
Fail2ban : https://reseau.developpez.com/tutoriels/fail2ban/
https://doc.ubuntu-fr.org/ssh

NAVIGATION

CHERCHER UNE AUTRE PAGE SUR LE WIKI

D'autres pages du wiki peuvent correspondre à vos attentes : La liste de toutes les pages du wiki.

COMPRENDRE LA BLOCKCHAIN PAR LA PRATIQUE

Obtenir gratuitement de la cryptomonnaie sur internet : https://www.visionduweb.eu/forum/bitcoin/1597-gagner-des-bitcoins-miner-des-bitcoins

LIRE ET PARTAGER

Le wiki collaboratif du HackerSpace Vision du Web.
Les pages présentées sur le wiki évoluent tous les jours.
Certaines recherches sont peu abouties et incluent des erreurs.
La recherche interne du wiki permet de trouver le contenu qui vous intéresse.
Les informations présentes sur cette page sont issues d'une recherche personnelle.
Vous pouvez partager les liens du wiki avec l'ensemble de la communauté des internautes.
Vous pouvez améliorer le contenu du wiki et faire vos propositions depuis l'onglet discussion.

SOUTENIR VISIONDUWEB

Soutenir Vision du web avec quelques Bitcoins : 33ZsupGQr1rUmwj62HadcZ55hsGJajD9wN
Soutenir Vision du web avec quelques Bitcoins Cash : 1ATSDJeoQr71x7xNDRytxFnxQ8ckDUeDbT
Soutenir Vision du web avec quelques Blackcoins : B6MyLMPtzg8D15mHt8jYi7nVjYWEyVXJzA
Soutenir Vision du web avec quelques Dogecoins : A64jhqCgsUyrUCPte6fV3BcG2Y7daH13Ym
Soutenir Vision du web avec quelques Ethereum : 0x0E4D6B7A1F88A56A1A66bf408c72FAE3d104D632
Soutenir Vision du web avec quelques Litecoins : 3LKigW6TCS5MvXrZFGh8VMEtZf6MtE86iz
Soutenir Vision du web avec quelques Potcoins : PUYvjeJ3n2frypgD5yd95yNnwoztnZL5P3