Этичный хакинг: как получить доступ к веб-серверу
Во время этичного хакинга исследователь занимается поиском уязвимостей. У этичного хакера может быть несколько причин для получения несанкционированного доступа к веб-серверу, но основная – выполнить тестирование серверных приложений на предмет присутствия брешей.
Для получения доступа, как правило, используются те же инструменты и методы, которыми владеют злоумышленники, и в случае успеха, вы можете выполнить необходимые исправления и обновления с целью улучшения безопасности, обнаружить вредоносную активность и разработать комплекс мер для своевременного реагирования.
Сбор сведений
Первый шаг, как правило, включает в себя получение информации о предполагаемой цели, в том числе идентификацию целевой машины, сбор важных деталей об IP-адресе, операционной системе, аппаратной части, сетевой конфигурации и инфраструктуре, DNS записях и так далее.
Эту задачу можно решить разными способами, но в основном при помощи автоматизированных инструментов, которые сканируют сервер на предмет присутствия известных уязвимостей. Информацию о физической аппаратной части целевой системы можно получить разными способами и часто при помощи внимательного изучения ответов различных программных подсистем, которые отправляются во время инициации или даже отказа от входящих подключений. Затем полученные сведения используются для сужения спектра возможных приложений, которые обычно запускаются в различных аппаратных конфигурациях.
Хакеры используют инструменты, позволяющие протестировать систему на наличие различных брешей в сфере безопасности, включая ошибки конфигурирования приложений, присутствующих на сервере, наличие неизмененных стандартных паролей, устаревшего программного обеспечение, которое нуждается в обновлении и другие схожие проблемы.
Утилиты для выполнения исследований
HTTrack: Веб-паук с открытым исходным кодом, позволяющий скачивать на локальную систему целые сайты для последующего криминалистического анализа.
Maltego: Анализатор ссылок и данных (тоже с открытым исходным кодом)
Nessus: Сканер уязвимостей, позволяющий проверить разные аспекты, включая нестыковки в конфигурации, устаревшее программное обеспечение, небезопасные или отсутствующие пароли, бреши для проведения DoS-атак, которые могут способствовать в получении доступа или полного контроля над системой.
Netsparker: Сканирует сайты, приложения и службы сервера на предмет уязвимостей вне зависимости от операционной системы.
Nikto: Сканер на предмет присутствия опасных файлов и CGI-сценариев, устаревшего программного обеспечения, ошибок в конфигурации приложений, эксплуатируемых злоумышленниками.
ScanMyServer: Бесплатная онлайн-утилита, позволяющая обойти все страницы определенного сайта или блога и найти различные проблемы безопасности.
Вышеуказанные утилиты позволяют собрать большой объем информации о целевой системе, включая имена сотрудников, адреса электронной почты, связанные с сервером, имена компьютеров, сведения о сетевой структуре и аккаунтах пользователей.
После получения предварительной детальной информации, можно переходить к следующей стадии, а конкретно – продумыванию методов получения доступа к целевой системе.
Получение доступа
На базе полученной информации далее можно продумать возможные сценарии для получения доступа к данным, хранимым на сервере, или полного контроля над системой. Эта задача решается разными способами, но в целом применяются проверенные техники, используемые при проникновениях.
OWASP (Open Web Application Security Project; Открытый проект для обеспечения безопасности веб-приложений) – организация, которая занимается отслеживанием уязвимостей и ведет рейтинг из десяти наиболее часто встречающихся и потенциально опасных брешей, используемых злоумышленниками для получения неправомерного доступа к веб-серверам.
Обычно наипростейший способ получить доступ и контроль над сервером – воспользоваться известными уязвимостями, к чему наиболее часто и прибегают злоумышленники. Хотя некоторые хакеры используют сценарии, отличающиеся от наиболее распространенных атак, в основном, если стандартные методы не срабатывают, злоумышленники начинают искать более доступную цель.
10 наиболее распространенных проблем по версии OWASP
Нижеуказанные уязвимости наиболее часто встречались во время проникновений в 2019 году.
1. Инъекция: внедрение кода в программу или запрос для выполнения удаленных команд (как в случае с SQL-инъекцией).
2. Неправомерная аутентификация: получения доступа к системе при помощи украденных, неправильно настроенных или полученных другим образом учетных записей.
3. Раскрытие конфиденциальных данных: реализуется, когда приложения ненадежно защищают пароли, токены сессий и другую конфиденциальную и ценную информацию.
4. Внешние XML-сущности (или XXE): сценарий, основанный на уязвимостях, связанных с парсингом XML-данных в приложениях.
5. Неправомерный доступ: реализуется вследствие некорректно настроенных прав пользователе или ролей.
6. Ошибки в конфигурациях, имеющих отношение к безопасности
7. Межсайтовый скриптинг (XSS): схож с инъекциями. Позволяет злоумышленнику внедрять клиентские скрипты в веб-приложения с целью обхода средств разграничения доступа.
8. Небезопасная десериализация: уязвимость, при помощи которой неправильно настроенные или неизвестные данные используются для запуска кода, обхода аутентификации, реализации DoS-атак и в других сценариях с целью обхода мер безопасности.
9. Использование компонентов сервера с известными уязвимостями.
10. Неудовлетворительное журналирование и мониторинг.
После получение доступа и закрепления в системе далее злоумышленник уделяет внимание поддержанию контроля над сервером с целью последующей эксплуатации. На этой стадии, как правило, злоумышленник получает информацию о других учетных записях или ролях. В случае если удалось получить доступ к привилегированному аккаунту или учетной записи, используемых различными пакетами приложений, далее осуществляет попытка либо получить административные привилегии, или создать новую учетную запись администратора в системе.
Бэкдоры и заметание следов
Обычно после первоначального вторжения система подготавливается для дальнейшего использования или эксплуатации. Хотя во время первоначального проникновения злоумышленники могут не совершать чего-либо, привлекающего внимание, многие продолжают мониторинг учетных записей, используемых при получении доступа с целью отслеживания, удалось ли обнаружить вторжение. Кроме того, эти учетные записи могут использовать для удаления или изменения логов и других системных сообщений. Однако многие хакеры предпочитают выждать время и не предпринимать никаких действий, привлекающих внимание.
С точки зрения тестирования уязвимостей, как только система скомпрометирована, этичный хакер захочет получить доступ и воспользоваться системой, как если бы действовал злоумышленник. Взломанный сервер используется для мониторинга аккаунтов пользователей, манипулирования логами и другими системными данными, удаления или сокрытия следов проникновения.
Хотя цель тестирования на проникновение – сделать сервер более безопасным и устойчивым к атакам разного рода, вышеуказанная активность выполняет очень важную роль. Начиная от изучения журналов безопасности и использования других методов для обнаружения проникновения и заканчивая защитой данных и ограничением доступа в случае, если атака реализована успешно. Также могут быть осуществлены альтернативные меры с целью детектирования взломов, во время которых реализуются нестандартные сценарии.
Как подключиться к серверу по RDP c Windows, Mac OS, iPhone, iPad, Android, Ubuntu или Debian (Linux ОС)
Все сервера, создаваемые Windows сервера на UltraVDS по умолчанию сразу доступны для подключения по стандартному протоколу RDP (Remote Desktop Protocol) – обычное «Подключение к удалённому рабочему столу» в русскоязычных редакциях Windows.
В данной статье будет описано как подключиться к только что созданному виртуальному серверу на UltraVDS с различных устройств (операционных систем). Если вам требуется какой-либо другой способ подключения (RAdmin, TeamViewer и т.д.) после успешного подключения по RDP, вы сможете его настроить так же, как и любое другое программное обеспечение.
Статья довольно длинная ввиду того, что здесь подробно по шагам расписано как подключаться из каждой наиболее популярной системы, поэтому вынесли вверх горячие ссылки для навигации:
Подключение к виртуальному серверу с десктопной версии Windows (XP, 7, 8, 8.1, 10)
При использовании стандартной операционной системы Windows для подключения к серверу необходимо открыть следующий путь:
Либо просто нажмите комбинацию клавиш Win+R и в открывшемся окне наберите mstsc

В открывшемся окне необходимо указать IP-адрес созданного для вас VDS сервера. Если вы заказали сервер с несколькими IP-адресами, то можете использовать любой из них для подключения.
IP-адрес вашего сервера указан возле вашего сервера в личном кабинете в разделе «Мои сервера».


После ввода IP-адреса сервера нажмите кнопку «Подключить» и вы увидите окно с полями авторизации. Здесь нужно выходить под новым пользователем:
При создании каждого нового сервера система в автоматическом режиме генерирует случайный пароль пользователя Administrator. Этот пароль отображается также в личном кабинете возле вашего сервера:

В некоторых редакциях Windows есть странность: если пароль от сервера скопировать и вставить в поле авторизации перед подключением, то при попытке подключения ничего не произойдёт, и RDP-клиент снова покажет окно авторизации как будто учётные данные были введены некорректно. В таком случае необходимо ввести пароль вручную (большие буквы большими, маленькие – маленькими, в английской раскладке клавиатуры).
Подключение к удалённому рабочему столу – очень удобная вещь, с её помощью можно переносить файлы с компьютера на сервер и обратно просто копируя и вставляя их, тоже самое с текстом в буфере обмена. Также можно с вашего компьютера, передать на сервер любые включенные в него USB-устройства и сетевые принтеры/сканнеры. Для этого при первом подключении к серверу выберите «Показать параметры» в левом нижнем углу.

