NSG - Примеры конфигурации: Построение IPsec VPN с резервированием через LTE/3G
Оборудование для сетей передачи данных
+7 (495) 727-1959

Построение VPN на основе IPsec между двумя офисами
с резервированием через сотового оператора

Требуется подключить филиал к центральному офису посредством виртуальной частной сети (VPN) на основе технологии IPsec. Основной канал связи — наземная сеть Ethernet. Для резервирования используется сотовая сеть LTE или 3G. Используется устройство NSG–2030 с опцией opt.LTE/3G. В головном офисе может использоваться как устройство NSG (например, NSG–5260), так и программный или аппаратный VPN-шлюз вероятного противника.

Весь остальной трафик из локальной сети филиала надлежит отправлять в Интернет обычным образом.

Основная проблема состоит в том, что порт Ethernet не имеет встроенных средств для контроля соединения выше, чем на физическом уровне. Если связь оборвётся за ближайшим коммутатором или где-либо дальше, то устройство об этом не узнает. Кроме того, пройдёт достаточно большое время, пока IPsec обнаружит потерю связи и переустановит туннель. Поэтому в устройствах NSG для контроля канала предусмотрен механизм netping, работающий на 3 уровне. В зависимости от доступности контрольного хоста, он манипулирует маршрутом по умолчанию. IPsec в данной ситуации рестартует автоматически.

Второй процесс netping следит за состоянием сотового соединения и при необходимости рестратует его. В качестве контрольного хоста для него используется один из DNS Яндекса.

Построение IPsec VPN с резервированием через LTE или 3G

Предварительные настройки:

  • SIM-карта установлена в верхнее гнездо
  • Запрос PIN-кода на карте отключён

ip
: route
: : 1
: : : gateway = "98.76.54.29"
: : : network = "123.45.67.90/32"
: : 2
: : : network = "77.88.8.8/32"
: : : device = "m1"
: nat
: : POSTROUTING       
: : : 1               
: : : : source = "192.168.1.0/24"
: : : : destination = "192.168.0.0/24"
: : : : target = "ACCEPT"
: : : 2               
: : : : out-interface = "eth1"
: : : : target = "SNAT"
: : : : to-source = "98.76.54.30"
: : : 3               
: : : : out-interface = "m1"
: : : : target = "MASQUERADE"
: filter
: : OUTPUT
: : : 1
: : : : out-interface	= "m1"
: : : : destination	= "123.45.67.90"
: : : : target	= "DROP"
: : : 1
: : : : destination = "77.88.8.8/32"
: : : : out-interface = "eth1"
: : : : target = "DROP"
port
: m1
: : type = "lte"
: : adm-state = "up"
: : ifAddress
: : : dhcp-options
: : : : default-gw-metric = 10
: eth0
: : ifAddress
: : : prefix = "192.168.1.1/24"
: eth1
: : ifAddress
: : : prefix = "98.76.54.30/30"
services
: netping
: : route_swap
: : : adm-state	= "up"
: : : description = "Re-route packets to cellular back-up"
: : : destination = "123.45.67.90"
: : : failure-script = "ip route del default via 98.76.54.29; conntrack -F;"
: : : restore-script = "ip route add default via 98.76.54.29; conntrack -F;"
: : check_m1
: : : adm-state	= "up"
: : : destination = "77.88.8.8"
: : : packets = 3
: : : timeout = 10
: : : retry = 1
: : : failure-script = "nsgsh -qr port.m1.restart=nil; conntrack -F;"
: : : restore-script = "conntrack -F"
tunnel                     
: ipsec                    
: : enable                 = true
: : secrets                
: : : psk                  
: : : : 1                  
: : : : : indices          
: : : : : : 1              = "123.45.67.89"
: : : : : : 2              = "%any"
: : : : : secret           = "qwerty"
: : : : : _keep            = true
: : connections            
: : : ANYPROVIDER              
: : : : authby             = "secret"
: : : : auto               = "start"
: : : : dpdaction          = "restart"
: : : : esp                
: : : : : 3des-sha1        = true
: : : : left               = "%defaultroute"
: : : : leftnexthop        = "%defaultroute"
: : : : leftsourceip       = "192.168.1.1"
: : : : leftsubnet         = "192.168.1.0/24"
: : : : right              = "123.45.67.89"
: : : : rightsubnet        = "192.168.0.0/24"

(Предполагается, что данное устройство является в настройках IPsec стороной left.)


Существенные элементы настройки центрального шлюза VPN:

  • Шлюз должен принимать соединения с IP-адресов клиента в сетях обоих провайдеров (если эти адреса статические), либо с любого адреса (в этом случае адреса могут быть динамическими и приватными в сетях провайдеров).
  • Если по пути между клиентом и центральным шлюзом где-либо производится NAT, то на сервере должна быть включена поддержка NAT Traversal (NAT–T). На устройстве NSG поддержка NAT–T включена по умолчанию.
  • Для своевременного удаления мёртвых туннелей должно быть включено Dead Peer Detection (DPD). На устройстве NSG DPD включено по умолчанию с таймаутом 4×30 сек.
  • Если разрешёно соединение с клиентом по любому адресу, то аутентификация с помощью PSK становится, по существу, однофакторной и на сегодняшний день уже не является достаточно надёжной. Рекомендуется использовать в этом случае аутентификацию на основе асимметричных ключей RSA и сертификатов X.509.
  • Значение ikelifetime на центральном шлюзе следует устанавливать меньше, чем на клиентах (в NSG Linux 2.0 по умолчанию — 3600 сек.)

Дополнительные замечания:

Обязательно задание пароля для доступа к устройству.

В целях безопасности настоятельно рекомендуется также:

  • Отключить Telnet и использовать для удалённого управления только SSH
  • Заблокировать HTTP с помощью фильтров и использовать для удалённого управления только HTTPS
  • Запретить доступ с любых посторонних IP-адресов с помощью фильтров

NAT применяется к исходящему трафику раньше, чем отбор приватных пакетов в туннель IPsec. Правило nat.POSTROUTING.1 необходимо для того, чтобы исключить эти пакеты из-под действия NAT. Если никакого транзитного трафика в публичную сеть не должно быть вообще (весь трафик из локальной сети направляется только по туннелю в головной офис), то NAT не нужен вообще.

Организацию служб LAN и WLAN в офисе см. в примерах: