Как открыть порт 22 для ssh ubuntu

Обновлено: 05.07.2024

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

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

Что такое SSH?

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

За поддержку протокола SSH в Linux отвечает набор программного обеспечения OpenSSH. Это открытая реализация этого протокола, которая предоставляет все необходимые возможности. В состав пакета OpenSSH входят утилиты для установки соединения, передачи файлов, а также сам ssh сервер.

Установка OpenSSH в Ubuntu

Установить SSH на Ubuntu будет очень просто, программа считается стандартной и используется почти везде. Хотя по умолчанию в дистрибутиве её нет, но зато она есть в официальных репозиториях.

Поэтому для установки откройте терминал с помощью сочетания клавиш Ctrl+Alt+T и выполните команду:

sudo apt install openssh-server

ssh

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

sudo systemctl enable sshd

ssh1

Если затем вы захотите удалить службу из автозагрузки, используйте команду disable:

sudo systemctl disable sshd

Что касается клиента ssh, то он уже установлен в системе по умолчанию. Сейчас вы можете попробовать подключиться к локальному ssh серверу просто набрав:

ssh3

В одной из предыдущих статей мы рассматривали что означает адрес 0.0.0.0, сейчас вы можете убедиться что в пределах этой машины он значит локальный адрес:

ssh2

Точно таким способом вы можете получить ssh доступ ubuntu к любому другому компьютеру из сети. Для этого достаточно указать вместо localhost его ip адрес и имя пользователя в таком формате:

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

Настройка SSH в Ubuntu

С параметрами по умолчанию сервер SSH не очень безопасен поэтому перед тем, как программа будет готова к полноценному использованию ее нужно немного настроить. Все настройки сервера SSH хранятся в конфигурационном файле sshd_config, который находится в папке /etc/ssh.

Перед тем как вносить изменения в этот конфигурационный файл рекомендуется сделать его резервную копию, для этого можете использовать такую команду:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.factory-defaults

Дальше вы можете перейти к настройке конфигурационного файла:

sudo vi /etc/ssh/sshd_config

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

ssh4

По умолчанию вход от имени суперпользователя включен, рекомендуется отключить такую возможность. Для этого найдите строчку PermitRootLogin и замените ее значение на no:

ssh5

Чтобы разрешить аутентификацию по ключу, а не по паролю найдите строку PubkeyAuthentication и убедитесь, что ее значение yes.

ssh6

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

sudo systemctl restart ssh

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

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

ssh -p 2222 localhost

К тому же, если на компьютере установлен и настроен брандмауэр, то в нем тоже нужно разрешить доступ к новому порту ssh, для этого выполните:

sudo ufw allow 2222

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

sudo ufw allow 22

Настройка ssh Ubuntu 20.04 полностью завершена.

Выводы

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

На завершение видео, где подробно рассказано о том, что такое SSH:

Как включить SSH в Ubuntu 18.04

Secure Shell (SSH) - это криптографический сетевой протокол, используемый для безопасного соединения между клиентом и сервером.

Введение

Прежде чем продолжить это руководство, убедитесь, что вы вошли в систему как пользователь с привилегиями sudo .

Включение SSH в Ubuntu

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

Чтобы установить и включить SSH в вашей системе Ubuntu, выполните следующие действия:

Откройте свой терминал с помощью Ctrl+Alt+T сочетания клавиш или щелкнув значок терминала и установите openssh-server пакет, набрав:

При появлении запроса введите пароль и введите, Y чтобы продолжить установку.


После завершения установки служба SSH запустится автоматически. Чтобы убедиться, что установка прошла успешно и запущена служба SSH, введите следующую команду, которая распечатает статус сервера SSH:

Вы должны увидеть что-то вроде Active: active (running) :


Нажмите, q чтобы вернуться в командную строку.

Ubuntu поставляется с инструментом настройки брандмауэра под названием UFW. Если в вашей системе включен брандмауэр, обязательно откройте порт SSH:

Теперь, когда SSH установлен и запущен в вашей системе Ubuntu, вы можете подключиться к нему через SSH с любого удаленного компьютера. В системах Linux и macOS по умолчанию установлены клиенты SSH. Если вы хотите подключиться с компьютера Windows, вы можете использовать SSH-клиент, например PuTTY .

Подключение к SSH через LAN

