Jump to content
KorDen

Strongswan - когда захотелось нестандартного...

8 posts in this topic

Пытаюсь запустить Strongswan из Entware-3x на Ultra II, для начала повторяя текущие настройки из прошивки.

Прошивочный говорит что у него

loaded plugins: charon random nonce openssl
                hmac attr kernel-netlink socket-default stroke updown eap-
                mschapv2 eap-dynamic xauth-generic xauth-eap error-notify
                systime-fix unity

Поставим что-то навроде, без eap:

Скрытый текст

strongswan - 5.5.1-2
strongswan-charon - 5.5.1-2
strongswan-mod-attr - 5.5.1-2
strongswan-mod-hmac - 5.5.1-2
strongswan-mod-kernel-netlink - 5.5.1-2
strongswan-mod-nonce - 5.5.1-2
strongswan-mod-openssl - 5.5.1-2
strongswan-mod-random - 5.5.1-2
strongswan-mod-socket-default - 5.5.1-2
strongswan-mod-stroke - 5.5.1-2
strongswan-mod-unity - 5.5.1-2
strongswan-mod-updown - 5.5.1-2
strongswan-mod-xauth-generic - 5.5.1-2
strongswan-utils - 5.5.1-2

 

Сделаем соединение, для начала с пассфразой (копия прошивочного):

Скрытый текст

conn test
    type=transport
    keyexchange=ikev2
    authby=psk
    ike=aes128-sha1-modp2048!
    esp=aes128-sha1-modp2048!
    left=1.2.3.4
    leftsubnet=1.2.3.4[4]
    leftid=e@e.a
    right=5.6.7.8
    rightsubnet=5.6.7.8[4]
    rightid=v@v.a
    auto=start

 

Теперь начинается интересное: по-умолчанию загружен модуль esp4_hw - при запуске естественно ругается что не может подгрузить esp4, но работает, причем с аппаратным ускорением!

charon: 11[IKE] CHILD_SA test{1} established with SPIs cef20fca_i ca0394c8_o and TS 1.2.3.4/32[ipencap] === 5.6.7.8/32[ipencap]
ndm: kernel: EIP93: build outbound ESP connection, (SPI=cadc4717)
ndm: kernel: EIP93: build  inbound ESP connection, (SPI=cef20fca)

Главное не забыть в фаерволе вручную разрешить входящие ESP (и, возможно, UDP/500; UDP/4500)

 

