L2TP поверх IPSec на Debian 10

Вопрос или проблема

На моем Debian 10 есть интерфейс Wi-Fi, wlx08beac0a6c1d, который работает как WEP AP для старого оборудования, которое не поддерживает WPA.

Моя основная сеть – 192.168.1.0/24, и этот интерфейс настроен как 192.168.2.1.

Для начала на этом интерфейсе установлены ограничения на один MAC и разрешен только DHCP в этой сети:

iptables -A INPUT -i wlx08beac0a6c1d -m mac ! --mac-source 00:30:65:05:9F:4D -j DROP
iptables -A INPUT -i wlx08beac0a6c1d -p udp --dport 67:68 --sport 67:68 -j ACCEPT
iptables -A INPUT -i wlx08beac0a6c1d -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i wlx08beac0a6c1d -j DROP

(Проверка MAC также настроена в hostapd.conf — что, конечно, является столь же неэффективной мерой безопасности (хотя, вероятно, она достаточно эффективна здесь, в Шропшире).)

Это устройство (заявляет, что) поддерживает L2TP over IPSec.
Я предполагаю, что, открыв дополнительный порт для этого, я смогу подключить эту старую машину к остальной моей сети через туннель к этому порту, и, как только подключение будет установлено, старая машина будет казаться, как будто она в моей сети.

Так ли это? Или я что-то неправильно понимаю?
Безопасно ли это теперь в сети WEP?

Похоже, что необходимые пакеты — это strongswan и xl2tpd?

Похоже, что IPSec будет шифровать трафик в сети WEP и что мне нужно будет открыть еще несколько портов, чтобы согласовать и начать шифрование?

Затем, похоже, L2TP установит соединение, PPP-соединение с другим портом на Debian, и будет маршрутизировать весь трафик через него?
Так старая машина получит второй IP-адрес для этого PPP-соединения?
И как это будет выглядеть в Debian (и будет ли оно маршрутизироваться между остальной частью моей сети и Интернетом)?

Итак: сначала strongswan

# apt-get install strongswan

И теперь я действительно не понимаю, что делать.
Я сделал, как указано здесь
https://www.digitalocean.com/community/tutorials/how-to-set-up-an-ikev2-vpn-server-with-strongswan-on-ubuntu-18-04-2
и получил следующий ipsec.conf

config setup
    charondebug="ike 1, knl 1, cfg 0"
    uniqueids=no

conn wep-vpn
    auto=add
    compress=no
    type=tunnel
    keyexchange=ikev2
    fragmentation=yes
    forceencaps=yes
    dpdaction=clear
    dpddelay=300s
    rekey=no
    left=%any
    leftid=192.168.2.31
    leftcert=server-cert.pem
    leftsendcert=always
    leftsubnet=0.0.0.0/
    right=%any
    rightid=%any
    rightauth=eap-mschapv2
    rightsourceip=192.168.2.0/24
    rightdns=192.168.2.31
    rightsendcert=never
    eap_identity=%identity

Я думаю, что left правильно, если интерпретировать его как эта машина, но не уверен насчет right, что, предположительно, является чем-то другим?

Далее он продолжает делать что-то с чем-то, называемым UFW, но я использую iptables.
Я думаю, мне нужно

iptables -A INPUT -i wlx08beac0a6c1d -p udp --dport 500 -j ACCEPT
iptables -A INPUT -i wlx08beac0a6c1d -p udp --dport 4500 -j ACCEPT

чтобы разрешить соединения с IPsec.

Следующая часть трюка — это xl2tpd

# apt-get install xl2tpd

/etc/xl2tpd/xl2tpd.conf

[global]
ipsec saref = yes
access control = no

[lns default]
ip range = 192.168.3.100-192.168.3.254
local ip = 192.168.3.1
refuse chap = yes
refuse pap = yes
require authentication = yes
pppoptfile = /etc/ppp/xl2tpd-options
length bit = yes

/etc/ppp/xl2tpd-options

require-mschap-v2
ms-dns 192.168.3.1

Добавьте в /etc/ppp/chap-secrets

И

iptables -A INPUT -i wlx08beac0a6c1d -p udp --dport 1701 -j ACCEPT

Очевидно, что это не работает.

/etc/ipsec.conf

config setup

conn wep-ap
        type=transport
        authby=secret
        pfs=no
        rekey=no
        keyingtries=1
        left=%any
        leftid=%any
        right=%any
        auto=add
        esp=aes128-sha1-modp1536
        ike=aes128-sha1-modp1536
        include /var/lib/strongswan/ipsec.conf.inc

Вопрос: как определить, какие значения должны быть у esp и ike? Они имеют другой формат в ipsec.conf, чем в /var/log/syslog — это очень неудобно.

/etc/strongswan.conf

charon {
plugins {
eap_dynamic {
preferred = eap-mschapv2, eap-tls
}
}
}

/etc/ipsec.secrets

%any %any : PSK "password"

/etc/ppp/chap-secrets

laptop  *       password *

/etc/ppp/options.xl2tpd

noccp
auth
mtu 1410
mru 1410
nodefaultroute
proxyarp
silent
debug
ms-dns 192.168.3.31

/etc/xl2tpd/xl2tpd.conf

[global]                                                                ; Глобальные параметры:
port = 1701                                                     ; * Привязка к порту 1701
debug avp = yes
debug network = yes
debug packet = yes
debug state = yes
debug tunnel = yes
auth file = /etc/xl2tpc/l2tp-secrets
access control = no
[lns default]                                                   ; Наше определение LNS по умолчанию
ip range = 192.168.3.100-192.168.3.254                          ; * Это допустимо
local ip = 192.168.3.31                         ; * Наш локальный IP для использования
name = mini31                                           ; * Сообщаем это как наше имя хоста
pppoptfile = /etc/ppp/options.xl2tpd
ppp debug = yes
require authentication = yes
require chap = yes
refuse pap = yes

Тем не менее, это всё равно не работает. В /var/log/syslog видно, что IPsec подключен, но затем L2TP завершает работу с сообщением об ошибке:

...
xl2tpd[27668]: network_thread: select timeout with max retries: 5 for tunnel: 28160
xl2tpd[27668]: Maximum retries exceeded for tunnel 28160.  Closing.
xl2tpd[27668]: Connection 4 closed to 192.168.1.11, port 1701 (Timeout)
...

Только что воспроизвёл на свежей установке Raspberry Pi, и оно заработало!

В итоге я обнаружил, что на Raspberry было много файлов в /etc/strongswan.d/charon, но ни одного на Debian. Копирование этих файлов с Raspberry на Debian помогло всё запустить!

.

Ответ или решение

Настройка L2TP поверх IPSec на Debian 10: Решение проблем

Если вы планируете настроить L2TP поверх IPSec на вашем Debian 10 для защиты трафика в вашей сети и соединения старых устройств с более современной сетью, эта инструкция поможет вам достичь вашей цели. Мы обсудим основные аспекты, связанные с этой настройкой, и представим возможные решения.

Исходные условия

Вы запустили точку доступа WEP с интерфейсом wlx08beac0a6c1d для старого оборудования, которое не поддерживает WPA. Основная сеть 192.168.1.0/24, и интерфейс настраивается на 192.168.2.1. Интерфейс ограничен одним MAC-адресом, и DHCP разрешен только на этой сети. Изначально вы установили следующие правила iptables:

iptables -A INPUT -i wlx08beac0a6c1d -m mac ! --mac-source 00:30:65:05:9F:4D -j DROP
iptables -A INPUT -i wlx08beac0a6c1d -p udp --dport 67:68 --sport 67:68 -j ACCEPT
iptables -A INPUT -i wlx08beac0a6c1d -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i wlx08beac0a6c1d -j DROP

Установка необходимых пакетов

Для настройки L2TP поверх IPSec на вашем сервере Debian 10 вам потребуются следующие пакеты: strongswan для IPSec и xl2tpd для L2TP. Установка осуществляется командами:

apt-get install strongswan
apt-get install xl2tpd

Настройка IPSec с помощью StrongSwan

Файл конфигурации /etc/ipsec.conf должен быть настроен для работы в транспортном режиме, используя PSK аутентификацию. Пример конфигурации:

config setup
    charondebug="ike 1, knl 1, cfg 0"
    uniqueids=no

conn wep-vpn
    auto=add
    compress=no
    type=tunnel
    keyexchange=ikev2
    fragmentation=yes
    forceencaps=yes
    dpdaction=clear
    dpddelay=300s
    rekey=no
    left=%any
    leftid=192.168.2.31
    leftcert=server-cert.pem
    leftsendcert=always
    leftsubnet=0.0.0.0/
    right=%any
    rightid=%any
    rightauth=eap-mschapv2
    rightsourceip=192.168.2.0/24
    rightdns=192.168.2.31
    rightsendcert=never
    eap_identity=%identity

Важным моментом является корректная настройка параметров "left" и "right", где "left" обычно указывает на ваш сервер, а "right" — на клиентов.

Настройка L2TP с помощью xl2tpd

Файл конфигурации /etc/xl2tpd/xl2tpd.conf должен выглядеть следующим образом:

[global]
ipsec saref = yes
access control = no

[lns default]
ip range = 192.168.3.100-192.168.3.254
local ip = 192.168.3.1
refuse chap = yes
refuse pap = yes
require authentication = yes
pppoptfile = /etc/ppp/xl2tpd-options
length bit = yes

Файл /etc/ppp/xl2tpd-options:

require-mschap-v2
ms-dns 192.168.3.1

И добавьте учетные данные в /etc/ppp/chap-secrets.

Настройка iptables

Для того чтобы разрешить подключение по VPN, добавьте следующие правила iptables:

iptables -A INPUT -i wlx08beac0a6c1d -p udp --dport 500 -j ACCEPT
iptables -A INPUT -i wlx08beac0a6c1d -p udp --dport 4500 -j ACCEPT
iptables -A INPUT -i wlx08beac0a6c1d -p udp --dport 1701 -j ACCEPT

Поиск и устранение неисправностей

Если вы сталкиваетесь с ошибками при подключении L2TP, как например Maximum retries exceeded for tunnel, убедитесь, что файлы конфигурации корректны и все необходимые файлы, такие как из директории /etc/strongswan.d/charon, присутствуют. Как оказалось, в вашем случае копирование файлов из работающей системы помогло решить проблему.

Имейте в виду, что IPSec обеспечивает шифрование трафика, обеспечивая его защиту даже при использовании более слабой защиты на уровне канала, такой как WEP. Всегда проверяйте логи в /var/log/syslog, чтобы получать более детальную информацию об ошибках.

При выполнении данных шагов, вы сможете настроить L2TP поверх IPSec на вашем Debian 10, обеспечив защищенное подключение для ваших старых устройств.

Оцените материал
Добавить комментарий

Капча загружается...