Основные принципы работы протокола ssh

Подключение по ключу, без пароля

Для удобного подключения по SSH (и многим другим сервисам) без ввода пароля можно использовать ключи.

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

Эти ключи связаны друг с другом таким образом, что зашифровав информацию одним ключом, расшифровать ее можно только другим. Например, если ваш друг зашифрует письмо вашим публичным ключом, то прочитать его сможете только вы, потому что для этого нужен ваш приватный ключ. И наоборот: если вы зашифруете что-то своим приватным ключом, то расшифровать его можно только вашим публичным ключом. Так как публичный ключ доступен всем, любой может расшифровать это сообщение. Но он может быть уверен, что сообщение пришло именно от вас. В этом заключается идея цифровой подписи.

Генерация ключей

Создадим пару ключей:

Программа запустится и спросит, куда сохранять ключи:

Нажмите Enter для сохранения в стандартное место — директорию в вашей домашней директории.

Программа запросит passphrase. Это вроде пароля для ключа. Можно просто нажать Enter и пропустить этот шаг. Или ввести passphrase — тогда его нужно будет вводить каждый раз, когда используется ключ.

Ключи созданы:

Теперь у вас есть два файла:

  • — приватный ключ. Никогда никому и никуда не передавайте его!
  • — публичный ключ. Спокойно распространяйте его.

В Windows можно использовать в подсистеме Ubuntu for Windows или в командной строке Git for Windows. Или создавать ключи графической утилитой вроде PuTTYgen.

Загрузка публичного ключа на сервер

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

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

Теперь при подключении пароль запрашиваться не будет1.

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

Как оставить терминал открытым на удаленном хосте

Есть два варианта, как сохранить сессию, когда вы переключаетесь между сетями или хотите на время отключиться:

  1. Используйте Mosh или Eternal TerminalЕсли вам действительно нужно соединение, которое не падает, даже если вы переключаетесь между сетями, используйте Mosh — mobile shell. Mosh — это защищенная оболочка, использующая SSH для инициализации сессии (handshake), после чего переключается на собственный зашифрованный канал. Этот канал очень стабилен. Он может обрабатывать различные ситуации, включая разрывы соединения с интернетом, изменение IP-адреса вашего ноутбука, большие задержки при передаче по сети, и другие. Спасибо магии UDP и протокола синхронизации, используемого Mosh.
    Для использования Mosh его необходимо установить как на вашем сервере, так и на клиенте и открыть порты в диапазоне 60000–61000 для входящего UDP трафика на вашем удаленном хосте. После чего просто наберите для подключения.
    Mosh работает на уровне экранов терминала и нажатий клавиш, и это дает ему множество преимуществ по сравнению с SSH, который передает бинарный поток стандартного ввода-вывода между клиентом и сервером. Если нам нужно синхронизировать только экран терминала и нажатия клавиш, то прерванное соединение можно потом восстановить значительно быстрее. SSH пришлось бы хранить в буфере и пересылать все, что произошло, а Mosh нужно только сохранить нажатия клавиш и синхронизировать последнее состояние терминального окна с клиентом.
  2. Используйте tmux. Если вы хотите подключаться и отключаться, когда вздумается и сохранять ту же самую сессию на удаленном хосте, используйте мультиплексор терминала tmux. Если ваше SSH-соединение отваливается, просто подключитесь снова и наберите , чтобы вернуться в сессию . В нем есть несколько отличных дополнительных возможностей — встроенные табы и панели, такие же как в терминале macOS и возможность расшарить терминал с другим пользователем.
    Некоторые улучшают tmux с помощью Byobu —  пакета, который добавляет множество удобных функций и сочетания клавиш. Byobu поставляется вместе с Ubuntu и его легко установить на macOS через менеджер пакетов Homebrew.

Server-Side Configuration

The option in the OpenSSH server configuration file must be enabled on the server to allow port forwarding. By default, forwarding is allowed. Possible values for this option are or to allow all TCP forwarding, to prevent all TCP forwarding, to allow local forwardings, and to allow remote forwardings.

Another option of interest is , which can be used to forward Unix domain sockets. It allows the same values as . The default is .

For example:

The configuration option as described above also affects remote port forwardings. Possible values were (only local connections from server host allowed; default), (anyone on the Internet can connect to remote forwarded ports), and (client can specify an IP address that can connect, anyone can if not specified).

