Самостоятельно размещенный портал авторизации не работает только на Ubuntu.

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

Я использую роутер Teltonika, который настроен так, чтобы заставлять пользователей принимать условия обслуживания на связном портале перед получением MAC-аутентификации. Он хорошо работает на моем Android-телефоне, но не работает на Ubuntu 22.04. Ближе всего к моей проблеме упомянуто здесь, но без рабочего решения (я пробовал все, что упомянуто в посте, который ссылается на более старые посты).

wlp5s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.1.0.2  netmask 255.255.255.255  broadcast 0.0.0.0
        inet6 <some IPv6>  prefixlen 64  scopeid 0x20<link>
        ether <MAC>  txqueuelen 1000  (Ethernet)
        RX packets 8985492  bytes 10107328002 (10.1 GB)
        RX errors 0  dropped 29354  overruns 0  frame 0
        TX packets 3393278  bytes 1185857057 (1.1 GB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Пинг:

$ ping 10.1.0.1
PING 10.1.0.1 (10.1.0.1) 56(84) bytes of data.
^C
--- 10.1.0.1 ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 0ms

Таблица маршрутизации

$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.1.1.1        0.0.0.0         UG    20600  0        0 wlp5s0
10.0.0.0        10.1.0.2        255.0.0.0       UG    600    0        0 wlp5s0
10.1.1.1        0.0.0.0         255.255.255.255 UH    20600  0        0 wlp5s0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 wlp5s0

Curl на HTTP-сайт или сразу после подключения к сети, Firefox сообщает мне о странице входа в сеть. Но не может подключиться к ней:

http://10.2.1.1:81/cgi-bin/hotspot/macauth?res=notyet&uamip=10.2.1.1&uamport=3990&challenge=...

Я думаю, это проблема маршрутизации.

Беспроводная карта: Wireless-AC 9260

.

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

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

В вашем случае, наблюдается проблема с работой captive portal на Ubuntu 22.04, тогда как все корректно функционирует на Android устройстве. Такая аномалия может быть связана с особенностями работы сетевых стеков различных операционных систем, в данном случае, Ubuntu, которое может обрабатывать сетевые конфигурации иначе, чем Android.

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

  1. Сетевой интерфейс: Интерфейс wlp5s0 настроен корректно, так как он находится в состоянии UP и имеет присвоенный IP-адрес (10.1.0.2).

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

  3. Маршрутизация: Маршрут по умолчанию указывает на 10.1.1.1, однако пинг выполняется на 10.1.0.1. В этом может заключаться первая потенциальная проблема.

  4. Network Login через браузер: Firefox уведомляет о наличии страницы входа, но попытка соединения с указанными адресами блокируется.

  5. Общий сетевой стек и конфигурация беспроводного модуля: Используется беспроводная карта Intel Wireless-AC 9260, которая обычно совместима с Linux, но возможно влияние драйверов или специфических особенностей прошивки.

Решение проблемы в данном случае может предполагать несколько этапов проверки и настройки:

  1. Проверка сетевых маршрутов и пересечение с реальной конфигурацией сети: Обратите внимание на то, что есть ли проблемное пересечение между фактическим шлюзом и тем, который используется в маршрутах. Для этого можно использовать команды типа ip route и сравнить результат с ожидаемой конфигурацией сети.

  2. Проверка драйверов беспроводного адаптера: Убедитесь, что драйвер для Intel Wireless-AC 9260 обновлен до последней версии. Проверьте наличие дополнительных проприетарных драйверов, используя утилиту Additional Drivers в Ubuntu.

  3. Проблемы с ipv6: Возможно, у вас включен протокол ipv6, что может создавать проблемы. Попробуйте временно отключить ipv6, чтобы исключить его как причину (используя команду sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1).

  4. Настройка DNS и DHCP: Проверьте корректность настроек DNS и DHCP-сервера на маршрутизаторе. Возможно, стоит вручную прописать DNS-серверы, такие как 8.8.8.8 и 8.8.4.4 (Google DNS), если это допустимо в вашей сети.

  5. Проверка iptables и брэндмауэров: Изучите текущие правила iptables, чтобы убедиться, что не блокируется трафик на порт 81 или порт 3990 (это порты, которые упоминаются в вашем запросе к captive portal).

  6. Проверка прав на выполнение сетевых команд: В некоторых случаях может возникнуть необходимость в выполнении определенных сетевых команд с правами суперпользователя, что иногда упускают из виду.

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

Завершение:
Учитывая, что ваш captive portal работает на Android-устройствах, есть высокая вероятность, что проблема индивидуальна для настройки Ubuntu. Попробуйте подключиться к другой сети с требованием входа через captive portal, чтобы проверить, проявляется ли проблема только в сети, управляемой вашим маршрутизатором Teltonika, или она возникает повсеместно. Это может сужать проблему до конфигурации самого устройства или зависимых компонентов.

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

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