Как получить доступ к openssh-серверу с внешнего IP-адреса из-за пределов локальной сети

Как я могу использовать мой новый openssh-сервер с внешним IP-адресом вне локальной сети?

Цель состоит в том, чтобы администратор внешнего компьютера из локальной сети мог администрировать openssh-сервер (права root, установку программного обеспечения и данных) через Интернет.

Техническая настройка:

Local Area Network = Router + openssh-server + openssh-client

openssh-server Ubuntu 14.04.1 сервер полное шифрование диска внутренний IP 111.111.111.111, внешний IP-адрес, предоставленный провайдером Интернет-услуг 222.222.222.222, два свободных порта 22 (TCP, UDP), установленных в маршрутизаторе для этого компьютера, пользователь MaximGorki

openssh-client Ubuntu 14.04.1 настольное полное шифрование диска внутренний IP 111.111.111.110, внешний IP-адрес, предоставленный интернет-провайдером 222.222.222.222

Я могу войти в openssh-сервер с openssh-клиента внутри локальной сети (LAN), используя IP-адрес, установленный маршрутизатором для openssh-сервера 111.111.111.111.

С openssh-сервера я хочу соединиться с openssh-сервером с помощью командной строки:

ssh [email protected]

ssh [email protected]

Внутренний IP-адрес работает с паролем.

Внешний IP-адрес не работает с компьютера openssh-клиента, который находится в локальной сети:

ssh: подключение к хосту 222.222.222.222 порт 22: истекло время ожидания соединения

Я также настроил функцию pubkey. Но это не работает. Я не знаю почему. Поэтому я был бы рад получить доступ к openssh-серверу только по парольной аутентификации.

Я хочу проверить, доступен ли openssh-сервер с внешнего IP-адреса.

Что мне нужно настроить или изменить на каком компьютере, как?

Мои ноу-хау в Linux очень ограничены, пожалуйста, приведите полный синтаксис командной строки в качестве примера, если вы видите ответ.


После рекомендации одного ответа я добавил 4 правила в исходный iptables. Iptables теперь выглядит так:

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)

pkts   bytes   target   prot   opt   in    out   source

218    16703   ACCEPT   all    --    any   any   anywhere state RELATED,ESTABLISHED

0       0      ACCEPT   all    --    any   any   222.222.222.222 

0       0      ACCEPT   tcp    --    any   any   anywhere tcp dpt:22

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)

pkts   bytes   target   prot   opt   in    out   source

0      0       ACCEPT   all    --    any   any   anywhere state RELATED,ESTABLISHED

0      0       ACCEPT   all    --    any   any   anywhere state RELATED,ESTABLISHED

0      0       ACCEPT   all    --    any   any   anywhere state RELATED,ESTABLISHED

Chain OUTPUT (policy ACCEPT 10 packets, 2082 bytes)

pkts   bytes   target   prot   opt   in    out   source

4 ответа

Моя ошибка не состояла в том, чтобы установить порты в ssh_config, sshd_config и маршрутизаторе к тому же числу. Ранее я изменил номера портов. Я перепутал файлы конфигурации для сервера и клиента. Теперь все порты во всех конфигурационных файлах и в маршрутизаторе имеют одинаковый номер. Теперь я могу получить доступ к серверу с клиента, используя внешний IP-адрес.

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

-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -s 222.222.222.222 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT

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

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

Вы гарантировали, что ваш маршрутизатор может (и включил) NAT Loopback / Hairpinning?

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

Другие вопросы по тегам