Dlink Dir320 в качестве OpenVPN-servera

  • 2 November 2010
  • taku

задача объединить две подсети в одну

сеть дома где Dlink 10.20.20.0

сеть на работе где Ubuntu 192.168.30.0

делаем это все при помощи

a) linux(ubuntu)

б)маршрутизатора Dlink-dir320 с прошивкой dd-wrt(vpn-small)

1) заходим сюда по ссылке и проверяем возможность перепрошивки если все ок то шаг 2

2) заходим по ссылке выбираем дату

3) скачиваем NEWD_openvpn_jffs_small

4) прошиваемся как прошиваться из стандартной в нестандартную описывать не буду статей много например тут

5) настраиваем интернет

6) теперь приступим к настройке OpenVPN servera на D’Linke

6.1) нам понадобяться сертификаты и ключи, генерировать все это на D’Linke будем слишком долго у меня заняло минут 10, поэтому я сгенерировал на сервере с Ubunt’ой, для этого нам нужно установить программу следующей командой

sudo apt-get install openvpn openssl

после чего надо перейти в

cd /usr/share/doc/openvpn/examples/easy-rsa/2.0/

далее выполняем последовательность команд и отвечаем на заданные вопросы

source ./vars
./clean-all
./build-ca
./build-key-server server
./build-key client1
./build-key client2 #если нужно более одного клиента
./build-dh

6.2) после того как все сгенерировали
заходим в
Services -> VPN
ставим запуск нижеприведенных параметров:
"Start OpenVPN: Enable"
"Start type: WAN Up".
ниже приведенная таблица соотношений сгенерированных сертификатов, ключей и куда их подставлять в DD-WRT

DD-WRT
Какой фаил вставлять

Public Server Cert
ca.crt

Certificate Revoke List
(blank)

Public Client Cert
server.crt

Private Client Key
server.key

DH PEM
dh1024.pem

OpenVPN Config
(see below)

OpenVPN TLS Auth
(blank)

обязательно вставляем все полностью если это CA Cert, то например

-----BEGIN CERTIFICATE-----
SIb3DQEBBQUAMIGTMQswCQYD
VQQGEwJSVTEPMA0GA1UECBMGTW9zY293Njb3cxDTALBgNV
BAoTBFRha3UxDTALBgNVBAsTBHRha3UxFDASBgNVBAMTC3
CwYDVQQpEwR0YWt1MR8wHQYa3Uub3JnLnJ1MB4X
DTEwMDEyOTE5Mjg0OFoXDTIwMDEyNzE5Mjg0OFowgZMxCz
DQYDVQQIEwZNb3Njb3cxDzANBgNVBAcTBk1vc2NvdzENMAs
MAsGA1UECxMEdGFrdTEUMBIGA1UEAxMLdGFrdS5vcmcucnUxDTALBgNVBCkTBHRh
a3UxHzAdBgkqhkiG9w0BCQEWEHRha3VAdGFrdS5vcmcucnUwgZ8wDQYJKoZIhvcN
AQEBBQADgY0AMIGJAoGBAKzTsXUUyKbDxfzAUhW7jmxLs1koZebs+IVSLqoB6zpB
GRvBMwMVkOkblym4ls+ajzqP3mhG77NOA3lgvxNzx98zVVq2D1uG7soamXHgFKo/
LFPR9jNa4f/xK7KqpV9xRKBECPTADdD/nSmL9dQe6q8IVLyWoPrLiNKp7OfSVLHz
AgMBAAGjgfswgfgwHQYDVR0OBBYEFIlWcmOI7HstnNKxjQoEDt48nzdmMIHIBgNV
tmRzvTV7zfMbXbURtWCLW6623M1jKcd+wzqgmJ4GUKWeLdNtHn37/UVF0BOP372I
Ocs4s2dVVg/0S24IRBzzdn8apUqHkUkMsuv3zGKz4vtGdjMbpxXDhBvw36A+oo7h
HK7RWyQDccc/rSX3/43xYTE2EvRB3g==
-----END CERTIFICATE-----

никаких пробелов быть не должно!!! тоже самое проделываем и для других файлов.

6.3)конфигурируем сам конфиг сервера за что какой параметр отвечает можно посмотреть в интернете

приведу свой рабочий конфиг:

mode server
tls-server
port 1194
proto tcp
dev tap
comp-lzo
keepalive 10 120
client-to-client
server 10.20.30.0 255.255.255.0
push "route 10.20.20.0 255.255.255.0"
dh /tmp/openvpn/dh.pem
ca /tmp/openvpn/ca.crt
cert /tmp/openvpn/cert.pem
key /tmp/openvpn/key.pem

6.4) чтоб можно было подключиться к серверу разрешаем входящие соединения по порту который указан в конфиге см пункт 6.3

iptables -I INPUT 1 -p tcp --dport 1194 -j ACCEP

далее разрешаем хождение пакетов через интерфейсы или через сети кому как удобнее.

iptables -I FORWARD -s 10.20.20.0/24 -d 10.20.30.0/24 -j ACCEPT
iptables -I FORWARD -s 10.20.30.0/24 -d 10.20.20.0/24 -j ACCEPT
iptables -I FORWARD -i br0 -o tap0 -j ACCEPT
iptables -I FORWARD -i tap0 -o br0 -j ACCEPT
6.5) говорим маршрутизатору как попасть в другую подсеть через vpn канал
заходим в setup -> Advanced Routing

Operating Mode- Gateway
задаем номер маршрута я поставил- 1
присваиваем имя например- rabota
ставим метрику можно- 1
Destination LAN NET- 192.168.30.0
Subnet Mask- 255.255.255.0
Gateway- 10.20.30.2
interface- ANY
7) настраиваем клиента, клиент у меня сервер на Ubuntu где и генерировал ключики.
копируем ca.crt, client1.crt, client1.key в папку /etc/openvpn/keys
создаем фаил клиентского конфига touch /etc/openvpn/client.conf
вносим в него следующую информацию
remote taku.org.ru 1194
client
remote-cert-tls server
dev tap0
proto tcp
resolv-retry infinite
nobind
persist-key
persist-tun
float
comp-lzo
ca ./keys/ca.crt
cert ./keys/client1.crt
key ./keys/client1.key

8) запускаем клиента из сети 192.168.30.0
/etc/init.d./openvpn start
смотрим появился ли dev tap0 если появился значит канал поднялся!!!
смотрим route -n должна появиться 20я подсеть через 30.1
проверяем хождение пакетов в 20ю подсеть главное, что того кого пингуем должен знать где находиться наша подсеть т.е.
шлюзом по умолчанию должен быть наш D’Link, ну или если не поумолчанию прописывайте на своем месте маршрут.

Комментарии

Добавить комментарий

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и абзацы переносятся автоматически.