LINUX.ORG.RU
решено ФорумAdmin

unbound для ipsec клиентов, настроить фаервол

 ,


0

1

CentOS 7. Настраиваю VPN. Настроил strongswan, клиенты соединяются, настроил NAT, всё хорошо. Единственный момент - с сервера не могу пинговать клиентов. Теперь хочу запустить unbound на сервере конкретно для этих клиентов и ни для кого более. Если я его открою для всего интернета, то проблем нет, всё работает. Но я хочу, чтобы к нему соединялись только впн-клиенты. Внешний адрес у них может быть любой. Запрос на unbound приходит с их внешним адресом (т.к. у клиентов на сервер отдельный роут прокинут).

Когда я делал VPN через OpenVPN, с этим не было никаких проблем: он создавал отдельный интерфейс tun со своим адресом, я вешал сервер на этот адрес и всё работало. Тут никакого отдельного интерфейса нет.

Пробовал делать отдельный внутренний адрес на eth0, в принципе работает, запросы туда уходят, однако ответы клиентам не приходят.

Вообще подозреваю, что исходная проблема в том, что сервер почему-то не пингует клиентов, возможно по той же причине и ответы от unbound не доходят. Фаервол тому не причина, пробовал его отключать, всё равно ничего не доходит.

Конфиги:

# cat /etc/strongswan/ipsec.conf
config setup
    plutostart = no

conn vpn
    keyexchange = ikev2
    ike = aes128-sha256-modp1024
    dpdaction = clear
    left = %any
    leftsubnet = 0.0.0.0/0
    leftauth = pubkey
    leftcert = /etc/letsencrypt/live/mysite.com/cert.pem
    leftid = @mysite.com
    leftsendcert = always
    right = %any
    rightsourceip = 10.77.30.0/24
    rightdns = 1.1.1.1
    rightauth = eap-mschapv2
    rightsendcert = never
    eap_identity = %any
    auto = add
# firewall-cmd --info-zone=public
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  services: ssh dhcpv6-client http https ipsec
  masquerade: yes

★★★★★

Но я хочу, чтобы к нему соединялись только впн-клиенты. Внешний адрес у них может быть любой. Запрос на unbound приходит с их внешним адресом (т.к. у клиентов на сервер отдельный роут прокинут).

Здравствуйте, попробуйте использовать опцию --match policy у iptables, чтобы отлавливать пакеты, пришедшие через ipsec.

По поводу пингов - IMHO, это отдельная проблема. У Вас файрвол пропускает icmp-пакеты?

Serge10 ★★★★ ()

Один из пример как я делал (причин почему именно так, а никак-то по другому уже не помню, вариантов же больше одного)

dns сервер висит на $EXT_IP

rightsourceip = 10.77.30.2/24
rightdns = 10.77.30.1

Далее в iptables dnat
iptables -t nat -A PREROUTING -d 10.77.30.1 -p udp --dport 53 -j DNAT --to-destination $EXT_IP:53

сервер почему-то не пингует клиентов
Фаервол тому не причина, пробовал его отключать

Возможно fw на клиентах. Но это не причина почему не работает, ведь от клиента к серверу все прилетает.

anc ★★★★★ ()

Помогло повесить unbound на этот IP-адрес, на 0.0.0.0 не работает. Причину не совсем понимаю (предполагаю, что он ответ шлёт с другого адреса и он не уходит в IPSec), но в принципе ладно, работает.

Legioner ★★★★★ ()