Вход в систему

После успешной аутентификации пользователя выполняет следующие действия:

  • Если регистрация в системе произведена на терминале (tty) и не указана никакая команда, то отображается время последнего входа в систему и содержимое файла /etc/motd (если только это не отключено в файле конфигурации или ~/.hushlogin).
  • Если регистрация в системе произведена на терминале, записывается время регистрации.
  • Проверяется /etc/nologin, если он присутствует, выводится его содержимое и завершается работу (исключение — root).
  • Осуществляется переход к выполнению с правами обычного пользователя.
  • Устанавливаются значения основных переменных среды.
  • Интерпретируется файл ~/.ssh/environment, если таковой имеется, и пользователям разрешено изменять среду.
  • Переходит в домашний каталог пользователя.
  • Если имеется файл ~/.ssh/rc, то производится его выполнение, а если нет и имеется /etc/ssh/sshrc, то выполняется он, в противном случае выполняется   Файлам ‘rc’ на стандартный ввод передаётся протокол аутентификации Х11 и cookie.
  • Запускается оболочка пользователя или выполняется указанная команда.

Командная строка

Если вы под­клю­чи­тесь к дру­го­му ком­пью­те­ру по SSH, вы не уви­ди­те там рабо­чий стол и окна про­грамм. Вы уви­ди­те чёр­ный экран и стро­ки тек­ста. Это нор­маль­но. Это назы­ва­ет­ся команд­ной стро­кой. Сей­час вы поймёте.

Когда вы рабо­та­е­те за ком­пью­те­ром, вы обыч­но види­те окна, кноп­ки, стра­ни­цы и всё подоб­ное. Это назы­ва­ет­ся гра­фи­че­ским интерфейсом.

Гра­фи­че­ский интер­фейс — это не сами про­грам­мы. Это лишь спо­соб пред­став­ле­ния про­грам­мы. Сама про­грам­ма — это то, что испол­ня­ет­ся внут­ри ком­пью­те­ра: то, что счи­та­ет, копи­ру­ет, обра­ба­ты­ва­ет и так далее. Есть огром­ное коли­че­ство про­грамм без гра­фи­че­ско­го интер­фей­са: напри­мер, веб-сервер Apache — это про­грам­ма. Сер­вер рабо­та­ет на вашем ком­пью­те­ре, зани­ма­ет память, выда­ёт стра­ни­цы куда нуж­но, ведёт свою сер­вер­ную рабо­ту, но у него нет гра­фи­че­ско­го интер­фей­са — нет ника­ко­го окош­ка, на кото­рое вы може­те ска­зать «Это сервер».

Или, напри­мер, ваш бра­у­зер. Если у вас Chrome, то вы види­те окно с веб-страницей. А есть вер­сия Headless Chrome, кото­рая может выплё­вы­вать любые стра­ни­цы в виде кар­ти­нок пря­мо на ваш жёст­кий диск. У это­го «Хро­ма» нет гра­фи­че­ско­го интер­фей­са со стра­ни­цей (но есть неболь­шой интер­фейс для настройки).

С нашей чело­ве­че­ской точ­ки зре­ния интер­фейс — это и есть про­грам­ма. А с точ­ки зре­ния ком­пью­те­ра интер­фейс — это что-то побоч­ное. И опыт­ные про­грам­ми­сты доволь­но часто исполь­зу­ют в рабо­те про­грам­мы, у кото­рых нет гра­фи­че­ско­го интер­фей­са, толь­ко команд­ная строка.

Команд­ная стро­ка — это тек­сто­вый интер­фейс про­грам­мы. Вы вво­ди­те в эту стро­ку коман­ду, про­грам­ма может в ответ что-то вас спро­сить тек­стом, вы ей тек­стом отве­ти­те, и про­грам­ма сде­ла­ет свою рабо­ту. Мы уже стал­ки­ва­лись с команд­ной стро­кой, когда соби­ра­ли своё при­ло­же­ние в элек­троне или объ­яс­ня­ли, как устро­ен интер­нет:

