
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