Проверка существования IPSEC как мета-выражения в nftables

Недавно настраивая маршрутизатор вручную с нуля с помощью Debian, я решил использовать nftables вместе с strongSwan для обеспечения доступа IKEv2 VPN к этому.

После долгих разочарований вместе с испытанием и ошибка, я наконец обнаружил правильные правила для использования с nftables, чтобы разрешить доступ VPN к маршрутизатору и локальной сети за ним.

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

Я обнаружил, что с помощью meta ipsec существует accept в таблицах ввода / пересылки фильтров, это позволяет трафику в маршрутизатор правильно.

Разрешение на вход разрешает доступ к маршрутизатору, а пересылка позволяет перенаправлять трафик в локальную сеть.

Хотя эти правила работают, я не уверен, насколько они безопасны.

Следует ли мне использовать это мета-выражение соответствует или я должен совпадать что-нибудь еще? Возможно, что-нибудь еще, предоставляемое IPSEC, может быть настроено с помощью strongSwan?

1
задан 22 April 2020 в 03:06
1 ответ

На самом деле я пошел дальше и проверил, так как мне тоже было интересно, как перевести правила политики iptables в nftables.

nftables имеет более или менее недокументированное соответствие ipsec, которое можно увидеть в doc/primary-expression.txt репозитория nftables. .

ipsec {in | out} [ spnum 'NUM' ] {reqid | spi}

ipsec {in | out} [ spnum 'NUM' ] {ip | ip6} {saddr | daddr}

Выражение ipsec относится к данным ipsec, связанным с пакетом.

Ключевое слово «in» или «out» необходимо использовать, чтобы указать, должно ли выражение проверять входящие или исходящие политики. Ключевое слово in можно использовать в хуках prerouting, input и forward. Ключевое слово out применяется к хукам пересылки, вывода и постмаршрутизации.

Необязательное ключевое слово spnum может использоваться для сопоставления определенного состояния в цепочке, по умолчанию он равен 0.

Что примерно соответствует тому, что проверял модуль политики, хотя я на самом деле не сравнивал xt_policy и nft_meta/nft_xfrm целиком, чтобы убедиться, что они проверяют те же вещи.

В общем, что-то вроде nft add rule ip filter INPUT meta ipsec exists ipsec in ip saddr 192.168.1.0/24 accept должно быть тем, что вы ищете.

0
ответ дан 23 July 2020 в 21:14

Теги

Похожие вопросы