Не удаётся подключиться к некоторым портам с внешней машины

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

У меня есть машина без файрвола:

root@s0000:/etc/systemd/system# iptables -L
-bash: iptables: команда не найдена

На этой машине работают некоторые службы:

root@s0000:/etc/systemd/system# netstat -natp
Активные интернет-соединения (серверы и установленные)
Протокол Recv-Q Send-Q Локальный адрес         Удаленный адрес       Состояние    PID/Имя программы    
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      751/systemd-resolve 
tcp        0      0 127.0.0.54:53           0.0.0.0:*               LISTEN      751/systemd-resolve 
tcp        0      0 0.0.0.0:6666            0.0.0.0:*               LISTEN      4731/server    
tcp        0      0 0.0.0.0:4444            0.0.0.0:*               LISTEN      5283/netcat         
tcp        0      0 192.168.1.15:37976      185.125.190.81:80       TIME_WAIT   -                   
tcp        0      0 192.168.1.15:40838      54.77.77.3:1194         ESTABLISHED 3550/openvpn        
tcp6       0      0 :::22                   :::*                    LISTEN      1/init              
tcp6       0      0 :::6556                 :::*                    LISTEN      4519/xinetd         
tcp6       0    848 192.168.1.15:22         192.168.1.40:45636      ESTABLISHED 1029/sshd: ubuntu [

С внешней машины я могу получить доступ к службам, работающим на портах 22 и 6556, но не к службам, работающим на портах 6666 и 4444.

Кажется, разница в том, что первые слушают на ::: (IPv6), а вторые слушают на 0.0.0.0 (IPv4).

Я протестировал с помощью telnet с linux-машины.

С машиной в той же локальной сети все работает нормально. Но если машина находится на другой стороне VPN (пользовательская VPN, созданная с помощью OpenVPN), я могу получить доступ только к первым портам.

Быстрое решение для меня – это разрешить службам работать на ::: (IPv6).

Как я могу это сделать?

Есть ли другое решение?

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

Чтобы решить вашу проблему с недоступностью некоторых портов (6666 и 4444) при попытке подключиться из внешней сети, необходимо учитывать несколько важных аспектов:

1. Проверка конфигурации сервисов

Сначала убедитесь, что сервисы, которые слушают на портах 6666 и 4444, настроены для прослушивания на всех интерфейсах, включая IPv6. Вы можете сделать это, изменив конфигурационные файлы этих сервисов. Например:

  • Для сервера, работающего на netcat, убедитесь, что он запущен с использованием флага, который позволяет ему слушать на всех интерфейсах. Это может быть что-то вроде:

    nc -l -p 4444 -s 0.0.0.0
  • Для других сервисов проверьте их документацию и убедитесь, что они также правильно настроены для прослушивания на всех интерфейсах или на конкретных IPv6 адресах.

2. Настройка поддержки IPv6

Если ваши сервисы уже настроены на слушание на IPv4, вы можете добавить поддержку IPv6. В большинстве случаев, это делается так же, как и на IPv4, с помощью изменения конфигурации, чтобы они слушали на адресе :: (что соответствует всем доступным интерфейсам в IPv6).

Например, если порт 6666 используется вашим сервисом, проверьте его конфигурацию и добавьте прослушивание на IPv6:

# Пример конфигурации для сервиса
# Добавьте или измените строку на
Listen [::]:6666

3. Настройки OpenVPN

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

  • IP-адресация работает корректно.
  • Оба конца VPN имеют маршруты, которые позволяют трафику проходить без проблем.

Вы можете добавить правило в конфигурации OpenVPN для пересылки трафика на эти порты, если это необходимо. Например:

# Пример для сервера OpenVPN
iptables -A FORWARD -p tcp --dport 6666 -j ACCEPT
iptables -A FORWARD -p tcp --dport 4444 -j ACCEPT

4. Дополнительные проверки

  • Проверка NAT: Если вы находитесь за маршрутизатором или NAT, убедитесь, что перенаправление портов настроено правильно.
  • Пинги и трассировка: Используйте ping и traceroute для проверки доступности ваших сервисов из сети VPN.
  • Журналы: Просматривайте журналы ваших сервисов на наличие ошибок и сообщений, которые могут помочь в выявлении проблемы.

Заключение

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

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

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

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