Разное

22 порт ssh: Как сменить стандартный порт 22 в ssh?

Содержание

Удаленный доступ через SSH к командной строке Keenetic – Keenetic

Начиная с версии операционной системы KeeneticOS 2.12 был добавлен сервер SSH (Secure Shell — безопасная оболочка), с помощью которого можно безопасно подключаться к командной строке интернет-центра. Рассмотрим далее настройку интернет-центра для осуществления удаленного подключения к его интерфейсу командной строки (CLI).

Для работы сервера SSH нужно в интернет-центре предварительно установить компонент системы «Сервер SSH». Сделать это можно на странице «Общие настройки» в разделе «Обновления и компоненты», нажав на «Изменить набор компонентов».

После установки компонента сервер SSH будет включен автоматически. Доступ к нему разрешен в локальных интерфейсах с уровнем безопасности private. Информацию об уровнях доступа, которые определяют уровень безопасности (логику работы сетевого экрана), вы найдете в статье: «Настройка правил межсетевого экрана из командного интерфейса».

Чтобы разрешить доступ из внешних сетей, нужно серверу SSH установить публичный уровень безопасности, выполнив в интерфейсе командной строки интернет-центра команды:

(config)> ip ssh
Core::Configurator: Done.
(config-ssh)> security-level public
Ssh::Manager: Security level changed to public.

Чтобы избежать нежелательных попыток взлома со стороны ботов, случайных Black/Grey Hat хакеров, а также для случаев когда на стандартном порту уже работает SSH-сервер в OPKG-подсистеме, рекомендуется сменить стандартный порт сервера. Порт, на котором работает сервер, по умолчанию стандартный — с номером 22. Его можно поменять на один из неиспользуемых номеров (например, на 2022):

(config-ssh)> port 2022
Ssh::Manager: Port changed to 2022.

Теперь пользователи, имеющие право доступа к командной строке Keenetic, смогут обратиться из SSH-клиента на внешний IP-адрес интернет-центра по порту 2022 и получить доступ к его командной строке в зашифрованном безопасном канале.

Для сохранения настройки нужно выполнить команду:

(config)> system configuration save
Core::ConfigurationSaver: Saving configuration...


Подключение к серверу SSH

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

Скачайте, установите и запустите на компьютере терминальный клиент PuTTY. В поле «Connection type» (Тип соединения) укажите тип подключения «SSH». Введите в поле «Host Name or IP address» (Имя хоста или IP-адрес) сетевое имя или IP-адрес устройства (локальный IP при подключении из домашней сети или публичный «белый» WAN IP при подключении из Интернета), а в поле «Port» (Порт) – номер порта, по которому будет осуществляться подключение (по умолчанию протокол SSH использует порт 22, в нашем примере используется порт 2022).

После нажатия кнопки «Open» (Соединиться) появится запрос логина и пароля для авторизации на устройстве. Введите данные учетной записи администратора. После успешного ввода логина и пароля администратора появится приглашение командной строки роутера.

Также легко установить SSH-подключение из дистрибутива ОС Linux. Например, для подключения клиента SSH, с именем пользователя admin, следует использовать команду:

[alexander@silverado ~]$ ssh [email protected] -p 2022
Warning: Permanently added '[192.168.1.1]:2022' (ECDSA) to the list of known hosts.
[email protected]'s password:
X11 forwarding request failed on channel 0
(config)>


Если ваши ключи скомпрометированы, сервер SSH может сгенерировать новые. Эта процедура происходит автоматически при установке компонента системы, но может также быть запущена по команде ip ssh keygen {keygen}, где вместо {keygen} следует указать нужный алгоритм — default например.

(config-ssh)> keygen defaultSsh::Manager: Key generation is in progress. ..
progress, name = SSH key generation: 0
....
progress, name = SSH key generation: 50
progress, name = SSH key generation: 100

Если вы сменили ключи на сервере, то на клиенте, который их запомнил автоматически, следует выполнить очистку. В Linux-дистрибутивах для этого можно использовать приложение ssh-keygen с ключом -R (важен регистр, поскольку ключ -r служит для печати на экран хэш-значений сохраненных ключей):

[alexander@silverado ~]$ ssh-keygen -R '[192.168.1.1]:2022'
# Host [192.168.1.1]:2022 found: line 1
/home/alexander/.ssh/known_hosts updated.
Original contents retained as /home/alexander/.ssh/known_hosts.old

 

TIP: Примечание

Начиная с версии KeeneticOS 2.11, незащищенные telnet-сессии управления интернет-центром через командную строку автоматически завершаются через 3 минуты неактивности пользователя. Значением этого таймаута можно управлять, но установить бесконечную продолжительность сессии нет возможности.

Для сессии SSH-подключения по умолчанию установлен таймаут 300 секунд (5 минут). При необходимости это значение можно увеличить. Данный параметр может принимать значение до 232-1 секунд включительно.

 

Как сменить номер порта для SSH

По умолчанию подключение к VPS от RUVDS с помощью SSH происходит через 22-й порт. Использование стандартного порта сильно увеличивает риск взлома вашего сервера при использовании брут фос (brute-force) атак. Как один из способов защиты, но не единственный, от данного вида атак является смена стандартного 22 порта.

Обычно информация об используемом порте находится на вашем виртуальном сервере (VPS) в файле sshd_config, который находится в директории /etc/ssh/

Чтобы сменить SSH-порт сделайте следующее:
1. Заходим на сервер помощью SSH-клиента PuTTY
2. Проверяем список открытых портов командой:

netstat -tupln | grep LISTEN

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

3. После проверки портов открываем файл sshd_config. Его вы можете открыть с помощью любого установленного текстового редактора:

Редактором vi:

vi /etc/ssh/sshd_config

Редактором nano:

nano /etc/ssh/sshd_config

