| Настройка vtun в Debian |
|
|
|
| 08.01.14 15:29 |
|
Опишу настройку vtun для довольно экзотической задачи, которая тем не менее даёт хорошее представление о возможностях vtund.
Постановка задачи Имеется две локальные сети network1 и network2 за шлюзами gateway1 и gateway2 соответственно. Шлюз gateway1 имеет "белый" IP-адрес, а второй шлюз может выходить в интернет только через NAT на вышестоящем шлюзе nat_gateway: Требуется, чтобы сеть network1 могла ходить в сеть network2, но таким образом, чтобы узлы из сети network2 не знали о существовании каких-то других сетей, а считали, что с ними связывается непосредственно сам шлюз gateway2. То есть, необходимо на шлюзе gateway2 настроить трансляцию адресов network1 в локальный адрес шлюза gateway2.network1 ----gateway1---- internet ----O nat_gateway ----gateway2----network2 Сеть network1: 10.0.0.1/24 Сеть network2: 192.168.0.0/24 Доменное имя gateway1 в интернете - server.domain.tld. Настроим vtund на шлюзе gateway1 в режиме сервера В файл /etc/default/vtund внесём следующую строчку: RUN_SERVER=yesВ файле /etc/vtund.conf опишем конфигурацию сервера: options {
type stand;
port 5000;
bindaddr {
iface eth0;
};
ifconfig /sbin/ifconfig;
ip /sbin/ip;
firewall /sbin/iptables;
}
vpn1 {
passwd mysecret;
type tun;
proto tcp;
compress no;
encrypt yes;
keepalive yes;
stat yes;
multi killold;
up {
ifconfig "%% 192.168.1.1 pointopoint 192.168.1.2";
ip "route add 192.168.0.0/24 dev %%";
};
down {
ifconfig "%% down";
ip "route delete 192.168.0.0/24 dev %%";
};
}
Настроим vtund на шлюзе gateway2 в режиме клиентаВ файл /etc/default/vtund внесём следующие строчки: CLIENT0_NAME="vpn1" CLIENT0_HOST="server.domain.tld"В файле /etc/vtund.conf опишем конфигурацию клиента: options {
type stand;
port 5000;
ifconfig /sbin/ifconfig;
ip /sbin/ip;
firewall /sbin/iptables;
}
vpn1 {
passwd mysecret;
type tun;
proto tcp;
compress no;
encrypt yes;
stat yes;
persist yes;
srcaddr {
iface eth0;
};
up {
ifconfig "%% 192.168.1.2 pointopoint 192.168.1.1";
ip "route add 10.0.0.0/24 dev %%";
firewall "-t nat -A POSTROUTING -o eth0 -j MASQUERADE";
};
down {
ifconfig "%% down";
ip "route delete 10.0.0.0/24 dev %%";
firewall "-t nat -D POSTROUTING -o eth0 -j MASQUERADE";
};
}
Описание работы настроенной системыИтак, работать это будет следующим образом. Шлюз gateway2 устанавливает соединение со шлюзом gateway1, используя доменное имя сервера server.domain.tld, TCP-порт сервера 5000 и пароль mysecret. Между шлюзами устанавливается туннель точка-точка, через который шлюз gateway1 будет отправлять пакеты для сети network2 192.168.0.0/24, находящийся за шлюзом gateway2. В свою очередь, шлюз gateway2 будет отправлять пакеты для сети network1 10.0.0.0/24 через шлюз gateway1. При этом, если узел сети network1 10.0.0.0/24 попытается связаться с узлом из сети network2 192.168.0.0/24, шлюз gateway2 будет транслировать адреса сети network1 10.0.0.0/24 в свой локальный адрес (в терминологии iptables это называется SNAT или MASQUERADE). В случае обрыва соединения gateway2 будет самостоятельно переустанавливать подключение. gateway1, при этом, допускает подключение только одного клиента и все предыдущие подключения будут заменяться вновь установленными. Особенности, достоинства и недостатки Файл /etc/default/vtund допускает настройку установки до 10 клиентских соединений (легко увеличивается редактированием скрипта инициализации /etc/init.d/vtun). Количество соединений, принимаемых сервером, не ограничено - их можно настроить в файле /etc/vtund.conf. При этом vtund может быть одновременно клиентом для одной части соединений и сервером для другой части соединений. Из недостатков можно отметить только один - для каждого соединения необходимо прописывать собственные настройки, т.к. vtund не поддерживает встроенную возможность раздавать клиентам адреса из заранее заданного пула. Теоретически это можно реализовать с помощью внешних скриптов. Я считаю, что это не очень большой недостаток, т.к. этот недостаток является оборотной стороной достоинства vtund - простоты настройки (в отличие, например, от openvpn). При настройке vtund я воспользовался собственными переводами страниц руководства: vtund.conf(5) и vtund(8) dmesg | grep tun
dmesg | grep usbfs
uname -r sudo install /lib/modules/`uname -r`/kernel/drivers/net/dummy.ko /lib/modules/`uname -r`/kernel/net/tun.ko sudo depmod -a modprobe tun http://rus-linux.net/MyLDP/sec/vpn/vtun_2.html
# apt-get install vtun # apt-get install liblzo-dev # apt-get install libssl-dev. # apt-get install vtund {jcomments on}
|
| Последнее обновление 08.01.14 17:23 |