Здесь в команд­ной стро­ке поль­зо­ва­тель maximilyakhov на ком­пью­те­ре iMac-Maxim выпол­нил коман­ду ping для адре­са thecode.media — то есть про­ве­рил, откли­ка­ет­ся ли сер­вер с нашим сай­том. Это вид­но из вто­рой стро­ки. Про­грам­ма Ping ста­ла пока­зы­вать ста­ти­сти­ку: полу­чи­ли паке­ты по 64 бай­та за 79 мс. Поль­зо­ва­тель удо­вле­тво­рил­ся резуль­та­том, вышел из про­грам­мы кла­ви­шей Ctrl+C и полу­чил ито­го­вую ста­ти­сти­ку. Сей­час команд­ная стро­ка гото­ва к новым командам 

Быва­ют и дру­гие интер­фей­сы про­грамм. Напри­мер, может быть голо­со­вой интер­фейс: ком­пью­тер вас слу­ша­ет, интер­пре­ти­ру­ет коман­ды, зада­ёт вам вопро­сы голосом.

Может быть интер­фейс в виде чата. Вме­сто того что­бы давать тек­сто­вые коман­ды в команд­ной стро­ке, вы пише­те коман­ды чат-боту.

Может быть даже физи­че­ский интер­фейс: когда вы игра­е­те в при­став­ку, вы даё­те коман­ду с помо­щью джой­сти­ка или каких-нибудь палок с дат­чи­ка­ми. Когда в вас попа­да­ют вра­ги, джой­сти­ки могут виб­ри­ро­вать — это при­став­ка вам пыта­ет­ся что-то ска­зать. Так что гра­фи­че­ский интер­фейс — это лишь одна из разновидностей.

PuTTY Like Программы для Windows

Ниже перечислены 3 SSH-клиента, основанные на PuTTY, и они выглядят как PuTTY, но предоставляют дополнительные функции для перехода на следующий уровень. Если вы хотите придерживаться среды PuTTY, то стоит взглянуть на один из этих SSH-клиентов для Windows.

2. SuperPutty (бесплатно; с открытым исходным кодом; на основе PuTTY)

SuperPutty – это альтернатива Windows PuTTY, целью которой является создание лучшей версии PuTTY. Однако для запуска требуется PuTTY. Другими словами, SuperPuTTY делает существующую установку PuTTY лучше. Это позволяет сеансам с вкладками, а также передачу файлов SCP между удаленной и локальной системой.

SuperPuTTY требует PuTTY для запуска

Особенности SuperPuTTY включают в себя:

  • Пользовательский интерфейс стыковки позволяет персонализировать рабочее пространство и легко управлять несколькими сеансами PuTTY
  • Экспорт / Импорт конфигурации сеанса
  • Безопасная загрузка файлов с использованием протоколов scp или sftp
  • Макеты позволяют настраивать виды сеансов
  • Поддерживает конфигурации сеансов PuTTY, включая приватные ключи
  • Поддерживает протоколы SSH, RLogin, Telnet и RAW
  • Поддерживает локальную оболочку через MinTTY или puttycyg
  • Поддерживает Китти

3. PuTTY Tray (бесплатно; с открытым исходным кодом; на основе PuTTY)

PuTTY Tray, как следует из названия, основан на PuTTY. Он добавляет косметические изменения и расширяет PuTTY, используя дополнения, которые делают его лучше, чем PuTTY. Но во многих отношениях это очень похоже на PuTTY. Некоторые из его особенностей включают в себя:

  • Минимизация в системный трей (по CTRL + минимизация, всегда или непосредственно при запуске)
  • Иконки настраиваемые
  • Мигает значок в трее при получении сигнала звонка
  • Настраиваемая прозрачность окна
  • Гиперссылка на URL
  • Портативность: опционально сохраняет конфигурацию сеанса в файлах (например: на USB-накопителе), например, portaPuTTY
  • Легкий доступ к настройке «всегда сверху» (в системном меню)
  • Поддержка Android adb

Если вы большой поклонник PuTTY, то PuTTY Tray – отличная альтернатива PuTTY SSH.

4. KiTTY (бесплатно; с открытым исходным кодом; на основе PuTTY)

KiTTY – это форк PuTTY, предназначенный для работы в качестве SSH-клиента Windows. KiTTY имеет все функции от PuTTY и добавляет много других функций.

KiTTY очень похож на PuTTY

