Приветствую всех гуру АйТи и просто разбирающихся людей.
В ходе попыток перенести хранение информации на собственные мощности, столкнулся с одной неприятной проблемой.
Имеется небогатый опыт, пригоршня железа и желание покоммуницировать со внешним миром.
В наличии (список по нисходящей от ввода до конечных устройств):
Статический IP; // условно 91.91.91.91
Медиаконвертер SNR-CVT-100B-V2;
Роутер Archer AX1500; // условно 192.168.0.1
Коммутатор TP-Link TL-SL2210WEB;
Межсетовой экран Cisco ASA 5510; //временно не используется, но я так понимаю, что его запуск, в режиме файерволла, никак не повлияет на адресацию
Два Цисковских сервера; // условно 192.168.0.S1 и 192.168.0.S2
Куча всякой мелочевки типа ТВ, компов и прочего. //на них с адресацией вопросов нет, всё нормально работает
Сам вопрос:
На цисковском железе крутится несколько виртуалок, но нормально пробиться на них из внешнего мира получается только в случае, если IP, какой либо из них, внести в DMZ роутера, остальные попытки открыть порты, путем прописывания их в таблицу Port Triggering и "Перенаправление порта", не приводят ни к чему, порты недоступны. UPnP включено. Как правильно реализовать доступ к виртуалкам из интернета?
Хочу развернуть Immich, NextCloud, почтовик и хостинг своего сайта.
Пытаться поднять всё на одной виртуалке - идея очевидная, но плохая.
Вот многое понял и вкурил, а нормально порты настроить не могу ((
Выручайте, или советом, или ссылкой на литературу.
__
Как было подсказано, ASA можно использовать в качестве роутера. Но, т.к. в маршрутизации плаваю и нет опыта в настройке такого оборудования, как-то боязно заворачивать через 5510 весь входящий трафик, хотел оставить и в дальнейшем настроить его в качестве файерволла.
Если настройка 5510 самый рабочий вариант, если не сложно, был бы благодарен за пару примеров того как настраивать это добро, только простым языком.
Если быть совсем честным, так и не могу вкурить как работает вообще доступ через порты. Если я указываю IP устройства, условно 192.168.0.S1, внешний порт 2283 и внутренний порт 2283 и, допустим, TCP.
По идее, стучась на свой внешний условный 91.91.91.91:2283 трафик должен быть перенаправлен на 192.168.0.S1:2283, я же правильно понимаю?
Тапками сильно не кидайтесь, я только с виду тупонький, учусь быстро ))
Спасибо за ответ.
Вероятнее всего у провайдера тоже стоит NAT, но тогда почему нормально работает доступ к портам при внесении IP в DMZ?
Цисковские сервера - это пара Cisco UCS C200 M2 с Proxmox на борту, купленных в попытках экономии, вместо того что бы поставить кошерный Synology и не делать ни себе, ни людям мозг.
Но я же не ищу лёгких путей.
в случае перенаправления HTTP.
А если я решу HTTPS завернуть с самовыпущенным сертификатом, всё станет сложнее?
З.Ы. Еще раз извиняюсь, за глупые вопросы. Последний раз с сетью работал лет 18 назад, потом жизнь увела в сторону металлообработки и промышленной автоматизации. Немного спасает то, что с *NIX дорожки пересекались, за пару месяцев (в конце сентября приобрел серверы) Proxmox и виртуалки, более или менее, освоил.
Очевидно вы сидите не за NAT-ом провайдера, вам выделен отдельный белый IP. И это хорошо. Теперь просто настраиваете порты (по аналогии с 2283) - и всё заработает.
Разумеется порты 80 (HTTP) и 443 (HTTPS) можно будет пробросить только на один сервер/виртуалку. Ну и если в разных виртуалках найдутся одинаковые используемые порты - это будет проблема. Для HTTP(S) есть простой выход - использовать reverse proxy, например повсеместный Nginx: он будет принимать все коннекты на 80/443 порты, и уже сам коннектится к нужному локальному WEB-серверу, обеспечивающему работу конкретного доменного имени (именно по домену нему выбирется сервер, который обязан обработать некий HTTP-запрос).
AUser0, благодарю что откликнулись..
Самое обидное, что как раз таки порты, благо, не пересекаются, по крайней мере до запуска почтового сервера и хостинга. Надеюсь, что с ними тоже не пересекутся.
Даже после прописывания их в раздел "Перенаправление порта"
и "Port Triggering"
порты всё равно остаются недоступными из внешнего мира.
Не исключаю, что добавив их в оба этих раздела, я создал какую-то петлю, но пока порт был прописан только "Port Triggering", он точно не прозванивался ):
Попробуйте оставить только в разделе "Перенаправление порта". Вы же снаружи пытаетесь пробиться. А "Port Triggering" это, возможно, для случая, когда вы из своей сети идете в интернет. Классический NAT. А сервис ведь инициатором запросов не является (он только отвечает на запросы).
Проверьте просто на компьютере, поднимите на нём простой web-сервер и проверьте. При этом снаружи используйте порт, отличный от 80 (может использоваться вебкой роутера).
relen
Спасибо, домой доберусь - попробую. Мысль с тем что что-то лишнее меня не покидала )
@AUser0
А настройки порта 2283 целиком и полностью (кроме номеров портов) повторяют настройки для работаюших портов?
Мне, для Immich как раз этот порт и нужен.
Больше портов, кроме 443 и 80 мне пока не нужно было открывать.
Вчера ночью ковырялся, добавил сервер NextCloud в DMZ и с ПК вроде всё работало, сейчас добрался до работы, а оттуда по внешнему IP (который условно 91.91.91.91) открывается вебморда роутера *crazy*. До этого добавлял Immich в DMZ и всё работало отлично, правда Иммичу для доступа надо стучаться в определенный порт, а у НекстКлауда доступ просто по IP.
Веб сервер — это следующая ступень, которую я собирался осваивать, надеюсь что в ближайшее время что-то подниму. Пробовал Вордпресс поставить, но это совпало с неудачной попыткой создать кластер из двух серверов, поэтому пощупать я его не успел.
_____
Чувствую, что надо зачищать таблицы в разделе NAT, на роутере, и прописывать всё с нуля, видимо я там каши уже наварил.
Петровский, понял, спасибо. Сейчас ставлю виртуалку для тестов, как станет - попробую.
Не хочется конечно лезть в настройки роутера через AnyDesk, а то говорят есть примета, если настраивать конфиги роутера по удаленке это к дальней поездке.
[UPD]
Прописал порт 80 на IP сервера NextCloud в разделе "Перенаправление портов" и он нормально завелся.
Да, вероятнее всего раздел "Port Triggering" надо очищать, он, в данной ситуации не нужен.
Петровский, уиии.. *картинка с Матроскиным* Заработало!
Действительно, необходимо было зачистить порт триггеринг и тогда порты начали работать адекватно.
Теперь буду раскуривать мануалы, как правильно работать с портами.
Я же правильно понимаю, что я могу прописать правила для открытия портов, по условной схеме
Внешний порт: 1234
Внутренний порт: 80
IP: 192.168.0.S1
И при попытке зайти на условный внешний IP 91.91.91.91:1234 я буду перенаправлен в порт 80 устройства 192.168.0.S1 ?
Конечно. Но надо ориентироваться на порт 443 и HTTPS. Для этого вам нужно терминировать запросы на обратном прокси. Можно использовать Nginx, но я рекомендую Caddy из-за простоты.
При этом работать с портами не понадобится, достаточно будет поддоменов.
Петровский, https это, судя по всему, отдельная история. Как я понимаю, там надо будет раскуривать концепцию с SSL, а я пока работу с сертификатами на освоил.
Схема такова: 80/443 перенаправляются на Caddy, который сам получает сертификаты и на основании доменного имени в запросе направляет во внутренней сети запросы на нужные ip/port.
Петровский, я так и понял.
Для того что бы не хакнули, я как раз хотел настроить ASA5510. Теперь стало чуть больше понимания в процессах маршрутизации и работе с портами. Но ваш вариант, вероятнее всего будет быстрее и проще, а АСА станет сверху как дополнительный уровень безопасности, особенно если смогу осилить настройку комплектного модуля SSM-10.
Всем участникам дискуссии, огромная благодарность, за то что не отказали в помощи аматору (:
Петровский, Caddy запустил, а вот в порты играл и проиграл.
Т.е. прописывание в перенаправлении портов 80 и 443 на IP виртуалки с Caddy или добавление IP Caddy в DMZ не помогает, или же не открывается ничего (при DMZ), или открывается вебморда роутера (при прописанных портах 80 и 443). Причем при прописанном 443, он всё равно виден закрытым.
Но получилось дать доступ к виртуалке, которой нужен 80-й порт, через другой внешний (2286) и эта переадресация портов сработала.
Сейчас таблица адрессации выглядит вот так, DMZ выключен, если он включен, то почти по всем портам, кроме 2283, открывается NextCloud.
Зато прописал у хостера IP сервера и теперь по url сайта можно зайти вебморду роутера (:
Петровский, понял, значит придется осваивать проброс портов и настройку ASA.
С другой стороны, мозги хоть не застаиваются, давно уже такие объемы новой информации не приходилось усваивать.
Выкинуть убогий роутер, воткнуть провайдера в ASA, организовать для торчащих наружу сервисов отдельный сегмент, а в идеале отдельный контекст, и настроить dnat как душе угодно. Веб сервисы лучше выпускать через реверс прокси(nginx) - не будет геморроя с портами и SSL.
организовать для торчащих наружу сервисов отдельный сегмент, а в идеале отдельный контекст, и настроить dnat как душе угодно
тут еще непонятно
Веб сервисы лучше выпускать через реверс прокси(nginx) - не будет геморроя с портами и SSL
- тут уже понятно ))
запустил Caddy, т.к. его советовали выше, да и нагрузки большой у меня не предполагается, но почему-то всё равно не смог в порты.
Т.е. прописывание в перенаправлении портов 80 и 443 на IP виртуалки с Caddy или добавление IP Caddy в DMZ не помогает, или же не открывается ничего (при DMZ), или открывается вебморда роутера (при прописанных портах 80 и 443). Причем при прописанном 443, он всё равно виден закрытым.
С ASA только начал разбираться.