Конфигурация следующая:
Предусловия
Подробная инструкция
aptitude install openvpn openssl
- Копируем скрипты генерации сертификатов и ключей
cp -R /usr/share/doc/openvpn/examples/easy-rsa /etc/openvpn/
vi /etc/openvpn/easy-rsa/vars
export KEY_COUNTRY=RU export KEY_PROVINCE=RU export KEY_CITY=MOSCOW export KEY_ORG=Firends export KEY_EMAIL=
rgreen@friends.example.com
- Инициализируем PKI (Public Key Infrastructure)
cd /etc/openvpn/easy-rsa/ . ./vars ./clean-all
- Генерируем Certificate Authority (CA) сертификат и ключ
./build-ca
Большинство параметров подхватятся из файла vars. Только параметр Common Name надо указать явно
Common Name (eg, your name or your server's hostname) [ ]: Firends
- Генерируем параметры Диффи - Хеллмана
./build-dh
- Генерируем сертификат и секретный ключ сервера
./build-key-server server
Все параметры принимаем по умолчанию. На запрос Common Name вводим server
Common Name (eg, your name or your server's hostname) [ ]:server
На вопросы Sign the certificate? и 1 out of 1 certificate requests certified, commit? отвечаем положительно
Sign the certificate? [y/n]:y 1 out of 1 certificate requests certified, commit? [y/n]y
- Конфигурируем OpenVPN - сервер. Базовый конфиг можно взять с нашего сайта:
cd /etc/openvpn/ wget www.netlly.com/file_stuff/server.conf
Правим конфиг
vi server.conf
В строке
push "route 192.168.17.0 255.255.255.0"
Вместо
192.168.17.0
Прописываем адрес Вашей локальной сети. Запускаем OpenVPN-сервер:
/etc/init.d/openvpn start
- Правим фаервольный скрипт
vi /usr/local/bin/set_firewall_iptables
В разделе 1.6 Other Configuration файервольного скрипта добавляем параметры:
OPENVPN_IFACE="tun+" OPENVPN_PORT="1194"
4.1.3 Create content in userspecified chains --- UDP Ports:
$IPTABLES -A udp_packets -p UDP -s 0/0 --destination-port $OPENVPN_PORT -j ACCEPT
4.1.4 INPUT chain --- Rules for special networks not part of the Internet:
$IPTABLES -A INPUT -p ALL -i $OPENVPN_IFACE -j ACCEPT
4.1.5 FORWARD chain --- Accept the packets we actually want to forward:
$IPTABLES -A FORWARD -i $OPENVPN_IFACE -j ACCEPT $IPTABLES -A FORWARD -o $OPENVPN_IFACE -j ACCEPT
4.1.6 OUTPUT chain --- Special OUTPUT rules to decide which IP's to allow:
$IPTABLES -A FORWARD -i $OPENVPN_IFACE -j ACCEPT $IPTABLES -A FORWARD -o $OPENVPN_IFACE -j ACCEPT
Запускаем подправленный скрипт
/usr/local/bin/set_firewall_iptables
- Осталось создать сертификаты и ключи для клиентов. Сначала инициализируем параметры:
cd /etc/openvpn/easy-rsa/ . ./vars
Генерируем сертификат и ключ (для генерации защищенных паролем ключей можно использовать скрипт build-key-pass)
./build-key rgreen
Большинство параметров подхватятся из файла vars. Только параметр Common Name надо указать явно, и его значение должно быть таким же, как и параметр вызова скрипта build-key
Common Name (eg, your name or your server's hostname) [ ]:rgreen
На вопросы Sign the certificate? и 1 out of 1 certificate requests certified, commit? отвечаем положительно
Sign the certificate? [y/n]:y 1 out of 1 certificate requests certified, commit? [y/n]y
- Для подключения клиенту понадобятся три файла:
/etc/openvpn/easy-rsa/keys/ca.crt /etc/openvpn/easy-rsa/keys/rgreen.crt /etc/openvpn/easy-rsa/keys/rgreen.key
В OpenVPN конфигурационном файле клиента надо прописать
remote 192.168.7.123 1194 ca ca.crt cert rgreen.crt key rgreen.key
Пример настройки клиента Windows XP можно посмотреть здесь.
Источник: http://www.netlly.ru/blog/debianopenvpn |