Accès et contrôle à distance Linux

Accès et contrôle à distance

Protocole SSH

Il s'agit d'un protocole de canal sécurisé
pour fournir un environnement shell sécurisé aux clients pour la gestion à distance.
Port par défaut: TCP 22

Service OpenSSH

Nom du service:
programme principal du serveur sshd : / usr / sbin /
fichier de configuration du serveur sshd : / etc / ssh / sshd_config

Clé
clé symétrique: la même clé est utilisée pour le chiffrement et le déchiffrement. Le cryptage AES DES 3DES est rapide, mais non sécurisé
Clé asymétrique: le cryptage et le décryptage utilisent des clés différentes, divisées en clé publique et clé privée. Il n'est pas possible de dériver une autre clé d'une clé. Le cryptage RSA est lent et sûr

ssh_config: pour le client
sshd_config: pour le serveur
Numéro de port du mode d'accès
SSH: port par défaut d'accès au texte chiffré TCP: 22, général WAN
Telnet: accès en texte clair TCP 23,
options générales de surveillance du service LAN
Numéro de port, version du protocole, adresse IP d'écoute

Désactiver la résolution inverse
pour la connexion à distance

[root@localhost ~]# hostnamectl set-hostname test01
[root@localhost ~]# su
[root@test01 ~]# netstat -ntap | grep 22
tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN      9748/dnsmasq        
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      9135/sshd           
tcp        0      0 20.0.0.41:22            20.0.0.1:50684          ESTABLISHED 73425/sshd: root@pt 
tcp6       0      0 :::22                   :::*                    LISTEN      9135/sshd           
[root@test01 ~]# grep  "bash" /etc/passwd
root:x:0:0:root:/root:/bin/bash
hu:x:1000:1000:hu:/home/hu:/bin/bash
[root@test01 ~]# useradd zhangsan
[root@test01 ~]# passwd zhangsan
在另一台主机上
[root@localhost ~]# hostnamectl set-hostname test02
[root@localhost ~]# su
[root@test02 ~]# ssh [email protected]
The authenticity of host '20.0.0.41 (20.0.0.41)' can't be established.
ECDSA key fingerprint is SHA256:W+MleaejDosjJJV1F2noJPAGWA/d2qESydwosqTqWWw.
ECDSA key fingerprint is MD5:68:5f:ee:e5:76:ca:96:01:5d:d8:b9:1f:4b:5a:58:91.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '20.0.0.41' (ECDSA) to the list of known hosts.
[email protected]'s password: 
Last login: Mon Jul 13 11:26:09 2020
[root@test01 ~]# 
[root@test01 ~]# exit  //退出当前bash环境
登出
Connection to 20.0.0.41 closed.

[root@test01 ~]# vim /etc/ssh/sshd_config
...
#Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

Insérez la description de l'image ici
Contrôle de connexion des utilisateurs
Interdire les utilisateurs root, les utilisateurs avec des mots de passe vides
Limiter le temps d'authentification de connexion et le nombre de tentatives
AllowUsers (liste blanche, autoriser uniquement certains utilisateurs, refuser tout le monde, occasions de haute sécurité)
DenyUsers (liste noire, refuser uniquement certains utilisateurs, autoriser tout Occasions de faible sécurité avec des personnes)

N'utilisez pas AllowUsers et DenyUsers en même temps

[root@localhost ~]# vim /etc/ssh/sshd_config 
……
#LoginGraceTime 2m  //会话时间
#PermitRootLogin yes  //允许管理员进行登录
#StrictModes yes
#MaxAuthTries 6  //最大尝试次数
#MaxSessions 10  //最大会话连接
AllowUsers zhangsan [email protected]

Insérez la description de l'image ici

Méthode d'
authentification Authentification par mot de passe: vérifiez si le nom d'utilisateur et le mot de passe correspondent
Authentification par paire de clés: vérifiez si la clé privée du client et la clé publique du serveur correspondent à
[root @ localhost ~] # vim / etc / ssh / sshd_config
……
PasswordAuthentication oui S'il faut utiliser un mot de passe
PermitEmptyPasswords non Interdire le mot de passe vide
PubkeyAuthentication oui Activer l'authentification par clé publique
AuthorizedKeysFile .ssh / allowed_keys Spécifier l'emplacement du magasin de clés publiques

Créer un système SSH pour la vérification des paires de clés

Processus global de réalisation
Insérez la description de l'image ici

Créez un système SSH pour la vérification des paires de clés.
Créez une
commande ssh-keygen de paires de clés sur le client.
Algorithmes de chiffrement disponibles: RSA, ECDSA ou DSA
. Téléchargez le fichier de clé publique sur le serveur de
quelque manière que ce soit (FTP, Email, SCP, HTTP ... )
Importez le texte de la clé publique dans le serveur.
Ajoutez le texte de la clé publique au magasin de clés publiques de l'utilisateur cible.
Emplacement du magasin de clés publiques par défaut: ~ / .ssh /
allowed_keys [root @ test01 ~] # vim / etc / ssh / sshd_config
Insérez la description de l'image iciInsérez la description de l'image ici

