Ниже — описание установки вручную. webmin-openvpn — как сделать быстро и просто.
net.ipv4.ip_forward = 1 !!!!!
Наконец нашёл простое руководство как настроить OpenVPN с выдачей кучи сертификатов нескольким пользователям.
Единственная ошибка:
Please enter the following ‘extra’ attributes to be sent with your certificate request A challenge password []: #Если установить пароль, он будет запрашиваться при подключении An optional company name []: Using configuration from /usr/share/openvpn/easy-rsa/2.0/openssl.cnf
Пароль, запрашиваемый при подключении, задаётся вызовом ./build-key-pass < name >
Теперь последовательность действий для Debian Squeeze Цель — сделать доступ в приватную сеть, не перенаправляя весь трафик в неё (в отличии от оригинальной статьи). В /etc/network/interfaces добавим для внутреннего интерфейса:
auto eth1
iface eth1 inet static
address 10.10.0.2
netmask 255.255.255.0
up iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth1 -j SNAT --to-source 10.10.0.2
Установим openvpn:
aptitude install openvpn
Подправляем файл /etc/sysctl.conf, в строке: net.ipv4.ip_forward = 0
меняем 0 на 1 net.ipv4.ip_forward = 1
и выполняем команду: sysctl -p
Создаём директорию, где будет всё хозяйство:
mkdir -p /etc/openvpn/keys /etc/openvpn/easy-rsa /etc/openvpn/easy-rsa/keys
cp -R /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/easy-rsa/
В vars указываем директорию с конфигами easy-rsa:
export EASY_RSA=/etc/openvpn/easy-rsa
vars вынесен за пределы easy-rsa для того, чтобы при необходимости можно было переписать все скрипты в easy-rsa. После этого надо выполнить
source /etc/openvpn/vars
cd /etc/openvpn/easy-rsa
Дальше всю работу выполняем в /etc/openvpn/easy-rsa Можно выполнить, для полной очистки, ./clean-all
— keys/ будет очищена.
Создаём самоподписной корневой сертификат и ключи сервера: ./build-ca ./build-key-server server ./build-dh openvpn —genkey —secret keys/tls.key
Копируем из easy-rsa/keys в /etc/openvpn/keys файлы ca.crt dh1024.pem server.crt server.key tls.key
cd keys
cp ca.crt dh1024.pem server.crt server.key tls.key /etc/openvpn/keys/
Создаём /etc/openvpn/server.conf:
port 1194 proto tcp dev tun server 10.8.0.0 255.255.255.0
# push "route 1.b.c.d 255.255.255.0" - приватные подсети надо добавить сюда
tls-server
ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/server.crt
key /etc/openvpn/easy-rsa/keys/server.key # This file should be kept secret
dh /etc/openvpn/easy-rsa/keys/dh1024.pem
tls-auth /etc/openvpn/easy-rsa/keys/tls.key 0
cipher AES-256-CBC
max-clients 30
client-config-dir /etc/openvpn/servers/server/ccd
comp-lzo
persist-key
persist-tun
keepalive 10 120
Запускаем, проверяем: /etc/init.d/openvpn restart
— должно рестартоваться ifconfig -a
— должен появиться интерфейс tun0 netstat -lntp
— должен появиться процессс на порту 1194
Создаём клиентов. делаем файл, генерящий клиента:
#!/bin/sh
CLIENT=$1
cd /etc/openvpn/easy-rsa
./build-key $CLIENT
или для клиента с паролем
./build-key-pass $CLIENT
копируем файлы для клиента:
mkdir -p /root/ovpn/$CLIENT
cp ca.crt $CLIENT.crt $CLIENT.key tls.key dh1024.pem /root/ovpn/$CLIENT/
cat <<END >/root/ovpn/$1/$1.ovpn
$CLIENT
client
remote `hostname -i` 1194 # или вписать адрес
proto tcp
dev tun
ca ca.crt
dh dh1024.pem
cert $CLIENT.crt
key $CLIENT.key
tls-auth tls.key 1
cipher AES-256-CBC
verb 3
mute 20
keepalive 10 120
comp-lzo
persist-key
persist-tun
resolv-retry infinite
link-mtu 1544
END
ls -la /root/ovpn/$CLIENT/
Если клиента надо отозвать, запускаем
./revoke-full client01
Дополнение — организация client-to-client Если надо обеспечить видимость клиентов друг для друга, надо добавить опцию client-to-client в конфигурацию сервера. Кроме того, удобно дать всем клиентам статические адреса, для этого в ccd файлы (определяется параметром client-config-dir файла конфигурации сервера OpenVPN) надо добавить опции типа ifconfig-push 10.0.0.1 10.0.0.2 Адреса должны быть из выделенного пула и подходящие под маску /30:
[ 1, 2] [ 5, 6] [ 9, 10] [ 13, 14] [ 17, 18] [ 21, 22]
[ 25, 26] [ 29, 30] [ 33, 34] [ 37, 38] [ 41, 42] [ 45, 46]
[ 49, 50] [ 53, 54] [ 57, 58] [ 61, 62] [ 65, 66] [ 69, 70]
[ 73, 74] [ 77, 78] [ 81, 82] [ 85, 86] [ 89, 90] [ 93, 94]
[ 97, 98] [101,102] [105,106] [109,110] [113,114] [117,118]
[121,122] [125,126] [129,130] [133,134] [137,138] [141,142]
[145,146] [149,150] [153,154] [157,158] [161,162] [165,166]
[169,170] [173,174] [177,178] [181,182] [185,186] [189,190]
[193,194] [197,198] [201,202] [205,206] [209,210] [213,214]
[217,218] [221,222] [225,226] [229,230] [233,234] [237,238]
[241,242] [245,246] [249,250] [253,254]
Это средние адреса из подсетей /30 , то есть для подсети из адресов 10.0.0.0,10.0.0.1,10.0.0.2,10.0.0.3 берём 10.0.0.1,10.0.0.2
Дополнительные настройки
192.168.0.0/24 — сеть, в которой стоит OpenVPN сервер
192.168.0.3 — адрес OpenVPN сервера
10.8.0.0 — подсеть, из которой будут нарезаться P-to-P соединения клиент-сервер То есть каждый подключившийся к OpenVPN получит адрес, указанный в его ccd файле
Дополнительные настройки на сервере
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j SNAT —to-source 192.168.0.3
Дополнительные настройки на клиенте OpenVPN
iptables -A FORWARD -i tun0 -s 10.8.0.0/24 -d 192.168.0.0/24 -j ACCEPT
Дополнительные настройки на компьютерах в подсети OpenVPN сервера
route add -net 10.8.0.0/24 gw ovpn-server
Дополнение — автозапуск В файле /etc/default/openvpn в переменной AUTOSTART указываем имя файла (или нескольких, через пробел) конфигурации из каталога /etc/openvpn, без расширения .conf. Если конфигурация хранится в поддиректориях, то в оригинальный файл конфигурации надо добавить опцию:
cd <директория>
Ссылки
http://www.ashep.org/2010/ustanovka-i-nastrojka-openvpn-klienta/
https://openvpn.net/index.php/open-source/documentation/howto.html
http://papandut.com/2011/07/17/installing-and-configuring-openvpn-server-on-centos-using-webmin-part-3/
Leave a Reply
You must be logged in to post a comment.