iptable을 이해하는 데 문제가 있습니다(예상했던 것과 반대로 동작함).

iptable을 이해하는 데 문제가 있습니다(예상했던 것과 반대로 동작함).

나는 이라고 부르는 wireguard intergafce wg1을 가지고 있습니다 PostUp = /etc/wireguard/postup.sh. 내 postup.sh는 다음과 같습니다.

WIREGUARD_INTERFACE=wg1
WIREGUARD_LAN=10.0.0.0/24
MASQUERADE_INTERFACE=eth0
CHAIN_NAME=WIREGUARD_wg1
WIREGUARD_CLIENT=10.0.0.2
WIREGUARD_DNS=192.168.178.47

iptables -t nat -I POSTROUTING -o $MASQUERADE_INTERFACE -j MASQUERADE -s $WIREGUARD_LAN

# Add a WIREGUARD_wg0 chain to the FORWARD chain
iptables -N $CHAIN_NAME
iptables -A FORWARD -j $CHAIN_NAME

# Accept related or established traffic
iptables -A $CHAIN_NAME -o $WIREGUARD_INTERFACE -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

# Allow traffic to router and DNS gateway
iptables -A $CHAIN_NAME -s $WIREGUARD_CLIENT -d 192.168.178.1 -j ACCEPT
iptables -A $CHAIN_NAME -s $WIREGUARD_CLIENT -d 192.168.178.47 -j ACCEPT

# Accept outgoing connections to any IP address (public because of rule above)
iptables -A $CHAIN_NAME -s $WIREGUARD_CLIENT -i $WIREGUARD_INTERFACE -j ACCEPT

# Accept outgoing connections to HTTP(S) ports to any IP address (public because of rule above)
iptables -A $CHAIN_NAME -s $WIREGUARD_CLIENT -i $WIREGUARD_INTERFACE -d 0.0.0.0/0 -p tcp -m multiport --dports 80,443 -j ACCEPT

# Drop traffic to your any private IP address
iptables -A $CHAIN_NAME -s $WIREGUARD_CLIENT -i $WIREGUARD_INTERFACE -d 10.0.0.0/8,172.16.0.0/12,192.168.0.0/16 -j DROP

# Drop everything else coming through the Wireguard interface
iptables -A $CHAIN_NAME -i $WIREGUARD_INTERFACE -j DROP

# Return to FORWARD chain
iptables -A $CHAIN_NAME -j RETURN

연결된 클라이언트가 웹 검색을 할 수 있기를 원하지만 Wireguard 서버가 실행 중인 네트워크의 모든 IP에 대한 액세스는 허용하지 않습니다. 그러나 그 반대는 사실입니다. 클라이언트는 IP에 액세스할 수 있고 로컬 DNS도 사용할 수 있지만 인터넷의 어떤 페이지에도 액세스할 수 없습니다.

출력은 iptables -L -v -n다음과 같습니다

Chain INPUT (policy ACCEPT 6449 packets, 1002K bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy ACCEPT 338 packets, 60782 bytes)
 pkts bytes target     prot opt in     out     source               destination         
 2772 1683K WIREGUARD_wg1  0    --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain OUTPUT (policy ACCEPT 8419 packets, 5997K bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain WIREGUARD_wg1 (1 references)
 pkts bytes target     prot opt in     out     source               destination         
  877 1535K ACCEPT     0    --  *      wg1     0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
  446 48489 ACCEPT     0    --  *      *       10.0.0.2             192.168.178.1         
  103  6958 ACCEPT     0    --  *      *       10.0.0.2             192.168.178.47        
 1346 92153 ACCEPT     0    --  wg1    *       10.0.0.2             0.0.0.0/0           
    0     0 ACCEPT     6    --  wg1    *       10.0.0.2             0.0.0.0/0            multiport dports 80,443
    0     0 DROP       0    --  wg1    *       10.0.0.2             10.0.0.0/8          
    0     0 DROP       0    --  wg1    *       10.0.0.2             172.16.0.0/12       
    0     0 DROP       0    --  wg1    *       10.0.0.2             192.168.0.0/16      
    0     0 DROP       0    --  wg1    *       0.0.0.0/0            0.0.0.0/0           
    0     0 RETURN     0    --  *      *       0.0.0.0/0            0.0.0.0/0 

내 이해에 따르면 출력은 내가 기대하는 것을 보여줍니다. 그런데 제가 이해력이 부족한 것 같아요. 내 목표를 달성하는 데 도움이 될만한 팁이나 도움을 주실 수 있나요? 클라이언트는 인터넷에만 액세스할 수 있어야 하며 그 외에는 액세스할 수 없습니다. 내 wg0 인터페이스를 사용하면 모든 것이 잘 작동하므로 "더 큰" 네트워크 문제는 아닙니다.

어떤 도움이라도 미리 감사드립니다 :)

관련 정보