5813
правок
Kilpio (обсуждение | вклад) |
Kilpio (обсуждение | вклад) |
||
Строка 182: | Строка 182: | ||
</pre> | </pre> | ||
== VPN == | |||
Для доступа к контроллеру мы будем использовать OpenVPN. Предполагаем, что сервер уже есть, осталось установить и настроить клиент на контроллере. | |||
Чтобы обеспечить большую надежность, мы настраиваем на сервере с 2 IP-адресами два серверных процесса, один из которых слушает на порту 1194 TCP на IP1, а второй — на порту 1194 UDP на IP2. (Это не обязательно, вы можете использовать один сервер). | |||
На контроллере мы поднимаем 2 OpenVPN-клиента и явно задаем маршрут для IP2 через интерфейс ppp0 для одного из них. | |||
Установка OpenVPN — стандартная, с использованием open-rsa. | |||
Для этого на контроллере устанавливаем openvpn и easy-rsa: | |||
<pre>apt-get install openvpn easy-rsa</pre> | |||
Копируем | |||
<pre>cp -R /usr/share/easy-rsa /etc/openvpn/</pre> | |||
Копируем сертификат удостоверяющего центра <code>ca.crt</code> на контроллер в директорию <code>/etc/openvpn/easy-rsa/keys</code> | |||
В директории | |||
<code>/etc/openvpn/easy-rsa</code> | |||
создаем поддиректорию <code>keys</code>: | |||
<pre>mkdir keys && chmod 600 keys && cd keys</pre> | |||
Создаем запрос на подписывание сертификата (с именем, соответствующим серийному номеру контроллера, в данном случае A7ZO7UCC): | |||
<pre> | |||
cd /etc/openvpn/easy-rsa/ | |||
source ./vars | |||
ln -s openssl-1.0.0.cnf openssl.cnf | |||
./build-req A7ZO7UCC | |||
</pre> | |||
Копируем полученный запрос <code>A7ZO7UCC.csr</code> на сервер в произвольную директорию и подписываем его. | |||
<pre> | |||
cd /etc/openvpn/easy-rsa | |||
source ./vars | |||
./sign-req /root/certs/A7ZO7UCC | |||
</pre> | |||
Подписанный сертификат <code>A7ZO7UCC.crt</code> копируем на контроллер в директорию <code>/etc/openvpn/easy-rsa/keys</code>. | |||
На сервере в конфигурационном файле (<code>/etc/vpn/server.conf</code>) смотрим, какой файл соответствия клиент-адрес указан в параметре <code>ifconfig-pool-persists</code> и в этот файл добавляем адрес для клиента-контроллера из диапазона сетевых адресов, описанного в параметре <code>server</code> конфигурационного файла. | |||
Например, | |||
<pre> | |||
service openvpn stop | |||
mcedit /etc/openvpn/ipp.txt | |||
</pre> | |||
Добавляем строку <code>A7ZO7UCC,10.8.0.48</code> | |||
<pre>service openvpn start</pre> | |||
Для второго экземпляра сервера такую же операцию выполняем с его конфигурационными файлами, IP-адреса должны различаться, например, добавляем запись | |||
<code>A7ZO7UCC,10.9.0.48</code> | |||
Конфигурационные файлы для клиента на контроллере для двух соединений будем хранить в файлах <code>/etc/openvpn/client.conf</code> и <code>/etc/openvpn/client1.conf</code>. | |||
Содержимое файла настройки клиента: | |||
<pre> | |||
client | |||
dev tun | |||
proto udp | |||
remote vpn.mydomain.com 1194 | |||
resolv-retry infinite | |||
nobind | |||
persist-key | |||
persist-tun | |||
ca /etc/openvpn/easy-rsa/keys/ca.crt | |||
cert /etc/openvpn/easy-rsa/keys/A7ZO7UCC.crt | |||
key /etc/openvpn/easy-rsa/keys/A7ZO7UCC.key | |||
remote-cert-tls server | |||
verb 3 | |||
link-mtu 1542 | |||
keysize 128 | |||
#keysize 128 -- для совместимости с имеющимися клиентами | |||
</pre> | |||
В файле конфигурации второго vpn-подключения <code>сlient1.conf</code> замените <code>proto udp</code> на <code>proto tcp</code> и укажите второй IP-адрес сервера в параметре <code>remote</code>. | |||
Автозагрузка сервиса OpenVPN на контроллере включается командой: | |||
<pre>update-rc.d openvpn defaults</pre> | |||
Проверяем доступность сервера | |||
<code>ping 10.8.0.1</code> |
правок