4. Ищем в файле sshd_config запись:

5. Меняем номер порта на другой и сохраняем данные изменения при помощи команды:

Если редактор vi:

:wq

Если редактор nano:

CTRL+O

После нажимаем подтвердить, с помощью клавиши Enter на клавиатуре

6. Чтобы изменения вошли в силу, перезагрузите ваш виртуальный SSH-сервер. Это можно сделать при помощи команды:

/etc/init.d/ssh restart

или

/etc/init.d/sshd restart

или

systemctl restart sshd.service

или

Войдите в раздел “Мои серверы” на сайте RUVDS. com и нажмите кнопку “Play” под скриншотом вашего сервера.

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

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

⚙КАК ИЗМЕНИТЬ ПОРТ 22 SSH В UBUNTU, DEBIAN, CENTOS

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

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

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

1. Как изменить порт SSH в Ubuntu и Debian

Шаг 1
Чтобы изменить порт в одной из этих двух систем, мы должны отредактировать файл ssh_config с помощью редактора по своему вкусу, в этом случае мы будем использовать nano, для этого мы вводим следующее:

 vi / etc / ssh / ssh_config 

Шаг 2
Там мы ищем строку « Порт», где мы видим, что по умолчанию порт, назначенный для подключений SSH, равен 22, там мы просто изменяем желаемый порт, например, порт 155.

примечание

Не забудьте удалить #, который появляется перед номером порта, чтобы он перестал быть комментарием, и изменение порта применяется.

Шаг 3
С помощью редактора sudo мы сохраняем изменения, используя комбинацию клавиш:

Ctrl + O

И мы покидаем редактор, используя:

Ctrl + X

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

 перезапуск службы ssh 

Шаг 5
Если мы сейчас попытаемся подключиться к оборудованию через порт 22, то увидим следующее.

Шаг 6
Нажмите Open для подключения, и появится следующее сообщение об ошибке.

2. Как изменить порт SSH в CentOS 7

Шаг 1
Чтобы изменить порт подключения SSH на устройствах CentOS 7, мы должны отредактировать файл sshd_config, для этого мы используем редактор, который нам нравится как nano или vi. Мы будем использовать nano и для этого введем следующее:

 sudo nano / etc / ssh / sshd_config 

Шаг 2
Поскольку мы видим порт по умолчанию 22, мы просто вводим нужный порт, в этом случае мы выбираем порт 134.

примечание

Не забудьте удалить #, который появляется перед номером порта, чтобы он перестал быть комментарием, и изменение порта применяется.

Шаг 3
Мы сохраняем изменения, используя комбинацию:

Ctrl + O

И мы покидаем редактор, используя:

Ctrl + X

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

 перезапуск службы sshd 

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

Изменить порт удаленного рабочего стола

Подключение к Windows по SSH с помощью встроенного OpenSSH

Начиная с Windows 10 1809 и Windows Server 2019 в операционной системе имеется встроенный SSH сервер, основанный на OpenSSH. В этой статье мы покажем, как установить и настроить OpenSSH сервер в Windows 10 и подключиться к нему удаленно по защищенному SSH протоколу (ну прям как в Linux 🙂 ).

Установка сервера OpenSSH в Windows

Рассмотрим, как установить компонент OpenSSH Server в Windows 10 1903 (Windows Server 2019 все выполняется аналогично).

Пакет OpenSSH (как и RSAT) уже включен в данные версии Windows в виде Feature on Demand (FoD).

При наличии прямого Интернет-подключения вы можете установить сервер OpenSSH с помощью PowerShell

Add-WindowsCapability -Online -Name OpenSSH.Server*

Или при помощи DISM:

dism /Online /Add-Capability /CapabilityName:OpenSSH.Server~~~~0.0.1.0

В Windows 10 этот компонент также можно установить через панель Параметры (Приложения -> Управление дополнительными компонентами -> Добавить компонент). Найдите в списке Open SSH Server и нажмите кнопку Install).

Чтобы проверить, что OpenSSH сервер установлен, выполните:
Get-WindowsCapability -Online | ? Name -like 'OpenSSH.Ser*'

State : Installed

Настройка SSH сервера в Windows

После уставной сервера OpenSSH в Windows вам нужно изменить тип запуска службы sshd на автоматический и запустить службу с помощью PowerShell:

Set-Service -Name sshd -StartupType 'Automatic'
Start-Service sshd

С помощью nestat убедитесь, что теперь в системе запущен SSH сервер и ждет подключений на 22 порту:

netstat -na| find ":22"

Проверьте, что включено правило брандмауэра (Windows Defender Firewall), разрешающее входящие подключения к Windows по порту TCP/22.

Get-NetFirewallRule -Name *OpenSSH-Server* |select Name, DisplayName, Description, Enabled

Name DisplayName Description Enabled
---- ----------- ----------- -------
OpenSSH-Server-In-TCP OpenSSH SSH Server (sshd) Inbound rule for OpenSSH SSH Server (sshd) True

Если правило отключено (состоянии Enabled=False) или отсутствует, вы можете создать новое входящее правило командой New-NetFirewallRule:

New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22

По умолчанию важным компоненты OpenSSH хранятся в следующих каталогах:

  • Исполняемые файлы OpenSSH Server: C:\Windows\System32\OpenSSH\
  • Конфигурационный файл sshd_config (создается после первого запуска службы): C:\ProgramData\ssh
  • Журнал OpenSSH: C:\windows\system32\OpenSSH\logs\sshd.log
  • Файл authorized_keys и ключи: %USERPROFILE%\. ssh\

При установке OpenSSH сервера в системе создается новый локальный пользователь sshd.

Sshd_config: Конфигурационный файл сервера OpenSSH

Вы можете изменить настройки сервере OpenSSH в конфигурационном файле %programdata%\ssh\sshd_config.

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

