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 풀을 변경하면 도움이 될 수 있습니다.