Как настроить сервер ssh для безопасного соединения

Описывается как настроить сервер ssh для создания безопасного подключения. Дается пошаговая инструкция с пояснениями.

В статье «Что такое ssh/sftp, для чего он нужен?» я написал, как подготовить клиент ssh для управления сервером, сгенерировать ключи и получить файл authorized_keys2 на USB накопителе.

Как настроить сервер ssh на сервере на Linux

Если вы не использовали наш шаблон виртуальной машины, то все будет намного сложнее.

1. Надо при помощи sftp переписать полученный файл authorized_keys2 на сервер (Рис. 2.). Как пользоваться программой безопасной передачи файлов sftp я написал и статьях “Клиент sftp. Краткое описание” (Linux и OSX), “PSFTP – SFTP клиент PuTTY для Windows” и “Клиент SSH для Windows Bitvise Tunnelier

sftp root@192.168.22.4, ввести по запросу пароль root и, после того, как получим
Connected to 192.168.22.4., ввести
put author*, и после того, как передача файла завершиться, ввести
exit 

Как настроить сервер ssh

Рис. 2. Запись authorized_keys2 на сервер

2. Придумать хороший пароль для пользователя admin (о хороших паролях я писал здесь).

3. Войти на сервер через безопасное соединение ssh как суперпользователь root (дистрибутивы Linux с настройками по умолчанию, к сожалению, это допускают).

ssh root@192.168.22.4 ввести пароль root по запросу и получим:
Last login: Mon Nov  4 10:46:38 2013 from 192.168.14.6
[root@www ~]# теперь Вы суперпользователь сервера.

4. Создаем пользователя admin и задаем его пароль. Если Вам не нравится имя пользователя admin, то Вы можете выбрать любое другое и везде admin надо заменить выбранным Вами именем.

[root@www ~]# useradd admin 
[root@www ~]# passwd admin  и дважды ввести пароль пользователя admin
Changing password for user admin.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

5. Переходим в домашнюю директорию пользователя admin, создаем папку .ssh, переносим туда файл authorized_keys2 и устанавливаем необходимые права доступа (Рис.3)

cd /home/admin
mkdir .ssh
chmod 0700 .ssh
cp /root/authorized_keys2 .ssh/
chown -R admin.admin .ssh

Как настроить сервер ssh

Рис. 3. Создание пользователя admin

6. Изменяем при помощи редактора vi конфигурационный файл сервера ssh. Как пользоваться редактором vi описано в “Редактор vi. Краткая инструкция“.

rm /etc/ssh/sshd_config   удаляем старый файл конфигурации
rm: remove regular file `/etc/ssh/sshd_config’? y   подтверждаем удаление файла (вводим «y»)
vi /etc/ssh/sshd_config  и создаем новый

Далее в открывшемся окошке редактора vi вводим команду «i» (insert), копируем весь конфигурационный файл ниже и вставляем в окошко редактора vi.

# This is ssh server systemwide configuration file.
Port 22
Protocol 2
ListenAddress 0.0.0.0
#ListenAddress ::
HostKey /etc/ssh/ssh_host_key
HostKey /etc/ssh/ssh_host_rsa_key
ServerKeyBits 1024
LoginGraceTime 60
KeyRegenerationInterval 3600
PermitRootLogin no
IgnoreRhosts yes
IgnoreUserKnownHosts yes
StrictModes yes
X11Forwarding no
#X11DisplayOffset 10
PrintMotd yes
KeepAlive yes
# Logging
SyslogFacility AUTH
LogLevel INFO
#RhostsAuthentication no
RhostsRSAAuthentication no
RSAAuthentication no
PasswordAuthentication no
PermitEmptyPasswords no
AllowUsers admin
#PAMAuthenticationViaKbdInt yes
# Uncomment if you want to enable sftp
Subsystem sftp /usr/libexec/openssh/sftp-server
MaxStartups 10:30:60

Должен появиться точно такой текст, как этот. Если это так, то для выхода из режима редактирования надо нажать клавишу «esc» и последовательность «:wq» для записи файла и выхода из редактора (Рис. 4).

Как настроить сервер ssh

Рис. 4. Конфигурационный файл сервера ssh

Что это нам даст:
Во-первых, мы запретили вход при помощи ввода пароля – теперь для входа пользователя через ssh необходимо иметь секретный ключ у клиента и знать его пароль, открытый (публичный) ключ в файле authorized_keys2 на сервере, что существенно снижает риск взлома сервера перебором паролей. (Вы сможете увидеть такие попытки в логах Вашего сервера).
Во-вторых, мы запретили вход суперпользователя root через соединение ssh совсем. Для того, чтобы стать суперпользователем, вошедшему пользователю необходимо знать еще и пароль root для команды su.
В третьих, вход на сервере разрешен только пользователю с именем admin и все остальные имена пользователей будут отвергаться (я все-таки думаю, что сменить admin на что-то другое, которое никто не знает является хорошей идеей).

7. Перезапускаем сервер ssh:

/etc/init.d/sshd restart
Stopping sshd:                                             [  OK  ]
Starting sshd:                                               [  OK  ]

8. Проверяем:

ssh admin@192.168.22.4

Если успешно вошли на сервер, (что должно быть), то все в порядке. Можете попробовать войти под root – не должно получиться.

Как настроить сервер ssh на базе нашей виртуальной машины

Если Вы используете (будете использовать) сервер на базе нашей виртуальной машины, то, единственное, что Вам теперь нужно, это вставить USB накопитель в компьютер, на котором находится файл authorized_keys2. Все остальные настройки сервера ssh, в том числе необходимые настройки безопасности, будут выполнены за Вас программой установки.

После того, как программа установки завершит работу и перезагрузит сервер, Вы можете подключиться к нему со своего клиента ssh и  установить нужные прикладные сервисы – почтовый сервер, сайт, сервер 1С Предприятия и т.д.

Допустим, IP  адрес сервера 192.168.22.4. Тогда набираем на терминале клиента (рис.1):

ssh admin@192.168.22.4 ,ввести на запрос пароль ключа ssh и должны получить
Last login: Tue Jan 28 22:46:48 2014 from 192.168.14.6
[admin@www ~]$

Как настроить сервер ssh

Рис. 1. Вход на сервер

То есть, мы попали на сервер в качестве пользователя admin в папку /home/admin или ~

Из-за ограничений безопасности, вход на сервер через ssh разрешен только для пользователей, не обладающих правами пользователя root и, если необходимо выполнять команды от имени суперпользователя root, надо использовать sudo или su (Рис. 1.). Для тех, кто не очень знаком с Linux, рекомендую прочитать статьи “Несколько слов о Linux” и “Команды Linux. Краткое описание

[admin@www ~]$ su
Password:  Вводим пароль суперпользователя root
[root@www admin]#

Теперь Вы суперпользователь и можете управлять сервером – устанавливать и удалять прикладные сервисы – почтовый сервер, web-сервер, сервер 1С, сервер лицензий 1С, WEB-сайт и т. д.

Описано как настроить сервер ssh для создания безопасного подключения и установки прикладных сервисов.

No comments yet.

Leave a Reply