OpenVPN site-to-site сценарий 1


Нужно соединить две локальные сети на L3 уровне модели OSI, при условии, что эти сети находятся за разными  маршрутизаторами, а трафик между маршрутизаторами должен быть зашифрован. Другими словами: чтобы локальная сеть в одном городе видела локальную сеть другом городе, но никто больше не видел о чем они там между собой шепчутся. Так называемый Site-to-Site VPN

Схема Site-to-Site VPN

Схема Site-to-Site VPN

Один из вариантов реализации задачи: использовать open source продукт OpenVPN .

Пример настройки на основе двух маршрутизаторов под CentOS 6.x:

Office 1

  • LAN: 192.168.0.0/24
  • WAN IP:  10.0.0.1

Office 2

  • LAN: 172.16.0.0/24
  • WAN IP: 10.255.255.1

 

Настройки на маршрутизаторе Office 1 (роль — сервер):

  • # yum -y install openvpn
    # chkconfig openvpn on
    
  • Сгенерируем сертификаты и ключи по инструкции: генерация сертификатов для OpenVPN и разместим ключи в /etc/openvpn/keys/.
  • создаем файл /etc/openvpn/vpn.conf следующего содержания:
    dev tun
    remote 10.255.255.1
    ifconfig 10.10.10.1 10.10.10.2
    up /etc/openvpn/scripts/routes.up.sh
    
    tls-server
    daemon
    
    # Diffie-Hellman Parameters (tls-server only)
    dh /etc/openvpn/keys/dh2048.pem
    
    # Certificate Authority file
    ca /etc/openvpn/keys/ca.crt
    
    # Our certificate/public key
    cert /etc/openvpn/keys/office1.crt
    
    # Our private key
    key /etc/openvpn/keys/office1.key
    
    reneg-sec 300
    
    port 1194
    
    # Verbosity level.
    # 0 -- quiet except for fatal errors.
    # 1 -- mostly quiet, but display non-fatal network errors.
    # 3 -- medium output, good for normal operation.
    # 9 -- verbose, good for troubleshooting
    verb 3
    
  • Содержание файла /etc/openvpn/scripts/routes.up.sh:
    #!/bin/sh
    
    /sbin/route add -net 172.16.0.0 netmask 255.255.255.0 gw 10.10.10.2
    

    Файл должен быть с правами на исполнение:

    # chmod 700 /etc/openvpn/scripts/routes.up.sh
  • Для iptables добавляем в chain filter:
    -A INPUT -i eth0 -m udp -p udp -s 10.255.255.1 --dport 1194 -j ACCEPT
    -A FORWARD -i eth1 -o tun0 -j ACCEPT
    -A FORWARD -i tun0 -o eth1 -j ACCEPT
    

    где eth1 — LAN интерфейс

  • Запускаем сервис:
    # service openvpn start
    

 Если используется OpenVZ контейнер, нужно дать разрешение на операции с tun:

vzctl set [CTID] --devnodes net/tun:rw --capability net_admin:on --save

CTID — ID контейнера

Настройки на маршрутизаторе Office 2 (роль — клиент):

  • # yum -y install openvpn
    # chkconfig openvpn on
    
  • Клиентский сертификат, ключ и CA сертификат разместить в /etc/openvpn/keys/
  • создаем файл /etc/openvpn/vpn.conf следующего содержания:
    dev tun
    remote 10.0.0.1
    ifconfig 10.10.10.2 10.10.10.1
    up /etc/openvpn/scripts/routes.up.sh
    
    tls-client
    remote-cert-tls server
    daemon
    
    # Certificate Authority file
    ca /etc/openvpn/keys/ca.crt
    
    # Our certificate/public key
    cert /etc/openvpn/keys/office2.crt
    
    # Our private key
    key /etc/openvpn/keys/office2.key
    
    reneg-sec 300
    
    port 1194
    
    # Verbosity level.
    # 0 -- quiet except for fatal errors.
    # 1 -- mostly quiet, but display non-fatal network errors.
    # 3 -- medium output, good for normal operation.
    # 9 -- verbose, good for troubleshooting
    verb 3
    
  • Содержание файла /etc/openvpn/scripts/routes.up.sh:
    #!/bin/sh
    
    /sbin/route add -net 192.168.0.0 netmask 255.255.255.0 gw 10.10.10.1
    

    Файл должен быть с правами на исполнение:

    # chmod 700 /etc/openvpn/scripts/routes.up.sh
  • Для iptables добавляем в chain filter:
    -A INPUT -i eth0 -m udp -p udp -s 10.0.0.1 --dport 1194 -j ACCEPT
    -A FORWARD -i eth1 -o tun0 -j ACCEPT
    -A FORWARD -i tun0 -o eth1 -j ACCEPT
    

    где eth1 — LAN интерфейс

  • Запускаем сервис:
    # service openvpn start

В итоге получаем шифрованный канал со стойким алгоритмом шифрования и перезапуском крипто-сессии каждые 5 минут ( reneg-sec 300 ) для наибольшей защиты от взлома.

Поблагодарить:


Оставьте комментарий

Ваш e-mail не будет опубликован.

Мысль на тему “OpenVPN site-to-site сценарий