Как подключиться к моему публичному IP через SSH?

Вопрос или проблема

nmap -p 24888 xxxxxxxx
24888/tcp filtered unknown
iptables opening port
-A INPUT -p tcp -m state --state NEW --dport 24888 -j ACCEPT
ssh -vv -p 24888 user@xxxxxxxxxx
OpenSSH_9.2p1 Debian-2+deb12u4, OpenSSL 3.0.15 3 Sep 2024
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 1: include /etc/ssh/ssh_config.d/*.conf matched no files
debug1: /etc/ssh/ssh_config line 3: Applying options for *
debug2: resolve_canonicalize: hostname xxxxxxxx is address
debug1: Connecting to xxxxxxxx [xxxxxxxx] port 24888.
ssh: connect to host xxxxxxxxx port 24888: Connection timed out
my sshd.config
AllowUsers user
AllowAgentForwarding no
AllowTcpForwarding no
ChallengeResponseAuthentication no
ClientAliveCountMax 2
ClientAliveInterval 300
DebianBanner no
GSSAPIAuthentication no
IgnoreRhosts yes
LoginGraceTime 20
MaxAuthTries 3
MaxSessions 1
KerberosAuthentication no
PermitUserEnvironment no
PermitEmptyPasswords no
PasswordAuthentication no
PrintMotd no
Port 24888
Protocol 2
PermitRootLogin no
PermitTunnel no
X11Forwarding no
UsePAM yes
sudo systemctl status ssh
● ssh.service - OpenBSD Secure Shell server
     Loaded: loaded (/lib/systemd/system/ssh.service; enabled; preset: enabled)
     Active: active (running) since Tue 2025-01-21 19:47:46 CET; 27min ago
       Docs: man:sshd(8)
             man:sshd_config(5)
    Process: 27771 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)
   Main PID: 27774 (sshd)
      Tasks: 1 (limit: 38141)
     Memory: 1.4M
        CPU: 32ms
     CGroup: /system.slice/ssh.service
             └─27774 "sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups"

Jan 21 19:47:46 localhost systemd[1]: Starting ssh.service - OpenBSD Secure Shell server...
Jan 21 19:47:46 localhost sshd[27774]: Server listening on 0.0.0.0 port 24888.
Jan 21 19:47:46 localhost systemd[1]: Started ssh.service - OpenBSD Secure Shell server.
netstat -tulp
tcp        0      0 0.0.0.0:24888           0.0.0.0:*               LISTEN      27774/sshd: /usr/sb 

Обновления:

@Ramhound: Я думаю, что мой роутер действует как NAT, но я не знаю, как открыть порты.

@music2myear: Нет, я не думаю, что у меня есть статический IP, но я могу спросить.

@Ramhound:

ssh -vvv -p 24888  xxxxxxxx
OpenSSH_9.2p1 Debian-2+deb12u4, OpenSSL 3.0.15 3 Sep 2024
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 1: include /etc/ssh/ssh_config.d/*.conf matched no files
debug1: /etc/ssh/ssh_config line 3: Applying options for *
debug2: resolve_canonicalize: hostname xxxxxxx is address
debug3: expanded UserKnownHostsFile '~/.ssh/known_hosts' -> '/home/user/.ssh/known_hosts'
debug3: expanded UserKnownHostsFile '~/.ssh/known_hosts2' -> '/home/user/.ssh/known_hosts2'
debug3: ssh_connect_direct: entering
debug1: Connecting to xxxxxxxx [xxxxxxx] port 24888.
debug3: set_sock_tos: set socket 3 IP_TOS 0x10
debug1: connect to address xxxxxxxx port 24888: Connection timed out
ssh: connect to host xxxxxxxx port 24888: Connection timed out

-P INPUT DROP

-P FORWARD DROP

-P OUTPUT ACCEPT

-A INPUT -f -j DROP

-A INPUT -i lo -s 127.0.0.0/8 -j ACCEPT

-A INPUT -i lo -j DROP

-A INPUT -p udp -m udp –sport 53 -m conntrack –ctstate RELATED,ESTABLISHED -j ACCEPT

-A INPUT -p tcp -m multiport –sports 80,443 -m conntrack –ctstate RELATED,ESTABLISHED -j ACCEPT

-A INPUT -p tcp ! –syn -m state –state NEW -j DROP

-A INPUT -m state –state INVALID -j DROP

-A INPUT -p tcp –syn -j DROP

-A INPUT -p tcp –dport 24888 -j ACCEPT

Вы пишете, что

Я думаю, что мой роутер действует как NAT, но я не знаю, как открыть порты.

Это является критическим препятствием.

Вы не можете подключиться к вашему публичному IP для ssh, если:

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

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

.

Ответ или решение

Для подключения к вашему публичному IP-адресу через SSH вам необходимо выполнить несколько важных шагов и настроек. В процессе будут рассмотрены аспекты, касающиеся конфигурации серверной и клиентской части, а также сетевых параметров, таких как NAT (Network Address Translation), чтобы обеспечить успешное соединение. Давайте подробно разберем, как это сделать, начиная с теоретического обоснования, затем применим на практике и обсудим наиболее критичные моменты, которые могут возникнуть.

Теоретическая часть

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

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

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

  2. Настройки NAT роутера: Если ваш сервер находится за роутером с NAT, требуется проброс соответствующего порта (в вашем случае, также 24888) на внутренний IP-адрес сервера. Это позволит запросам из внешней сети достигать вашего сервера.

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

Практическая часть

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

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

  • Разрешено подключение конкретного пользователя через AllowUsers user.
  • Запрещены различные опции пересылки и аутентификации, такие как AllowAgentForwarding, AllowTcpForwarding, что минимизирует риски.
  • Конфигурация поддерживает только протокол SSH версии 2 через Protocol 2.

Текущие настройки подразумевают, что сервис SSH активен, что подтверждается выводом sudo systemctl status ssh. SSH слушает на всех интерфейсах (0.0.0.0) на порту 24888, что видно из вывода netstat -tulpn.

Настройка firewall

У вас уже открыт входящий трафик на порт 24888 командой iptables -A INPUT -p tcp --dport 24888 -j ACCEPT. Однако, важно проверить приоритет правил, потому что более ранние правила могут блокировать трафик раньше, чем дойдет дело до вашего разрешающего правила.

Настройка NAT и маршрутизатора

Роутеры с функцией NAT разделяют один публичный IP между несколькими устройствами в вашей локальной сети. Это требует настройки проброса порта (port forwarding), чтобы внешние запросы могли достигать вашего сервера:

  1. Проброс порта: В панели управления роутером найдите секцию для правления NAT или Port Forwarding. Добавьте новое правило, которое будет перенаправлять трафик, приходящий на ваш роутер на порт 24888, на внутренний IP-адрес вашего сервера (например, 192.168.1.100) и тоже на порт 24888. Документация вашего роутера или помощь провайдера могут быть полезны на этом этапе.

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

Динамический IP

Если ваш IP-адрес динамический, разумно использовать сервисы динамического DNS (DDNS), такие как No-IP или DynDNS, чтобы иметь постоянное доменное имя для вашего изменяющегося IP. Это упростит подключение к вашему серверу независимо от изменений IP.

Заключение

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

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

Капча загружается...