PermLUG
|
Пермская группа пользователей Linux |
|
ОблакоВход для пользователейНавигация |
OpenVPN, пример использования![]() Приведу небольшой пример, как объединить две сети, географически удалённые друг от друга. Используем Linux, OpenVPN. Расположение и структура файлов от fedora core. ddns-update-style none;
ignore client-updates;
subnet 192.168.0.0 netmask 255.255.255.0 {
option routers 192.168.0.1;
option subnet-mask 255.255.255.0;
option domain-name "mynetwork";
option domain-name-servers 192.168.0.1;
range 192.168.0.10 192.168.0.200;
}для fw2 ddns-update-style none;
ignore client-updates;
subnet 192.168.0.0 netmask 255.255.255.0 {
option routers 192.168.0.2;
option subnet-mask 255.255.255.0;
option domain-name "mynetwork";
option domain-name-servers 192.168.0.2;
range 192.168.0.201 192.168.0.254;
}Как видно, диапазоны ip не пересекаются. Кроме того, на каждом шлюзе установим bind для кэширования dns-запросов и поддержания локальной dns. Не буду приводить полный файл конфигурации, желающие найдут нужную информацию. Предположим, что это /etc/named.conf. fw1: options {
directory "/var/named";
forwarders {
/* тут ip сервера dns для первого провайдера */
};
allow-transfer { 192.168.0.2; };
allow-query { 192.168.0.0/24; };
};
/* локальный домен mynetwork. Описание зоны в файле /var/named/mynetwork */
zone "mynetwork" {
type master;
file "mynetwork";
};
fw2: options {
directory "/var/named";
forwarders {
/* тут ip сервера dns для второго провайдера */
};
allow-transfer { none; };
allow-query { 192.168.0.0/24; };
};
/* локальный домен mynetwork. Дамп зоны в файле /var/named/mynetwork */
zone "mynetwork" {
type slave;
masters { 192.168.0.1; };
file "mynetwork.dump";
};Таким образом, мы минимализируем запросы к локальной dns между сетями, что сэкономит трафик и уменьшит нагрузку на сеть, а так же обеспечит некоторую отказоустойчивость. Приступим к конфигурации openvpn. Советы по начальной установке и подробную инструкцию тоже пропущу. Кому надо - найдут. Шаги такие:
Примемся за конфиг fw1 (тоже приведён не весь) /etc/openvpn/server.conf port 1194 ;протокол udp выбран из-за меньшей нагрузки на сеть в сравнении с tcp proto udp dev tap ca /etc/openvpn/keys/ca.crt cert /etc/openvpn/keys/server.crt key /etc/openvpn/keys/server.key # This file should be kept secret server-bridge 192.168.0.1 255.255.255.0 192.168.0.3 192.168.0.9 ; обеспечим сжатие comp-lzo В данном случае мы указываем, что openvpn запускается в качестве сервера с адресом 192.168.0.1, маской /24 и выдаёт адреса от .3 до .9 , слушает порт 1194 (стандартный), использует устройство tap (об этом чуть позже). fw2: /etc/openvpn/client.conf client dev tap proto udp remote ip_of_fw1 1194 resolv-retry infinite nobind ca keys/ca.crt cert keys/clnt.crt key keys/clnt.key comp-lzo up /etc/openvpn/addiftobr Здесь мы указываем, чтобы клиент (client) соединялся с fw1 по внешнему адресу последнего и после этого запускал скрипт /etc/openvpn/addiftobr Сам скрипт не сложен: #!/bin/sh /usr/sbin/brctl addif br0 tap0 /sbin/ifconfig tap0 0.0.0.0 promisc up Смысл такой. На fw1 подымается мост (bridge) br0: /etc/sysconfig/network-scripts/ifcfg-br0: DEVICE=br0 TYPE=Bridge BOOTPROTO=static IPADDR=192.168.0.1 NETMASK=255.255.255.0 ONBOOT=yes DELAY=0 в него складывается интерфейс внутренней сети (предположим, eth0): DEVICE=eth0 ONBOOT=yes BOOTPROTO=static TYPE=Ethernet BRIDGE=br0 После запуска openvpn в качестве сервера, автоматически создаётся устройство tap0, через которое демон гоняет свой трафик. А tap0 тоже складывается в br0. На fw2 почти так же. Создаётся мост, куда помещается внутренний интерфейс. ip у моста статический 192.168.0.2. Подробнее о мостах ищите в документации. После запуска openvpn в качестве клиента создастся устройство tap0 и выполнится скрипт помещения его в мост. И не забываем перекрыть пакеты dhcp через Интернет: iptables -A FORWARD -p udp -m udp --dport 67 -j DROPна обоих шлюзах. Если всё получится успешно, то мы можем без проблем пользоваться ресурсами сети как единым целым, не боясь за безопасность, ведь трафик шифруется.
|
Новые записи в блогахАктивные обсуждения форума
|
| Пермская группа пользователей Linux, 2003—2008 |