Wireguard - 방화벽 뒤에 있는 웹 서버에 액세스할 수 없습니다.

Wireguard - 방화벽 뒤에 있는 웹 서버에 액세스할 수 없습니다.

WG 터널 IP 10.9.0.1을 사용하는 서버 A, WG 터널 IP 10.9.0.4를 사용하는 서버 B, WG 터널 IP 10.9.0.3을 사용하는 모바일이 있습니다.

서버 A와 B에는 UFW가 활성화되어 있으며 들어오는 포트를 SSH 및 WG 포트로 허용합니다.

정상적으로 작동하는 모든 인터넷 활동을 위해 모바일을 통해 서버 A에 연결하겠습니다. 내 모바일 브라우저에서 서버 B에서 실행되는 웹 서버에 다음을 통해 액세스하려고 합니다.http://10.9.0.4서버 B의 UFW가 활성화되면 작동할 수 없습니다. 하지만 서버 B에서 UFW를 비활성화하면 모바일을 통해 웹 서버에 액세스할 수 있습니다. 웹 서버는 VPN에서만 액세스하고 공개 액세스는 원하지 않습니다. 서버 B의 웹 서버에 대한 나의 접근을 차단하는 UFW에 어떤 규칙이 없는지 찾는 데 도움을 주실 수 있나요? 서버 B의 인터페이스 wg0에서 모든 수신/발신을 수락하려고 시도했지만 헛된 것입니다.

서버 B와 모바일은 서버 AI에 피어로 연결되어 모바일과 서버 A에서 서버 B를 핑할 수 있습니다.

서버 B용 UFW

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)  

서버 A용 UFW

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  

편집: 서버 B에서 UFW를 비활성화하고 아래와 같이 iptables로 교체했습니다. 문제가 있습니다.

#!/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

답변1

이전에 ufw를 사용한 적이 없지만 '라우팅된' 정책이 서버 B ufw 규칙을 거부하도록 설정되어 있다고 나와 있습니다. 즉, 서버 B에서 끝날 예정인 다른 호스트에서 들어오는 모든 패킷이 차단되고 있음을 의미합니다. 내가 올바르게 이해했다면). 패킷 전달을 허용하는 규칙을 생성하거나(/etc/sysctl.conf를 편집하고 ipv4 및 ipv6 패킷을 전달하는지 확인하십시오. net.ipv4.ip_forward=1 및 net.ipv6.conf.all.forwarding=1) 또는 FORWARD 체인에 대한 기본 정책을 설정하여 수락하고 무슨 일이 일어나는지 확인하세요. 저는 iptables를 사용하는데 매우 까다롭습니다. 때로는 규칙에 Append 대신 Insert를 사용하면 모든 차이가 발생합니다.

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

관련 정보