Но стоит выгрузить esp4_hw и загрузить esp4 - при запуске и попытке пинга (т.е. при установке ESP) роутер вообще уходит в ребут :( Меня конечно в первую очередь интересует работа с EIP93, но если вдруг что-то из желаемого на нем не взлетит, хотелось бы иметь возможности протестировать без него.

Edited by KorDen
  • Thanks 1

Share this post


Link to post
Share on other sites

У меня StrongSwan на роутере работает в качестве клиента. Роутер натит весь траффик из локальной сети в тоннель.

При esp=aes128-sha2_256-modp4096 почти выдает заявленные провайдером 100Mbit.

У вас траффик натится в тоннель или маршрутизируется? Как боретесь с тем, что ndms перезаписывает правила iptables для IPSec?

Share this post


Link to post
Share on other sites

@yoman, нат можно отключить - делаете 'no ip nat Home' а дальше задаете что куда натить через ip static (типа ip static Home ISP). У меня IPsec в транспортном режиме, весь траффик ходит по IPIP-туннелям

44 минуты назад, yoman сказал:

При esp=aes128-sha2_256-modp4096 почти выдает заявленные провайдером 100Mbit.

А нагрузка на проц при этом какая, т.е. у вас тоже аппаратный криптомодуль работает без проблем, насколько я понимаю?

Share this post


Link to post
Share on other sites
2 часа назад, KorDen сказал:

@yoman, нат можно отключить - делаете 'no ip nat Home' а дальше задаете что куда натить через ip static (типа ip static Home ISP). У меня IPsec в транспортном режиме, весь траффик ходит по IPIP-туннелям

А нагрузка на проц при этом какая, т.е. у вас тоже аппаратный криптомодуль работает без проблем, насколько я понимаю?

Проблема, в том, что StrongSwan в режиме клиента поднимает alias на eth3. Таким образом у меня на внешнем интерефейсе IP от провайдера и IP, полученный от сервера StrongSwan, в который и нужно натить трафиик. Сейчас нат приписывается скриптом _updown из плагина updown. Проблемы начинают возникать, когда кинетик переходит на резервный канал на модеме 4G, а правила iptables остаются с натом на ethernet. Приходится отлавливать это переключение скриптами. Кстати, встроенный ping checker зачем-то для каждой своей проверки переписывает все правила iptables, поэтому пришлось отказаться от встроенного механизма резервирования канала и писать свои скрипты.

'no ip nat home' решит для меня задачу не пускать клиентов в инет, пока не запустится StrongSwan

При включенном аппаратном криптомодуле и скорости ококло 80-90 Mbit softirq около 50%

Edited by yoman

Share this post


Link to post
Share on other sites
В 08.05.2017 в 00:12, KorDen сказал:

работает, причем с аппаратным ускорением!

Это как раз не удивительно. EIP93 включается в работу, как только по IPSec пробежит первый знакомый для него пакет.

Share this post


Link to post
Share on other sites
25 минут назад, Александр Рыжов сказал:

Это как раз не удивительно. EIP93 включается в работу, как только по IPSec пробежит первый знакомый для него пакет.

Я думал, придется пересобирать strongswan с esp4_hw.ko, ведь там жестко забит esp4.ko, на практике же он только при запуске ругается что не может подгрузить, но не валится при этом,

 

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

Проблемы начинают возникать, когда кинетик переходит на резервный канал на модеме 4G, ... Кстати, встроенный ping checker зачем-то для каждой своей проверки переписывает все правила iptables, поэтому пришлось отказаться от встроенного механизма резервирования канала и писать свои скрипты.

Да, с резервированием все очень печально, я сам с этим столкнулся (вначале с бесконечной перезаписью правил, затем со сложностями работа прошивочного IPsec за нат, если не использовать автоматические туннели) - пока без авторезервирования, думаю как все лучше реализовать.

Share this post


Link to post
Share on other sites
42 минуты назад, KorDen сказал:

Да, с резервированием все очень печально, я сам с этим столкнулся (вначале с бесконечной перезаписью правил, затем со сложностями работа прошивочного IPsec за нат, если не использовать автоматические туннели) - пока без авторезервирования, думаю как все лучше реализовать.

У меня примерно следующее:

1. monitor.sh, который пингует хосты через туннель, если что-то не так, то пингует напрямую. Если не удалось никак пропинговать, то меняет маршрут на модем и перезапускает StrongSwan

2. Второй скрипт положил в wan.d, таким образом при пропадании линка, также меняет маршрут на модем и перезапускает ipsec.

3. Третий скрипт отсеживает появление инета на основном канале и переключает все обратно...

Ну и поверх всего этого еще скрипт, который мониторит правила iptables.

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

Share this post


Link to post
Share on other sites
В 5/8/2017 в 00:12, KorDen сказал:

Пытаюсь запустить Strongswan из Entware-3x на Ultra II, для начала повторяя текущие настройки из прошивки.

Прошивочный говорит что у него


loaded plugins: charon random nonce openssl
                hmac attr kernel-netlink socket-default stroke updown eap-
                mschapv2 eap-dynamic xauth-generic xauth-eap error-notify
                systime-fix unity

Поставим что-то навроде, без eap:

  Показать содержимое

Сделаем соединение, для начала с пассфразой (копия прошивочного):

  Показать содержимое

Теперь начинается интересное: по-умолчанию загружен модуль esp4_hw - при запуске естественно ругается что не может подгрузить esp4, но работает, причем с аппаратным ускорением!


charon: 11[IKE] CHILD_SA test{1} established with SPIs cef20fca_i ca0394c8_o and TS 1.2.3.4/32[ipencap] === 5.6.7.8/32[ipencap]
ndm: kernel: EIP93: build outbound ESP connection, (SPI=cadc4717)
ndm: kernel: EIP93: build  inbound ESP connection, (SPI=cef20fca)

Главное не забыть в фаерволе вручную разрешить входящие ESP (и, возможно, UDP/500; UDP/4500)

 

Но стоит выгрузить esp4_hw и загрузить esp4 - при запуске и попытке пинга (т.е. при установке ESP) роутер вообще уходит в ребут :( Меня конечно в первую очередь интересует работа с EIP93, но если вдруг что-то из желаемого на нем не взлетит, хотелось бы иметь возможности протестировать без него.

Нужно выгружать сперва esp4_hw, а затем crypto_k, и только потом загружать esp4.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×