Для обеспечения связи мобильных групп с центральным офисом, можно использовать недорогие маршрутизаторы Mikrotik, которые имеют порт USB, с возможностью подключения 3G/4G модема, и поддержку IPSec.
Настройка Cisco ASA
Создадим объекты, описывающие наши сети:
object-group network CORP_NETS
network-object 10.0.0.0 255.255.255.0
object-group network REMOTE_NETS
network-object 10.0.100.0 255.255.255.0
Разрешаем доступ из локальной сети на удаленные объекты:
access-list inside_access_in extended permit ip object-group CORP_NETS object-group REMOTE_NETS
Исключим из NAT трафик локальной сети к микротикам:
nat (inside,outside) source static CORP_NETS CORP_NETS destination static REMOTE_NETS REMOTE_NETS no-proxy-arp route-lookup
Добавим ACL, который будет критерием заворачивания трафика в VPN-туннель:
access-list MIKROT_ACL extended permit ip object-group CORP_NETS object-group REMOTE_NETS
Добавляем трансформ-сет:
crypto ipsec ikev1 transform-set ESP-AES-256-SHA esp-aes-256 esp-sha-hmac
Т.к. со стороны микротиков планируется использовать мобильные подключения (3G-модемы, спутниковые терминалы и прочие «где придётся»), создаём динамическую крипто-карту, привязываем к ней трансформ-сет и указываем ACL:
crypto dynamic-map MIKROT_MAP 1 match address MIKROT_ACL
crypto dynamic-map MIKROT_MAP 1 set ikev1 transform-set ESP-AES-256-SHA
Применяем карту к интерфейсу:
crypto map outside_map 1 ipsec-isakmp dynamic MIKROT_MAP
crypto map outside_map interface outside
Добавим политику IKEv1:
crypto ikev1 policy 10
authentication pre-share
encryption aes-256
hash sha
group 2
lifetime 86400
Групповая политика:
group-policy MIKROT_GP internal
group-policy MIKROT_GP attributes
dns-server value 10.0.0.2 10.0.1.2
vpn-tunnel-protocol ikev1
default-domain value mydomain.ru
Туннельная группа:
tunnel-group MIKROT_TG type ipsec-l2l
tunnel-group MIKROT_TG general-attributes
default-group-policy MIKROT_GP
tunnel-group MIKROT_TG ipsec-attributes
ikev1 pre-shared-key MY_STRONG_PSK
На этом настройка ASA закончена.
Настройка Mikrotik
Предположим, есть Mikrotik с настроенным интернетом. Заходим на маршрутизатор по SSH и вводим настройки.
Настроим алгоритмы шифрования и хеширования:
/ip ipsec proposal
add auth-algorithms=sha1 enc-algorithms=aes-256-cbc name=corp pfs-group=none
Добавим политику шифрования (100.100.100.100 — адрес внешнего интерфейса ASA):
/ip ipsec policy
add dst-address=10.0.0.0/24 level=unique proposal=corp sa-dst-address=\
100.100.100.100 sa-src-address=0.0.0.0 src-address=10.0.100.0/24 tunnel=yes
Создаём пир. В качестве id задаём имя туннельной группы — MIKROT_TG.
/ip ipsec peer
add address=100.100.100.100/32 enc-algorithm=aes-256 \
exchange-mode=aggressive local-address=0.0.0.0 my-id=user-fqdn:MIKROT_TG \
secret="MY_STRONG_PSK" send-initial-contact=no
Чтобы трафик, адресованный в Интернет, ходил мимо туннеля, добавим исключение из NAT:
/ip firewall nat
add chain=srcnat dst-address=10.0.0.0/16
На этом всё. Если что-то не работает — включаем дебаг на асе и читаем.