LINUX.ORG.RU
ФорумAdmin

Закрыт 443 порт из внешки на белом IP

 , ,


1

2

Заказал у своего проводного провайдера (билайна) белый статический айпишник для своего домашнего сервачка. В первую очередь эта история затевается для личного Joplin Server. А его по-хорошему нужно пробросить через реверс прокси.

Поставил nginx с дефолтными настройками, прокинул joplin из докера на https. Проверил из локалки, все работает, радуюсь. Затем зашел со внешки - ничего. По HTTP на 80 порту доступ есть, но по HTTPS на 443 - нет, на 2ip.ru 80 открыт, 443 - закрыт.

Я давай проверять:

  1. Запустил просто nginx с дефолтными до мозга костей настройками без запуска joplin server:
worker_processes  2;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  localhost;
        location / {
            root   /usr/share/nginx/html;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }
    }
    server {
       listen       443 ssl;
       server_name  hellserver;

       ssl_certificate      nginx.crt;
       ssl_certificate_key  nginx.key;

       ssl_protocols        TLSv1 TLSv1.1 TLSv1.2;
       ssl_ciphers          HIGH:!aNULL:!MD5;
    }
}

То же самое. На 80 есть, на 443 - нет

  1. Меняю 443 порт на 1026 (от балды), заработало! На компе из внешки вижу страницу с руганью о самоподписном сертификате. Смотрю на 2ip.ru - порт 1026 открыт.

  2. Убиваю nginx и iptables, запускаю joplin прямо на 443 порт - нет коннекта. Делаю то же самое на 1026 - есть.

  3. Пробую все варианты с 444 портом, та же история, что и с 443.

  4. Иду на сайт билайна, смотрю там стоит услуга файервола, которая блочит 0-1024 порты. Отключаю - ноль результата.

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

ЧЯДНТ? iptables -L -v на всякий (хотя я его вообще отключал)

Chain INPUT (policy ACCEPT 37848 packets, 16M bytes)
 pkts bytes target     prot opt in     out     source               destination         
   12   720 DROP       tcp  --  enp7s0 any     anywhere             anywhere             tcp dpt:8123

Chain FORWARD (policy ACCEPT 366 packets, 63517 bytes)
 pkts bytes target     prot opt in     out     source               destination         
 5947 7793K DOCKER-USER  all  --  any    any     anywhere             anywhere            
 5947 7793K DOCKER-ISOLATION-STAGE-1  all  --  any    any     anywhere             anywhere            
 2993 7602K ACCEPT     all  --  any    docker0  anywhere             anywhere             ctstate RELATED,ESTABLISHED
    2   120 DOCKER     all  --  any    docker0  anywhere             anywhere            
 2439  102K ACCEPT     all  --  docker0 !docker0  anywhere             anywhere            
    0     0 ACCEPT     all  --  docker0 docker0  anywhere             anywhere            