Чтобы подключиться к вашей машине Ubuntu по локальной сети, вам нужно всего лишь ввести следующую команду:

Измените username фактическое имя пользователя и ip_address IP-адрес компьютера Ubuntu, на котором вы установили SSH.

Если вы не знаете свой IP-адрес, вы можете легко найти его с помощью команды ip :


Как видно из выходных данных, системный IP-адрес 192.168.121.111 .

Найдя IP-адрес, войдите на удаленный компьютер, выполнив следующую ssh команду:

Введите, yes и вам будет предложено ввести пароль.

Теперь вы вошли в систему на своей машине с Ubuntu.

Подключение к SSH через Интернет

Чтобы подключиться к компьютеру с Ubuntu через Интернет, вам необходимо знать свой общедоступный IP-адрес и настроить маршрутизатор для приема данных через порт 22 и их отправки на компьютер Ubuntu, на котором работает SSH.

Когда дело доходит до настройки переадресации портов, у каждого маршрутизатора есть свой способ настройки переадресации портов. Чтобы узнать, как настроить переадресацию портов, обратитесь к документации маршрутизатора. Короче говоря, вам нужно ввести номер порта, на который будут выполняться запросы (порт SSH по умолчанию - 22), и частный IP-адрес, который вы нашли ранее (с помощью ip a команды) компьютера, на котором работает SSH.

После того, как вы нашли IP-адрес и настроили маршрутизатор, вы можете войти в систему, набрав:

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

Вы также можете настроить аутентификацию на основе ключа SSH и подключиться к компьютеру с Ubuntu без ввода пароля.

Отключение SSH в Ubuntu

Если по какой-то причине вы хотите отключить SSH на своем компьютере с Ubuntu, вы можете просто остановить службу SSH, запустив:

Чтобы запустить его снова, выполните:

Чтобы отключить запуск службы SSH во время загрузки системы:

Чтобы снова включить его, введите:

Заключение

Вы узнали, как установить и включить SSH в Ubuntu 18.04. Теперь вы можете войти на свой компьютер и выполнять общие задачи системного администратора через командную строку.

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

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

Для получения дополнительной информации о том, как настроить свой SSH-сервер, прочтите руководство по SSH / OpenSSH / настройке Ubuntu и официальную страницу руководства по SSH .

Favorite

Добавить в избранное (1 оценок, среднее: 5,00 из 5)

Как изменить порт SSH в Linux

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

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

В этой статье объясняется, как изменить стандартный порт SSH в Linux. Мы также покажем вам, как настроить брандмауэр, чтобы разрешить доступ к новому порту SSH.

Изменение порта SSH

Выполните следующие действия, чтобы изменить порт SSH в вашей системе Linux:

1. Выбор нового номера порта

В Linux номера портов ниже 1024 зарезервированы для известных служб и могут быть связаны только с правами root. Хотя вы можете использовать порт в диапазоне 1-1024 для службы SSH, чтобы избежать проблем с распределением портов в будущем, рекомендуется выбирать порт выше 1024.

В этом примере порт SSH изменится на 3452, вы можете выбрать любой порт, который вам нравится.

2. Настройка брандмауэра

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

Если вы используете UFW, средство настройки брандмауэра по умолчанию для Ubuntu запускает следующую команду, чтобы открыть новый порт SSH:

В CentOS инструментом управления брандмауэром по умолчанию является FirewallD. Чтобы открыть новый порт, выполните следующие команды:

Пользователям CentOS также необходимо настроить правила SELinux, чтобы разрешить новый порт SSH:

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

3. Редактирование конфигурации SSH

Откройте файл конфигурации SSH /etc/ssh/sshd_config в текстовом редакторе:

Будьте особенно осторожны при изменении файла конфигурации SSH. Неправильная конфигурация может привести к сбою службы SSH.

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

В CentOS сервис ssh называется sshd:

Чтобы убедиться, что демон SSH прослушивает новый порт 3452, введите:

Вывод должен выглядеть примерно так:

Использование нового порта SSH

Теперь, когда вы изменили порт SSH при входе на удаленный компьютер, вам нужно будет указать новый порт.

Используйте опцию -p <port_number> чтобы указать порт:

Заключение

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

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

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.


Открыть порт ssh по стуку с IPtables в Unix/Linux

Есть несколько способов сделать стук, чтобы открылся нужный порт. Сейчас я расскажу о нескольких из них.

