Configure ssh params — различия между версиями

Материал из pNp Wiki
Перейти к: навигация, поиск
(Дополнительные параметры)
(Дополнительные параметры)
 
Строка 9: Строка 9:
 
Запретим вход пользователю <code>root</code>, а так же запретим авторизацию по паролям, предварительно  
 
Запретим вход пользователю <code>root</code>, а так же запретим авторизацию по паролям, предварительно  
 
убедившись, что наш ключ находится на целевом сервере, иначе мы не сможем попасть на интересующую нас машину по протоколу <code>ssh</code>!
 
убедившись, что наш ключ находится на целевом сервере, иначе мы не сможем попасть на интересующую нас машину по протоколу <code>ssh</code>!
 +
Нам понадобятся следующие опции:
 +
# <code>PermitRootLogin no</code> - запрещаем подключение пользователем <code>root</code>
 +
# <code>PermitEmptyPasswords no</code> - запрещаем использование пустых паролей
 +
# <code>PasswordAuthentication no</code> - запрещаем использование паролей (вход только по ключам)
 +
# <code>PubkeyAuthentication yes</code> - аутентикация происходит только по ключам
 +
 +
В результате, конфигурационный файл принимает следующий вид:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 +
HostKey /etc/ssh/ssh_host_rsa_key
 +
HostKey /etc/ssh/ssh_host_ecdsa_key
 +
HostKey /etc/ssh/ssh_host_ed25519_key
 +
SyslogFacility AUTHPRIV
 +
PermitRootLogin no
 +
PubkeyAuthentication yes
 +
AuthorizedKeysFile .ssh/authorized_keys
 +
PermitEmptyPasswords no
 +
PasswordAuthentication no
 +
ChallengeResponseAuthentication no
 +
GSSAPIAuthentication yes
 +
GSSAPICleanupCredentials no
 +
UsePAM yes
 +
X11Forwarding yes
 +
UsePrivilegeSeparation sandbox # Default for new installations.
 +
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
 +
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
 +
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
 +
AcceptEnv XMODIFIERS
 +
Subsystem sftp /usr/libexec/openssh/sftp-server
 +
[root@vm-01 ~]#
 +
</syntaxhighlight>
 +
Далее, необходимо заставить <code>ssh</code> перечитать настройки конфигурационного файла:
 +
<syntaxhighlight lang="bash">
 +
[root@vm-01 ~]# systemctl is-active sshd
 +
active
 +
[root@vm-01 ~]# systemctl reload sshd
 +
[root@vm-01 ~]# systemctl is-active sshd
 +
inactive
 +
[root@vm-01 ~]# systemctl status -l sshd
 +
● sshd.service - OpenSSH server daemon
 +
  Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
 +
  Active: inactive (dead) since Tue 2018-02-27 03:28:29 MSK; 14s ago
 +
    Docs: man:sshd(8)
 +
          man:sshd_config(5)
 +
  Process: 10989 ExecReload=/bin/kill -HUP $MAINPID (code=exited, status=0/SUCCESS)
 +
  Process: 10890 ExecStart=/usr/sbin/sshd $OPTIONS (code=exited, status=0/SUCCESS)
 +
Main PID: 10868 (code=exited, status=0/SUCCESS)
 +
  CGroup: /system.slice/sshd.service
 +
          └─10990 /usr/sbin/sshd
 +
 +
Feb 27 03:17:36 vm-01 systemd[1]: Starting OpenSSH server daemon...
 +
Feb 27 03:17:36 vm-01 systemd[1]: Started OpenSSH server daemon.
 +
Feb 27 03:28:29 vm-01 sshd[10868]: Received SIGHUP; restarting.
 +
Feb 27 03:28:29 vm-01 systemd[1]: Reloaded OpenSSH server daemon.
 +
Feb 27 03:28:29 vm-01 sshd[10990]: Server listening on 0.0.0.0 port 22.
 +
Feb 27 03:28:29 vm-01 sshd[10990]: Server listening on :: port 22.
 +
[root@vm-01 ~]#
 +
</syntaxhighlight>
 +
После правки конфигурационного файла, сервис <code>sshd</code> может отображаться как неактивный, однако он будет слушать порт <code>22</code> и принимать соединения.
 +
Проверяем подключение:
 +
<syntaxhighlight lang="bash">
 +
