Wireguard – Kein Zugriff auf Webserver hinter Firewall möglich

Wireguard – Kein Zugriff auf Webserver hinter Firewall möglich

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

verwandte Informationen