В открывшемся окне перейдите на вкладку «Локальные ресурсы» и выберите требуемые вам параметры:

При подключении к серверу вы можете увидеть информацию о недоверенном сертификате безопасности. Причина этого заключается в том, что сервер шифрует передаваемые данные SSL-сертификатом, который он сгенерировал сам в автоматическом режиме. Данное уведомление не является свидетельством о проблеме с безопасностью, а только предупреждает вас о том, что соединение зашифровано с использованием сертификата, который не был выдан авторизованным центром.

Отметьте здесь галочкой поле «Больше не выводить запрос о подключениях к этому компьютеру» и нажмите «Да».
Подключение к VDS серверу с Mac OS
Для Mac OS компания Microsoft выпускает официальный RDP-клиент, который стабильно работает при подключении к любым версиям ОС Windows.
Скачать его можно с iTunes здесь: https://itunes.apple.com/ru/app/microsoft-remote-desktop-10/id1295203466?mt=12
Интерфейс программы простой и интуитивно понятный. Перед началом работы необходимо настроить параметры подключения. Для этого создаём новое:


В окне настроек соединения указываем произвольное название, например, «Сервер на UltraVDS», IP-адрес созданного сервера и данные для авторизации (логин Administrator и назначенный серверу в автоматическом режиме пароль) – эти данные отображаются в вашем личном кабинете.
После выхода из окна настроек всё сохранится автоматически и в списке подключений вы увидите новое созданное:

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


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

Подключение к VPS серверу со смартфона или планшета на iOS (с iPhone или iPad)
Перед подключением к серверу необходимо скачать с Apple Store приложение Microsoft Remote Desktop (это официальный RDP-клиент от Microsoft):
https://itunes.apple.com/ru/app/microsoft-remote-desktop-10/id1295203466?mt=12

Запустите приложение после установки и нажмите на добавление нового подключения:


В окне создания нового подключения необходимо указать IP-адрес вашего виртуального сервера и данные для авторизации, которые отображаются в вашем личном кабинете (подробнее о том, где они указано выше).

При подключении к серверу вы можете увидеть информацию о недоверенном сертификате безопасности. Причина этого описана выше.
Выберите «Больше не спрашивать для этого ПК» и нажмите «Принять».
Если авторизационные данные и IP-адрес сервера были введены без ошибок, вы успешно подключитесь к вашему серверу.
Подключение к виртуальному серверу со смартфона или планшета на Android
Прежде всего вам необходимо скачать с Google Play и установить программу Microsoft Remote Desktop (это официальный RDP-клиент от Microsoft):
https://play.google.com/store/apps/details?id=com.microsoft.rdc.android&hl=ru

Запустите приложение после установки и нажмите на добавление нового подключения


В окне создания нового подключения необходимо указать IP-адрес созданного VDS сервера и данные для авторизации (где их взять описано чуть выше).


При подключении к серверу вы можете увидеть информацию о недоверенном сертификате безопасности. Причина этого описана выше.
Выберите галочкой «Don’t ask me again for connections to this computer» и нажмите «Connect».

Если авторизационные данные и IP-адрес сервера были введены без ошибок, вы успешно подключитесь к вашему серверу.

Подключение к серверу по RDP из Ubuntu
RDP – это закрытый протокол компании Microsoft, она же в свою очередь не выпускает RDP-клиентов для операционных систем семейства Linux.
Однако всё же есть различные рабочие версии от тех или иных производителей.
Мы рекомендуем использовать клиент Remmina
Для пользователей Ubuntu есть специальный репозиторий с различными пакетами приложение, в числе которых есть Remmina и RDP.
Установка производится в 3 простые команды, которые вводятся по очереди в Терминале:
Для установки пакета Remmina
Устанавливаем обновления
Устанавливаем плагин протокола RDP
Если вы до этого уже устанавливали или запускали существующую версию Remmina, то её необходимо перезапустить. Сделать это можно перехагружкой компьютера, либо выполнением следующей команды в том же терминале:
Если процесс запущен не был, то появится сообщение об ошибке: процесс не найден, что тоже нас устраивает.
Открываем меню поиска и находим там свежеустановленный пакет Remmina

Нажимаем на добавление нового подключения и заполняем поля данными для подключения и авторизации к вашему серверу (где находятся данные для подключения к именно вашему серверу описано выше):


После сохранения ваш сервер будет всегда доступен в списке подключений для быстрого доступа. Для подключения к нему дважды кликните мышкой по строчке вашего сервера.

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


Подключение к удаленному рабочему столу (RDP) из Debian
RDP (подключение к удалённому рабочему столу) – это закрытый протокол компании Microsoft, они же в свою очередь не выпускает RDP-клиентов для операционных систем семейства Linux.
Но всё же есть различные рабочие версии от тех или иных компаний-разработчиков.
Мы рекомендуем использовать RDP-клиент Remmina
Для установки приложения Remmina и плагина RDP к нему необходимо открыть менеджер установки пакетов:

Здесь в строке поиска вводим «Remmina» и выделяем все результаты для установки:

Установка занимает буквально 3-4 секунды, после чего сразу можно пользоваться приложением.
Находим его в главном меню и запускаем:

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

В открывшемся окне необходимо задать корректные параметры RDP подключения и данные для авторизации (указаны в личном кабинете UltraVDS):


После сохранения ваш сервер будет всегда доступен в списке подключений для быстрого доступа. Для подключения к нему просто дважды кликните мышкой по строчке вашего сервера.

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

Что делать если при попытке подключения с ОС семейства Linux сразу возникает ошибка?
По умолчанию на всех создаваемых на UltraVDS серверах разрешено только подключение по RDP с компьютеров (клиентов), на которых работает проверка подлинности на уровне сети. Некоторые RDP клиенты под Linux эту проверку подлинности могут не поддерживать. В таком случае перед подключением к серверу по RDP необходимо это требование отменить на самом VDS сервере.
На UltraVDS реализована возможность аварийного доступа к серверу в случае если вы не можете к нему подключиться, именно ею мы и воспользуемся для отключения требования обязательной проверки подлинности. Для открытия аварийного режима зайдите в ваш личный кабинет на страницу «Мои сервера» и кликните на скриншот требуемого сервера

