4

У меня был другой вопрос на сайте askUbuntu, и я перенес эту версию с вопроса о сбое сервера, так как я считаю, что Super User - это лучшее место, где можно его задать .

Фон:

У меня есть локальная (Drupal) среда разработки, состоящая из сервера LAMP, работающего на виртуализированной ОС Xubuntu 12.04 с хост-ОС Ubuntu 12.04. Мостовая сеть не включена.

Я хотел бы начать экспериментировать с аспектами интеграции Web 2.0 в Drupal (т.е. Интеграция с YouTube и Facebook), но все эти сайты блокируются режимом массовой фильтрации, который включает как минимум блокировку IP-адресов, DNS-фильтрацию, URL-фильтрацию и фильтрацию пакетов - и использует пакеты для сброса соединения для обеспечения соблюдения этих правил. Похоже, что некоторые интернет-провайдеры также используют глубокую фильтрацию пакетов для обнаружения ssh-туннелей, которые затем ограничиваются пропускной способностью - к счастью, мой интернет-провайдер в моей квартире в настоящее время этого не делает. Иностранцам не запрещено использовать прокси /vpns / и т.д. до тех пор, пока они не используют их, чтобы нарушить закон (то есть делиться запрещенными материалами с гражданами Китая).

Для обычного просмотра веб-страниц и других задач, требующих доступа к заблокированному контенту, я использую туннель ssh к серверу (Ubuntu Server 10.04, с включенными только ssh и openvpn) в другой стране в качестве прокси-сервера socks5. Chromium и Firefox могут отправлять DNS-запросы через прокси-сервер socks5 (первый по умолчанию, а второй - путем изменения настроек конфигурации). Это решение отлично работает для всех подключений на стороне браузера к закрытым сайтам.

Тем не менее, многие из модулей Drupal для интробации web 2.0 также требуют, чтобы сам сервер запрашивал ограниченные внешние сайты.

Мой вопрос:

Каков наилучший способ прохождения через мой ssh-туннель и прохождения режима фильтрации:

  • Все внешние запросы и DNS-запросы с моего сервера Apache2,

или же

  • Только запросы (и DNS-запросы) с моего сервера Apache2 на указанные хосты?

Рассмотренные / Попытки Решений

  • Простейшим решением было бы использовать сервер LAMP на машине вне режима фильтрации (тот, к которому я обращаюсь). Однако я предпочел бы не делать этого по ряду причин (нет физического доступа к этой машине, если что-то пойдет не так, устаревшее оборудование, если я потеряю соединение с этим сервером, я не смогу продолжить разработку и т.д.)
  • Использовать глобальные настройки прокси-сервера - Xubuntu не имеет возможности для глобальных настроек socks5, согласно моим исследованиям. Также я не знаю, поймет ли это мои DNS-запросы.

  • используйте tsocks: кажется, это лучший кандидат, но у меня есть две проблемы / вопросы:

    1. Где находится скрипт, который запускает / перезапускает Apache2, чтобы я мог вводить эти команды с помощью tsocks?

    2. Как мне перехватить и перенаправить DNS-запросы через прокси socks5?

      Редактирование файла /etc/hosts/ предоставляет ограниченный обходной путь, но такие сайты, как youtube.com, загружают мультимедиа и другой контент с такого количества внешних сайтов (и, следовательно, URL-адресов), что отслеживать все эти (возможно, сброс подключения) сторонние URL-адреса практически невозможно , Использование socat для захвата, преобразования и отправки трафика UDP через прокси-сервер socks5 (как описано здесь) кажется хорошим решением, но я не смог реализовать его, как описано в связанном руководстве. (Если подтверждено, что использование socat является правильным способом решения моей проблемы, я могу опубликовать команды, которые я использую, для проверки)

1 ответ1

1

Apache на самом деле не устанавливает исходящие соединения; PHP есть. Так что PHP должен общаться с прокси SOCKS.

Соответствующий: https://stackoverflow.com/questions/10490962/establishing-socket-connection-in-php-using-socks-proxy

Было бы проще, если бы у вас был HTTP-прокси, и проще всего с VPN. Возможно, вам стоит еще раз настроить OpenVPN?

Кроме того, вы можете настроить Privoxy на своем сервере для взаимодействия с прокси-сервером SOCKS, а затем настроить PHP для использования Privoxy в качестве HTTP-прокси.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .