
Ich habe einen Server A mit WG-Tunnel-IP 10.9.0.1, Server B mit WG-Tunnel-IP 10.9.0.4 und mein Mobiltelefon mit WG-Tunnel-IP 10.9.0.3.
Auf Server A und B ist UFW aktiviert und es sind eingehende Ports als SSH- und WG-Port zugelassen.
Ich verbinde mich für alle meine Internetaktivitäten über mein Handy mit Server A, was gut funktioniert. Ich versuche, über meinen mobilen Browser auf einen Webserver zuzugreifen, der auf Server B läuft, überhttp://10.9.0.4und ich kann es nicht zum Laufen bringen, wenn UFW auf Server B aktiviert ist. Wenn ich UFW auf Server B jedoch deaktiviere, kann ich über mein Mobiltelefon auf den Webserver zugreifen. Ich möchte, dass auf den Webserver nur über VPN zugegriffen werden kann und möchte keinen öffentlichen Zugriff. Kann mir bitte jemand helfen, herauszufinden, welche Regel in UFW fehlt, die meinen Zugriff auf den Webserver von Server B blockiert? Ich habe versucht, alle eingehenden/ausgehenden Nachrichten über die Schnittstelle wg0 auf Server B zu akzeptieren, aber vergebens.
Server B und Mobilgerät sind als Peers mit Server AI verbunden und können Server B vom Mobilgerät und Server A aus anpingen.
UFW für Server B
Status: active
Logging: on (low)
Default: deny (incoming), deny (outgoing), deny (routed)
New profiles: skip
To Action From
-- ------ ----
5440 ALLOW IN Anywhere
44787/udp ALLOW IN Anywhere
80,443/tcp on wg0 ALLOW IN Anywhere
5440 (v6) ALLOW IN Anywhere (v6)
44787/udp (v6) ALLOW IN Anywhere (v6)
80,443/tcp (v6) on wg0 ALLOW IN Anywhere (v6)
443 ALLOW OUT Anywhere
53 ALLOW OUT Anywhere
80 ALLOW OUT Anywhere
443 (v6) ALLOW OUT Anywhere (v6)
53 (v6) ALLOW OUT Anywhere (v6)
80 (v6) ALLOW OUT Anywhere (v6)
UFW für Server A
Status: active
Logging: on (low)
Default: deny (incoming), deny (outgoing), deny (routed)
New profiles: skip
To Action From
-- ------ ----
5440 ALLOW IN Anywhere
44787 ALLOW IN Anywhere
44787 (v6) ALLOW IN Anywhere (v6)
53 ALLOW OUT Anywhere
80,443/tcp ALLOW OUT Anywhere on wg0
53/udp ALLOW OUT Anywhere on wg0
53 (v6) ALLOW OUT Anywhere (v6)
80,443/tcp (v6) ALLOW OUT Anywhere (v6) on wg0
53/udp (v6) ALLOW OUT Anywhere (v6) on wg0
Bearbeiten: Ich habe UFW auf Server B deaktiviert und wie unten durch iptables ersetzt. Das Problem besteht weiterhin.
#!/usr/bin/env bash
#############################
# SETUP
#############################
# Define your hostname
DEMOSTHENES=X.X.X.X
# Clear all rules
/sbin/iptables -F
iptables -I FORWARD -s 10.9.0.0/24 -i wg0 -j ACCEPT #sample rule to allow packet forwarding from your wg subnet
#############################
# MANAGEMENT RULES
#############################
# Allow SSH (alternate port)
/sbin/iptables -A INPUT -p tcp -d $DEMOSTHENES --dport 5440 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -d $DEMOSTHENES --dport 44787 -j ACCEPT
/sbin/iptables -A INPUT -p udp -d $DEMOSTHENES --dport 44787 -j ACCEPT
# Allow web server access
iptables -A INPUT -i wg0 -p tcp -m multiport --dports 80,443 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o wg0 -p tcp -m multiport --sports 80,443 -m state --state ESTABLISHED -j ACCEPT
/sbin/iptables -A INPUT -j DROP
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere tcp dpt:domain
ACCEPT udp -- anywhere anywhere udp dpt:domain
ACCEPT tcp -- anywhere v8.domain.co tcp dpt:5440
ACCEPT tcp -- anywhere v8.domain.co tcp dpt:44787
ACCEPT udp -- anywhere v8.domain.co udp dpt:44787
ACCEPT tcp -- anywhere anywhere multiport dports http,https state NEW,ESTABLISHED
DROP all -- anywhere anywhere
Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 10.9.0.0/24 anywhere
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere tcp dpt:domain
ACCEPT udp -- anywhere anywhere udp dpt:domain
ACCEPT tcp -- anywhere anywhere multiport sports http,https state ESTABLISHED
Antwort1
Ich habe ufw noch nie verwendet, aber ich sehe, dass dort steht, dass Ihre „geroutete“ Richtlinie so eingestellt ist, dass ufw-Regeln auf Server B abgelehnt werden, was bedeutet, dass alle Pakete, die von einem anderen Host kommen und für Server B bestimmt sind, blockiert werden (wenn ich das richtig verstehe). Versuchen Sie entweder, eine Regel zu erstellen, die die Weiterleitung von Paketen zulässt (bearbeiten Sie auch /etc/sysctl.conf und stellen Sie sicher, dass Sie IPv4- und IPv6-Pakete weiterleiten; net.ipv4.ip_forward=1 und net.ipv6.conf.all.forwarding=1) oder legen Sie die Standardrichtlinie für die FORWARD-Kette auf Akzeptieren fest und sehen Sie, was passiert. Ich verwende iptables und es ist sehr pingelig, manchmal macht es einen großen Unterschied, wenn man für eine Regel „Einfügen“ statt „Anhängen“ verwendet.
iptables -I FORWARD -s 10.9.0.0/24 -i wg0 -j ACCEPT #sample rule to allow packet forwarding from your wg subnet
iptables -P FORWARD ACCEPT #change default policy on filter tables FORWARD chain