В настоящее время широкое распространение получили Wi-Fi сети. Подробнее, о том что из себя представляют Wi-Fi сети можно почитать в WikiPedia. Для нас главным достоинством Wi-Fi сети будет тот факт что можно соединить два компьютера не прокладывая кабель. Это достоинство особенно ценно, если нужно проложить кабель по чужой территории.
Итак... Нам предстоит решить следующую задачу: соединить в единую сеть территориально разнесенные локальные сети. Прокладка кабеля исключается, т.к. в этом случае он пройдет по "чужой" территории.
Казалось, что сложного? Добавили в каждую из сетей по точке доступа, прописали идентификатор сети SSID и все, сети у нас работают. Однако есть одно "но".
Несмотря на все достоинства Wi-Fi сетей, эти сети обладают очень серьезным недостатком в плане защищенности - в большей степени подвержены прослушиванию, чем проводные. Что в свою очередь может привести как минимум к несанкционированному доступу к информации или даже к проникновению постороннего в вашу локальную сеть.
Для защиты Wi-Fi сетей применяеются различные алгоритмы шифрования: WEP, WPA и WPA2. Но в реальной жизни этих методов оказывается недостаточно, и многие организации используют дополнительное шифрование (например VPN) для защиты от вторжения.
Чтобы использовать дополнительное шифрования, мы подключим точки доступа Wi-Fi (вместо точек доступа можно использовать и сетевые платы Wi-Fi) не напрямую к локальным сетям а к специальным шлюзам, как показано на рисунке.
На шлюзах будет использоваться ОС Linux, в качестве фаервола будет использоваться iptables, для организации VPN будет использоваться пакет OpenVPN.
Каждый из шлюзов настраивается таким образом, чтобы он не пропускал и не принимал никаких данных приходящих из сети Wi-Fi кроме пакетов предназначенныхOpenVPN. Настройка политик iptables рассмаривалась в статье Модель безопасности в сети VPN. Сам пакет OpenVPN хорошо документирован и для нашего случая можно применить конфигурацию одного из примеров, только нужно сгенерировать сови собственные SSL-сертификаты.
На каждом из шлюзов маршрутизация пакетов настраивается таким образом, чтобы пакеты адресованные в удаленную сеть отравлялись не на интерфейс подсоединенный к Wi-Fi сети а на интерфейс OpenVPN.
Допустим что интерфейс OpenVPN на шлюзе будет называться tap0
, тогда правила маршрутизации для сети 10.0.1.0/24
будут выглядеть следующим образом:
ip route add 10.0.2.0/24 via 10.0.254.2 dev tap0
где 10.0.254.2
IP-адрес интерфейса OpenVPN шлюза второй удаленной сети. Соответственно, правила маршрутизации для сети 10.0.2.0/24
будут выглядеть следующим образом:
ip route add 10.0.1.0/24 via 10.0.254.1 dev tap0
где 10.0.254.1
IP-адрес интерфейса OpenVPN шлюза первой удаленной сети.
Пользователи мобильных компьютеров, также смогут подключаться к сети используя Wi-Fi и OpenVPN, за той лишь разницей что реальный "рабочий" IP-адрес у таких компьютеров будет из пространства сети OpenVPN (на рисунке показано зеленым цветом), например 10.0.254.105
. Соответственно, правила маршрутизации для таких компьютеров будут выглядеть следующим образом:
ip route add 10.0.1.0/24 via 10.0.254.1 dev tap0
ip route add 10.0.2.0/24 via 10.0.254.2 dev tap0