[해결] PPTPD 서버 TCP 연결 문제 사항
VPN 관련하여 도움을 요청 드립니다.
VPN PPTPD를 설치하고, 클라이언트가 연결 접속까지는 되는데, 인터넷이 안되는 문제가 있습니다.
첨부파일과 같은 테스트환경을 가지고 문의를 드리도록 하겠습니다.
목표는 PC A와 PC B가 같은 네트워크상에 묶는 것이 목표입니다.
Web Server 에는 TOMCAT과 PACKET 체크를 하기 위해서 WireShark 프로그램이 설치되어 있습니다.
PC A에도 WireShark가 설치되어 있습니다.
PC A에서 VPN 연결을 진행한 이후에, Web Server로 Ping test를 진행하면,
PC A의 WireShark 상에는 Router C와 PC A사이에 GRE/PPP 신호를 주고 받고,
Web Server의 WireShark 상에서는 Router B와 ICMP Packet 주고 받는 신호를 확인이 되었습니다.
결과적으로 PC A에서 Web Server로의 Ping Packet이 정상적으로 주고 받았다고 볼수 있을 것 같습니다.
VPN으로 연결된 PC A에서 Web Server로 netcat udp 전송 테스트를 진행하면,
Web Server에서 PC A가 전송한 UDP 패킷이 전달 됨을 wireshark로 확인을 했습니다.
PC A에서는 GRE/PPP 신호만 오고 감을 확인(VPN 연결을 통해 전달 됨을 확인)하였습니다.
PC A에서 Web Server로 홈페이지에 접속을 진행했습니다.
PC A에서 Router C로 GRE/PPP 통신이 이루어 지고, Web Server의 WireShark 패킷을 보면,
Connection request 신호가 전달이되고, Web Server가 SYN/ACK 신호를 전송하지만,
전달이 제대로 이루어 지지않고, PC A로 부터 제차 Connection request 신호가 날아오고
Web Server는 SYN/ACK 전송하고, 이러한 통신만 반복하다 종료가 됩니다.
PC B에서의 Web Server 홈페이지 연결은 정상적으로 이루어 집니다.(3-way handshaking)
라우터 C의 커널 옵션? iptables 설정? 등등 무엇이 문제인지 알수가 없네요.
Googling으로 자료를 찾아 설정해보고 했지만, 답을 아직 못찾았습니다.
현재 사용중에 iptables 코드는 아래와 같습니다.
패킷 체크를 진행하기 위해서 LOG가 추가 되어 있습니다.
고수님들의 조언 부탁 드리겠습니다. ^^
# Generated by iptables-save v1.3.8 on Sun Apr 10 15:51:07 2011 *nat :PREROUTING ACCEPT [2132:489736] :POSTROUTING ACCEPT [70:14641] :OUTPUT ACCEPT [67:14505] -A PREROUTING -p udp -m udp --dport 1900 -j DROP -A PREROUTING -j LOG --log-prefix "SN PREROUTING " -A PREROUTING -i vlan2 -p tcp -m tcp --dport 1723 -j DNAT --to-destination 192.168.1.1 -A PREROUTING -i vlan2 -p gre -j DNAT --to-destination 192.168.1.1 -A PREROUTING -j LOG --log-prefix "EN PREROUTING " -A POSTROUTING -j LOG --log-prefix "SN POSTROUTING " -A POSTROUTING -s 192.168.1.0/255.255.255.0 -o vlan2 -j MASQUERADE -A POSTROUTING -j LOG --log-prefix "EN POSTROUTING " -A OUTPUT -j LOG --log-prefix "SN OUTPUT " -A OUTPUT -j LOG --log-prefix "EN OUTPUT " COMMIT # Completed on Sun Apr 10 15:51:07 2011 # Generated by iptables-save v1.3.8 on Sun Apr 10 15:51:07 2011 *mangle :PREROUTING ACCEPT [22561:4058107] :INPUT ACCEPT [14273:1657416] :FORWARD ACCEPT [281:14245] :OUTPUT ACCEPT [2471:696822] :POSTROUTING ACCEPT [3052:817597] -A PREROUTING -p udp -m udp --dport 137 -j DROP -A PREROUTING -p udp -m udp --dport 138 -j DROP -A PREROUTING -p udp -m udp --dport 9303 -j DROP -A PREROUTING -p udp -m udp --dport 1900 -j DROP -A PREROUTING -j LOG --log-prefix "SM PREROUTING " -A PREROUTING -j LOG --log-prefix "EM PREROUTING " -A INPUT -p udp -m udp --sport 137 --dport 137 -j DROP -A INPUT -p udp -m udp --sport 138 --dport 138 -j DROP -A INPUT -j LOG --log-prefix "SM INPUT " -A INPUT -j LOG --log-prefix "EM INPUT " -A FORWARD -j LOG --log-prefix "SM FORWARD " -A FORWARD -j LOG --log-prefix "EM FORWARD " -A OUTPUT -j LOG --log-prefix "SM OUTPUT " -A OUTPUT -j LOG --log-prefix "EM OUTPUT " -A POSTROUTING -j LOG --log-prefix "SM POSTROUTING " -A POSTROUTING -j LOG --log-prefix "EM POSTROUTING " COMMIT # Completed on Sun Apr 10 15:51:07 2011 # Generated by iptables-save v1.3.8 on Sun Apr 10 15:51:07 2011 *filter :INPUT ACCEPT [3003:624741] :FORWARD ACCEPT [209:10328] :OUTPUT ACCEPT [2471:696822] :BLACKHOLE - [0:0] -A INPUT -p udp -m udp --sport 138 --dport 138 -j DROP -A INPUT -p udp -m udp --sport 137 --dport 137 -j DROP -A INPUT -j LOG --log-prefix "SF INPUT " -A INPUT -j LOG --log-prefix "EF INPUT " -A FORWARD -j LOG --log-prefix "SF FORWARD " -A FORWARD -s 192.168.1.0/255.255.255.0 -i ppp+ -m state --state NEW -j ACCEPT -A FORWARD -j LOG --log-prefix "EF FORWARD " -A OUTPUT -j LOG --log-prefix "SF OUTPUT " -A OUTPUT -j LOG --log-prefix "EF OUTPUT " COMMIT # Completed on Sun Apr 10 15:51:07 2011
첨부 | 파일 크기 |
---|---|
![]() | 23.56 KB |
글을 쓰고 곰곰히 생각해 보니, 외부로 부터 들어오는
글을 쓰고 곰곰히 생각해 보니, 외부로 부터 들어오는 패킷 전달이 전혀 되지 않는 것 같습니다.
커널에 printk 넣어 확인 했더니, 엉뚱한 모듈로
커널에 printk 넣어 확인 했더니, 엉뚱한 모듈로 후킹되고 있었네요.
해당 모듈 꺼버리니 정상 동작 합니다.
댓글 달기