Основные принципы работы протокола ssh
Содержание:
- Подключение по ключу, без пароля
- Как оставить терминал открытым на удаленном хосте
- Server-Side Configuration
- Вход в систему
- Командная строка
- PuTTY Like Программы для Windows
- Как подключаться по SSH?
- Что такое SSH?
- Настройка аутентификации по ключу из Linux
- Как настроить стандартный firewall
- Как подключиться по SSH
- Для Linux/MacOS
- SSH-туннелирование
- Заключение
Подключение по ключу, без пароля
Для удобного подключения по SSH (и многим другим сервисам) без ввода пароля можно использовать ключи.
Нужно создать пару ключей: приватный (закрытый) ключ и публичный (открытый) ключ. Приватный ключ нужно хранить и никогда никому не показывать. Публичный ключ можно показывать всем и распространять свободно.
Эти ключи связаны друг с другом таким образом, что зашифровав информацию одним ключом, расшифровать ее можно только другим. Например, если ваш друг зашифрует письмо вашим публичным ключом, то прочитать его сможете только вы, потому что для этого нужен ваш приватный ключ. И наоборот: если вы зашифруете что-то своим приватным ключом, то расшифровать его можно только вашим публичным ключом. Так как публичный ключ доступен всем, любой может расшифровать это сообщение. Но он может быть уверен, что сообщение пришло именно от вас. В этом заключается идея цифровой подписи.
Генерация ключей
Создадим пару ключей:
Программа запустится и спросит, куда сохранять ключи:
Нажмите Enter для сохранения в стандартное место — директорию в вашей домашней директории.
Программа запросит passphrase. Это вроде пароля для ключа. Можно просто нажать Enter и пропустить этот шаг. Или ввести passphrase — тогда его нужно будет вводить каждый раз, когда используется ключ.
Ключи созданы:
Теперь у вас есть два файла:
- — приватный ключ. Никогда никому и никуда не передавайте его!
- — публичный ключ. Спокойно распространяйте его.
В Windows можно использовать в подсистеме Ubuntu for Windows или в командной строке Git for Windows. Или создавать ключи графической утилитой вроде PuTTYgen.
Загрузка публичного ключа на сервер
Нужно добавить публичный ключ на сервер в файл . Самый простой способ — запустить на локальной машине команду для копирования ключа:
Другой способ — подключиться по паролю, открыть в редакторе файл и добавить в конец текст из вашего файла .
Теперь при подключении пароль запрашиваться не будет1.
После включения соединений по ключу рекомендуется отключить подключение по паролю.
Как оставить терминал открытым на удаленном хосте
Есть два варианта, как сохранить сессию, когда вы переключаетесь между сетями или хотите на время отключиться:
-
Используйте Mosh или Eternal TerminalЕсли вам действительно нужно соединение, которое не падает, даже если вы переключаетесь между сетями, используйте Mosh — mobile shell. Mosh — это защищенная оболочка, использующая SSH для инициализации сессии (handshake), после чего переключается на собственный зашифрованный канал. Этот канал очень стабилен. Он может обрабатывать различные ситуации, включая разрывы соединения с интернетом, изменение IP-адреса вашего ноутбука, большие задержки при передаче по сети, и другие. Спасибо магии UDP и протокола синхронизации, используемого Mosh.
Для использования Mosh его необходимо установить как на вашем сервере, так и на клиенте и открыть порты в диапазоне 60000–61000 для входящего UDP трафика на вашем удаленном хосте. После чего просто наберите для подключения.
Mosh работает на уровне экранов терминала и нажатий клавиш, и это дает ему множество преимуществ по сравнению с SSH, который передает бинарный поток стандартного ввода-вывода между клиентом и сервером. Если нам нужно синхронизировать только экран терминала и нажатия клавиш, то прерванное соединение можно потом восстановить значительно быстрее. SSH пришлось бы хранить в буфере и пересылать все, что произошло, а Mosh нужно только сохранить нажатия клавиш и синхронизировать последнее состояние терминального окна с клиентом. -
Используйте 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
- Откройте свой терминал и введите строку соединения SSH из вкладки Settings > SSH Access в панели управления.
- Вы увидите список окружений, доступных Вашему аккаунту. Пожалуйста, выберите нужное окружение, введя его номер в списке.
- После этого, Вы увидите полный список контейнеров выбранной среды.
Рядом с каждым контейнером указаны ID его ноды и IP адрес LAN. Чтобы получить доступ к контейнеру введите его порядковый номер.
4. Теперь, используя помощник Shell, Вы можете выполнить нужные настройки.
Использование Shell access повышает риск случайного повреждения приложения
Поэтому, обращайте особое внимание на действия, который Вы выполняете здесь.
Для Windows
Чтобы установить SSH соединение для Windows OS, Вам необходимо иметь приватный ключ на Вашем локальном компьютере, который должен соответствовать предварительно добавленному публичному ключу в панели управления MIRhosting. Таким образом, выполните следующие шаги:
- Сохраните приватную версию Вашего SSH ключа (в качестве примера, мы используем инструменты PuTTY).
2. Загрузите и запустите агент PuTTY SSH (так называемый Pageant). В открывшемся окне нажмите кнопку Add key/Добавить ключ и перейдите на Ваш локальный файл с приватным SSH ключом.
- Затем нажмите кнопку Close/Закрыть. Pageant будет свернут. НЕ выходите из данного инструмента до момента закрытия SSH сессии, в противном случае соединение будет потеряно.
- Загрузите и запустите свой SSH клиент (PuTTY в качестве примера). Перейдите на вкладку Session/Сессия в левой части окна.
- Заполните поле Host Name (или IP address) вашей строкой подключения SSH, которую Вы можете найти во вкладке Settings > SSH Access в панели управления. Также укажите номер порта 3022.
Нажмите кнопку Open/Открыть.
- Вам отобразиться консоль со списком окружений доступных Вашему аккаунту. Дальнейшие шаги такие же, как и в случае использования 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 и другими) происходят регулярно.
Перечисленных в этой статье настроек достаточно для обеспечения базовой безопасности сервера и предотвращения его вовлечения в бот-сети.