%EB%8A%94%20%EB%8C%80%EC%83%81%20%ED%8F%AC%ED%8A%B8%20%EC%A0%9C%ED%95%9C%EC%9C%BC%EB%A1%9C%20UDP%20%ED%8C%A8%ED%82%B7%20%ED%8A%B8%EB%9E%98%ED%94%BD%EC%9D%84%20%EA%B0%90%EC%A7%80%ED%95%A0%20%EC%88%98%20%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
운영 체제 정보.
Linux raspberrypi 4.14.98-v7+ 또는 Linux debian-stretch-1 4.9.0-11-amd64
무슨 일이에요?
UDP 트래픽을 리디렉션할 수 있는 서비스(ss-redir)를 시작합니다.
이 서비스는 UDP 1080 포트를 엽니다.
모든 DNS 쿼리를 udp 127.0.0.1:1080 포트로 리디렉션하고 싶습니다.
뭐 했어?
ip route add local default dev lo table 100
ip rule add fwmark 1 lookup 100
iptables -t mangle -A PREROUTING -p udp --dport 53 -j TPROXY --on-port 1080 --tproxy-mark 0x01/0x01
nslookup www.google.com
무엇을 기대했나요?
여러 UDP 패킷이 PREROUTING 체인을 통과했습니다.
정확한 양은 첫 번째(pkts) 및 두 번째(바이트) 열에 표시되어야 합니다.
대신에 무엇을 보셨나요?
pkts bytes target prot opt in out source destination
0 0 TPROXY udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:53 TPROXY redirect 0.0.0.0:1080 mark 0x1/0x1
세부 구성.
root@User:~# cat /etc/resolv.conf
nameserver 8.8.8.8
이게 내 서비스야
root@User:~# netstat -ntulp
udp 0 0 0.0.0.0:1080 0.0.0.0:* 3771/ss-redir
그때 당신은 무엇을 했나요?
DNS 쿼리 대상 포트가 53이 아닌 것 같습니다. Wireshark에 의해 캡처된 패킷은 dport가 53이고 대상 IP가 8.8.8.8임을 나타냅니다.
그래서 PREROUTING 체인의 규칙 앞에 다른 규칙을 추가했습니다.
iptables -t mangle -I PREROUTING --prot udp -d myserverip/32 -j RETURN
iptables -t mangle -I PREROUTING --prot udp -d 192.168.128.10/32 -j RETURN
iptables -t mangle -I PREROUTING --prot udp -d 127.0.0.0/24 -j RETURN
그런 다음 실행
nslookup www.google.com
iptables -t mangle -L -nv
출력은 다음과 같습니다.
Chain PREROUTING (policy ACCEPT 90 packets, 6699 bytes)
pkts bytes target prot opt in out source destination
0 0 RETURN udp -- * * 0.0.0.0/0 myserverip
1 29 RETURN udp -- * * 0.0.0.0/0 127.0.0.0/24
0 0 RETURN udp -- * * 0.0.0.0/0 192.168.128.10
0 0 TPROXY udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:53 TPROXY redirect 0.0.0.0:1080 mark 0x1/0x1
UDP 패킷이 여전히 ss-redir을 통과하지 못합니다.
내가 뭘 잘못했는지 모르겠어요. 이 질문은 나를 미치게 만든다. 누군가 나를 도와줄까요?
어떤 조언이라도 대단히 감사하겠습니다.
많은 감사