Шерман Евгений, директор компании Freehost.ua делится с нами своим опытом в вопросе безопасности VPS и       арендованных серверов:

Обычно работа с VPS или выделенным сервером осуществляется удаленно. Наиболее надежным методом подсоединения к удаленному серверу считается аутентификация на основе SSH. Именно поэтому, часто можно фиксировать в логе SSH демона множественные попытки подбора паролей посторонними лицами. В этой статье мы постарались собрать основные принципы защиты SSH.

Как правило авторизация по SSH происходит при помощи логин и пароля. Однако более безопасным является создание криптографических открытого и закрытого ключей, всегда работающих исключительно в связке. Приватный или закрытый сохраняется в данных компьютера и применяется при необходимости подсоединения. Публичный или открытый может свободно распространяться, не раскрывая первый.  Он находится в директории .ssh/authorized_keys. Такая система широко применяется в различных сетевых протоколах. 

ПРОВЕДЕНИЕ АУТЕНТИФИКАЦИИ SSH ПО ОТКРЫТОМУ КЛЮЧУ

• На удаленной системе, которая настраивается для управления, устанавливается SSH (OpenSSH). Соответствующая версия устанавливается также на устройстве, используемом для подсоединения. 

• После входа в удаленную систему как администратор, открытый ключ следует перенести в файл ~/.ssh/authorized_keys.

Это дает возможность улучшить систему безопасности и позволяет выполнять автоматизированные задачи на других устройствах. 

ПРОВЕДЕНИЕ АУТЕНТИФИКАЦИИ ДЛЯ LINUX И OS X 

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

1. С устройства, используемого для удаленного доступа, провести генерацию пары ключей. Это осуществляется в строке команд SSH с применением команд:

• алгоритм DSA: ssh-keygen -t dsa

• алгоритм RSA: ssh-keygen -t rsa

2. Далее задается название файла для хранения пары ключей и пароль для защиты закрытого ключа. Для того чтоб оставить название файла по умолчанию можно нажать клавиши Enter или Return. Зачастую именно такой тип приватных ключей используется при доступе на удаленный хост. Пароль должен содержать не менее 7 символов, после которых также необходимо нажать Enter или Return. Ключи будут находиться в папке .ssh, например ~/.ssh/id_rsa 

3. Чтоб перенести публичный ключ на удаленной сервер server.com:, с которого будет производиться авторизация можно воспользоваться SFTP или SCP.

scp ~/.ssh/id_rsa myuser@server.com:

Система запросит ввести пароль пользователя myuser на сервере server.com. После того как Вы это сделает, файд будет скопирован в домашний каталог пользователя myuser под тем же именем.

4. Зайдите на сервер server.com  используя Ваши учетные данные. Если учетная запись не содержит файл ~/.ssh/authorized_keys, его необходимо создать, введя в командной строке:

• mkdir -p ~/.ssh 

• touch ~/.ssh/authorized_keys

Если файл на сервере уже существует, ничего страшного, эти команды его не повредят.

5. На удаленную систему, в файл /.ssh/authorized_keys, добавляем содержимое публичного ключа

cat ~/id_rsa.pub >> ~/.ssh/authorized_keys.

6. Удаляем  открытый ключ из учетной записи удаленного хоста 

rm ~/id_rsa.pub.

7. Теперь можно подключиться с аутентификацией SSH к удаленному хосту. 

Если получается заходить в учетную запись с помощью SSH-ключей, не используя пароль, то аутентификация успешно настроена. 

В случае, если Ваш приватный ключ защищен паролем, система попросит Вас ввести пароль. Будьте внимательны это не пароль системного пользователя, под которым Вы авторизуетесь, это пароль, которым защищен закрытый ключ. 

АУТЕНТИФИКАЦИЯ С ПОМОЩЬЮ PUTTY ДЛЯ WINDOWS 

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

1. Войти в бесплатную сервисную программу PuTTYgen (генерация ключей) и в параметрах выбрать SSA-2 RSA или SSH-2 DSA со значениями по умолчанию.

2. Далее в пункте «Actions» следует нажать на «Generate» и выбрать раздел «Key». После генерации необходимо создать пароль для закрытого ключа и сохранить его. 

3. Через утилиту ключ сохраняется на устройстве, а затем вставляется в удаленной системе в новую строку файла и также сохраняется. 

4. После необходимо войти в агент Pageant SSH, найти раздел Add Key и, выбрав приватный ключ, нажать «Open». При наличии пароля, защищающего ключ, его потребуется ввести в поле. 

5. Далее снова вернуться в клиент PuTTY SSH и в разделе «Host Name» (или IP address), располагающемся в поле «Session», ввести название хоста удаленного сервера с открытым ключом, а также имя пользователя. 

6. В перечне «Category» переходить к экрану Auth (Connection > SSH > Auth) и в разделе «Authentication methods» выбрать «Attempt authentication using Pageant».

7. Вернуться к «Session» и ввести имя в разделе «Saved Sessions», после чего нажать «Open». Далее в удаленной системе происходит подключение учетной записи. Этот этап считается заключительным в настройке. 

Удаленный доступ следует также максимально обезопасить от возможности подключения злоумышленников. 

НАСТРОЙКА ПАРАМЕТРОВ ПОДКЛЮЧЕНИЯ К SSH

Если Вы покупаете услугу VPS, часто в шаблон создаваемого сервера, уже содержит нужные настройки или по запросу служба поддержки хостинга может их сделать. Но если это не так, Вы можете сделать это самостоятельно. 

Для обеспечения безопасности удаленного сервера от атак потребуется изменить настройки подключения. Существует ряд основных параметров, способных обезопасить эксплуатацию ssh-соединения. Прежде всего, создается запасная копия файла конфигурации с настройками: cp /etc/ssh/sshd_config{,.bak}. Далее открывается файл /etc/ssh/sshd_config, в который вносятся необходимые правки. 

• PermitRootLogin – вход в систему в качестве root-пользователя необходимо ограничить. 

• AllowUsers, AllowGroups – разрешение доступа исключительно заданному кругу лиц. 

• DenyUsers, DenyGroups – удаленный доступ через файл sshd_config предоставляется конкретным пользователям и группам.

• Port – проведение смену порта SSH на нестандартный. Стандартный порт подключения 22 лучше изменить на любой другой, например 2210.

После этого авторизация будет происходить следующим образом:

ssh -p 2210 myuser@server.com 

• ListenAddress – указание в файле конфигурации определенных адресов интерфейсов для входа в сервер. 

• Login GraceTime – ограничение по времени на ввод логина и пароля (например, до 30-60 секунд). 

• ClientAliveInterval – указание времени отсутствия активности пользователя, по прошествии которого соединение разрывается. 

• HostbasedAuthentication – отключение авторизации на основе хоста с помощью директивы.

Кроме этого следует использовать эффективный пароль, который не будет связан с личными данными. Он должен содержать цифры, а также заглавные и прописные буквы. 

31.07.2018
Рейтинг: 0 / 5 (0)