-===Способ 1 (самый простой), стук на 1 порт===-

Далее, чтобы не ломились на определенный порт, я сейчас задам правило. Суть заключается в следующем, если кто-то будет производить стук на порт более 2-х раз за одну минуту ( 60 секунд), попадает в бан:

Следующим правилом создается исключение, которое говорит

Если производился стук в нужный порт ( за последние 10 секунд), то разрешаем соединение:

Очистим INPUT цепочку:

Разрешаем прохождение пакетов на установленные соединения:

Все попытки открыть новое SSH соединение, будут проверяться:

Сейчас, собственно прописываем правило для стука на заданный порт:

Закрываем соседние порты ( чтобы не стучались):

Для удобства использования, я создал баш скрипт:

И прописал в него:

PS: Может понадобится выставить права на исполнение ( chmod +x knock.sh).

Выполним проверку iptables:

Чтобы постучаться, используем команду:

И после чего, выполняем подключение на сервер:

Так не есть удобно! По этому, создаем баш-скрипт:

И прописывам в него:

Надеюсь описывать не нужно что делает данный скрипт? -Если что, пишите в коменты, отвечу и помогу.

PS: Не забываем выставить права на использование (chmod +x knock_ssh_connection.sh).

А сейчас я, расскажу более сложный стук, с использованием 3-х стуков на разные порты.

-===Способ 2 (более продвинутый, сложный), стук на 3 порта===-

Можно сохранить любое количество отдельных именованных списков. В этом случае будет три:

Т.е, чтобы подключиться на 22-й SSH порт, нужно постучаться на 3 разных порта, и после чего выполнить подключение на сервер.

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

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

Обычно, нецелесообразно блокировать трафик с интерфейса loopback, по этому, создаем правило:

Блокировка ICMP-трафика может обеспечить некоторые незначительные преимущества в безопасности, но в большинстве случаев она может причинить больше неудобств, по этому, не блокируем его, а разрешаем прохождение ICMP пакетов:

Разрешаем прохождения трафика на порту 80:

Когда сервер ожидает первый стук:

  • Если пакет является первым стуком, то переход в состояние 1 (STATE 1);
  • Иначе остаются в состоянии 0 (STATE 0).
  • В любом случае, любой полученный трафик должен быть удален.

Когда первый удар получен, и сервер ждет второго удара:

  • Если пакет является вторым стуком, то переходом в состояние 2 (STATE 2);
  • Если пакет является еще первым стуком, то остаемся в состоянии 1 (STATE 1);
  • В противном случае выполните возврат к состоянию 0 (STATE 0).
  • Как и выше, любой полученный трафик должен быть удален.

Цепь состояния 0 уже содержит правила обработки первого удара. Повторное использование этой цепочки позволяет избежать указания номера порта в нескольких местах в наборе правил:

Когда первый и второй удары были получены, и сервер ожидает третий стук:

  • Если пакет является третьим ударом, то переход в состояние 3 (STATE 3);
  • Если пакет является первым стуком, то регресс переходит в состояние 1 (STATE 1);
  • В противном случае выполните возврат к состоянию 0 (STATE 0).
  • Как и выше, любой полученный трафик должен быть удален.

Когда все три удара были получены, и сервер ожидает соединения:

  • Если пакет является началом входящего TCP-соединения с соответствующим портом, то принимайте его;
  • Если пакет является первым стуком, то регресс переходит в состояние 1 (STATE 1);
  • В противном случае выполните возврат к состоянию 0 (STATE 0).
  • Необходимо только принять первый пакет соединения таким образом, потому что уже существует правило принимать трафик, который является частью установленного соединения. Как и выше, другой трафик следует отбросить.

Определив цепи обработчика для всех четырех состояний (3 стука + подключение), необходимо поместить правила во входящую цепочку, чтобы вызвать соответствующую цепочку обработчика. Это можно сделать, проверив, находится ли адрес источника текущего пакета в любом из трех списков:

И так. Я все рассказал, но для удобства, я вынесу все эти правила в отдельный bash-скрипт:

И вставляем его:

Ну, переходим к тестированию!

Теперь чтобы выполнить подключение (я создам скрипт для подключение), открываем файл:

И прописывам в него:

Можно использовать еще один метод подключения:

Используем на здоровье.

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

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

Читайте также: