Jump to content

Как настроить IPSec/GRE туннель c Linux и пробросить по туннелю порт?


Recommended Posts

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

1. Обновить кинетик до 2.10

Ок. Только теперь всё до завтра откладывается. Хотя может удалённо прошью.

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

2. Конфигурировать авто туннель на кинетикие в режиме ikev2

А вот это обязательно? Может пока рабочей схемы на ikev1 добиться? Если честно у меня протокол ikev2 между линуксовыми машинами через нат не пошёл, сильно не стал разбираться, тем более с zyxel связываться, пока сосредоточился на ikev1.

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

Посмотреть в /tmp/ipsec/ipsec.conf

ткните пожалуйста в тему где про это говорится, я с ходу не нагуглил и пока CLI не настолько хорошо знаю.

 

Link to comment
Share on other sites

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

Если у вас такая схема, то вам надо обязательно:

1. Обновить кинетик до 2.10

2. Конфигурировать авто туннель на кинетикие в режиме ikev2

3. Посмотреть в /tmp/ipsec/ipsec.conf на кинетике какие он задал leftid и rightid что бы на линуксе настроить строго зеркально

4. Посмотреть в /tmp/ipsec/ipsec.conf на кинетике какие он задал ike, esp, ikelifetime, lifetime что бы на линуксе задать такие же

5. На линуксе в параметрах туннеля использовать как source локальный адрес линукса

Кстати эти данные - это хорошие кандидаты на вывод в show interface, что же вы молчите-то?

Link to comment
Share on other sites

13 минуты назад, pdn_mail сказал:

Ок. Только теперь всё до завтра откладывается. Хотя может удалённо прошью.

А вот это обязательно? Может пока рабочей схемы на ikev1 добиться? Если честно у меня протокол ikev2 между линуксовыми машинами через нат не пошёл, сильно не стал разбираться, тем более с zyxel связываться, пока сосредоточился на ikev1.

ткните пожалуйста в тему где про это говорится, я с ходу не нагуглил и пока CLI не настолько хорошо знаю.

 

Наоборот, IKEv2 куда лучше работает с NAT и вообще.

Если нет груза совместимости со старым барахлом, которое умеет только IKEv1, то о нем стоит забыть.

Link to comment
Share on other sites

35 минут назад, Le ecureuil сказал:

Кстати эти данные - это хорошие кандидаты на вывод в show interface, что же вы молчите-то?

Поддерживаю! Стоит ли в теме развития создать тему?

Но как пока посмотреть ipsec.conf на кинетике?

Link to comment
Share on other sites

24 минуты назад, pdn_mail сказал:

Поддерживаю! Стоит ли в теме развития создать тему?

Но как пока посмотреть ipsec.conf на кинетике?

Я и так уже делаю практически.

Пока можно смотреть через
 

> more temp:ipsec/ipsec.conf

Link to comment
Share on other sites

3 hours ago, Le ecureuil said:

Кстати эти данные - это хорошие кандидаты на вывод в show interface, что же вы молчите-то?