[root@test01 ~]# systemctl restart sshd

[root@test02 ~]# useradd lisi
[root@test02 ~]# passwd lisi
[root@test02 ~]# su lisi
[lisi@test02 root]$ ssh-keygen -t ecdsa
Generating public/private ecdsa key pair.
Enter file in which to save the key (/home/lisi/.ssh/id_ecdsa): 
Created directory '/home/lisi/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/lisi/.ssh/id_ecdsa.
Your public key has been saved in /home/lisi/.ssh/id_ecdsa.pub.
The key fingerprint is:
SHA256:h1Nb+dtsaNr/+oDgDc9gbtKDX+63gas3cZ9yyxPdX30 lisi@test02
The key's randomart image is:
+---[ECDSA 256]---+
|                 |
|             .   |
|          . o    |
|         o o .   |
|        S B   . +|
|         O B.o.*E|
|        o * Bo*.X|
|         + +o*oBo|
|          o+=o*BB|
+----[SHA256]-----+
[lisi@test02 root]$ cd ~
[lisi@test02 ~]$ cd .ssh/
[lisi@test02 .ssh]$ ls -a
.  ..  id_ecdsa  id_ecdsa.pub
[lisi@test02 .ssh]$ ssh-copy-id -i id_ecdsa.pub [email protected]
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "id_ecdsa.pub"
The authenticity of host '20.0.0.41 (20.0.0.41)' can't be established.
ECDSA key fingerprint is SHA256:W+MleaejDosjJJV1F2noJPAGWA/d2qESydwosqTqWWw.
ECDSA key fingerprint is MD5:68:5f:ee:e5:76:ca:96:01:5d:d8:b9:1f:4b:5a:58:91.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
[email protected]'s password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh '[email protected]'"
and check to make sure that only the key(s) you wanted were added.

[root@test01 ~]# cd /home/zhangsan
[root@test01 zhangsan]# ls -a
.  ..  .bash_history  .bash_logout  .bash_profile  .bashrc  .cache  .config  .mozilla  .ssh
[root@test01 zhangsan]# cd .ssh/
[root@test01 .ssh]# ls -a
.  ..  authorized_keys
[root@test01 .ssh]# cat authorized_keys 
ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBDUz9pe7DeEX87424oxSLxGB7RCbr0KwA6mDMaq4oyuU0FfgeQ7J9+VusH1+UgPVAwvCtoLUT+W8xi12dvHtmdQ= lisi@test02
[root@test01 .ssh]# 

[lisi@test02 .ssh]$ ssh [email protected]
Enter passphrase for key '/home/lisi/.ssh/id_ecdsa': 
Last login: Mon Jul 13 11:48:11 2020
[zhangsan@test01 ~]$ 

Configurer une connexion sans mot de passe

[lisi@test02 .ssh]$ ssh-agent bash  //代理终端
[lisi@test02 .ssh]$ ssh-add  //添加免密密码
Enter passphrase for /home/lisi/.ssh/id_ecdsa: 
Identity added: /home/lisi/.ssh/id_ecdsa (/home/lisi/.ssh/id_ecdsa)

[lisi@test02 .ssh]$ ssh [email protected]
Last login: Mon Jul 13 12:10:36 2020 from 20.0.0.51
[zhangsan@test01 ~]$ 

Utilisez le programme client
SSH commande ssh-connexion sécurisée à distance
scp commande-copie sécurisée à distance
sftp téléchargement FTP sécurisé

Présentation des enveloppeurs TCP

Principe de protection
Insérez la description de l'image ici
La réalisation du mécanisme de protection
Méthode 1: Package d'autres programmes de service via le programme tcpd
Méthode 2: D'autres programmes de service appellent libwrap.so. *. Link library
Fichier de configuration de la politique de contrôle d'accès
/etc/hosts.allow
/ etc / hosts.deny

Définir la politique de contrôle d'accès
Format de la politique
Liste des services: Liste d'adresses client Liste des
services
Plusieurs services sont séparés par des virgules, TOUS signifie tous les services
Liste d'adresses client
Plusieurs adresses sont séparées par des virgules, TOUS signifie tous les services
Caractères génériques * et?
Adresse de segment de réseau, telle que l'
adresse de zone 192.168.1 ou 192.168.1.0/255.255.255.0 , telle que .benet.com

L'ordre de l'application de la stratégie
Vérifiez d'abord hosts.allow, si une correspondance est trouvée, l'accès est autorisé,
puis vérifiez hosts.deny,
si trouvé, l'accès est refusé. S'il n'y a pas de stratégie correspondante dans les deux fichiers, l'accès est autorisé par défaut

Je suppose que tu aimes

Origine blog.csdn.net/weixin_46355881/article/details/107352853
conseillé
Classement