Назад | Перейти на главную страницу

Публикуйте разные сайты, используя один IP и pfSense - Squid

Я новичок в pfSense, так что терпите меня, пожалуйста.

Подводя итог, у меня есть:

Чего я пытаюсь достичь:

Я читал, что pfSense может сделать этот трюк с помощью обратного прокси, я выполнил шаги, упомянутые здесь, чтобы включить его (за исключением использования того же порта 80 для внутренних сайтов): https://www.reddit.com/r/homelab/comments/2vyiiy/til_reverse_proxy_via_squid_in_pfsense/

Проблема:

Исправление проблем:

Вопросы:

Мы очень ценим любые дополнительные шаги или советы по устранению неполадок.

Решено:

Мне пришлось провести некоторое время с руководством по squid, настоятельно рекомендуется, чтобы действительно понять, как он работает: http://www.visolve.com/squid/whitepapers/reverseproxy.php

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

Советы и хитрости, применимые к моему сценарию:

  • Убедитесь, что разделение DNS выполнено правильно.
  • Убедитесь, что pfSense сначала использует ваш внутренний DNS. ИЛИ что у вас есть статические записи DNS на pfSense для локальных сайтов. (файлы хостов или статическая запись DNS-сервера пересылки)
  • Даже если вы не можете его использовать, вам необходимо настроить и включить прямой прокси-сервер, хотя нет необходимости включать прозрачный режим.
  • Прямой прокси должен быть включен ПЕРВЫМ, если вы включите обратный прокси без настройки прямого, все станет некрасиво.
  • Вам НЕ нужно сообщать pfSense о заголовках хоста, используемых в развертывании, если вы используете DNS с разделенным мозгом, в моем сценарии добавление заголовков хоста вызывало отключение службы squid.

Поскольку мне потребовалось некоторое время, чтобы понять это, я подумал, что лучше отвечу / заархивирую свои выводы, чтобы я мог помочь другим, кто застрял, как я,

Пошаговое руководство:

Шаг 1: Включите прямой прокси, перейдя в Services => Squid Proxy Server => General

  • Прокси-сервер Eanble Squid: Проверьте
  • Прокси-интерфейс: LAN
  • Порт прокси: 3128
  • Разрешить пользователям в интерфейсе: Проверено
  • Транспортный HTTP-прокси: НЕ проверено
  • SSL Man в средней фильтрации: НЕ проверено

Шаг 2: Включите обратный прокси, перейдя в Services => Squid Reverse Proxy => General

  • Обратный прокси-интерфейс: WAN
  • Внешнее полное доменное имя: в моем примере это должно быть xyd.com, просто верхнее доменное имя, ввод чего-либо еще вызвал ошибку, люди говорят, что, хотя это поле позволяет вам вводить только одно доменное имя, оно не помешает вам также проксировать разные доменные имена, если одно из них совпадает, но Однако я не могу подтвердить.
  • Сброс TCP-соединений при неавторизованных запросах: Проверено
  • Включить обратный прокси-сервер HTTP: Проверено
  • Обратный порт HTTP: 80

Выполните все вышеперечисленное и сохраните, прежде чем продолжить, убедитесь, что служба squid запущена и работает, перейдя по ссылке: Статус => Сервисы => Статус сервисов Squid Зеленый, если это не так, перепроверьте свою работу, пока она не появится.

Теперь пора определить сопоставления между внешним и внутренним DNS.

Шаг 3. Определите внутренние веб-серверы, выбрав Services => Squid Reverse Proxy => Web Servers.

  • Добавьте каждый внутренний веб-сервер (не веб-сайт или URL-адрес), нажав Добавить
  • Включить этот одноранговый узел: Проверено
  • Peer Alias: Имя внутреннего веб-сервера, просто имя для удобства обращения. из моего примера: Интернет / IIS
  • Peer IP: фактический внутренний IP-адрес, разрешенный DNS, из моего примера: 10.0.0.2
  • Peer Port: порт, который использует внутренний сайт, из моего примера: 80
  • Одноранговый протокол: HTTP

Когда вы закончите с этим, pfSense теперь знает, что существует внутренний веб-сервер с настройками, которые вы только что применили, теперь вам нужно сообщить ему, что имеет этот веб-сервер, определив сопоставления.

Шаг 4: Определите внутренние URL-адреса, перейдя в Services => Squid Reverse Proxy => Mappings

  • Включить этот URI: Проверено
  • Имя группы: любое имя, которое позволяет быстро идентифицировать URL-адреса или заголовки узлов, используемые в этой группе, я использовал что-то вроде "Группа перенаправления группы Web / IIS" РЕДАКТИРОВАТЬ: запись здесь длинных имен привела к сбою службы squid, пишите только короткие имена без пробелов.
  • Пиры: вы должны выбрать серверы, которые могут отвечать на URL-адреса, указанные в этой группе, из моего примера: Веб-сервер, указанный на предыдущем шаге: Интернет / IIS
  • Настройки URI: вы должны указать в заголовках хостов, доменных именах или URL-адресах, которые pfSense должен сопоставить в этой группе. Вот большое примечание: ТОЛЬКО пишите это, если у вас ВКЛЮЧЕН прозрачный режимдля моего примера прозрачный режим был выключен, поэтому Мне не нужно было писать заголовки хостов, доменные имена или URL-адреса.

Убедившись, что служба Squid все еще работает, я провел тест от внешнего пользователя и тада! это сработало :)