SSH est un protocole réseau qui fonctionne dans une console. Le client SSH le plus couramment utilisé est PuTTy. L'image ci-dessous montre une session SSH établie. Il est facile à utiliser et rapide. La plupart des professionnels de l’informatique gèrent l’ensemble du réseau uniquement via SSH en raison de la sécurité et de l’accès rapide / facile pour effectuer des tâches d’administration et de gestion sur le serveur. Toute la session en SSH est cryptée - Les principaux protocoles pour SSH sont SSH1 / SSH-1 et SSH2 / SSH-2. SSH-2 est le dernier, plus sécurisé que SSH-1. Un système d'exploitation Linux a un utilitaire intégré appelé Terminal pour accéder à la console et une machine Windows nécessite un client SSH (par exemple PuTTy).
Accès à un hôte distant à l'aide de SSH
Pour accéder à un hôte / machine distant à l'aide de SSH, vous devez disposer des éléments suivants:
à) PuTTy (client SSH gratuit)
b) Nom d'utilisateur du serveur SSH
c) Mot de passe du serveur SSH
d) Port SSH qui est généralement 22 mais comme 22 est la valeur par défaut, il devrait être changé pour un port différent pour éviter les attaques sur ce port.
Dans une machine Linux, le nom d'utilisateur root est l'administrateur par défaut et contient tous les droits d'administration.
Dans Terminal, la commande suivante lancera une connexion au serveur.
ssh root@192.168.1.1
où, root est le nom d'utilisateur et 192.168.1.1 est l'adresse de l'hôte
Voici à quoi ressemble le terminal:
Vos commandes seront tapées après le symbole $ . Pour obtenir de l'aide avec n'importe quelle commande dans terminal / putty, utilisez la syntaxe:
homme ssh
commande homme
man, suivi de n'importe quelle commande retournera les instructions de commande à l'écran
Donc, ce que je vais faire maintenant, c'est SSH en utilisant PuTTy dans mon système d'exploitation Debian fonctionnant sur VMWare.
Mais avant de faire cela, je dois activer SSH en me connectant à ma VM Debian - Si vous venez d'acheter un serveur auprès d'une société d'hébergement, vous pouvez leur demander d'activer SSH pour vous.
Pour activer ssh, utilisez
sudo /etc/init.d/ssh redémarrer
Puisque j'utilise Ubuntu et que ssh n'a pas été installé, donc
Pour installer ssh, utilisez ces commandes
sudo apt-get install openssh-client
sudo apt-get install openssh-serveur
Et voici ce que j'ai, connecté à SSH via PuTTy:
Maintenant, voici ce qu'il faut pour configurer SSH et établir une session via PuTTy - Ci-dessous, je vais aborder certaines fonctionnalités avancées de base qui commenceront lentement à vous donner une meilleure vue d'ensemble du scénario.
Le fichier de configuration ssh par défaut se trouve à l'adresse: / etc / ssh / sshd_config
Pour afficher le fichier de configuration, utilisez: cat / etc / ssh / sshd_config
Pour modifier le fichier de configuration, utilisez: vi / etc / ssh / sshd_config ou nano / etc / ssh / sshd_config
Après avoir modifié un fichier, utilisez CTRL + X et appuyez sur la touche Y pour l'enregistrer et le quitter (éditeur nano)
Le port SSH peut être modifié à partir du fichier de configuration, le port par défaut est 22. Les commandes de base, cat, vi et nano fonctionneront également pour d'autres choses. Pour en savoir plus sur les commandes en particulier, utilisez la recherche Google.
Si vous apportez des modifications à un fichier de configuration, un redémarrage est nécessaire pour ce service. En allant plus loin, supposons que nous souhaitons maintenant changer notre port, donc ce que nous allons faire est de modifier le fichier sshd_config, et j'utiliserais
nano / etc / ssh / sshd_config
Vous devez être connecté en tant qu'administrateur ou utiliser sudo nano / etc / ssh / sshd_config pour modifier le fichier. Une fois édité, redémarrez le service ssh, sudo /etc/init.d/ssh redémarrer
Si vous modifiez un port, assurez-vous de l'autoriser dans vos IPTABLES, si vous utilisez le pare-feu par défaut.
iptables -I INPUT -p tcp –dport 5000 -j ACCEPTER/etc/rc.d/init.d/iptables save
Interrogez les iptables pour confirmer si le port est ouvert
iptables -nL | grep 5000
Il y a plusieurs directives dans le fichier de configuration, comme indiqué précédemment, il existe deux protocoles pour SSH (1 et 2). S'il est défini sur 1, changez-le en 2.
Voici un peu de mon fichier de configuration:
# Fichier de configuration généré par le package
# Voir la page de manuel sshd_config (5) pour plus de détails
# Quels ports, adresses IP et protocoles nous écoutons
Port 5000 remplacé le numéro 22 par le port
# Utilisez ces options pour restreindre les interfaces / protocoles auxquels sshd se liera
#ListenAddress ::
#ListenAddress 0.0.0.0
Protocole 2 a remplacé le protocole 1 par 2
n'oubliez pas de redémarrer le service après avoir apporté des modifications
Root est l'administrateur, et il est recommandé de le désactiver, sinon si vous êtes ouvert aux connexions à distance, vous risquez de devenir l'objet d'une attaque par force brute ou d'autres vulnérabilités ssh - les serveurs Linux sont les boîtes les plus appréciées des pirates la directive ConnexionGraceTime , définit une limite de temps pour que l'utilisateur se connecte et s'authentifie, si ce n'est pas le cas, la connexion se ferme - laissez cela par défaut.
# Authentification:
ConnexionGraceTime 120
PermitRootLogin non
StrictModes oui
Une fonctionnalité super cool, est le Authentification par clé (PubkeyAuthentication) - Cette fonctionnalité vous permet de configurer uniquement l'authentification par clé, comme nous le voyons avec les serveurs Amazon EC3. Vous ne pouvez accéder au serveur qu'en utilisant votre clé privée, il est hautement sécurisé. Pour que cela fonctionne, vous devez générer une paire de clés et ajouter cette clé privée à votre machine distante, puis ajouter la clé publique au serveur afin qu'il soit accessible à l'aide de cette clé.
PubkeyAuthentication oui
AuthorizedKeysFile .ssh / authorized_keys
Authentification RSAA oui
Mot de passeAuthentification non
Cela refusera tout mot de passe et n'autorisera l'accès des utilisateurs qu'avec une clé.
Dans un réseau professionnel, vous informerez généralement vos utilisateurs de ce qu'ils sont autorisés à faire ou non, ainsi que de toute autre information nécessaire.
Le fichier de configuration à éditer pour les bannières est: / etc / motd
Pour ouvrir le fichier dans l'éditeur, tapez: nano / etc / motd ou sudo / etc / motd
Modifiez le fichier, comme vous le feriez dans le bloc-notes.
Vous pouvez également placer la bannière dans un fichier et le référencer dans le fichier / etc / motd
par exemple: nano banner.txt créera un fichier banner.txt et ouvrira immédiatement l'éditeur.
Modifiez la bannière et ctrl + x / y pour la sauvegarder. Ensuite, référencez-le dans le fichier motd en utilisant
Banner /home/users/appualscom/banner.txt OU peu importe, le chemin du fichier est.
Tout comme la bannière, vous pouvez également ajouter un message avant l'invite de connexion, le fichier à modifier est / etc / issue
Tunnel SSH
Le tunnel SSH vous permet de canaliser le trafic de votre machine locale vers une machine distante. Il est créé via les protocoles SSH et est chiffré. Consultez l'article sur Tunnel SSH
Session graphique sur tunnel SSH
Activez la session graphique / gui en décommentant la ligne suivanteX11Forwarding oui
Du côté du client, la commande serait:
ssh -X root@10.10.10.111
Vous pouvez exécuter un programme comme Firefox, etc. en utilisant des commandes simples:
Firefox
Si vous obtenez une erreur d'affichage, définissez l'adresse:
export DISPLAY = adresse IPde la machine: 0.0
Wrappers TCP
Si vous souhaitez autoriser les hôtes sélectionnés et en refuser certains, ce sont les fichiers que vous devez modifier
1. /etc/hosts.allow
2. /etc/hosts.deny
Pour autoriser quelques hôtes
sshd: 10.10.10.111
Pour empêcher tout le monde de se connecter à votre serveur, ajoutez la ligne suivante dans /etc/hosts.deny
sshd: TOUT
SCP - Copie sécurisée
SCP - copie sécurisée est un utilitaire de transfert de fichiers. Vous devrez utiliser la commande suivante pour copier / transférer des fichiers via ssh.
La commande ci-dessous copiera mon fichier dans / home / user2 le 10.10.10.111
scp / home / user / myfile root@10.10.10.111: / home / user2
Syntaxe de la destination source scp
Pour copier un dossier
scp –r / home / user / myfolder roor@10.10.10.111: / home / user2
Recherche de fichiers sur une machine distante
Il est très facile de rechercher des fichiers sur une machine distante et d'afficher la sortie sur votre système. Pour rechercher des fichiers sur une machine distante
ssh root@10.10.10.111 'find / home / user –name‘ * .jpg ’»La commande recherchera dans le répertoire / home / user tous les fichiers * .jpg, vous pouvez jouer avec. find / -name recherchera tout le répertoire / root.
Sécurité supplémentaire SSH
iptables vous permet de définir des limites basées sur le temps. Les commandes ci-dessous bloqueront l'utilisateur pendant 120 secondes s'il ne parvient pas à s'authentifier. Vous pouvez utiliser le paramètre / seconde / heure / minute ou / jour dans la commande pour spécifier la période.
Limites basées sur le tempsiptables -A INPUT -p tcp -m état –syn –state NEW –dport 22 -m limit –limit 120 / seconde –limit-burst 1 -j ACCEPTER
iptables -A INPUT -p tcp -m état –syn –state NEW –dport 5000 -j DROP
5000 est le port, changez-le selon vos paramètres .
Autoriser l'authentification à partir d'une adresse IP spécifique
iptables -A INPUT -p tcp -m state -state NEW -source 10.10.10.111 -dport 22 -j ACCEPT
Autres commandes utiles
Joindre un écran via SSH
écran ssh -t root@10.10.10.111 –r
Vérification de la vitesse de transfert SSH
oui | pv | ssh $root@10.10.10.111 'cat> / dev / null'