В открывшемся окне необходимо активировать возможность авторизации пользователя. Это делается нажатием комбинации клавиш Ctr+Alt+Del, но так как такая комбинация через web передана быть не может, специальная кнопка была вынесена на верхнюю панель окна:

Далее вводим пароль администратора и нажимаем Enter:

Вы увидите стандартный рабочий стол Windows. Здесь нажмите кнопку «Пуск» (Start), найдите там «Мой компьютер» (This PC) и кликните на него правой кнопкой мыши:

Выберите в меню пункт «Свойства» (Properties) для открытия окна информации о системе

В меню слева необходимо найти кнопку управления параметрами удалённого рабочего стола (Remote settings).

Последним шагом снимаем флажок с параметра «Allow connections only from…» и нажимаем «ОК».
Как подключиться к серверу удаленно

Пользователи интересуются, как создавать удаленный доступ к серверу через интернет на разных операционных системах. Специалисты дают подробные объяснения по каждой ОС, точное выполнение инструкции поможет выполнить операцию с первого раза.

Схема соединения
Получение доступа к серверу через интернет
При создании виртуального сервера на ресурсе «VPS.house», формируется готовая к использованию ОС Windows Server. Она позволяет подключаться по протоколу RDP с внешних устройств.
Что это такое, общая информация
Под «Remote Desktop Protocol» подразумевается специальный протокол удаленного рабочего стола. Поддержкой и развитием функционала занимается компания Microsoft.
Виртуальный сервер допускает не больше 2 соединений при помощи RDP. При необходимости большего количества пользователей или подключаемых устройств, применяется терминальный вариант.
Логотип протокола
Какая информация потребуется для получения доступа
Как подключиться к серверу и что для этого необходимо:
- для получения доступа — пароль, имя пользователя и IP-адрес;
- стандартное приложение на ноутбуке при использовании Виндовс, клиент Remmina для Линукса или программа для Андроида.
Как подключиться через RDP к серверу
Пользователи интересуются, как можно подключиться удаленно к серверу через интернет. Процедура пошаговая и зависит от используемой операционной системы.

Основы соединения
С компьютера под управлением Windows
Для присоединения выполняется следующий алгоритм:
- Из меню «пуск» нужно переместиться в «программы».
- Перейти в «стандартные» и «присоединение к удаленному рабочему столу».
Второй способ: после нажатия комбинации кнопок «Win» + «R» в диалоговое окно вписывается команда «mstsc».
В возникшую на дисплее графу прописывается IP-адрес созданного VDS-сервера. Затем нужно кликнуть по клавише «подключить» и в поле авторизации ввести сгенерированный системой пароль пользователя. Он отображается в личном кабинете, как и IP-адрес.
Функционал дистанционного рабочего стола удобен возможностью переноса информации с ПК на сервер и обратно. Достаточно скопировать и вставить материалы в буфер обмена. При первом соединении пользователь может передавать на сервер сетевые принтеры, сканнеры, USB-устройства — внеся данные в блок «показать параметры», расположенные в нижнем углу слева. Для выполнения операции достаточно переместиться в подраздел «локальные ресурсы» и выбрать необходимые параметры.
Иногда в момент настройки система выводит сведения о сертификате безопасности без доверия. Проблема связана с шифрованием данных через SSL-сертификатор, которые он автоматически генерирует. Уведомление не относится к сигналам о проблемах с безопасностью, предупреждает о шифровании соединения при помощи постороннего сертификата, не выданного авторизованным центром.
С компьютера под управлением Linux
Пользователи Ubuntu могут применять специальный пакет приложений, в составе которого находится Remmina, RDP. Установка программ требует введения трех команд поочередно через «терминал»:
- «sudo apt-add-repository ppa:remmina-ppa-team/remmina-next» — вносится для утилиты Remmina;
- «sudo apt-get update» — используется для обновлений;
- «sudo apt-get install remmina remmina-plugin-rdp libfreerdp-plugins-standard» — помогает инсталлировать плагин для протокола RDP.
Если пользователь ранее устанавливал или активизировал версию указанного приложения, то оно требует дополнительного перезапуска. Процесс выполняется при помощи перезагрузки системы или введением команды «sudo killall remmina» в терминале.

Remmina Linux
Если раньше программа не запускалась, то на дисплее появится сообщение об ошибке и ненайденном процессе. Проблема исправляется по алгоритму:
- После входа в меню нужно отыскать недавно установленный пакет с программой.
- Кликнуть по ярлыку «добавление нового соединения» и заполнить предоставленное поле информацией для авторизации и присоединения (стандартные сведения).
- Процесс завершается подтверждением действий. Сервер станет доступным и будет расположен в реестре подключений для быстрого входа. Чтоб войти в систему, достаточно по нему кликнуть два раза мышкой.
Через смартфон под Андроид
Для выполнения задачи пользователь должен:
- Закачать из магазина приложений Google Play и провести установку утилиты «Microsoft Remote Desktop» — официального клиента.
- Включить программу и кликнуть по ярлыку нового подключения.
- В возникшее на экране окно ввести информацию для авторизации и IP-адрес нового VDS-сервера.
Если удалось все сделать без ошибок, то произойдет успешное присоединение. Как и во всех остальных системах, на дисплее может возникать предупреждение о непроверенном сертификате безопасности. Проблема решается активизацией блока «Don’t ask me again for connections to this computer» и последующим кликом по надписи «Connect».
Для создания дистанционного рабочего стола на сервере стандартный динамический адрес не подходит, нужен только статический. Вопрос решается через поставщика услуг.
Автор Сергей Эльбакидзе
Сергей, 24 полных года. После окончания 9 классов школы, поступил в политехнический колледж на очное отделение, по специальности прикладная информатика. После окончания колледжа поступил в лесотехнический институт на заочное отделение, по той же специальности прикладная информатика, в данный момент на третьем курсе. Работал в компании специалистом по рекламе и сбыту, далее начал выполнять заказы по созданию и продвижению сайтов. В данный момент развиваю три своих информационных сайта.
Использование SSH для подключения к удаленному серверу

Одним из важнейших инструментов в работе системного администратора является SSH.
SSH, или Secure Shell, — это протокол, используемый для безопасного входа на удаленные системы. Это самый распространенный способ получения доступа к удаленным серверам Linux.
В этом руководстве мы обсудим, как использовать SSH для подключения к удаленной системе.
Базовый синтаксис
Чтобы подключиться к удаленной системе с помощью SSH, мы будем использовать команду ssh . В самом базовом виде команда имеет следующую форму:
remote_host в этом примере является IP-адресом или доменным именем узла, к которому вы пытаетесь подключиться.
Эта команда предполагает, что ваше имя пользователя на удаленной системе совпадает с именем пользователя в локальной системе.
Если ваше локальное имя пользователя отличается от имени пользователя в удаленной системе, вы можете задать его, используя следующий синтаксис:
После подключения к серверу вам, возможно, потребуется подтвердить вашу личность с помощью пароля. Позже мы рассмотрим, как сгенерировать ключи, которые можно использовать вместо паролей.
Чтобы завершить сеанс ssh и вернуться в сеанс локальной оболочки, введите следующую команду:
Как работает SSH?
SSH выполняет подключение клиентской программы к серверу ssh с именем sshd .
В предыдущем разделе команда ssh использовалась для вызова клиентской программы. Сервер ssh уже запущен на удаленном хосте remote_host , который мы указали.
На вашем сервере должен быть запущен сервер sshd . Если это не так, вам может потребоваться подключение к серверу через веб-консоль или локальную последовательную консоль.
Процесс запуска сервера ssh зависит от дистрибутива Linux, который вы используете.
В Ubuntu вы можете запустить сервер ssh с помощью следующей команды:
Эта команда должна запускать сервер sshd, после чего вы сможете выполнять удаленный вход.
Настройка SSH
При изменении конфигурации SSH вы меняете настройки сервера sshd.
В Ubuntu основной файл конфигурации sshd находится в каталоге /etc/ssh/sshd_config .
Выполните резервное копирование текущей версии этого файла перед началом редактирования:
Откройте файл в текстовом редакторе:
Скорее всего, вы захотите оставить большинство опций в этом файле без изменений. Однако существует несколько настроек, на которые вам стоит обратить особое внимание:
Объявление порта указывает, подключения к какому порту будет отслеживать сервер sshd. По умолчанию используется порт 22 . Вам, скорее всего, не придется изменять данную настройку, если только у вас нет конкретных причин для иного решения. Если вы решите изменить порт, позже мы покажем, как подключиться к новому порту.
В объявлениях ключей хоста указывается, где нужно искать глобальные ключи хоста. Мы обсудим, что такое ключ хоста, позже.
Эти две строки указывают на уровень логирования, который необходимо использовать.
Если вы сталкиваетесь с проблемами при работе с SSH, увеличение объема логируемых данных может быть хорошим решением, которое поможет понять, в чем заключается проблема.
Эти параметры определяют некоторые данные для входа в систему.
Опция LoginGraceTime определяет количество секунд, в течение которых следует сохранять подключение при отсутствии успешных попыток входа в систему.
Возможно, вам может быть полезным задать для этого параметра чуть большее количество времени, чем то, которое вам обычно требуется для входа.
PermitRootLogin определяет, разрешен ли вход с помощью пользователя с правами root.
В большинстве случаев необходимо изменить значение на no , если вы создали учетную запись пользователя, которая имеет доступ к высокому уровню привилегий (через su или sudo ) и может использоваться для входа в систему через ssh.
strictModes — это защитник, который будет препятствовать попыткам входа, если файлы аутентификации доступны для чтения всем.
Он позволяет предотвратить попытки входа в систему, когда файлы конфигурации не находятся в безопасном состоянии.
Эти параметры используются для настройки такой возможности, как X11 Forwarding. X11 Forwarding позволяет просматривать графический пользовательский интерфейс (GUI) удаленной системы на локальной системе.
Эта функция должна быть активирована на сервере и передана клиенту SSH во время подключения с помощью опции -X .
После внесения изменений сохраните и закройте файл, введя CTRL+X , Y , а затем нажмите ENTER .
Если вы внесли изменения в какие-либо настройки в файле /etc/ssh/sshd_config , необходимо перезапустить ваш сервер sshd, чтобы изменения вступили в силу:
Вы должны тщательно протестировать ваши изменения, чтобы убедиться, что все работает так, как вы ожидаете.
Вы можете использовать несколько активных сеансов во время внесения изменений. Это позволит вам вернуться к первоначальной конфигурации, если это потребуется.
Выполнение входа через SSH с использованием ключей
Хотя возможность входа в удаленную систему с помощью паролей может быть полезна, гораздо лучшей идеей будет настройка аутентификации с помощью ключей.
Как работает аутентификация с помощью ключей?
Аутентификация с помощью ключей реализуется путем создания пары ключей: приватного ключа и публичного ключа.
Приватный ключ располагается на клиентском компьютере, этот ключ защищен и хранится в секрете.
Публичный ключ может передаваться любому лицу или размещаться на сервере, доступ к которому вы хотите получить.
При попытке подключения с использованием пары ключей сервер будет использовать публичный ключ для создания сообщения для клиентского компьютера, которое может быть прочитано только с помощью приватного ключа.
Затем клиентский компьютер отправляет соответствующий ответ обратно серверу, после чего сервер будет знать, что клиент не является поддельным.
Весь этот процесс выполняется в автоматическом режиме после того, как вы настроите ключи.
Создание ключей SSH
Ключи SSH необходимо генерировать на компьютере, откуда вы хотите войти в систему. Как правило, это ваш локальный компьютер.
Введите следующую команду в командной строке:
Нажмите ENTER, чтобы принять используемые по умолчанию значения. Ваши ключи будут сгенерированы в файлах
Перейдите в каталог .ssh с помощью следующей команды:
Просмотрите данные о разрешениях для файлов:
Как вы можете видеть, файл id_rsa доступен для чтения и записи только владельцу. Именно такие разрешения позволяют сохранить его в секрете.
В то же время файл id_rsa.pub может использоваться совместно и имеет соответствующие разрешения для данной деятельности.
Как передать ваш публичный ключ на сервер
Если в настоящее время вы используете доступ к серверу с помощью пароля, вы можете скопировать ваш публичный ключ на сервер, воспользовавшись данной командой:
В результате будет создан сеанс SSH. Когда вы введете пароль, ваш публичный ключ будет скопирован в файл авторизованных ключей сервера, что позволит не использовать пароль при входе в следующий раз.
Опции для клиентской стороны
Существует ряд опциональных флагов, которые вы можете использовать при подключении через SSH.
Некоторые из них могут быть необходимы при наличии определенных настроек конфигурации sshd на удаленном хосте.
Например, если вы изменили номер порта в конфигурации sshd , вам потребуется указать этот порт на клиентской стороне с помощью следующей команды:
Если вы хотите выполнить отдельную команду на удаленной системе, вы можете указать ее после имени хоста следующим образом:
В результате будет установлено подключение к удаленному компьютеру, а после успешной аутентификации команда будет выполнена.
Как уже отмечалось ранее, если функция X11 forwarding активирована на обоих компьютерах, вы можете получить доступ к данному функционалу, воспользовавшись следующей командой:
При наличии соответствующих инструментов на вашем компьютере программы GUI, которые вы используете на удаленной системе, теперь будут открываться в отдельном окне на локальной системе.
Отключение аутентификации по паролю
Если вы создали ключи SSH, вы можете повысить уровень безопасности вашего сервера, отключив аутентификацию только по паролю. Помимо консоли единственным способом входа на ваш сервер будет использование приватного ключа, который используется в паре с публичным ключом, установленным на сервере.
Предупреждение: перед выполнением этих действий необходимо убедиться, что публичный ключ установлен на сервере. В противном случае вы заблокируете доступ к серверу!
Откройте файл конфигурации sshd , воспользовавшись пользователем root или пользователем с привилегиями sudo:
Найдите строку Password Authentication и раскомментируйте ее, удалив символ # в начале строки. Теперь вы можете указать значение no :
Вы должны также изменить значения двух других настроек (если вы не вносили изменения в этот файл ранее) — PubkeyAuthentication и ChallengeResponseAuthentication . Значения устанавливаются по умолчанию и выглядят следующим образом:
После внесения изменений сохраните и закройте файл.
Теперь нужно перезапустить демон SSH:
Теперь аутентификация по паролю должна быть отключена, а ваш сервер должен быть доступен только с помощью аутентификации по ключу SSH.
Заключение
Обучение работе с SSH точно будет полезным, хотя бы потому, что это очень распространенный инструмент.
По мере знакомства с разными опциями вы будете открывать для себя более продвинутый функционал, который поможет сделать вашу жизнь проще. SSH остается популярным благодаря своей безопасности, легковесности и пользе в самых разных ситуациях.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.