[andy@vm-02 ~]$ ssh andy@192.168.1.1
 +
Last login: Tue Feb 27 03:30:38 2018 from 192.168.1.2
 +
[andy@vm-01 ~]$ su -
 +
Password:
 +
Last login: Tue Feb 27 02:25:07 MSK 2018 from gateway on pts/0
 +
[root@vm-01 ~]# systemctl is-active sshd
 +
inactive
 +
[root@vm-01 ~]#
 +
</syntaxhighlight>
 +
 +
== Ссылки ==
 +
[https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/system_administrators_guide/s1-ssh-configuration Configuring OpenSSH]<br />

Текущая версия на 11:34, 6 марта 2018

Конфигурирование SSH. Параметры подключения

Предварительные требования

  • Виртуальная машина с двумя сетевыми интерфейсами
  • Установленные пакеты: bash-completion, openssh-clients, openssh-server

Дополнительные параметры

Поведение ssh сервера задается редактированием файла /etc/ssh/sshd_config Запретим вход пользователю root, а так же запретим авторизацию по паролям, предварительно убедившись, что наш ключ находится на целевом сервере, иначе мы не сможем попасть на интересующую нас машину по протоколу ssh! Нам понадобятся следующие опции:

  1. PermitRootLogin no - запрещаем подключение пользователем root
  2. PermitEmptyPasswords no - запрещаем использование пустых паролей
  3. PasswordAuthentication no - запрещаем использование паролей (вход только по ключам)
  4. PubkeyAuthentication yes - аутентикация происходит только по ключам

В результате, конфигурационный файл принимает следующий вид:

HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
SyslogFacility AUTHPRIV
PermitRootLogin no
PubkeyAuthentication yes
AuthorizedKeysFile	.ssh/authorized_keys
PermitEmptyPasswords no
PasswordAuthentication no
ChallengeResponseAuthentication no
GSSAPIAuthentication yes
GSSAPICleanupCredentials no
UsePAM yes
X11Forwarding yes
UsePrivilegeSeparation sandbox		# Default for new installations.
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
AcceptEnv XMODIFIERS
Subsystem	sftp	/usr/libexec/openssh/sftp-server
[root@vm-01 ~]#

Далее, необходимо заставить ssh перечитать настройки конфигурационного файла:

[root@vm-01 ~]# systemctl is-active sshd
active
[root@vm-01 ~]# systemctl reload sshd
[root@vm-01 ~]# systemctl is-active sshd
inactive
[root@vm-01 ~]# systemctl status -l sshd
● sshd.service - OpenSSH server daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
   Active: inactive (dead) since Tue 2018-02-27 03:28:29 MSK; 14s ago
     Docs: man:sshd(8)
           man:sshd_config(5)
  Process: 10989 ExecReload=/bin/kill -HUP $MAINPID (code=exited, status=0/SUCCESS)
  Process: 10890 ExecStart=/usr/sbin/sshd $OPTIONS (code=exited, status=0/SUCCESS)
 Main PID: 10868 (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/sshd.service
           └─10990 /usr/sbin/sshd

Feb 27 03:17:36 vm-01 systemd[1]: Starting OpenSSH server daemon...
Feb 27 03:17:36 vm-01 systemd[1]: Started OpenSSH server daemon.
Feb 27 03:28:29 vm-01 sshd[10868]: Received SIGHUP; restarting.
Feb 27 03:28:29 vm-01 systemd[1]: Reloaded OpenSSH server daemon.
Feb 27 03:28:29 vm-01 sshd[10990]: Server listening on 0.0.0.0 port 22.
Feb 27 03:28:29 vm-01 sshd[10990]: Server listening on :: port 22.
[root@vm-01 ~]#

После правки конфигурационного файла, сервис sshd может отображаться как неактивный, однако он будет слушать порт 22 и принимать соединения. Проверяем подключение:

[andy@vm-02 ~]$ ssh andy@192.168.1.1
Last login: Tue Feb 27 03:30:38 2018 from 192.168.1.2
[andy@vm-01 ~]$ su -
Password: 
Last login: Tue Feb 27 02:25:07 MSK 2018 from gateway on pts/0
[root@vm-01 ~]# systemctl is-active sshd
inactive
[root@vm-01 ~]#

Ссылки

Configuring OpenSSH