Привык смотреть первоисточник в шелле =(

Link to comment
Share on other sites

Добрый день!

Обновился и пока колупал конфигурацию IKEv2 на стенде с linux машинами, с параметрами предложенными gaaronk 

Уже решил попробовать на реальном железе с Zyxel и подумал: "а дай попробую на новой прошивке предыдущую конфигурацию GRE туннеля, перед тем как стал потом IPIP настраивать", и что вы думаете? Конечно всё заработало.

у меня автоконфигурация на zyxel, единственно что смущает, это не смог найти подобные строчки в show run:

access-list _WEBADMIN_IPSEC_pptp-ipsec
    permit gre 192.168.0.0 255.255.255.0 192.168.2.2 255.255.255.255

Единственно, что утешает, это то, что между интерфейсами GRE туннеля прокинутого через нат over IPSEC могут пройти только пакеты завёрнутые в этот же IPSEC.

Готовую конфигу как пример выложу позже.

Edited by pdn_mail
Link to comment
Share on other sites

Теперь могу подвести итог. Первая ошибка начинающего, невнимательность к деталям, краеугольным камнем моей ошибки стало то, что не понял сначала разницу между типами интерфейса gre и gretap, почему-то подумал, что это всё относится к одному протоколу, но тип gre - это L3, а gretap - L2. В описании туннеля GRE в документации zyxel говорится, что это реализация туннеля L3, так что применение мной gretap в настройках интерфейса в linux было неправильным.

Самая простая конфигурация, в случае использовании схемы:

s_1502098809_2859715_b0cd79ca00.png


Поднимаем IPSec туннель. Со стороны linux делаем настройки:
ipsec.conf 

# ipsec.conf - strongSwan IPsec configuration file

# basic configuration

config setup
        # strictcrlpolicy=yes
        # uniqueids = no

conn ipsec-gre
     dpddelay=30s
     dpdtimeout=120s
     dpdaction=restart
     closeaction=restart
      type=transport
      keyexchange=ikev1
      authby=psk
      ike=aes128-sha1-modp1024!
      esp=aes128-sha1! 
      left=192.168.2.2
      leftsubnet=192.168.2.2/32[47/0]
      leftfirewall=yes
      right=46.16.2.2
      rightsubnet=46.16.2.2/32[47/0]
      auto=start

ipsec.secrets 

# ipsec.secrets - strongSwan IPsec secrets file
192.168.2.2 46.16.2.2 : PSK "WAY123456"

добавляем интерфейс GRE

ip link add grelan type gre local 192.168.2.2 remote 46.16.2.2 dev enp4s0 
ip link set grelan up 

Теперь надо настроить общение сервера с внешним миром через туннель, тут вариантов масса, например gre интерфейс на сервере запихать в бридж с адресом локальной сети, но у меня стояла задача обеспечить доступ к нему по "белому" IP через zyxel, поэтому использовал самую простую настройку, дал gre интерфейсу адрес другой сети - 192.168.100.0/24 и настроил соответственно маршрутизацию:

ip a add 192.168.100.2/24 dev grelan 
ip ro add 46.16.2.2 via 192.168.2.1 dev enp4s0 
ip ro del default 
ip ro add default via 192.168.100.1 dev grelan

Настройки со стороны Zyxel:

int Gre0
security-level private
ip address 192.168.100.1 255.255.255.0
tunnel source ISP
ipsec preshared-key "WAY123456"
up

 Далее, со стороны Zyxel траффик на сервер заворачивается стандартным способом:
 s_1502098809_2603143_df3127133d.png
 
 вот и всё стартуем, делаем на линукс - ipsec start
 должен подняться ipsec туннель и по нему пойти через GRE траффик на сервер со стороны "белого" адреса на zyxel.

Link to comment
Share on other sites

В 26.07.2017 в 18:19, Le ecureuil сказал:

EoIP работает не поверх GRE, они просто используют один и тот же IP protocol number - 47. А в остальном - они совершенно несовместимы, и ЕМНИП ни в одном дистрибутиве реализации EoIP из коробки нет.

Я помню пытался наладить туннель EoIP, в связи с этим сообщением и предыдущими выводами созрел вопрос, почему не реализовали тип туннеля GRE L2 (gretap), а взяли вендор-зависимую реализацию от микротика?

Ни в коей мере не критикую политику компании, только думаю потенциальных пользователей GRE L2  было бы больше, чем EoIP. Есть там конечно проблема с DF, но это решаемо патчами, не сложнее чем "чужой" EoIP запилить.

Link to comment
Share on other sites

5 часов назад, pdn_mail сказал:

Я помню пытался наладить туннель EoIP, в связи с этим сообщением и предыдущими выводами созрел вопрос, почему не реализовали тип туннеля GRE L2 (gretap), а взяли вендор-зависимую реализацию от микротика?

Ни в коей мере не критикую политику компании, только думаю потенциальных пользователей GRE L2  было бы больше, чем EoIP. Есть там конечно проблема с DF, но это решаемо патчами, не сложнее чем "чужой" EoIP запилить.

Патчи на gretap для преодоления MTU сделают несовместимым реализации, так почему же сразу не взять то, что уже довольно широко используется?

А gretap мы без проблем сможем сделать, только соберите народу более 2-3 человек, кому это нужно.

Link to comment
Share on other sites

  • 4 weeks later...

Добрый день!

Столкнулся с проблемой. Тремя постами выше расписана настройка.

Всё работает замечательно, сервер доступен снаружи, работает, локальные ресурсы с ним также могут общаться, только заметил, что обновления на него не идут, т.е. сам сервер не может общаться с внешним миром если он инициатор обмена.

Например "ping 8.8.8.8", трафик с сервера уходит по туннелю IPSEC/GRE в сторону кинетика, а обратно ничего не приходит. Проблема явно где-то на стороне настроек роутера, потому что со стороны сети Интернет с сервером работа идёт без проблем.

Сервер видит через туннель Bridge0.

Подскажите пожалуйста что нужно прописать в настройке, чтобы кинетик с интерфейса Gre0 пропускал трафик дальше?

 

Link to comment
Share on other sites

@pdn_mail Лучше конечно пакеты поснимать и посмотреть что там гуляет,

А так  на вскидку можно попробовать включить nat на кинетике для туннеля:

ip nat Gre0

Link to comment
Share on other sites

  • 1 month later...

Здравствуйте!

Скажите пожалуйста, а вот автоматический режим умеет делать два туннеля? Или это можно только в ручном режиме делать, ну.., там crypto map всякие прописывать?

Сделал второй туннель Gre63 и всё перестало работать...............................................................

(config)> sh ipsec 

 ipsec_statusall:  

Status of IKE charon daemon (strongSwan 5.6.0, Linux 3.4.113, mips):
 uptime: 16 minutes, since Oct 17 11:26:15 2017
 malloc: sbrk 200704, mmap 0, used 123744, free 76960
 worker threads: 11 of 16 idle, 5/0/0/0 working, job queue: 0/0/0/0, scheduled: 4
 loaded plugins: charon random nonce openssl hmac attr kernel-netlink socket-default stroke updown eap-mschapv2 eap-dynamic xauth-generic xauth-eap error-notify systi
me-fix unity
Listening IP addresses:
 46.240.100.2
 192.168.0.1
 10.1.30.1
 192.168.100.1
 192.168.163.1
Connections:
       Gre0:  46.240.100.2...%any  IKEv1, dpddelay=30s
       Gre0:   local:  [46.240.100.2] uses pre-shared key authentication
       Gre0:   remote: uses pre-shared key authentication
       Gre0:   child:  46.240.100.2/32[gre] === 0.0.0.0/0[gre] TRANSPORT, dpdaction=restart
      Gre63:   child:  46.240.100.2/32[gre] === 0.0.0.0/0[gre] TRANSPORT, dpdaction=restart
Security Associations (0 up, 0 connecting):
 none

(config)> sh crypto
(config)> 

Прошивка v2.11.A.4.0-2
 

Edited by pdn_mail
Link to comment
Share on other sites

В 10/17/2017 в 07:55, pdn_mail сказал:

Здравствуйте!

Скажите пожалуйста, а вот автоматический режим умеет делать два туннеля? Или это можно только в ручном режиме делать, ну.., там crypto map всякие прописывать?

Сделал второй туннель Gre63 и всё перестало работать...............................................................


(config)> sh ipsec 

 ipsec_statusall:  

Status of IKE charon daemon (strongSwan 5.6.0, Linux 3.4.113, mips):
 uptime: 16 minutes, since Oct 17 11:26:15 2017
 malloc: sbrk 200704, mmap 0, used 123744, free 76960
 worker threads: 11 of 16 idle, 5/0/0/0 working, job queue: 0/0/0/0, scheduled: 4
 loaded plugins: charon random nonce openssl hmac attr kernel-netlink socket-default stroke updown eap-mschapv2 eap-dynamic xauth-generic xauth-eap error-notify systi
me-fix unity
Listening IP addresses:
 46.240.100.2
 192.168.0.1
 10.1.30.1
 192.168.100.1
 192.168.163.1
Connections:
       Gre0:  46.240.100.2...%any  IKEv1, dpddelay=30s
       Gre0:   local:  [46.240.100.2] uses pre-shared key authentication
       Gre0:   remote: uses pre-shared key authentication
       Gre0:   child:  46.240.100.2/32[gre] === 0.0.0.0/0[gre] TRANSPORT, dpdaction=restart
      Gre63:   child:  46.240.100.2/32[gre] === 0.0.0.0/0[gre] TRANSPORT, dpdaction=restart
Security Associations (0 up, 0 connecting):
 none

(config)> sh crypto
(config)> 

Прошивка v2.11.A.4.0-2
 

Умеет, только обязательно используйте IKEv2.

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...