IP 공유기의 DMZ 기능은 어떻게 구현한거죠?

yeppiguy의 이미지

IP 공유기의 DMZ 기능을 Linux에서 iptables로 유사하게 구현할 수 있나요?
iptables의 SNAT와 DNAT로 아래와 같이 해 보긴 했지만,
ftp,telnet 모 이런 서버는 정상적으로 동작하는데,
MSN의 음성채팅과 같은 어플리케이션은 동작하지 않네요...
혹시 아시는 분 있음 알려주세요....^^

WAN_IPADDR=
LAN_DMZ_IPADDR=

iptables -t nat -A PREROUTING -p all -i eth0 -j DNAT --to $LAN_DMZ_IPADDR

iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -j SNAT --to-source $WAN_IPADDR

netj의 이미지

MSN의 음성채팅이나 파일 전송 등은 DMZ로 해결되는 문제가 아닙니다. 흔히 말하는 DMZ는 단순히 IP의 시작/끝 주소나 TCP/UDP의 포트번호만 바꿔주는 NAPT 작업이기 때문에, 프로토콜이 패킷 내용에 내부망 IP를 넣어둘 경우는 제대로 동작하지 않습니다.

MSN의 음성채팅, 파일 전송, FTP 등 처럼 패킷 내부에 자기 IP를 기록하는 프로토콜들은 패킷 내용을 적절히 변환하여 내부와 외부를 연결해주는 프록시(내지는 application gateway)가 필요합니다. 프록시는 별도의 user-level 프로그램으로 만들 수도 있지만, 리눅스 커널 내에 nat-helper 모듈들처럼 만드는 것이 이상적입니다.

MSN 음성 채팅을 원하시는거라면 H.323 helper 모듈을 찾아보세요. MSN 파일 전송은 reaim이라는 프록시도 있습니다.

yeppiguy의 이미지

MSN 6.0의 음성채팅은 SIP를 사용하는 것으로 알고 있고 패킷 캡쳐를 해 보니까,..실제로 SIP SDP들이 지나가는 것들이 보이네요...

암튼,... 제가 사용하는 상용 IP 공유기에서는 별도의 상위 어플리케이션 설정없이(의심나서 모든 설정을 지우고) DMZ로만 셋팅하고도 내부망 PC에서 MSN 6.0 음성채팅이 되는 것을 확인했습니다.

님이 말씀하신 것처럼 패킷 내부에 IP정보가 포함되어 있다면 더더구나 iptables의 NAT가지고는 해결이 되지 않을 거 같은데, 그럼 일반 IP공유기 들은 이런 부분을 어떻게 해결했을까요? 과연 DMZ는 어떻게 구현했을까요?

혹시 가상 IP나 Gateway를 지정하여 출구를 열어두는 방법은 없나요?

PS:
iptables 에서는 Symetric NAT나 Fullcone NAT 처럼 in/out 포트번호가 동일하게 매핑되는것을 보장하나요? 대부분의 공유기들이 Fullcone NAT처럼 동작하는 것 같던데....

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.