DenyUsers winitpro\[email protected]
DenyUsers corp\*

Чтобы разрешить подключение только для определенной доменной группы:

AllowGroups winitpro\sshadmins

Либо можете разрешить доступ для локальной группы:

AllowGroups sshadmins

Можно запретить вход под учетными записями с правами администратора, в этом случае для выполнения привилегированных действий в SSH сессии нужно делать runas.

DenyGroups Administrators

Следующие директивы разрешают SSH доступ по ключам (доступ к Windows через SSH по ключам рассмотрим подробно в следующей статье) и по паролю:

PubkeyAuthentication yes
PasswordAuthentication yes

Вы можете изменить порт, на котором принимает подключения OpenSSH в конфигурационном файле sshd_config в директиве Port.

После любых изменений в конфигурационном файле sshd_config нужно перезапускать службы sshd:

restart-service sshd

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

Теперь вы можете попробовать подключиться к своей Windows 10 через SSH клиент (я использую putty, но можно пользоваться встроенным ssh клиентом Windows).

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

Нажимаем Да, и в открывшееся окне авторизуемся под пользователем Windows.

При успешном подключении запускается командная оболочка cmd.exe со строкой-приглашением.

admin@win10tst C:\Users\admin>

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

Я предпочитаю работать в командной строке PowerShell. Чтобы запустить интерпретатор PowerShell, выполните:

powershell.exe

Чтобы изменить Shell по умолчанию в OpenSSH с cmd.exe на PowerShell, внесите изменение в реестр такой командой:

New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Windows\System32\WindowsPowerShell\v1. 0\powershell.exe" -PropertyType String –Force

Осталось перезапустить SSH подключение и убедиться, что при подключении используется командный интерпретатор PowerShell (об этом свидетельствует приглашение PS C:\Users\admin>).

В SSH сессии запустилась консоль PowerShell, в которой работают привычные функции: авто дополнение, раскраска модулем PSReadLine, история команд и т.д. Если текущий пользователь входит в группу локальных администраторов, то все команды в его сессии выполняются с повышенными правами даже при включенном UAC.

Смена порта для SSH-сервиса | Популярный Linux

SSH-доступ — самый популярный вид управления сервером.
Популярность оправдана — высокая защищенность от взлома благодаря мощному шифрованию, высокая скорость, возможность организации защищенных туннелей и многое другое.
Хотя вероятность подбора пароля к SSH хакерами при условии выбора надежного пароля крайне низка, однако в Интернете находится множество любителей подобрать пароль к вашему серверу, в чем легко убедиться, заглянув в лог /var/log/secure, а также в ежесуточных отчетах logwatch, высылаемых сервером по email, в которых можно увидеть множество попыток брутфорса и других атак.

Рекомендаций по защите SSH достаточно много, с некоторыми из них можно ознакомиться в Приложении, мы же сосредоточимся на п.3. — смена его дефолтового порта 22 на что-нибудь эдакое, непонятное и непредсказуемое.

Методика
Если вы не хотите столкнуться с «сюрпризами», рекомендуется придерживаться данной последовательности действий.


1. Первым придумаем себе новый порт для SSH.
Поскольку, как известно, хакеры обычно тусуется на портах с низкими номерами, выискивая там незащищенные сервисы, лучше выбрать номер порта выше 1024. Некоторые онлайновые сканеры, например, Nmap Online по умолчанию сканируют диапазон до 5000, поэтому есть смысл выбрать значение еще выше.

Например, 47539

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

Для этого в конфиг-файл /etc/sysconfig/iptables после строки

  1. :RH-Firewall-1-INPUT — [0:0]

где находятся строки вроде этой

  1. -A RH-Firewall-1-INPUT -m state —state NEW -m tcp -p tcp —dport 22 -j ACCEPT

но перед строкой с режектами, а тем более перед

а лучше сразу после строки с SSH/22, добавляем строку с новым портом для SSH:

  1. -A RH-Firewall-1-INPUT -m state —state NEW -m tcp -p tcp —dport 47539 -j ACCEPT

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

3. Перезапускаем сервис файрвола:

  1. # service iptables restart

Он должен выполниться без ошибок.

4. Теперь пришла пора изменить порт SSH-сервиса.
Для этого в конифг-файле /etc/ssh/sshd_config раскомментируем строку с дефолтовым портом:

и вписываем в нее новый порт

5. И наконец, перезапускаем SSH-сервис:

6. Теперь можете попробовать законнектиться по новому порту:

  1. ssh  -p47539 [email protected]

Если коннектиться по MC (Shell-соединение), строка в окне «Shell-соединения с удаленной машиной» будет выглядеть так:

И если все получилось — можете себя поздравить!
Если нет — спросить себя: и для чего я только все это затеял?


* Примечание
Еще раз по поводу удаления дефолтовой строки:
— если ее удалить или закомментировать, то при обращению к серверу по дефолтовому порту 22 будем получать сообщение

ssh: connect to host 213.155.20.56 port 22: No route to host

— если ее оставить работать, то сообщение будет иное

ssh: connect to host 213. 155.20.56 port 22: Connection refused

Второй вариант может быть полезнее, являясь для хакеров приманкой и вводя их в заблуждения относительно «найденного» открытого порта..


Проверено на CentOS 5.4.


Приложение
1. Запрещение удаленного root-доступа.
2. Запрещение подключения с пустым паролем или отключение входа по паролю.
3. Выбор нестандартного порта для SSH-сервера.
4. Использование длинных SSh3 RSA-ключей (2048 бит и более). По состоянию на 2006 год система шифрования на основе RSA считалась надёжной, если длина ключа не менее 1024 бит.
5. Ограничение списка IP-адресов, с которых разрешен доступ (например, настройкой файервола).
6. Запрещение доступа с некоторых потенциально опасных адресов.
7. Отказ от использования распространенных или широко известных системных логинов для доступа по SSH.
8. Регулярный просмотр сообщений об ошибках аутентификации.
9. Установка детекторов атак (IDS, Intrusion Detection System).
10. Использование ловушек, подделывающих SSH-сервис (honeypots).