Хотя весь список функций можно найти на веб-сайте KiTTY, некоторые ключевые добавленные функции перечислены ниже:

  • Фильтр сессий
  • портативность
  • Ярлыки для предопределенной команды
  • Автоматический пароль
  • Запуск локально сохраненного скрипта в удаленном сеансе
  • Значок для каждой сессии
  • Отправить в трей
  • Быстрый старт повторяющегося сеанса
  • Интеграция pscp.exe и WinSCP

KiTTY – еще одна отличная альтернатива PuTTY.

Как подключаться по SSH?

Для подключения к удаленной машине по SSH нужен клиент — специальная программа. В *nix-подобных системах (Linux, macOS) клиент обычно установлен в системе по умолчанию, и достаточно открыть терминал. В Windows нужно скачать сторонний клиент, например, Putty.

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

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

Если не указывать порт, то будет использован порт SSH по умолчанию — . Используемый порт задается при настройке SSH-сервера, программы, которая запущена на удаленном компьютере и ожидает подключения извне.

В графическом клиенте вроде Putty нужно ввести ту же информацию в соответствующие поля:

Fingerprint

При первом подключении появится сообщение:

Введите в первый раз.

Это нужно для повышения безопасности. При настройке SSH-сервера создается уникальная комбинация символов — fingerprint («отпечатки пальцев»). Ваш компьютер запоминает эту комбинацию и сверяет ее при каждом новом соединении. Если кто-то переустановит SSH-сервер, или всю операционную систему, или вообще заменит удаленный компьютер, сохранив его адрес, то при следующем соединении вы узнаете об этом, потому что изменится fingerprint.

Если fingerprint не меняется, то такое сообщение не будет появляться.

Что такое SSH?

Поскольку эта статья рассчитана именно на новичков, то перед тем, как перейти дальше давайте подробнее разберемся что из себя представляет SSH. Исторически так сложилось что на большинстве серверов используется операционная система Linux, во многом этому посодействовала ее бесплатность. Графический интерфейс на серверах Linux не используется для экономии ресурсов, поэтому единственным способом администрирования сервера остается командная строка.

Но это не является недостатком, потому что в командной строке Linux можно сделать больше чем графическом интерфейсе. Протокол SSH позволяет вам выполнять команды в удаленной системе так, как будто вы это делаете в своей системе. Вам доступен буфер обмена, вы вводите команды и можете использовать их вывод. Недоступны разве что файлы из вашей файловой системы. Например, когда вы подключитесь к серверу по SSH из Ubuntu, то все будет выглядеть так, как будто вы открыли терминал в своей системе.

Настройка аутентификации по ключу из Linux

Генерируем публичный и приватный ключ на клиентской машине используя утилиту ssh-keygen. В процессе выполнения утилита предложит изменить путь к приватному ключу и ввести парольную фразу для дополнительной защиты. Оставляем все параметры по умолчанию нажимая Enter при выводе запросов.

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

После этого необходимо открытый ключ передать на сервер, а именно скопировать содержимое файла “id_rsa.pub” в файл “~/.ssh/authorized_keys” на сервере. Воспользуемся самым простым способом, утилитой “ssh-copy-id” В качестве параметров указываем логин и IP-адрес сервера, как при обычном подключении. После ввода пароля публичный ключ клиента будет автоматически скопирован на сервер. Выполняем команду:

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

Как настроить стандартный firewall

В Ubuntu есть встроенный фаервол Netfilter, который может управляться как непосредственно вызовом утилиты iptables с параметрами так и специальной утилитой UFW (Uncomplicated Firewall). Мы разберем оба варианта.

Iptables на нашем демо-стенде уже установлен, но если в вашем дистрибутиве его нет — можно воспользоваться пакетным менеджером apt:

При работе с iptables можно настроить три типа правил: INPUT — для входящих соединений, OUTPUT — для исходящих и forward для транзитных (используется для маршрутизаторов). Для сервера актуальны первые два.

При обработке пакетов возможно выполнение следующих действий: ACCEPT — разрешить прием пакета, DROP — удалить пакет, REJECT — отклонить пакет и отправил уведомление об отклонении отправителю, LOG — записать пакет в лог и QUEUE — отправить пакет приложению.

В iptables доступны следующие функции управления:

  • A — добавить правило в цепочку;
  • С — проверить все правила;
  • D — удалить правило;
  • I — вставить правило с нужным номером;
  • L — вывести все правила в текущей цепочке;
  • S — вывести все правила;
  • F — очистить все правила;
  • N — создать цепочку;
  • X — удалить цепочку;
  • P — установить действие по умолчанию.

Например, чтобы посмотреть настроенные правила можно выполнить команду

Теперь попробуем заблокировать все пакеты от узла 10.10.10.10:

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

Если перечисленные выше опции показались сложными, можно упростить задачу настройки фаервола и воспользоваться утилитой ufw. Перед началом работы, установим ее при помощи пакетного менеджера apt:

После установки можно начинать работать с правилами. Разрешим все исходящие соединения и запретим все входящие:

В выводе увидим:

В примерах выше мы меняли порт для доступа по SSH на 55555. Создадим правило для доступа по этому порту:

В выводе получим:

Теперь включим сам фаервол.

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

После включения фаервола, проверим его настройки командой:

В выводе увидим:

Дополнительно можно настроить доступ с определенного IP-адреса (или диапазона адресов), на определенный порт.

При помощи правил UFW можно также применять правила к определенным сетевым интерфейсам сервера.

Как подключиться по SSH

Для подключения по SSH нам необходимо знать такие данные:

  • ip адрес сервера, к которому мы собираемся подключится;
  • порт, на котором ожидает подключения SSH сервер, по умолчанию используется 22, но в целях безопасности порт подключения ssh часто изменяют;
  • имя и пароль пользователя на удаленном сервере.

Больше ничего не нужно, обычно эти данные присылают в письме вместе с описанием VPS. Теперь перейдем к практике.

1. Подключение через SSH в Linux

В Linux подключение по SSH выполняется с помощью утилиты ssh. Мы более подробно рассматривали работу с ней в статье как пользоваться ssh. Для подключения к удаленному компьютеру ее синтаксис будет выглядеть следующим образом:

$ ssh имя_пользователя@айпи_адрес

Это самый простой вариант, если вам также нужно задать порт, используйте опцию -p:

$ ssh имя_пользователя@айпи_адрес -p порт

Чтобы выполнить подключение по SSH Linux нажмите Ctrl+Alt+T для открытия терминала и наберите команду, заменив нужные значения:

Или, с нестандартным портом:

Если ip_адрес и порт правильные, то на следующем шаге программа попросит у вас ввести пароль:

Если пытаетесь подключится через SSH к этому серверу первый раз, то утилита также попросит подтвердить добавление нового устройства в свой список известных устройств, здесь нужно набрать yes и нажать Enter:

Теперь вы подключены, и все вводимые далее команды будут выполнены на удаленном сервере:

Если же произошла ошибка и IP адрес или порт введены неверно, то вы получите ошибку Connection Refused:

Просто убедитесь что порт введен верно. Если это ваш сервер, то, возможно на нем еще нужно разрешить подключение SSH в брандмауэре. В Ubuntu/Debian для этого на удаленном сервере выполните:

А в CentOS/Fedora:

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

Теперь вы знаете как подключиться по ssh linux и решить проблемы с подключением. А теперь перейдем к Windows.

2. Подключение через SSH в Windows

Раньше подключение по SSH из Windows выполнялось только с помощью сторонних утилит, например PuTTY. Но в Windows 10 был добавлен встроенный OpenSSH клиент и работает он точно так же, как и в Linux. По умолчанию этот компонент не активирован. Для его установки откройте Параметры -> Приложения:

Затем выберите Управление дополнительными компонентами:

Здесь нажмите добавить новый компонент и в открывлемся меню выберите OpenSSH Client и нажмите Устанвоить:

Дальше вернитесь назад и дождитесь завершения установки. После того, как SSH клиент будет установлен нужно обязательно перезагрузить компьютер.

После перезагрузки нажмите Win+R чтобы открыть окно запуска команд и наберите в нем cmd:

Далее нажмите Enter. Перед вами откроется командная строка Windows. Здесь можно использовать утилиту ssh. Синтаксис у нее абсолютно такой же, как и для Linux:

ssh имя_пользователя@айпи_адрес -p порт

Например, такой командой можно подключится по SSH к Raspberry Pi, который находится в вашей локальной сети по адресу 192.168.1.5:

Утилита предложит добавить устройство в список известных:

Затем предложит ввести пароль:

Все следующие команды будут выполняться уже на Raspberry Pi или другой удаленной машине, к которой вы подключились.

Теперь подключиться к серверу по ssh из этой операционной системы также просто как и из Linux.

