Почему ike2 не пропускает ICMP пакеты?

Как настроить файл ipsec.conf так, чтобы при подключении из вин11 был доступ в интернет, но не удавалось пинговать ни ya.ru, ни 8.8.8.8? В данный момент у меня есть доступ в интернет, но пинг к указанным ресурсам приводит к 100% потере пакетов (Превышен интервал ожидания для запроса).iptables в данный момент настроен на разрешение всего, но, вероятно, где-то допущена ошибка.
  • 6 января 2024 г. 11:28
Ответы на вопрос 2
IKEv2 (через `strongSwan` или подобное ПО) сам по себе не блокирует ICMP пакеты. По умолчанию, он просто настраивает защищённые IPsec туннели и политики, которые позволяют трафику проходить через эти туннели. Однако, если вы столкнулись с проблемой, когда ICMP не проходит, возможны следующие причины:

1. **Правила брандмауэра:** Если у вас есть правила `iptables` или другого брандмауэра, которые блокируют ICMP, вы не сможете пинговать ни один хост, независимо от того, проходит трафик через IPsec или нет.

2. **Политики IPsec:** Возможно, ваши политики в `ipsec.conf` запрещают проход ICMP или не включают нужные подсети для передачи через VPN.

3. **Неправильная настройка маршрутизации:** Если маршруты на клиенте или сервере не корректно настроены, ICMP пакеты могут отправляться в неправильное место или вовсе не отправляться.

Чтобы не разрешить пинговать определённый диапазон IP адресов через VPN, вы можете использовать политики, которые исключают этот трафик из IPsec туннелей. Вот пример того, как может выглядеть ваш файл `ipsec.conf`:

```
conn myvpn
    ... другие параметры соединения ...
    leftsubnet=0.0.0.0/0
    rightsubnet=192.168.1.0/24 # предполагается, что это ваша локальная сеть
    leftfirewall=yes # чтобы включить правила iptables на стороне сервера
    ...
```

Используйте `left|rightsubnet` для указания, какие сети должны быть доступны через VPN. С параметром `leftfirewall=yes`, `strongSwan` попробует автоматически настроить брандмауэр в соответствии с вашими нуждами.

Теперь, чтобы блокировать определённый трафик (например, ICMP), вы можете настроить правила брандмауэра. Вот примеры команд `iptables`, которые вы могли бы использовать на сервере VPN:

```bash
# Разрешаем весь исходящий трафик
iptables -P OUTPUT ACCEPT

# Разрешаем весь входящий трафик для установленных соединений
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

# Блокируем ICMP
iptables -A OUTPUT -p icmp -j DROP
iptables -A INPUT -p icmp -j DROP

# Остальные правила разрешения...
```

Эти правила будут блокировать весь ICMP трафик. Если вы хотите блокировать пинг только к определённым адресам, вы можете указать эти адреса в правилах:

```bash
# Блокируем ICMP к ya.ru (предполагается, что вы знаете IP)
iptables -A OUTPUT -p icmp -d <IP_ya.ru> -j DROP

# Блокируем ICMP к 8.8.8.8
iptables -A OUTPUT -p icmp -d 8.8.8.8 -j DROP
```

Помните, что вам нужно заменить `<IP_ya.ru>` на фактический IP адрес сайта. Вы можете использовать DNS для резолвинга этого адреса перед примен
Включить маскард в ядре сервера 
включить маскард в iptables для интерфеса с инетом (eth0 для примера)
Похожие вопросы