Як налаштувати UFW, щоб дозволити переадресацію IP?


18

У мене на домашньому сервері встановлені UFW, OpenVPN та Virtualbox. У мене є лише мережа для власників віртуальних машин (vboxnet0), налаштована з IP-діапазоном 10.0.1.0, та інший діапазон IP 10.0.0.0, налаштований на іншому кінці з'єднання OpenVPN.

Переадресація IP налаштована на хості, тому при відключенні UFW вони можуть спілкуватися один з одним без проблем. Однак я хотів би запустити UFW, оскільки цей хост буде доступний в Інтернеті, і я хотів би контролювати доступ.

Як я можу налаштувати UFW, щоб дозволити такий трафік?

Я спробував різні комбінації: ufw allow allow in|out on vboxnet0|tun0без успіху.

Мої правила UFW:

root@gimli:~# ufw status
Status: active

To                         Action      From
--                         ------      ----
22                         ALLOW       Anywhere
Anywhere                   ALLOW       10.0.0.0/16
Anywhere on vboxnet0       ALLOW       Anywhere
Anywhere on tun0           ALLOW       Anywhere

Anywhere                   ALLOW OUT   Anywhere on vboxnet0
Anywhere                   ALLOW OUT   Anywhere on tun0

Будь-яка допомога буде дуже вдячна.

Відповіді:


20

Я зрозумів це.

Редагування /etc/default/ufwі набір DEFAULT_FORWARD_POLICYдля ACCEPT :

DEFAULT_FORWARD_POLICY="ACCEPT"

10
Чи є якийсь спосіб дозволити лише йому пересилати конкретні порти, не встановлюючи його для прийняття всього?
Маркус Даунінг

1
Я думаю, вам потрібно перезапустити ufw після редагування файлу:service ufw restart
Minh Danh

10

Тепер це можливо - зі сторінки ufw man:

Правила для трафіку, не призначені для самого хоста, а натомість для трафіку, який повинен бути маршрутизований / переадресований через брандмауер, повинні вказувати ключове слово маршруту перед правилом (правила маршрутизації суттєво відрізняються від синтаксису PF і замість цього враховувати netfilter FORWARD ланцюгові конвенції) . Наприклад:

     ufw route allow in on eth1 out on eth2

Це дозволить увесь трафік, перенаправлений на eth2 і надходить на eth1, щоб пройти через брандмауер.

     ufw route allow in on eth0 out on eth1 to 12.34.45.67 port 80 proto tcp

Це правило дозволяє будь-яким пакетам, що надходять на eth0, переходити міжмережевий екран на eth1 до порту 80 tcp 12.34.45.67.

Окрім правил та правил маршрутизації, ви також маєте налаштувати переадресацію IP. Це можна зробити, встановивши в /etc/ufw/sysctl.conf таке:

     net/ipv4/ip_forward=1
     net/ipv6/conf/default/forwarding=1
     net/ipv6/conf/all/forwarding=1

потім перезапустіть брандмауер:

     ufw disable
     ufw enable

Майте на увазі, що налаштування параметрів ядра є специфічною для операційної системи, і параметри ufw sysctl можуть бути відмінені. Детальну інформацію див. На сторінці керівництва sysctl.


1
Для тих із нас, хто хоче дозволити трафік tcp між клієнтами OpenVPN на сервері OpenVPN, це працює. Наприклад: маршрут ufw дозволяється входити в tun0 на tun0
вхід

Бо запис ufw routeприсутній з версії 0.34
Йоріл

7

якщо встановити DEFAULT_FORWARD_POLICY на ACCEPT в / etc / default / ufw, брандмауер перешле всі пакети незалежно від налаштувань інтерфейсу користувача.

Я думаю, що інтерфейс користувача призначений лише для простої фільтрації вводу / виходу. Для переадресації вам потрібно додати правила iptables у /etc/ufw/before.rules, як тут:

-A ufw-before-forward -i eth1 -p tcp -d 192.168.1.11 --dport 22 -j ACCEPT

Напевно, у вас вже є правило, яке дозволяє з'єднання зсередини та інше, яке дозволяє пакети із пов'язаних та встановлених сеансів tcp.

Я не фахівець з iptables, мені знадобилося дуже багато часу, щоб розібратися в цьому (з ip6tables, але це має бути схожим). Можливо, це не все, що потрібно у вашому випадку.

Найкращі вітання


4

Ця команда ufw прекрасно працювала для мене: sudo ufw default allow FORWARD

Щоб переконатися, що зміна застосована: sudo service ufw restart


Це дає помилку "Недійсний синтаксис". Документи кажуть: "НАПРЯМКА - це одна з вхідних, вихідних або маршрутизованих".
ColinM

@ColinM це працювало для мене на Xubuntu 16.04.5 LTS
baptx

FORWARDпрацює як псевдонім для routedUbuntu
patricktokeeffe
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.