Для Linux/MacOS

  1. Откройте свой терминал и введите строку соединения SSH из вкладки Settings > SSH Access в панели управления.

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

  1. После этого, Вы увидите полный список контейнеров выбранной среды.

Рядом с каждым контейнером указаны ID его ноды и IP адрес LAN. Чтобы получить доступ к контейнеру введите его порядковый номер.

4. Теперь, используя помощник Shell, Вы можете выполнить нужные настройки.  

Использование Shell access повышает риск случайного повреждения приложения

Поэтому, обращайте особое внимание на действия, который Вы выполняете здесь.  

Для Windows

Чтобы установить SSH соединение для Windows OS, Вам необходимо иметь приватный ключ на Вашем локальном компьютере, который должен соответствовать предварительно добавленному публичному ключу в панели управления MIRhosting. Таким образом, выполните следующие шаги:

  1. Сохраните приватную версию Вашего SSH ключа (в качестве примера, мы используем инструменты PuTTY).

 2. Загрузите и запустите агент PuTTY SSH (так называемый Pageant). В открывшемся окне нажмите кнопку Add key/Добавить ключ и перейдите на Ваш локальный файл с приватным SSH ключом.

  1. Затем нажмите кнопку Close/Закрыть. Pageant будет свернут. НЕ выходите из данного инструмента до момента закрытия SSH сессии, в противном случае соединение будет потеряно.
  2. Загрузите и запустите свой SSH клиент (PuTTY в качестве примера). Перейдите на вкладку Session/Сессия в левой части окна.
  3. Заполните поле Host Name (или IP address) вашей строкой подключения SSH, которую Вы можете найти во вкладке Settings > SSH Access в панели управления. Также укажите номер порта 3022.

Нажмите кнопку Open/Открыть.

  1. Вам отобразиться консоль со списком окружений доступных Вашему аккаунту. Дальнейшие шаги такие же, как и в случае использования Linux/MacOS/FreeBSD OS.

SSH-туннелирование

SSH-туннель — это туннель, создаваемый посредством SSH-соединения и используемый для шифрования туннелированных данных. Используется для того, чтобы обезопасить передачу данных в Интернете (аналогичное назначение имеет IPsec). При пересылке через SSH-туннель незашифрованный трафик любого протокола шифруется на одном конце SSH-соединения и расшифровывается на другом.

Практическая реализация может выполняться несколькими способами:

  • Созданием Socks-прокси для приложений, которые не умеют работать через SSH-туннель, но могут работать через Socks-прокси
  • Использованием приложений, умеющих работать через SSH-туннель.
  • Созданием VPN-туннеля, подходит практически для любых приложений.
  • Если приложение работает с одним определённым сервером, можно настроить SSH-клиент таким образом, чтобы он пропускал через SSH-туннель TCP-соединения, приходящие на определённый TCP-порт машины, на которой запущен SSH-клиент. Например, клиенты Jabber подключаются по умолчанию на порт 443. Тогда, чтобы настроить подключение к серверу Jabber через SSH-туннель, SSH-клиент настраивается на перенаправление подключений с любого порта локальной машины (например, с порта 4430) на удалённый сервер (например, jabber.example.com и порт 443):
$ ssh -L 4430:jabber.example.com:443 somehost

В данном случае Jabber-клиент настраивается на подключение к порту 4430 сервера localhost (если ssh-клиент запущен на той же машине что и Jabber-клиент).

Для создания ssh-туннеля необходима машина с запущенным ssh-сервером и доступом к jabber.example.com. Такая конфигурация может использоваться в случае, если с локальной машины доступ к jabber.example.com закрыт файерволом, но есть доступ к некоторому ssh-серверу, у которого ограничения доступа в Интернет отсутствуют.

Заключение

Мы рассказали об основных настройках протокола SSH, которые помогут уберечь Ubuntu-сервер от несанкционированного доступа

Особенно важно их использовать при расположении сервера в публичных облаках с публичным IP-адресом. На скриншоте ниже вы видите журнал безопасности системы, на которой мы проводили перечисленные в этой статье настройки

В нем видно, что попытки авторизаций под разными пользователями (root, system и другими) происходят регулярно.

Перечисленных в этой статье настроек достаточно для обеспечения базовой безопасности сервера и предотвращения его вовлечения в бот-сети.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector