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

Какие правила iptables мне нужны для клиентов strongSwan?

На сервере я использую следующие правила:

sudo iptables -A INPUT -p udp --dport  500 -j ACCEPT
sudo iptables -A INPUT -p udp --dport 4500 -j ACCEPT
sudo iptables -A FORWARD --match policy --pol ipsec --dir in  --proto esp -s 10.0.2.0/24 -j ACCEPT
sudo iptables -A FORWARD --match policy --pol ipsec --dir out --proto esp -d 10.0.2.0/24 -j ACCEPT
sudo iptables -t nat -A POSTROUTING -s 10.0.2.0/24 -o eth0 -m policy --pol ipsec --dir out -j ACCEPT
sudo iptables -t nat -A POSTROUTING -s 10.0.2.0/24 -o eth0 -j MASQUERADE
sudo iptables -t mangle -A FORWARD --match policy --pol ipsec --dir in -s 10.0.2.0/24 -o eth0 -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1361:1536 -j TCPMSS --set-mss 1360

Что эквивалентно для клиента?

Я предполагаю, что связанный входящий трафик разрешен, например, с таким правилом:

# iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

Если исходящий трафик обычно блокируется, вам необходимо добавить правила, разрешающие следующий тип трафика, в зависимости от фактической конфигурации:

  • IKE (порты UDP 500 и 4500, по умолчанию):

    # iptables -A OUTPUT -p udp --dport 500 -j ACCEPT
    # iptables -A OUTPUT -p udp --dport 4500 -j ACCEPT
    

    Вы можете ограничить это больше, например сделайте его специфичным для интерфейса (-o <name>) или адрес назначения (-d <ip>). Исходные порты также могут быть сопоставлены, но в некоторых ситуациях используются произвольные исходные порты (т.е. 0 в качестве исходного порта в конфигурации strongSwan) может быть предпочтительным или даже обязательным (например, если настраиваемый порт сервера используется).

  • Если необходимо загрузить списки отзыва сертификатов или сертификат сервера проверяется с помощью протокола OCSP, соответствующие порты TCP также должны быть разрешены, например:

    # iptables -A OUTPUT -p tcp --dport 80 -d <CRL server IP> -j ACCEPT
    # iptables -A OUTPUT -p tcp --dport <OCSP port> -d <OCSP server IP> -j ACCEPT
    
  • Если клиент находится за NAT или инкапсуляция UDP принудительно, трафик ESP будет отправлен через порт UDP NAT-T IKE. В противном случае трафик ESP должен быть разрешен явно:

    # iptables -A OUTPUT -p 50 -j ACCEPT 
    

    Опять же, это может быть ограничено конкретным местом назначения и т. Д.

  • Для фактического трафика VPN потребуются дополнительные правила. Это можно сделать либо с помощью параметра strongSwan по умолчанию сценарий обновления, который автоматически вставляет правила для согласованных селекторов трафика или с глобальным правилом приема всей почты для трафика, который соответствует любой политике IPsec:

    # iptables -A OUTPUT -m policy --dir out --pol ipsec -j ACCEPT