Литература
1. SSH — Википедия
2. О смене порта ssh
3. Смена порта SSH-сервера как мера безопасности

Отключено Соединение Ssh. Порт Закрыт

У меня есть экземпляр ec2, который используется в течение нескольких лет, и он используется для нескольких целей. Но не может ssh в экземпляр, поскольку он говорит, что соединение отказано. Я остановил экземпляр и отсоединил том и привязал его к новому экземпляру, чтобы проверить конфигурацию ssh, и на самом деле я заменил текущую конфигурацию по умолчанию и также добавил строку под названием UseDNS no. Мне не повезло.

Я попытался запустить скрипт с использованием данных пользователя для aws, который, уверен, не работал. Я подключил объем сервера к новому серверу и написал сценарий BASH для запуска netcat, убедитесь, что служба ssh запущена, а порты брандмауэра открыты и добавлена команда в /etc/rc. local чтобы предоставить исполняемые разрешения для запуска скрипт. Я не уверен, запущен ли сценарий запуска или есть ли какие-либо другие предложения по устранению этой проблемы?

Sshd_config выглядит так:

Port 22
ListenAddress 0.0.0.0
SyslogFacility AUTHPRIV
PermitRootLogin yes
PermitRootLogin forced-commands-only
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication yes
ChallengeResponseAuthentication no
UsePAM yes
X11Forwarding yes
PrintLastLog yes
UsePrivilegeSeparation sandbox # Default for new installations.
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
AcceptEnv XMODIFIERS
Subsystem sftp /usr/libexec/openssh/sftp-server
UseDNS no

Значение ssh_config совпадает с по умолчанию.

SSH подробный вывод:

OpenSSH_7. 3p1, LibreSSL 2.4.1
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 20: Applying options for *
debug2: resolving "x.x.x.x" port 22
debug2: ssh_connect_direct: needpriv 0
debug1: Connecting to x.x.x.x [x.x.x.x] port 22.
debug1: connect to address x.x.x.x port 22: Connection refused
ssh: connect to host x.x.x.x port 22: Connection refused

Результаты Nmap:

PORT      STATE  SERVICE
22/tcp closed ssh
80/tcp open http
110/tcp open pop3
143/tcp open imap
443/tcp closed https
993/tcp open imaps
995/tcp open pop3s
8080/tcp closed http-proxy

На сервере настроены учетные данные aws. Сценарий BASH, который я запускаю, выглядит следующим образом:

#!/bin/bash
sudo apt-get install ssh netcat -y
iptables -A INPUT -p tcp -s 0.0.0.0/0 --dport 22 -j ACCEPT
sudo service ssh stop
sudo service ssh start
sudo touch /home/ubuntu/logs
sudo service --status-all >> /home/ubuntu/logs
sudo aws s3 cp /home/ubuntu/logs s3://recover-server
sudo nc -l 9999 &

Я не могу подключиться к серверу через SSH, поскольку он все еще говорит, что соединение отказалось, я попытался использовать ключ pem, а также добавил свой открытый ключ в файл authorized_hosts. Я также не могу подключить обратную оболочку netcat. Я заблокировал свой IP-адрес в группе безопасности. При сканировании портов с использованием NMAP он говорит, что порт 22 закрыт. Любые предложения о том, как подойти к этой проблеме и восстановить сервер?

Защита 22го порта сервера — ssh / Русскоязычное сообщество MODX

Многие недооценивают опасность от автоматического подбора паролей на 22м порту — это, который ssh.

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

Ну то есть, вчера я мог на него зайти, а сегодня — уже не пускает! И чем он там занимается, под руководством новых хозяев, в каком ботнете учавствует — мне не ведомо. Хорошо, что к этому серверу у меня был физический доступ, и я смог сбросить пароль через LiveCD.

Заодно посмотрел в /var/log/auth.log и ужаснулся: десятки тысяч попыток логина с разных китайских айпишников, под разными именами, типа root, user, ftp, www-data и пр.

Собственно, с тех пор я и выработал свои правила защиты 22го порта.

Запрет входа для root

Необходимо запрещать вход для юзеров, чьи имена известны любому боту. Это root, ftp, www-data и подобные. После установки Ubuntu на сервер, обычно есть только root.

Поэтому нужно создать нового юзера, если увас его еще нет

adduser petrov

добавить его в группу sudo

adduser petrov sudo

и запретить вход root, путём редактировани /etc/ssh/sshd_config

PermitRootLogin no

Перезапуск ssh

sudo service ssh restart

Боту уже стало сложнее, ему нужно угадать и имя и пароль. Однако, если он может делать тысячи попыток в секунду, рано или поздно его ждёт успех.

Защита через iptables

Многие совутуют менять стандартный порт 22 на любой другой, но мне это решение не нравится по двум причинам:
— Это неудобно. В каждом приложении нужно настраиввать отдельно порт для коннекта.
— Не даёт ничего. Любое сканирование портов сразу покажет, на каком порту живёт ssh, а дальше бот будет ломиться уже в него.

Значит, нужно защитить стандартный порт 22 через iptables. Есть много решений, типа fail2ban, но мне нравится самое простое — запоминать тех, кто слишком часто отваливается и не пускать их больше в течении n секунд.

Вот как это задать:

#!/bin/bash

# Очистка цепочек правил
iptables -F INPUT
iptables -Z INPUT
iptables -P INPUT ACCEPT

iptables -F OUTPUT
iptables -Z OUTPUT
iptables -P OUTPUT ACCEPT

iptables -F FORWARD
iptables -Z FORWARD
iptables -P FORWARD ACCEPT

# Защита порта ssh, время блокировки - 30 секунд
iptables -A INPUT -p tcp -m state --state NEW --dport 22 -m recent --update --seconds 30 -j DROP
iptables -A INPUT -p tcp -m state --state NEW --dport 22 -m recent --set -j ACCEPT

Это нужно сохранить в скрипт /root/iptables и добавить вызов скрипта в /etc/rc.local, чтобы он стартовал при загрузке сервера.

Время блокировки можно подбирать самостоятельно. Дело в том, что 30 секунд — это довольно много, и разные приложения, типа редакторов или ftp-клиентов не всегда могут разобатать с этим правилом, если подключаются слишком часто.

Тогда можно заменить 30 секунд на 10 или даже 5. Но чем больше блокировка — тем меньше шансов у бота.

Проверка эффективности

Неудачные попытки подбора паролей очень просто смотреть в /var/log/auth.log таким скриптом:

sudo cat /var/log/auth.log* | grep 'Failed password' | grep sshd | awk '{print $1,$2}' | sort -k 1,1M -k 2n | uniq -c

Вот результаты на сервере, с блокировкой в одну секунду:


1873 Jan 13
2037 Jan 14
2851 Jan 15
3733 Jan 16
4941 Jan 17
1595 Jan 18

Несколько тысяч подборов паролей в сутки!

А вот мой сервер, блокировка 30 секунд:


4 Jan 13
6 Jan 14
2 Jan 15
9 Jan 16
3 Jan 17
3 Jan 18

Нормальный бот с такой с такой скоростью работать не сможет, конечно.

Вот и всё. 2 простейших правила, и ваш сервер становится гораздо более защищён от подбора пароля по ssh.

Дело 5 минут, не ленитесь настроить прямо сейчас!

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

Как открыть порт 22 ssh в Ubuntu 20.04 Focal Fossa Linux

Подробности
Ubuntu

В этом коротком руководстве объясняется, как открыть порт 22 SSH в Ubuntu 20.04 Focal Fossa Linux.

В этом руководстве вы узнаете:

  • Как открыть порт ssh 22
  • Как удалить правило брандмауэра порта ssh
  • Как проверить текущие правила UFW для разрешенных / запрещенных портов

Открыть и удалить порт 22 ssh правила в Ubuntu 20.04 Focal Fossa Linux с UFW

Используемые требования к программному обеспечению и условные обозначения

Требования к программному обеспечению и условные обозначения командной строки Linux
Категория Используемые требования, условные обозначения или версия программного обеспечения
Система Установленная Ubuntu 20.04 или обновленный Ubuntu 20.04 Focal Fossa
Программное обеспечение ufw> = 0.36
Другое Привилегированный доступ к вашей системе Linux как root или через команду sudo .
Условные обозначения # — требует, чтобы данные команды linux выполнялись с привилегиями root либо непосредственно как пользователь root, либо с помощью команды sudo $ — требует, чтобы данные команды linux выполнялись как обычные не -privileged user

Откройте ssh-порт 22 в Ubuntu 20.04 Focal Fossa Linux, пошаговые инструкции

  1. Проверьте состояние вашего брандмауэра.
    # ufw status verbose
    Статус: активен
    Ведение журнала: включено (низкое)
    По умолчанию:  deny (входящий) , allow (исходящий), disabled (маршрутизируемый)
    Новые профили: пропустить
     

    На основании вышеприведенного вывода все входящие порты по умолчанию заблокированы.


    Ищу системного аналитика Linux!

    Геофизический институт UAF ищет опытного системного аналитика Linux, который присоединится к их команде аналитиков и инженеров исследовательской кибер-инфраструктуры. РАСПОЛОЖЕНИЕ: Фэрбенкс, Аляска, США
    ПОДАТЬ ЗАЯВКУ



  2. Разрешить SSH-порт 22 с помощью команды ufw :
    $ sudo ufw разрешить ssh
     

    В качестве альтернативы можно разрешить подключение через SSH-порт 22 только определенному IP-адресу или сетевой подсети.Приведенный ниже пример позволит IP-адресу 192.168.1.2 подключаться через порт 22:

    .
    $ sudo ufw разрешить с 192.168.1.2 на любой порт ssh
     

    В этом примере разрешить всю сетевую подсеть 192.168.0.0/24 выполнить:

    $ sudo ufw разрешить с 192.168.0.0/24 на любой порт ssh
     
  3. Проверить все текущие определенные правила брандмауэра UFW:
    $ sudo ufw статус подробный
    Статус: активен
    Ведение журнала: включено (низкое)
    По умолчанию: deny (входящий), allow (исходящий), disabled (маршрутизируемый)
    Новые профили: пропустить
    
    К действию от
    - ------ ----
    22 / tcp РАЗРЕШИТЬ В любом месте
    22 / tcp (v6) РАЗРЕШИТЬ В любом месте (v6)
     
  4. Чтобы удалить правила, определенные SSH, просто выполните те же команды, которые вы использовали для разрешения порта 22 SSH, и укажите опцию delete сразу после команды ufw .Примеры:
    $ sudo ufw delete allow ssh
    $ sudo ufw delete allow from 192.168.1.2 to any port ssh
    $ sudo ufw delete allow from 192.168.0.0/24 на любой порт ssh
     

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

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

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

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

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

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

В следующих разделах объясняется, как изменить порт SSH в системе Linux.

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

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

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

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

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

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

  sudo ufw allow 5522 / tcp  

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

  sudo firewall-cmd --permanent --zone = public --add-port = 5522 / tcp   sudo firewall-cmd --reload  

Пользователи CentOS также должны настроить Правила SELinux:

  sudo semanage port -a -t ssh_port_t -p tcp 5522  

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

  sudo iptables -A INPUT -p tcp - -dport 5522 -m conntrack --ctstate НОВОЕ, УСТАНОВЛЕННОЕ -j ПРИНЯТЬ  

3.Настройка SSH #

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

  sudo vim / etc / ssh / sshd_config  

Найдите строку, начинающуюся с Port 22 . В большинстве случаев эта строка начинается с символа решетки ( # ). Удалите хэш # и введите новый номер порта SSH:

/ etc / ssh / sshd_config

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

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

  sudo systemctl restart ssh  

В CentOS служба ssh называется sshd :

  sudo systemctl restart sshd  

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

  ss -an | grep 5522  

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

  tcp LISTEN 0 128 0.0.0.0: 5522 0.0.0.0:*
tcp ESTAB 0 0 192.168.121.108:5522 192.168.121.1:57638
tcp СЛУШАТЬ 0 128 [::]: 5522 [::]: *
  

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

Чтобы указать порт, вызовите команду ssh , а затем опцию -p :

  ssh -p 5522 username @ remote_host_or_ip  

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

Заключение #

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

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

linux — Как открыть 22 порт SSH?

Закрыто. Это вопрос не по теме.В настоящее время он не принимает ответы.


Хотите улучшить этот вопрос? Обновите вопрос, чтобы он соответствовал теме Unix и Linux Stack Exchange.

Закрыт 6 лет назад.

Я установил утилиту ssh во встроенную систему, но не могу подключиться к ней.Я могу использовать ssh с устройства на другой компьютер в сети, но не наоборот.

Единственный открытый порт в устройстве — 21-й:

  userk @ допамин: ~ $ nmap 160.80.97.X

Запуск Nmap 6.40 (http://nmap.org) в 2015-02-09 20:49 CET
Отчет сканирования Nmap для 160.80.97.X
Хост работает (задержка 0,0092 с).
Не показано: 999 закрытых портов
ПОРТОВАЯ ГОСУДАРСТВЕННАЯ СЛУЖБА
21 / tcp открыть ftp
  

Когда я пытаюсь подключиться к нему, я получаю сообщение об ошибке в соединении. Я пробовал использовать другой порт, но ничего не изменилось.Файл конфигурации / etc / ssh / sshd_config имеет следующий вид

  # порт 22
Порт 223
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

# По умолчанию требуется явная активация протокола 1
Протокол 2

# HostKey для версии протокола 1
#HostKey / etc / ssh / ssh_host_key
# HostKeys для версии протокола 2
HostKey / и т. Д. / Ssh / ssh_host_rsa_key
HostKey / и т. Д. / Ssh / ssh_host_dsa_key
HostKey / и т. Д. / Ssh / ssh_host_ecdsa_key
#HostKey / etc / ssh / ssh_host_ed25519_key

# Время жизни и размер эфемерного ключа сервера версии 1
KeyRegenerationInterval 1ч
ServerKeyBits 1024

# Шифры и ввод
#RekeyLimit по умолчанию нет

# Логирование
# устарели QuietMode и FascistLogging
SyslogFacility AUTH
LogLevel INFO

# Аутентификация:

Войти
PermitRootLogin да
StrictModes да
MaxAuthTries 6
#MaxSessions 10

RSAAuthentication да
PubkeyAuthentication да

# По умолчанию проверяются оба.ssh / authorized_keys и .ssh / authorized_keys2
# но это переопределено, поэтому при установке будут проверяться только .ssh / authorized_keys
AuthorizedKeysFile .ssh / authorized_keys
  

У меня нет iptables и я не могу его установить. Как я могу подключиться к устройству по ssh?

Решение

Возникла проблема со сгенерированными ключами. Переместите их в папку / tmp

  мв / etc / ssh / ssh_host_ * / tmp
  

И восстановите ключи с помощью

  / etc / init.d / S50sshd restart ИЛИ /etc/init.d/sshd restart
  

или

  ssh-keygen -A
  

Спасибо Bratchley, Abrixas2 и 0xC0000022L.

В соединении отказано через порт 22 Debian / Ubuntu — Linux Hint

SSH обеспечивает безопасный способ доступа к серверам Linux и управления ими. Иногда при подключении к серверам SSH пользователи часто сталкиваются с ошибкой «Соединение отклонено» через порт 22. Это происходит из-за нескольких причин, например, по нескольким причинам, например, по нескольким причинам, например, по причине того, что служба SSH не работает, порт заблокирован межсетевым экраном или сервер использует другой порт.Это также может произойти из-за конфликта IP-адресов. В этой статье мы обсудим некоторые решения, которые вы должны попробовать, чтобы исправить ошибку.

Примечание: Обсуждаемые здесь команды были протестированы на Ubuntu 20.04 LTS. Те же команды действительны и для системы Debian.

Исправить ошибку в соединении отказано

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

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

Убедитесь, что OpenSSH установлен

Одна из причин, по которой вы можете получить сообщение об ошибке «Соединение отклонено», заключается в том, что сервер OpenSSH не установлен на целевом сервере.

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

$ sudo apt list — установлено | grep openssh-server

Эта команда в основном фильтрует термин «openssh-server» из списка установленных пакетов.Если вы получите следующий аналогичный вывод, это означает, что сервер OpenSSH установлен. С другой стороны, если вы не получаете вывода, это означает, что OpenSSH отсутствует на целевом сервере.

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

$ sudo apt установить openssh-server

Затем введите пароль sudo и при запросе подтверждения нажмите «y». После установки подтвердите его, используя ту же команду

$ sudo apt list — установлено | grep openssh-server

Проверить службу SSH

Служба OpenSSH работает в фоновом режиме и прослушивает входящие соединения.Остановленная служба OpenSSH может быть одной из причин, по которой вы получаете сообщение об ошибке «Соединение отклонено».

Следовательно, необходимо проверить, запущена ли служба OpenSSH, используя следующую команду в Терминале:

$ sudo service ssh статус

Если вы видите следующий вывод, это означает, что служба активна и работает в фоновом режиме.

С другой стороны, если вы получаете inactive (dead), , это означает, что служба не работает . Вы можете запустить службу OpenSSH, используя следующую команду как sudo в Терминале:

Чтобы перезапустить службу, используйте следующую команду:

$ sudo service ssh перезапуск

Проверьте порт прослушивания SSH-сервера

Другая причина получения сообщения об ошибке «Соединение отклонено» заключается в том, что вы пытаетесь подключиться не к тому порту. Например, если сервер настроен на прослушивание порта 2244, и вы пытаетесь подключиться к его порту по умолчанию 22, то в этом случае вы получите ошибку «Соединение отклонено».

Перед попыткой подключения необходимо проверить порт прослушивания SSH-сервера. Если это порт по умолчанию (22), вы можете подключить его с помощью следующей команды:

$ ssh [имя пользователя] @ [IP-адрес удаленного сервера или имя хоста]

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

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

Чтобы проверить, какой порт на каком порту слушает сервер OpenSSH; используйте следующую команду в Терминале:

$ sudo netstat -ltnp | grep sshd

Вы получите следующий результат:

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

$ ssh -p [2244] [имя пользователя] @ [ip_address]

Разрешить SSH в брандмауэре

Брандмауэр, блокирующий порт SSH, может быть еще одной важной причиной ошибки «Соединение отклонено». Если на сервере SSH запущен брандмауэр, вам необходимо разрешить порт SSH на нем, используя следующую команду. Замените порт номером порта, который прослушивает SSH-сервер:

$ sudo ufw разрешить порт / tcp

Например, если SSH-сервер прослушивает порт 2244, вы можете разрешить его в брандмауэре как:

$ sudo ufw разрешить 2244 / tcp

Перезагрузите брандмауэр, используя следующую команду:

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

Следующие выходные данные показывают, что порт 2244 разрешен в брандмауэре.

Устранить конфликт повторяющихся IP-адресов

Ошибка «Соединение отклонено» также может возникать из-за конфликта дублированных IP-адресов. Итак, убедитесь, что в системе нет повторяющегося IP-адреса.

Установите утилиту arping в вашу систему, используя следующую команду:

$ sudo apt install arping

Затем проверьте IP-адрес SSH-сервера.

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

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

Изменение порта SSH в WHM / cPanel

Хотя есть много способов убедиться, что ваш сервер максимально безопасен, есть несколько основных шагов, которые мы можем предпринять для повышения безопасности.Пользователи с сервером Linux могут изменить свой порт SSH на любой другой порт, кроме порта по умолчанию (22). Шаги, перечисленные ниже, в общих чертах описывают эту задачу, предоставляя шаги для включения этого изменения.

Шаг № 1: Перенастроить SSHD

Самый простой способ изменить порт — использовать SSH на сервере как root:

(hostname / IP следует заменить на имя хоста вашего сервера или основной IP-адрес). адрес вашего сервера)

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

  cp / etc / ssh / sshd_config / etc / ssh / sshd_config_backup  

Теперь мы готовы изменить файл. Откройте / etc / ssh / sshd_config в вашем любимом текстовом редакторе (для этого примера мы будем использовать Vim). Найдите строку, в которой указан порт. Если ваш файл sshd_config не был изменен, параметр порта может быть закомментирован с помощью символа # (пример ниже).

Символ # указывает серверу игнорировать все, что находится после него в той же строке.Нам нужно будет удалить этот символ, а затем изменить число 22 на другое. Убедитесь, что вы не выбрали номер порта, который используется другой службой. Если вы не уверены, в Википедии есть список номеров портов и их использования. Попробуйте использовать номер порта, которого нет в списке. В этом примере мы будем использовать порт 2222.

Удалите символ # и измените номер порта.

Затем сохраните изменения с помощью команды : wq и закройте файл sshd_config.

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

Шаг № 2: Обновление брандмауэра

Еще раз мы будем использовать Vim в качестве текстового редактора, чтобы внести изменения в конфигурацию брандмауэра APF . Если ваш сервер использует брандмауэр CSF , следуйте инструкциям по открытию порта через командную строку или WebHost Manager в разделе «Открытие портов в вашем брандмауэре» и переходите к следующему разделу.

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

  cp /etc/apf/conf.apf /etc/apf/conf.apf.bak  

Откройте /etc/apf/conf.apf в Vim (или в вашем любимом текстовом редакторе) и найдите строку с меткой Общие входящие (входящие) TCP-порты .

Добавьте новый номер порта в список существующих входных портов. Обязательно добавьте запятые там, где это необходимо (следуйте формату существующих номеров портов).Сохраните изменения в файле conf.apf и закройте текстовый редактор.

Шаг № 3: перезапустите службы

SSH и APF теперь должны быть перезапущены, чтобы активировать ваши изменения. Вы можете сделать это, запустив команду ‘/etc/init.d/apf restart’, а затем ‘/etc/init.d/sshd restart’ (пример ниже):

  service sshd restart
service apf restart  

SSH перезапустится и начнет прослушивание на указанном вами номере порта.

Важно отметить, что если вы измените номер порта SSH, это также изменит способ выполнения определенных команд, использующих SSH.Примеры команд, для которых потребуется новый номер порта, включают scp и rsync.

Заключение

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

Чем мы можем помочь?

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

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

Если вы являетесь полностью управляемым сервером VPS, выделенным облаком, частным облаком VMWare, частным родительским сервером, управляемыми облачными серверами или владельцем выделенного сервера и вам неудобно выполнять любой из описанных шагов, с нами можно связаться по телефону @ 800.580.4985, обращение в чат или службу поддержки, чтобы помочь вам в этом процессе.

Как разрешить SSH-соединения из LAN и WAN на разных портах

Можно ли настроить SSH для прослушивания подключений как на внутреннем, так и на внешнем интерфейсах, используя разные порты? Джек Уоллен говорит «да».

Изображение: Getty Images / iStockphoto

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

Что, если бы вы могли открыть порт 22 для LAN и порт 2222 для WAN? Вы можете, и я покажу вам, как это сделать.

СМОТРЕТЬ: Безопасность Windows 10: руководство для руководителей бизнеса (TechRepublic Premium)

Что вам понадобится

Для выполнения этой работы вам понадобится сервер, который принимает подключения SSH и возможность манипулировать трафиком.Я продемонстрирую на экземпляре Ubuntu Server 18.04, который работает с несложным межсетевым экраном (UFW). Если вы работаете с сервером, который не использует UFW, вам придется изменить правила брандмауэра в соответствии с инструментом, используемым в вашем дистрибутиве Linux. Кроме того, если у вас есть устройство сетевой безопасности, которое контролирует трафик из LAN и / или WAN, вам также придется внести изменения в него — как это будет сделано, будет зависеть от используемой платформы.

На машине, на которой запущен SSH, также должны быть две сетевые карты, одна из которых настроена для использования в локальной сети, а другая — для использования в глобальной сети.Для примера мы назовем их ens5 (LAN) и enp1s0 (WAN).

Как настроить SSH

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

 sudo nano / etc / ssh / sshd_config 

В этом файле ( Рисунок A ) раскомментируйте строку порта 22 и добавьте строку порта 2222.

Рисунок A

Файл sshd_config, разрешающий оба порта.

После внесения этих изменений сохраните и закройте файл.

Перезапустите SSH с помощью команды:

 sudo systemctl restart ssh 

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

 ssh USER @ SERVER_IP 

Где USER — это удаленное имя пользователя, а SERVER_IP — это IP-адрес сервера.

Вам должно быть разрешено войти. После успешного завершения закройте это соединение и проверьте порт 2222 с помощью команды:

 ssh USER @ SERVER_IP -p 2222 

Где USER — это удаленное имя пользователя, а SERVER_IP — это IP-адрес сервера.

Опять же, вам должен быть предоставлен доступ к серверу.

Как настроить брандмауэр

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

Сначала мы блокируем порт 22 на интерфейсе WAN с помощью команды:

 sudo ufw deny in on enp1s0 на любой порт 22 

Затем мы разрешаем порт 2222 на интерфейсе WAN с помощью команды:

 sudo ufw allow in on enp1s0 для любого порта 2222 

После того, как у вас есть эти два правила, проверьте соединения как из LAN, так и из WAN, убедившись, что вы используете порт 2222 на стороне соединения WAN.Тебя должны пустить без проблем. Если вы обнаружите, что это не работает, обязательно включите UFW с помощью команды:

 sudo ufw enable 

И это один из возможных способов указать, какие SSH-соединения могут быть сделаны и откуда. Хотя это не является окончательным, поскольку используемое сетевое оборудование / оборудование безопасности может диктовать другие необходимые меры, оно должно помочь вам встать на правильный путь.

Информационный бюллетень для инсайдеров Cybersecurity

Усильте защиту ИТ-безопасности вашей организации, следя за последними новостями, решениями и передовыми практиками в области кибербезопасности.Доставка по вторникам и четвергам

Зарегистрироваться Сегодня

Также см.

Как изменить порт SSH с порта по умолчанию

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

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

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

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

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

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

Предварительные требования

  • План VPS с любым дистрибутивом Linux (например, Ubuntu, CentOs, Debian)
  • Пользователь без полномочий root с привилегиями sudo

Специальное примечание: если вы хотите перейти на тарифный план VPS, мы рекомендуем вам проконсультироваться со списком лучших хостинг-провайдеров HostAdvice.Если вы не используете дистрибутив Linux, но рассматриваете его, мы рекомендуем посмотреть список лучших хостинговых услуг Linux Hostadvice.

Шаг 1. Подключитесь к серверу через SSH

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

 $ ssh -p 22 имя пользователя @ 198.18.0.6 

Не забудьте изменить имя пользователя и IP-адрес. В этом случае пользователь должен иметь привилегии sudo

Шаг 2: Выбор нового порта SSH

ICAAN (Интернет-корпорация по присвоению имен и номеров) — это организация, которая контролирует пространства имен и числовые пространства в Интернете, чтобы обеспечить его стабильную и безопасную работу. .

ICAAN классифицирует порты по двум трем категориям:

  1. Системные / общеизвестные порты: 0-1023
  2. Пользовательские или зарегистрированные порты: 1024-49151
  3. Динамические / частные порты: 49152-65535

Чтобы предотвратить неправильную настройку вашего сервера, вы должны выбрать порт из диапазона динамических / частных портов (например,грамм. 49160, 53425, 64342 и т. Д.).

Шаг 3. Изменение порта SSH по умолчанию

Чтобы изменить порт по умолчанию, который прослушивает демон SSHD. Мы можем отредактировать файл конфигурации с помощью редактора nano:

 $ sudo nano / etc / ssh / sshd_config 

Затем найдите строку ниже:

 # Port 22 

Сначала прокомментируйте строку, удалив знак решетки перед строкой . Затем введите желаемый порт справа.

 Порт 58342 

Чтобы избежать полной блокировки вашей системы, вы должны занести в белый список порт, который вы указали выше на вашем брандмауэре.

Шаг 4. Перезапустите SSH.

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

 $ sudo service sshd restart 

Шаг 5. Протестируйте изменения

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

Шаг 6: Прочие соображения

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

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

Заключение

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

Ознакомьтесь с 3 лучшими услугами хостинга выделенных серверов:

Была ли эта статья полезной?

Поделитесь с нами своим мнением Отправить

.

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

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