Мне нужно создать прокси-сервер только для шифрования. Под этим я подразумеваю, что из любой точки мира я хотел бы, чтобы весь интернет-трафик ноутбуков компании был зашифрован и направлялся через этот единственный сервер. Кэширование было бы неплохо, но не обязательно; шифрование между ноутбуком и сервером — единственное требование.
Каковы некоторые способы выполнения этой настройки? Я читал о Squid, но не нашел слишком много информации о шифровании. Я предполагаю, что будут задействованы SSL или SSH, но я действительно новичок в этой области. Браузеры будут основными пользователями соединения, хотя поддержка клиентов IM и электронной почты также была бы неплохой. Клиентами будут Windows и nix, а сервером может быть что угодно с открытым исходным кодом.
Редактировать:Было ясно, что VPN будет лучшим решением, чем прокси. Прежде чем я приму ответ, может ли кто-нибудь прокомментировать это:
Что происходит, когда ноутбуки подключаются к другой корпоративной сети? Например, консультанты сидят в офисе компании ABC. Им нужно открыть сайт интрасети, например myabc.internal.com, по какой-то причине. Я считаю, что DNS-серверы интрасети обычно решают эту проблему правильно. Если я подключен к этому VPN, будет ли это работать? Я понимаю, что браузер, подключенный к прокси, будет иметь ту же проблему, но у вас может быть два браузера: один через прокси, другой нет. Или это не будет проблемой с VPN?
решение1
Я согласен с pjz — похоже, вы ищете VPN.
OpenVPN — отличный бесплатный метод начать работу с VPN. Он стабилен и готов к использованию в производстве, но даже если вы не будете его использовать, это хороший инструмент для знакомства с VPN. Его очень легко настроить со статическими ключами (для экспериментов), и лишь немного сложнее настроить с сертификатами (для использования в производстве).
- http://openvpn.net/static.html- Мини-HOWTO по статическому ключу. Не рекомендуется для безопасности, но это отличный способ почувствовать, как работает OpenVPN, прежде чем углубляться в простую PKI.
- http://openvpn.net/howto.html
В своем вопросе вы говорите "Интернет-трафик", но неясно, означает ли это только просмотр веб-сайтов или буквально весь IP-трафик в Интернет. Вы можете передать маршрут "шлюза по умолчанию" клиенту с OpenVPN, так что его трафик, связанный с Интернетом, будет направлен вниз по "трубе" OpenVPN к серверу, который затем может вывести его в Интернет.
Если вы хотите, чтобы HTTP/HTTPS направлялся только по OpenVPN (т. е. если они выполняют PING, запускают Skype и т. д., этот трафик может напрямую попадать в Интернет), вы можете рассмотреть возможность развертывания чего-то вроде Squid Cache, а затем настроить клиентские браузеры на использование этого прокси-сервера таким образом, чтобы трафик на прокси направлялся только по «трубе» OpenVPN (т. е. поместить прокси на IP-адрес, доступный через VPN, но оставить шлюз клиента по умолчанию в покое). (Я полагаю, вы даже можете сделать «push “dhcp-option 252 ...», чтобы передать URL-адрес автоконфигурации прокси-сервера клиентам через OpenVPN.)
У вас есть несколько вариантов, в зависимости от того, что вы хотите сделать.
re: ваш комментарий к pjz о доступе к сайту Интранет
Вам придется как-то за это «платить».
Если вы просто направляете весь их интернет-трафик вниз по VPN через шлюз по умолчанию, любой трафик к веб-серверам в подсети с ними все равно будет "идти напрямую". Однако, если веб-сервер интрасети находится в другой подсети, их трафик к этой подсети будет идти по каналу OpenVPN вместо маршрутизатора на месте. Это было бы плохо.
Если вы выполнили мое предложение выше и передали скрипт автоконфигурации прокси клиентам через OpenVPN (или каким-либо другим способом), вы могли бы поместить "исключения" в этот файл, чтобы заставить клиентов "идти напрямую". Я обычно делаю это в файлах автоконфигурации прокси с помощью:
if ( isPlainHostName(host) ) { return "DIRECT"; }
Это позволяет получить прямой доступ к именам хостов, не содержащим точек.
Если вы знаете конкретный хост (или шаблон соответствия подстановочных знаков), к которому необходимо получить прямой доступ:
if ( shExpMatch(url,"http://*.customer.com")) { return "DIRECT"; }
if ( shExpMatch(url,"http://known-intranet-server.customer.com")) { return "DIRECT"; }
Если вы знаете, где будут работать ваши пользователи, вы можете заранее внести исключения в файл proxy-autoconfiguraiion. Если же нет, вам придется реагировать на такие проблемы. Если же вы не знаете заранее, вы просите решение, которое может «сделать правильное дело» автоматически. К сожалению, компьютеры с этим справляются ужасно. >улыбка<
Я бы потратил дополнительное время на то, что вы развернете, чтобы использовать файлы автоконфигурации прокси. Это дает вам централизованный метод (который можно обновлять «на лету», не касаясь клиентских компьютеров) для управления перенаправлением HTTP-трафика на прокси-сервер или пропусканием его напрямую в Интернет. Они удивительно удобны для такого рода приложений.
решение2
Похоже, вам больше нужен VPN, чем прокси-сервер, или, по крайней мере, то, что вам нужно, проще всего осуществить с помощью VPN-сервера, к которому подключены все ноутбуки. Прокси-сервер не шифрует трафик между своими клиентами и собой (за исключением некоторых определенных серверов приложений), хотя в этом и заключается смысл существования VPN-сервера.
Что касается самих VPN-серверов, мне повезло с запускомопенвпнс клиентами Linux, Windows и Mac.
решение3
«Я бы хотел, чтобы весь интернет-трафик ноутбуков компании был зашифрован и направлялся через этот единый сервер».
«Браузеры будут основными пользователями соединения, хотя поддержка клиентов обмена мгновенными сообщениями и электронной почты также была бы неплохой».
Описанные вами сервис и функциональные возможности представляют собой VPN, хотя некоторые люди считают свой VPN сетевым оборудованием, предоставляющим сервис сетевого уровня, и не называют его «сервером».
VPN — это правильный выбор, поскольку речь идет о защите всего трафика на сетевом уровне и перенаправлении его на один хост, предоставляющий услуги.
VPN будет работать в частных корпоративных сетях, когда вы посещаете их сайт, при условии, что эта сеть разрешает доступ к публичной сети (и не блокирует доступ к IP-адресам вашего VPN-хоста).
Единственное ограничение заключается в том, что большинство программных клиентских VPN-приложений работают по принципу «все или ничего», они оборачивают весь трафик из вашей системы (по сути, они отказываются доверять локальным сетевым службам других пользователей). Если вам нужно работать в локальной сети и в своей сети, то простым и модным решением будет запустить VPN-подключение на небольшой виртуализированной системе (например, VMWare) и разрешить вашей основной/хостовой ОС получать доступ к локальному доступу обычным образом.
Что касается (веб) прокси:
Давным-давно существовало несколько видов прокси-серверов приложений, но Интернет превратил «прокси» в общепринятое использование «веб-прокси». Эти прокси-серверы обычно не используют шифрование, хотя могли бы. Но они ориентированы на «веб/интернет», они обычно прокси-серверы HTTP, HTTPS, FTP и Gopher. Они не могут работать с электронной почтой или IM.