Проблема с UFW OpenVPN в Ubuntu 20.04

Проблема с UFW OpenVPN в Ubuntu 20.04

У меня возникла любопытная проблема с OpenVPN / UFW на Ubuntu 20.04.

У меня есть набор правил, разрешающих исходящий трафик через tun0:. ufw insert 1 allow out on tun0 from any to anyНастройки UFW по умолчанию установлены на запрет как входящего, так и исходящего трафика: ufw default deny outgoing& ufw default deny incoming.

Я могу направить трафик только через tun0 с запущенным UFW, если каждый раз при подключении к VPN мне приходится проделывать следующую странную процедуру:

  1. ufw disable(отключите UFW, как и ожидалось, чтобы разрешить VPN-подключение к серверу)
  2. Подключиться к VPN (подключение успешно установлено)
  3. ufw enable(повторно включить UFW) -Пока все как и ожидалось - теперь я бы ожидал, что трафик будет отправляться через tun0 без каких-либо проблем... но нет. Теперь мне нужно сделать следующее...
  4. Добавьте правило, разрешающее все исходящие соединения через любой интерфейс:ufw insert 1 allow out from any to any
  5. Установите соединение в любом месте, например ping 1.1.1.1:Это важный шаг, без которого последующие соединения через tun0 не будут работать.
  6. Удалить правило Iтолько что добавленкоторый разрешает все исходящие соединения через любой интерфейс (поскольку это явно не то, что нам нужно — намерение состоит в том, чтобы ограничить соединения tun0 в соответствии с существующим правилом):ufw delete 1

Теперь я могу устанавливать соединения через VPN-туннель, как и ожидалось. Однако без шагов 4 и 5 все соединения блокируются UFW; я не могу подключиться через tun0 - даже несмотря на то, что есть явное правило UFW, разрешающее это.

Вот мой файл user.rules UFW (у меня также есть правило SSH):

*filter
:ufw-user-input - [0:0]
:ufw-user-output - [0:0]
:ufw-user-forward - [0:0]
:ufw-before-logging-input - [0:0]
:ufw-before-logging-output - [0:0]
:ufw-before-logging-forward - [0:0]
:ufw-user-logging-input - [0:0]
:ufw-user-logging-output - [0:0]
:ufw-user-logging-forward - [0:0]
:ufw-after-logging-input - [0:0]
:ufw-after-logging-output - [0:0]
:ufw-after-logging-forward - [0:0]
:ufw-logging-deny - [0:0]
:ufw-logging-allow - [0:0]
:ufw-user-limit - [0:0]
:ufw-user-limit-accept - [0:0]
### RULES ###

### tuple ### allow any 22 0.0.0.0/0 any 192.168.0.0/16 in
-A ufw-user-input -p tcp --dport 22 -s 192.168.0.0/16 -j ACCEPT
-A ufw-user-input -p udp --dport 22 -s 192.168.0.0/16 -j ACCEPT

### tuple ### allow any any 0.0.0.0/0 any 0.0.0.0/0 out_tun0
-A ufw-user-output -o tun0 -j ACCEPT

### tuple ### deny any any 0.0.0.0/0 any 0.0.0.0/0 out
-A ufw-user-output -j DROP

### tuple ### deny any any 0.0.0.0/0 any 0.0.0.0/0 in
-A ufw-user-input -j DROP

### END RULES ###

### LOGGING ###
-A ufw-after-logging-input -j LOG --log-prefix "[UFW BLOCK] " -m limit --limit 3/min --limit-burst 10
-A ufw-after-logging-output -j LOG --log-prefix "[UFW BLOCK] " -m limit --limit 3/min --limit-burst 10
-A ufw-after-logging-forward -j LOG --log-prefix "[UFW BLOCK] " -m limit --limit 3/min --limit-burst 10
-I ufw-logging-deny -m conntrack --ctstate INVALID -j RETURN -m limit --limit 3/min --limit-burst 10
-A ufw-logging-deny -j LOG --log-prefix "[UFW BLOCK] " -m limit --limit 3/min --limit-burst 10
-A ufw-logging-allow -j LOG --log-prefix "[UFW ALLOW] " -m limit --limit 3/min --limit-burst 10
### END LOGGING ###

### RATE LIMITING ###
-A ufw-user-limit -m limit --limit 3/minute -j LOG --log-prefix "[UFW LIMIT BLOCK] "
-A ufw-user-limit -j REJECT
-A ufw-user-limit-accept -j ACCEPT
### END RATE LIMITING ###
COMMIT

Есть идеи, почему происходит такое странное поведение?

Связанный контент