Aktuelles

[Ungelöst] ufw/iptables nat extern <> vpn für minecraft server

zwenkau

Enthusiast
Thread Starter
Mitglied seit
13.06.2005
Beiträge
1.842
Ort
provi.rm.cl
Hi,

mein setup ist wie folgt. Zwischen meinem unraid server zu hause und einem vps(ubuntu 20.04) besteht ein wireguard tunnel. Dieser funktioniert auch weil die dienste die eine nginx als reverse proxy bereitstellt funktionieren.
Mein Problem ist das ich meinen Kids und ihren Freunden einen Minecraft Server bereitstellen will. Der Port ist freigegeben in via ufw.
Nun bin ich diesem Guide gefolgtum die nat regeln in der /etc/ufw/before.rules einzutragen.
Nmap sagt der Port 19132 sei filtered also sollte die firewall kein Problem sein. Allerdings ist es nicht möglich sich zu verbinden.

Hier meine before.rules Eintäge für das routing zwischen dem externen ens3 interface und dem wg0 wireguard interface.

Code:
# minecraft server
-A FORWARD -i ens3 -o wg0 -p tcp --syn --dport 19132 -m conntrack --ctstate NEW -j ACCEPT
-A FORWARD -i ens3 -o wg0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-A FORWARD -i wg0 -o ens3 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

COMMIT


*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]

# minecraft server
-A PREROUTING -i ens3 -p tcp --dport 19132 -j DNAT --to-destination 10.8.2.2
-A POSTROUTING -o wg0 -p tcp --dport 19132 -d 10.8.2.2 -j SNAT --to-source 10.8.2.1
COMMIT

Hier der verbose output von ufw:
Code:
Status: active
Logging: on (low)
Default: allow (incoming), allow (outgoing), allow (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW IN    Anywhere
80/tcp                     ALLOW IN    Anywhere
443/tcp                    ALLOW IN    Anywhere
80/udp                     ALLOW IN    Anywhere
443/udp                    ALLOW IN    Anywhere
51820/udp                  ALLOW IN    Anywhere
19132/tcp                  ALLOW IN    Anywhere
22/tcp (v6)                ALLOW IN    Anywhere (v6)
80/tcp (v6)                ALLOW IN    Anywhere (v6)
443/tcp (v6)               ALLOW IN    Anywhere (v6)
80/udp (v6)                ALLOW IN    Anywhere (v6)
443/udp (v6)               ALLOW IN    Anywhere (v6)
51820/udp (v6)             ALLOW IN    Anywhere (v6)
19132/tcp (v6)             ALLOW IN    Anywhere (v6)

Wie man sieht sind die ports freigegeben und selbst die INCOMING Regel ist auf ACCEPT gestellt.
Es ist aber nicht möglich sich von aussen auf den Server zu verbinden.
 
Zuletzt bearbeitet:
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.

zwenkau

Enthusiast
Thread Starter
Mitglied seit
13.06.2005
Beiträge
1.842
Ort
provi.rm.cl
Ich hab nochmal rumgetestet und auch einen ufw reset gemacht. Das hat leider nichts geholfen, ich bekomme keine Verbindung auf den Minecraftserver über die öffentliche IP des VPS. Die Dienste die über den nginx rev. proxy laufen funktionieren.
Ausserdem habe ich den Startpost nochmal überarbeitet um es ein wenig klarer zu gestalten was ich an Regeln hinzugefügt habe.
Meinem Verständnis von iptables zufolge sollte das so funktionieren.
 

zwenkau

Enthusiast
Thread Starter
Mitglied seit
13.06.2005
Beiträge
1.842
Ort
provi.rm.cl
am bedrock minecraft liegt es auch nicht, habs mit meinem android handy via wireguard getestet und kann mich ohne probleme mit dem server verbinden. es liegt also eindeutig an der ufw/iptables config.
 

Zyxx

Enthusiast
Mitglied seit
13.07.2010
Beiträge
1.323
Was gibt dir denn ein normales netstat -al aus?
Dort siehst du ja an welches Interface sich der Dienst bindet.
Da sollten dann 0.0.0.0:PORT und [::]:PORT auftauchen.

Und ist das wirklich nur TCP oder läuft dort auch etwas über UDP?
Was gibt dir iptables -vnL aus?

Müsste beim ctstate nicht auch New noch gesetzt werden? Ist wirklich immer mit syn zu arbeiten?
Läuft es denn wenn du "nur" eine Portweiterleitung ohne "Schikane" aufsetzt?

Ich benutze kein ufw, daher kenne ich die Eigenarten nicht, sorry :(
 
Oben Unten