Chain OUTPUT (policy ACCEPT 42020 packets, 5418K bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain DOCKER (1 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain DOCKER-ISOLATION-STAGE-1 (1 references)
 pkts bytes target     prot opt in     out     source               destination         
 2439  102K DOCKER-ISOLATION-STAGE-2  all  --  docker0 !docker0  anywhere             anywhere            
 5947 7793K RETURN     all  --  any    any     anywhere             anywhere            

Chain DOCKER-ISOLATION-STAGE-2 (1 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DROP       all  --  any    docker0  anywhere             anywhere            
 2439  102K RETURN     all  --  any    any     anywhere             anywhere            

Chain DOCKER-USER (1 references)
 pkts bytes target     prot opt in     out     source               destination         
 5947 7793K RETURN     all  --  any    any     anywhere             anywhere            

Посредством tcpdump посмотри приходят запросы на 443 порт или нет.

Если приходят, то следовательно проблемы в настройке веб сервера, пакетного фильтра, не настроен проброс порта на роутере, если он у тебя есть перед сервером.

Из внешнего мира можешь просто стучаться telnet:

telnet ip 443
anonymous
()
Ответ на: комментарий от anonymous

Роутера нет, провод напрямую в комп. telnet из внешки я пробовал: «Unable to connect…» хотя telnet служба то на серваке не запущена вроде.

А как tcpdump посмотреть правильно? На tcpdump port 443 валится прорва сообщений типа

14:08:30.738206 IP hellserver.33304 > srv194-139-240-87.vk.com.https: Flags [.], ack 40, win 501, options [nop,nop,TS val 2041228738 ecr 3293191943], length 0
14:08:30.749135 IP edge-star-shv-01-arn2.facebook.com.https > hellserver.54896: Flags [P.], seq 1:40, ack 39, win 269, options [nop,nop,TS val 678548878 ecr 865501625], length 39
14:08:30.749148 IP hellserver.54896 > edge-star-shv-01-arn2.facebook.com.https: Flags [.], ack 40, win 501, options [nop,nop,TS val 865501646 ecr 678548878], length 0
14:08:31.694936 IP hellserver.34420 > ec2-3-123-217-208.eu-central-1.compute.amazonaws.com.https: Flags [P.], seq 57:116, ack 58, win 622, options [nop,nop,TS val 766937678 ecr 149875808], length 59
Dzusan
() автор топика

Блин, ну в личном кабинете же опция «файрвол» есть.

zemidius
()
Ответ на: комментарий от Dzusan

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

tcpdump -ni any port 443

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

Ну и тебе там написали про настроку файрволл в личном кабинете, проверь.

anonymous
()

ЧЯДНТ?

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

Сделай извне еще

traceroute -T -p 443  твой.ip.адрес

Будет сделана трассировка прохождений tcp-пакетов (опция -T, по умолчанию icmp без порта) на порт 443.

Увидишь где коннект сдохнет. Если пройдет до тебя, то скорее всего проблемы у тебя. Если не пройдет, еще не факт, что у провайдера (у меня все tracerote-ы пару последних хопов всегда в *** ), но повод задуматься.

Еще неплохо бы nmap-ом и локально и извне проверить

nmap -sT  -p 443 твой.ip.адрес
praseodim ★★★★★
()
Последнее исправление: praseodim (всего исправлений: 1)

Непонятно какая OS. Сталкивался несколько раз, когда сервисы через systemd socket настроены были, но по факту не работали. systemcltl mask <srv.socket> и рестартуй сервис.

anonymous
()
Ответ на: комментарий от praseodim

Непонятно какая OS

Арч

Блин, ну в личном кабинете же опция «файрвол» есть.

Блин, ну я же написал уже, что отключил. И техподдержка даже подтвердила.

tcpdump -ni any port 443:

Закрыл все, что мог, примерно раз в секунду валятся сообщения вида

..... Flags [.], seq 0:48, ack 1, win 261, options [nop,nop,TS val 1873828165 ecr 5265233], length 48

Но ни одного с того айпишника, с которого стучусь браузером.

traceroute -T -p 443 твой.ip.адрес:

Всегда виснет на 13 шаге на IP 10.2.250.221, дальше только звезды. Порты 80, 1025, 1026 доходят до меня на 13 шаге. Порты 443, 444, 1024 всегда виснут на 10.2.250.221.

nmap -sT -p 443 твой.ip.адрес

  • 443 - filtered
  • 1024 - filtered
  • 1025 - closed
  • 80 - open

systemcltl mask <srv.socket>

Не понял тебя

Dzusan
() автор топика
Ответ на: комментарий от Dzusan

Кажется, что дело и правда в провайдере. Но как мне ему это доказать? Подключить чтоль другого провайдера по акции какой-нибудь для теста…

Dzusan
() автор топика
Ответ на: комментарий от Dzusan

443 - filtered

Порт прикрыт файрволом. Где-то думаю так, 99% что закрывает провайдер. 0.5% что твой роутер (если есть), 0.5% что с настройками что-то напортачил.

Для очистки совести на всякий случай сделай отдельную чистую инсталляцию (можно грузануться с livecd) и повесь там что-то на разные порты. По возможности воткни напрямую.

praseodim ★★★★★
()
Ответ на: комментарий от praseodim
  1. Сначала я переткнул кабель в ноут с таким же арчем, но без всяких серверных штучек. Запустил чат netcat на разных портах. Ровно та же история, что и на серваке.

  2. Загрузил винду на серваке (да, играю иногда). Запустил netcat на 443 - работает!

  3. Загрузился с арчевского лайва, netcat на 443 снова работает!

  4. Загрузился обратно на сервак. И что вы думаете? Все порты открыты.

Внимание, вопрос. Это билайн раздуплялся или у меня лыжи не едут?

Dzusan
() автор топика

Вообще бывает блокировка.

У МТС вроде по умолчанию до 1000 из-за безопасности блокируются. Надо что-то делать. Или что-то подобное на эту тему было.

Про Билайн вроде не должно, но проверить стоит.

fornlr ★★★★★
()
Ответ на: комментарий от Dzusan

Внимание, вопрос. Это билайн раздуплялся или у меня лыжи не едут?

Чудно. Может и раздупляется. Других объяснений что-то не приходит в голову.

praseodim ★★★★★
()
19 февраля 2022 г.

На днях столкнулся с совершенно идентичной проблемой. Вводные те же самые - домашний сервер, настройка обратного прокси, 443 порт, Билайн Москва.

Я несколько дней пытался разобраться, почему не работает, ища причину в самом сервере. И только сегодня дошёл до того, что дело в 443 порте, вспомнил про существование фаервола в кабинете Билайна, и нашёл эту тему.

Могу подтвердить - это Билайн раздуплился. Порт открылся примерно через час-полтора после смены настроек в ЛК Билайна. Причём перезагрузка роутера и передергивание кабеля не помогали, зато мгновенно помогла кнопка «Обновить IP» в Keenetic’е.

magratsk
()
Ответ на: комментарий от magratsk

зато мгновенно помогла кнопка «Обновить IP» в Keenetic’е.

Возможно совпадение. Я какое-то время назад отключал fw в лк пчёл, но не засекал по времени через сколько оно отключилось, было совсем не срочно, скорее на будущее.

anc ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.