Назад | Перейти на главную страницу

firewalld: сопоставить зону по политике

У меня есть следующие зоны, относящиеся к этому вопросу.

Я хочу рассматривать трафик, зашифрованный IPSEC (который поступает с определенных IP-адресов), как принадлежащий SemiTrusted.

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

Как я могу добиться этого с помощью firewalld. Я не видел никаких упоминаний о политике на страницах руководства firewalld и не видел, как найти соответствие на основе политики ipsec в firewalld.richlanguage (5).

Я предполагаю, что могу использовать firewalld.direct (5), но я не знаю, как интегрировать его с другой конфигурацией на основе firewalld.zone (5).

edit: Чтобы прояснить, я не хочу открывать порты ipsec в зоне SemiTrusted. Это банально.

Для этого вам не нужно прямое правило; firewalld уже имеет определение службы для IPsec.

firewall-cmd --zone=SemiTrusted --add-service=ipsec

Определение разрешает весь трафик AH, ESP и UDP-порта 500.

Вам понадобится второе правило, если на любом конце есть NAT и вам нужно добавить UDP-порт 4500:

firewall-cmd --zone=SemiTrusted --add-port=4500/udp

Я проделал то же самое с промежуточной зоной:

# first allow 500/udp, 4500/udp, AH and ESP on incoming interface
firewall-cmd --permanent --zone=public --add-service=ipsec

# traffic from our specific IPs
firewall-cmd --permanent --new-zone=OurIps
firewall-cmd --permanent --zone=OurIps --add-source=a.b.c.d/29

# little hack to ensure zone SemiTrusted active and relevant chains are in iptables
firewall-cmd --permanent --new-ipset=empty --type=hash:ip
firewall-cmd --permanent --new-zone=SemiTrusted
firewall-cmd --permanent --zone=SemiTrusted --add-source=ipset:empty

# rule to forward incoming IPsec traffic from OurIps zone to SemiTrusted zone
firewall-cmd --permanent --direct --add-rule ipv4 filter IN_OurIps 0 -m policy --pol ipsec --dir in -g IN_SemiTrusted

# and... have fun
firewall-cmd --reload

Конечно, вы можете управлять IP-адресами в OurIps через явные подсети или ipset.