Требуется подключить филиал к центральному офису посредством виртуальной частной сети (VPN) на основе технологии IPsec. Основной канал связи — наземная сеть Ethernet. Для резервирования используется сотовая сеть LTE или 3G. Используется устройство NSG–2030 с опцией opt.LTE/3G. В головном офисе может использоваться как устройство NSG (например, NSG–5260), так и программный или аппаратный VPN-шлюз вероятного противника.
Весь остальной трафик из локальной сети филиала надлежит отправлять в Интернет обычным образом.
Основная проблема состоит в том, что порт Ethernet не имеет встроенных средств для контроля соединения выше, чем на физическом уровне. Если связь оборвётся за ближайшим коммутатором или где-либо дальше, то устройство об этом не узнает. Кроме того, пройдёт достаточно большое время, пока IPsec обнаружит потерю связи и переустановит туннель. Поэтому в устройствах NSG для контроля канала предусмотрен механизм netping, работающий на 3 уровне. В зависимости от доступности контрольного хоста, он манипулирует маршрутом по умолчанию. IPsec в данной ситуации рестартует автоматически.
Второй процесс netping следит за состоянием сотового соединения и при необходимости рестратует его. В качестве контрольного хоста для него используется один из DNS Яндекса.
Предварительные настройки:
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:
Дополнительные замечания:
Обязательно задание пароля для доступа к устройству.
В целях безопасности настоятельно рекомендуется также:
NAT применяется к исходящему трафику раньше, чем отбор приватных пакетов в туннель IPsec. Правило nat.POSTROUTING.1 необходимо для того, чтобы исключить эти пакеты из-под действия NAT. Если никакого транзитного трафика в публичную сеть не должно быть вообще (весь трафик из локальной сети направляется только по туннелю в головной офис), то NAT не нужен вообще.
Организацию служб LAN и WLAN в офисе см. в примерах: