Jump to content

IPsec-подключение к офисной сети с отправкой туда всего трафика (инет+локалка) без NAT


Recommended Posts

Требуется подключиться к офисной сети по IPSec (по общему ключу), причем таким образом, чтобы весь трафик отправлялся в это соединение - включая локальную сеть и интернет. При этом на роутере нужно выключить NAT - доступ в интернет также осуществляется через маршрутизатор офисной сети. А также из офисной сети должны быть прозрачно видны все устройства за кинетиком.

К сожалению, с наскока настроить это на кинетике не получилось:

  • Офисный ipsec-сервер честно выдает leftsubnet 0.0.0.0/0, однако кинетик отказывается принимать такое значение. А в настройках IPSec можно задать минимальную маску /4 - что к сожалению не годится. Через IPSec должен пойти весь трафик.
  • Неизвестно, каким образом выключить NAT на кинетике.

Есть ли вариант решения этой задачи? Другие туннели использовать к сожалению не получится. Пока кроме как поставить mikrotik в разрыв больше ничего в голову не приходит. Не думал, что кинетик не умеет такой простой функционал. Выбрали его из-за wifi-функционала и как раз навороченных vpn-опций.

Link to comment
Share on other sites

53 минуты назад, gaaronk сказал:

Офисный ipsec-сервер на чем настроен?

Strongswan на linux. Вот конфиг:

    left = xx.xx.xx.xx
    right = %any
    authby = psk
    leftid = user@router.server.local
    rightid = root@user.server.local
    leftsubnet = 0.0.0.0/0
    rightsubnet = 192.168.57.0/24
    type = tunnel
    ike = aes256-aes192-aes128-sha256-sha384-modp2048-modp3072-modp4096-modp8192,aes128gcm16-sha384-x25519!
    esp = aes256-aes192-aes128-sha256-sha384-modp2048-modp3072-modp4096-modp8192,aes128gcm16-sha256-sha384-x25519!
    auto = add

Здесь 192.168.57.0 - внутренняя сеть кинетика. Он прекрасно подключается к этому серверу, однако кроме локалки, которую ему укажешь в свойствах IPsec-подключения (с минимальной маской /4) ничего в туннель отправлять не хочет. А ведь надо ему как-то сказать, чтобы еще трафик в этом туннеле не натился..

Микрот стоял до этого, с ним всё работало. Но wifi в нем никакой. Не хочется теперь городить зоопарк из роутеров.

Link to comment
Share on other sites

Сделайте на кинетике маршрут в сторону Интернет только для адреса /32 вашего сервера

Постройте GRE туннель, его и пошифруйте IPSec'ом

И уже в GRE туннель настройте маршрут по умолчанию.

Настройку линукса и кинетика могу подсказать если что - пишите в личку.

  • Upvote 1
Link to comment
Share on other sites

3 часа назад, gaaronk сказал:

Постройте GRE туннель, его и пошифруйте IPSec'ом

Большое спасибо за совет, все получилось. Сделал туннель ipip. Только осталось два момента:

- IPSec работает только в режиме ikev1. А вот ikev2 ни в какую не захотел работать. Подозреваю, что дело в опции "ID интерфейса" у кинетика. Куда его указать в ipsec.conf? Strongswan ругается "no matching peer configs found xx.xx.xx.xx[IPIP0] .. xx.xx.xx.xx[IPIP0]".

- NAT отключается только глобально на кинетике (no nat Home). Это означает, что в случае падения туннеля никакого интернета через публичный интерфейс не будет. Есть ли возможность настроить отключение ната только на интерфейсе ipip? 

Link to comment
Share on other sites

Для автотуннеля на IPIP интерфейсе, со стороны Strongswan описывайте так

 

leftauth=psk
leftid=userfqdn:IPIP0
leftsubnet=%dynamic[ipip]
right=%any
rightauth=psk
rightid=userfqdn:IPIP0
rightsubnet=%dynamic[ipip]

 

 ipsec.secrets

@@IPIP0 @@IPIP0 : PSK "<ключ>"

 

Вот так, с двумя собачками.

 

NAT

no nat Home

и потом ip static Home <интерфейс к провайдеру>

у меня

ip static Home PPPoE0

 

  • Thanks 1
Link to comment
Share on other sites

И на кинетике на интерфейсе выставит как минимум

    ipsec proposal lifetime 172800
    ipsec transform-set lifetime 86400

потому что после четырех пересогласований ESP SA кинетик туннель полностью перестраивает с нуля. это бага. в 4.0 уже пофикшена

 

А на strongswan

 

   ikelifetime=48h
   keyexchange=ikev2
   keyingtries=1
   lifetime=30h
   inactivity=10m
   rekeyfuzz=0%
   margintime=5m
   type=transport

 

  • Thanks 1
  • Upvote 1
Link to comment
Share on other sites

Присоединюсь к вопросу

тунель на на strongswan под linux

keenetik как клиент устаналивает соединение, но маршруты с сервера не берет вообще никакие, руками если на кинетике маршруты писать все работает. 

На телефоне/маке все отлично, утройство забирает предлагаемые маршруты с сервера. Так и должно быть?

ipsec.conf на linux

leftsubnet=74.119.76.0/22, 69.171.224.0/19, .... 

Link to comment
Share on other sites

клиент-сервер. домашний кинетик по впн соединяется с сервером/gw в  европе и часть запрещенного трафика с домашней сети роутит туда

(config)> show ipsec

 

  ipsec_statusall:

 

Status of IKE charon daemon (strongSwan 5.9.7, Linux 4.9-ndm-5, mips):

  uptime: 10 seconds, since Jan 18 16:51:55 2023

  worker threads: 4 of 9 idle, 5/0/0/0 working, job queue: 0/0/0/0, scheduled: 5

  loaded plugins: charon ndm-pem random save-keys nonce x509 pubkey pkcs7 pem openssl pkcs8 xcbc cmac hmac ctr attr kernel-netlink resolve socket-default stroke vici updown eap-identity eap-md5 eap-mschapv2 eap-dynamic eap-radius eap-peap xauth-generic xau

th-eap error-notify systime-fix unity counters

Listening IP addresses:

  100.126.99.131

  192.168.100.1

  10.1.30.1

  10.10.10.2

Connections:

        IKE0:  0.0.0.0/0, ::/0...1x5.105.108.x7  IKEv2, dpddelay=30s

        IKE0:   local:  [%any] uses EAP_MSCHAPV2 authentication with EAP identity 'dt'

        IKE0:   remote: [%any] uses public key authentication

        IKE0:   child:  dynamic === 0.0.0.0/0 TUNNEL, dpdaction=start

Security Associations (1 up, 0 connecting):

        IKE0[1]: ESTABLISHED 9 seconds ago, 100.126.99.131[100.126.99.131]...1x5.105.108.x7[1x5.105.108.x7]

        IKE0[1]: IKEv2 SPIs: f3da0d06c7c5c5aa_i* e27d9569107cca71_r, rekeying in 7 hours

        IKE0[1]: IKE proposal: AES_CBC=256/HMAC_SHA1_96/PRF_HMAC_SHA1/MODP_1024

        IKE0{1}:  INSTALLED, TUNNEL, reqid 1, ESP in UDP SPIs: c7417d09_i cb49d880_o

        IKE0{1}:  CHACHA20_POLY1305, 0 bytes_i, 0 bytes_o, rekeying in 7 hours

        IKE0{1}:   10.10.10.2/32 === 179.60.192.0/22 185.60.216.0/22 185.89.216.0/22 204.15.20.0/22 ...........{и так далее}  маршруты что дает сервер клиенту, но в show ip route их нет

 

IKE keys:

490s ago, value:b02e5d537e5b6f4e,f8dbf42582b9bc1a,6911c7cc69f7dba8ff37a4b649f5678448fbb843747a09246956b3ff6738f3c2,583bb8eaae6cd1bfd2dbf0029c13bcd943aa3873b2f55fe97182e424e1e021e5,"AES-CBC-256 [RFC3602]",a9f48c4511f5f4786eeda2f943260fd614a7dcff,5db5e7c876696624bfca5674464f350934511805,"HMAC_SHA1_96 [RFC2404]"

138s ago, value:1fb843bab4298485,c02cdde859f4a29d,fd5c1e1e4b47f4745a21b539f931a2f6f8e6372a888cc2fc11454eb0214f9375,4b04288746f637a1f65429cb347e99ebe428e33b0996938b517af3ff72a4c502,"AES-CBC-256 [RFC3602]",7e530a77bba2f01fca989c8ac3a0837e3ba32614,6c67f49f620b1f72cd25e9e72d352ff2aef4dada,"HMAC_SHA1_96 [RFC2404]"

10s ago, value:f3da0d06c7c5c5aa,e27d9569107cca71,288d702b703b7392b2c7141a274b77c915640a7a87ce3c72fc3142126ca9fe3f,7ce45395467ed3a9b95b0d4761dc70238e520a1eb151f4df5a8c0c6c0808c149,"AES-CBC-256 [RFC3602]",f3951d85f723305b8ab52b1daaebb4caa105c30b,fc1ac943203a8ed4cf331c412c4d99dba3fa8b92,"HMAC_SHA1_96 [RFC2404]"

 

SA keys:

 

Edited by dotcom
Link to comment
Share on other sites

7 часов назад, gaaronk сказал:

leftid=userfqdn:IPIP0

Вот за решение этого ребуса отдельное спасибо! Сейчас работает на static ip в режиме ikev1, но скоро нужно будет на динамик ставить, обязательно попробую. Надеюсь заработает :)

Link to comment
Share on other sites

16 hours ago, dotcom said:

клиент-сервер. домашний кинетик по впн соединяется с сервером/gw в  европе и часть запрещенного трафика с домашней сети роутит туда

(config)> show ipsec

 

 

 

А еще можно вывод

 show ip route

 show ip route table 248

 

Link to comment
Share on other sites

44 minutes ago, gaaronk said:

 

А еще можно вывод

 show ip route

 show ip route table 248

 

вот. маршруты прописанные руками (через впн на внешку) с кинетика убрал, т.е состояние базовое, как будто клиент первый раз подключился

(config)> show ip route

================================================================================

Destination         Gateway          Interface                        F  Metric

================================================================================

0.0.0.0/0           100.126.0.1      ISP                              U  0      

10.1.30.0/24        0.0.0.0          Guest                            U  0      

100.126.0.0/17      0.0.0.0          ISP                              U  0      

1x5.105.108.x7/32   100.126.0.1      ISP                              U  0      

192.168.100.0/24    0.0.0.0          Home                             U  0      

194.186.70.210/32   100.126.0.1      ISP                              U  0      

194.186.70.214/32   100.126.0.1      ISP                              U  0      

(config)> show ip route table 248

Network::RoutingTable: Routing table is empty.

(config)>

попутно протестил что маршруты от сервера указанные в leftsubnet при этом конфиге получают только android и мак, и скорее всего линукс клиенты тоже. Но windows и keenetic нет.

в англ. сегменте часто натыкался что в базе на ipsec нельзя скидывать маршруты клиенту, но по факту криво-косо работает

Link to comment
Share on other sites

Тут такое дело. Strongswan (а в кинетике он) получает от удаленного сервера сети. для этих сетей вставляет IPSec SA в ядро. Не знаю как в кинетике, а в shell их можно посмотреть через

ip x p

ip x s

Далее по идее клиенту не нужны маршруты. Он отправляет трафик по маршруту по умолчанию (в сторону интернет), ядро видит что трафик попадает под критерий IPSec SA, и уже само их шифрует, туннелирует и тд. 

 

А какие маршруты вы пишите? И странно что в выводе пустая секция SA keys:

Link to comment
Share on other sites

8 minutes ago, gaaronk said:

Тут такое дело. Strongswan (а в кинетике он) получает от удаленного сервера сети. для этих сетей вставляет IPSec SA в ядро. Не знаю как в кинетике, а в shell их можно посмотреть через

ip x p

ip x s

ну судя по show ipsec на кинетике он получает это подсети с сервера, только трафик в них не отправляет, как впрочем и винда

26 minutes ago, gaaronk said:

А какие маршруты вы пишите? И странно что в выводе пустая секция SA keys:

Да, SA keys пустой.

вот маршруты которые хочу клиенту отдать, это фб+инст

leftsubnet=204.15.20.0/22, 185.89.216.0/22, 185.60.216.0/22, 179.60.192.0/22, 173.252.64.0/18, 157.240.0.0/16, 147.75.208.0/20, 142.251.36.33, 129.134.0.0/16, 103.4.96.0/22, 102.132.96.0/20, 74.119.76.0/22, 69.171.224.0/19, 69.63.176.0/20, 66.220.144.0/20, 45.64.40.0/22,  31.13.96.0/19, 31.13.64.0/19, 31.13.24.0/21,  178.62.9.171

Link to comment
Share on other sites

Вот это " маршруты прописанные руками (через впн на внешку) с кинетика убрал"

Что было прописано? 

скриншот или вывод show ip route ?

В свойствах VPN клиента стоит "Использовать для выхода в интернет" ?

Link to comment
Share on other sites

Пробовал и с использовать для выхода и без, сейчас не стоит.

при установленной галочке он игнорирует подключение и все идет через дефолтный шлюз, если иное не указанно в маршруте(указаны ниже) который я руками забиваю на кинетике

(config)> show ip route

================================================================================

Destination         Gateway          Interface                        F  Metric

================================================================================

0.0.0.0/0           100.126.0.1      ISP                              U  0      

5.45.77.201/32      0.0.0.0          IKE0                             U  0      

10.1.30.0/24        0.0.0.0          Guest                            U  0      

31.13.24.0/21       0.0.0.0          IKE0                             U  0      

31.13.64.0/19       0.0.0.0          IKE0                             U  0      

31.13.96.0/19       0.0.0.0          IKE0                             U  0      

37.1.206.186/32     0.0.0.0          IKE0                             U  0      

45.64.40.0/22       0.0.0.0          IKE0                             U  0      

66.220.144.0/20     0.0.0.0          IKE0                             U  0      

69.63.176.0/20      0.0.0.0          IKE0                             U  0      

69.171.224.0/19     0.0.0.0          IKE0                             U  0      

74.119.76.0/22      0.0.0.0          IKE0                             U  0      

100.126.0.0/17      0.0.0.0          ISP                              U  0      

102.132.96.0/20     0.0.0.0          IKE0                             U  0      

103.4.96.0/22       0.0.0.0          IKE0                             U  0      

129.134.0.0/16      0.0.0.0          IKE0                             U  0      

147.75.208.0/20     0.0.0.0          IKE0                             U  0      

157.240.0.0/16      0.0.0.0          IKE0                             U  0      

173.252.64.0/18     0.0.0.0          IKE0                             U  0      

178.62.9.171/32     0.0.0.0          IKE0                             U  0      

179.60.192.0/22     0.0.0.0          IKE0                             U  0      

185.60.216.0/22     0.0.0.0          IKE0                             U  0      

185.89.216.0/22     0.0.0.0          IKE0                             U  0      

1x5.105.108.x7/32   100.126.0.1      ISP                              U  0      

192.168.100.0/24    0.0.0.0          Home                             U  0      

194.186.70.210/32   100.126.0.1      ISP                              U  0      

194.186.70.214/32   100.126.0.1      ISP                              U  0      

204.15.20.0/22      0.0.0.0          IKE0                             U  0      

Screenshot 2023-01-19 at 11.25.57.png

Edited by dotcom
Link to comment
Share on other sites

Понятно. Кинетик использует routed-based vpn с vti

И маршруты прописывает не strongswan, а обвязка. Видимо да, не умеют и надо писать руками.

Link to comment
Share on other sites

9 minutes ago, gaaronk said:

Понятно. Кинетик использует routed-based vpn с vti

И маршруты прописывает не strongswan, а обвязка. Видимо да, не умеют и надо писать руками.

в любом случае спасибо за помощь, буду копать в другую сторону

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...