UFW는 VPN을 통해 DNS 요청을 차단하고 있습니다.

UFW는 VPN을 통해 DNS 요청을 차단하고 있습니다.

Ubuntu 18.04에서 UFW를 사용하면 매우 이상한 동작이 발생합니다. 기본 규칙을 설정했는데 VPN을 통해 클라이언트를 해당 서버에 연결할 때까지 모든 것이 잘 작동합니다. 클라이언트 측에서 ping은 제대로 작동하지만 nslookup/domain ping이 거부됩니다. ufw를 끄고 나면 잘 실행됩니다. UFW 구성: VPN 서브넷은 10.99.0.0/24입니다(OpenVPN 사용).

ufw default deny incoming
ufw default allow outgoing
1194                       ALLOW       Anywhere
Anywhere                   ALLOW       10.99.0.0/24
6969                       ALLOW       10.99.0.0/24
10.99.0.0/24               ALLOW       Anywhere

로그에서(8.8.8.8 및 1.0.0.1을 DNS로 사용):

Dec  7 23:40:28 snm kernel: [15432.700282] [UFW BLOCK] IN=tun0 OUT=eth0 MAC= SRC=10.99.0.2 DST=1.0.0.1 LEN=71 TOS=0x00 PREC=0x00 TTL=127 ID=1189 PROTO=UDP SPT=64312 DPT=53 LEN=51
Dec  7 23:41:08 snm kernel: [15472.370487] [UFW BLOCK] IN=tun0 OUT=eth0 MAC= SRC=10.99.0.2 DST=1.0.0.1 LEN=71 TOS=0x00 PREC=0x00 TTL=127 ID=1192 PROTO=UDP SPT=50962 DPT=53 LEN=51
Dec  7 23:41:09 snm kernel: [15473.384535] [UFW BLOCK] IN=tun0 OUT=eth0 MAC= SRC=10.99.0.2 DST=8.8.8.8 LEN=71 TOS=0x00 PREC=0x00 TTL=127 ID=1193 PROTO=UDP SPT=50962 DPT=53 LEN=51

이를 디버깅하는 방법에 대한 제안 사항이 있습니까?

답변1

도메인 핑 오류만 표시된다면 전달을 허용하도록 서버 및/또는 클라이언트 방화벽을 설정해야 합니다.

# Allow TUN interface connections to OpenVPN server
iptables -A INPUT -i tun+ -j ACCEPT

# Allow TUN interface connections to be forwarded through other interfaces
iptables -A FORWARD -i tun+ -j ACCEPT

추가 정보:여기

또한 클라이언트-클라이언트 설정을 확인하세요. 이는 VPN의 다른 컴퓨터에 액세스하는 데 필요합니다. 활성화하지 않으면 다른 컴퓨터가 연결된 것을 볼 수 없습니다.

  • 연결된 클라이언트가 VPN을 통해 서로 액세스할 수 있도록 하려면 클라이언트-클라이언트 지시어의 주석 처리를 제거하세요. 기본적으로 클라이언트는 서버에만 액세스할 수 있습니다.

더 많은 정보를 찾아보세요:여기

답변2

마침내 IPTABLES를 조정하여 문제를 해결했습니다.

iptables -I FORWARD -i tun0 -o eth0 \
         -s 10.8.0.0/24 -m conntrack --ctstate NEW -j ACCEPT

iptables -I FORWARD -m conntrack --ctstate RELATED,ESTABLISHED \
         -j ACCEPT

iptables -t nat -I POSTROUTING -o eth0 \
          -s 10.8.0.0/24 -j MASQUERADE

이제 ufw 규칙을 단순화할 수 있습니다.

To                         Action      From
--                         ------      ----
1194                       ALLOW       Anywhere
22                         ALLOW       10.8.0.0/24

server.conf에서 IP 풀을 변경하고 싶지만 그에 따라 IP 테이블을 수정해야 하는 경우.

port 1194
proto udp
dev tun
sndbuf 0
rcvbuf 0
ca ca.crt
cert server.crt
key server.key
dh dh.pem
auth SHA512
tls-auth ta.key 0
topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1"
#push "redirect-gateway def1 bypass-dhcp"
#push "dhcp-option DNS 10.8.0.1"
push "dhcp-option DNS 1.1.1.1"
push "dhcp-option DNS 1.0.0.1"
keepalive 10 120
cipher AES-256-CBC
user nobody
group nogroup
persist-key
persist-tun
log-append /var/log/openvpn/openvpn.log
status openvpn-status.log
verb 3
crl-verify crl.pem

답변3

DHCP 풀을 잘못된 방식으로 변경했음을 발견했습니다(방금 server.conf를 편집함). 다른 방법을 사용하여 IP 풀을 변경하면 도움이 될 수 있습니다.

관련 정보