Bagaimana cara mengkonfigurasi UFW untuk memungkinkan IP Forwarding?


18

Saya sudah menginstal UFW, OpenVPN, dan Virtualbox di server rumah saya. Saya memiliki jaringan hanya host untuk tamu mesin virtual saya (vboxnet0) yang diatur dengan kisaran IP 10.0.1.0, dan rentang IP lain 10.0.0.0 yang dikonfigurasi di ujung lain dari koneksi OpenVPN.

Penerusan IP dikonfigurasikan pada host, jadi ketika UFW dinonaktifkan, mereka dapat berbicara satu sama lain tanpa masalah. Namun, saya ingin menjalankan UFW karena host ini akan dapat diakses web dan saya ingin beberapa kontrol akses.

Bagaimana saya bisa mengkonfigurasi UFW untuk memungkinkan lalu lintas semacam ini?

Saya sudah mencoba berbagai kombinasi: ufw allow allow in|out on vboxnet0|tun0tanpa hasil.

Aturan UFW saya adalah:

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

Bantuan apa pun akan sangat dihargai.

Jawaban:


20

Saya menemukan jawabannya.

Edit /etc/default/ufwdan setel DEFAULT_FORWARD_POLICYke ACCEPT :

DEFAULT_FORWARD_POLICY="ACCEPT"

10
Apakah ada cara untuk hanya mengizinkannya meneruskan port tertentu, tidak mengaturnya untuk MENERIMA segalanya?
Marcus Downing

1
Saya kira Anda perlu me-restart ufw setelah mengedit file:service ufw restart
Minh Danh

10

Sekarang mungkin - dari halaman manual ufw:

Aturan untuk lalu lintas tidak diperuntukkan bagi host itu sendiri melainkan untuk lalu lintas yang harus diarahkan / diteruskan melalui firewall harus menentukan kata kunci rute sebelum aturan (aturan routing berbeda secara signifikan dari sintaksis PF dan sebagai gantinya mempertimbangkan netfilter FORWARD konvensi rantai) . Sebagai contoh:

     ufw route allow in on eth1 out on eth2

Ini akan memungkinkan semua lalu lintas dialihkan ke eth2 dan masuk pada eth1 untuk melintasi firewall.

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

Aturan ini memungkinkan setiap paket yang masuk pada eth0 untuk melintasi firewall keluar pada eth1 ke port tcp 80 pada 12.34.45.67.

Selain aturan dan kebijakan perutean, Anda juga harus mengatur penerusan IP. Ini dapat dilakukan dengan mengatur yang berikut ini di /etc/ufw/sysctl.conf:

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

lalu mulai ulang firewall:

     ufw disable
     ufw enable

Ketahuilah bahwa pengaturan kernel tunable adalah sistem operasi yang spesifik dan pengaturan ufw sysctl mungkin diganti. Lihat halaman manual sysctl untuk detailnya.


1
Bagi kita yang ingin mengizinkan tcp traffic antara klien OpenVPN pada server OpenVPN, ini berfungsi. Misalnya: rute ufw memungkinkan masuk pada tun0 keluar pada tun0
logion

Sebagai catatan ufw routehadir sejak versi 0.34
Joril

7

jika Anda mengatur DEFAULT_FORWARD_POLICY ke ACCEPT di / etc / default / ufw firewall akan meneruskan semua paket terlepas dari pengaturan antarmuka pengguna.

Saya pikir antarmuka pengguna hanya dimaksudkan untuk penyaringan masuk / keluar sederhana. Untuk penerusan Anda perlu menambahkan aturan iptables di /etc/ufw/before.rules seperti di sini:

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

Anda mungkin sudah memiliki aturan yang memungkinkan koneksi dari dalam ke luar dan yang lain yang memungkinkan paket dari sesi tcp terkait dan dibuat kembali.

Saya bukan spesialis iptables, butuh waktu yang sangat lama untuk mencari tahu (dengan ip6tables, tetapi harus serupa). Mungkin ini tidak cukup untuk Anda.

Salam terbaik


4

Perintah ufw ini bekerja dengan baik untuk saya: sudo ufw default allow FORWARD

Untuk memastikan perubahan diterapkan: sudo service ufw restart


Ini menghasilkan kesalahan "Sintaks tidak valid". Documents mengatakan "ARAH adalah salah satu yang masuk, keluar atau dialihkan".
ColinM

@ColinM ini bekerja untuk saya di Xubuntu 16.04.5 LTS
baptx

FORWARDbekerja seperti alias untuk routeddi Ubuntu
patricktokeeffe
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.