[해결] PPTPD 서버 TCP 연결 문제 사항

peanutstars의 이미지

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
File attachments: 
첨부파일 크기
Image icon test_env.png23.56 KB
peanutstars의 이미지

글을 쓰고 곰곰히 생각해 보니, 외부로 부터 들어오는 패킷 전달이 전혀 되지 않는 것 같습니다.

peanutstars의 이미지

커널에 printk 넣어 확인 했더니, 엉뚱한 모듈로 후킹되고 있었네요.
해당 모듈 꺼버리니 정상 동작 합니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.