Jak skonfigurować UFW, aby umożliwić przekazywanie IP?

18

Mam UFW, OpenVPN i Virtualbox zainstalowane na moim serwerze domowym. Mam sieć tylko hosta dla gości mojej maszyny wirtualnej (vboxnet0) skonfigurowaną z zakresem adresów IP 10.0.1.0 i innym zakresem adresów IP 10.0.0.0 skonfigurowanym na drugim końcu połączenia OpenVPN.

Przekazywanie IP jest skonfigurowane na hoście, więc gdy UFW jest wyłączone , mogą ze sobą rozmawiać bez żadnych problemów. Chciałbym jednak uruchomić UFW, ponieważ ten host będzie dostępny w Internecie i chciałbym mieć kontrolę dostępu.

Jak skonfigurować UFW, aby zezwalał na tego rodzaju ruch?

Próbowałem różnych kombinacji: ufw allow allow in|out on vboxnet0|tun0bezskutecznie.

Moje zasady UFW to:

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

Każda pomoc byłaby bardzo mile widziana.

Stephen RC
źródło

Odpowiedzi:

20

Rozgryzłem to.

Edytuj /etc/default/ufwi ustaw DEFAULT_FORWARD_POLICYna AKCEPTUJ :

DEFAULT_FORWARD_POLICY="ACCEPT"
Stephen RC
źródło
10
Czy jest jakiś sposób, aby pozwolić mu tylko na przekazywanie określonych portów, nie ustawiając go na AKCEPTOWANIE wszystkiego?
Marcus Downing
1
Myślę, że musisz ponownie uruchomić ufw po edycji pliku:service ufw restart
Minh Danh
10

Jest to teraz możliwe - ze strony podręcznika ufw:

Reguły dla ruchu nieprzeznaczonego dla samego hosta, ale zamiast tego dla ruchu, który powinien być kierowany / przekazywany przez zaporę, powinien określić słowo kluczowe route przed regułą (reguły routingu znacznie różnią się od składni PF i zamiast tego uwzględniają konwencje łańcucha FORWARD netfiltera) . Na przykład:

     ufw route allow in on eth1 out on eth2

Umożliwi to cały ruch kierowany do eth2 i wchodzący na eth1, aby przejść przez zaporę.

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

Ta reguła zezwala wszelkim pakietom przychodzącym na eth0 na przechodzenie przez zaporę na eth1 do portu 80 tcp na 12.34.45.67.

Oprócz reguł i zasad routingu musisz także skonfigurować przekazywanie adresów IP. Można to zrobić, ustawiając następujące ustawienia w /etc/ufw/sysctl.conf:

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

następnie ponownie uruchom zaporę:

     ufw disable
     ufw enable

Należy pamiętać, że ustawianie tunerów jądra jest specyficzne dla systemu operacyjnego i ustawienia ufw sysctl mogą zostać zastąpione. Szczegółowe informacje można znaleźć na stronie podręcznika sysctl.

Michał Sylwester
źródło
1
Działa to dla tych z nas, którzy chcą zezwolić na ruch TCP między klientami OpenVPN na serwerze OpenVPN. Na przykład: ufw route zezwala na tun0 out na tun0
logion
Rekord ufw routejest obecny od wersji 0.34
Joril
7

jeśli ustawisz DEFAULT_FORWARD_POLICY na AKCEPTUJ w / etc / default / ufw, zapora będzie przekazywać wszystkie pakiety niezależnie od ustawień interfejsu użytkownika.

Myślę, że interfejs użytkownika służy wyłącznie do prostego filtrowania we / wy. Do przekazywania musisz dodać reguły iptables w pliku /etc/ufw/before.rules, jak tutaj:

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

Prawdopodobnie masz już regułę zezwalającą na połączenia od wewnątrz i drugą, która zezwala na pakiety z powiązanych i ustanowionych sesji TCP.

Nie jestem specjalistą od iptables, zajęło mi to bardzo dużo czasu (z ip6tables, ale powinno być podobnie). Może to nie wszystko, co trzeba w twoim przypadku.

Pozdrowienia

Jay Christnach
źródło
4

Ta komenda ufw działała dla mnie ładnie: sudo ufw default allow FORWARD

Aby upewnić się, że zmiana została zastosowana: sudo service ufw restart

dcborg
źródło
Daje to błąd „nieprawidłowa składnia”. Dokumenty mówią „KIERUNEK jest przychodzący, wychodzący lub kierowany”.
ColinM
@ColinM to działało dla mnie na Xubuntu 16.04.5 LTS
baptx
FORWARDdziała jak alias dla routedUbuntu
patricktokeeffe