자기자신에게로의 포트포워딩이라는것.. 말이 안되나요?

taxyshop의 이미지

좀 바보같은 질문이라고 생각될지도 모르겠습니다만... 잘모르는 초보의
질문이니 양해 해 주십시오.

저는 apache 설정이나 vsftpd 의 포트관련 설정을 건드리지 않기를 원합니다.
해서, 예를 들어 8088 번 포트로 들어온 연결을 자기자신의 80번 포트로
포워딩 해 주면 안될까 라고 생각했습니다. 해서 제가 가진 지식으로

/sbin/iptables -A PREROUTING -t nat -p tcp -i ppp0 --dport 8088 -j DNAT --to 192.168.0.1:80

의 시도를 해 보았으나 절대 불가능했습니다. 이 일은 아예 처음부터 불가능한 시도인가요?
말도안돼.. 라든지 더 삽질해보면 된다.. 라든지 바보냐? 라든지 따위의 답변만으로
도 충분할것 같습니다. 애초에 안되는걸 붙잡고 고생하는것 보다는...

정리해 보면 이렇습니다.
adsl 과 연결된 리눅스박스와 내부네트웍으로 물린 윈도우즈 서버가 있습니다.
(둘다 학습용)
리눅스서버에선 APM 으로 웹서비스를 돌리고 ftp 서버를 운영하기 원합니다.
리눅스서버에서 인터넷 연결공유와 방화벽 역할을 담당하기 원합니다.

내부네트웍에 물린 윈도우즈 서버에선 asp 와 IIS 로 웹서버를 돌리며 역시 ftp
서버를 운영하기 원합니다. 외부에선 아이피 뒤에 포트만 변경하는것으로
두 서버에 모두 접속될 수 있기를 원합니다.

둘다 설정에서 기본포트(80,21) 이외의 포트로 설정변경하는것을 원하지 않습니다.

검객의 이미지

주소는 정상적으로 변환될꺼 같은데요.
주소변환이 이루어진후 192.168.0.1:80 를 차단하는
룰이 있는건 아닌가요?

80번 포트를 listening 하고 있는데몬이 아이피가 192.168.0.1인 컴에
있는게 맞나요?? 리눅스 박스가 게이트웨이로 쓰인다고 했는데
거기에 아파치가 설치되어있는게 맞는지요.

우리 항시 웃고 살아요 ^^

mithrandir의 이미지

Quote:

REDIRECT
This target is only valid in the nat table, in the PREROUTING and OUT-
PUT chains, and user-defined chains which are only called from those
chains. It alters the destination IP address to send the packet to the
machine itself (locally-generated packets are mapped to the 127.0.0.1
address). It takes one option:

--to-ports port[-port]
This specifies a destination port or range of ports to use:
without this, the destination port is never altered. This is
only valid if the rule also specifies -p tcp or -p udp.

이걸로 자기자신에게 DNAT을 할 수 있습니다.

언제나 삽질 - http://tisphie.net/typo/
프로그래밍 언어 개발 - http://langdev.net

taxyshop의 이미지

성공했습니다.
답변주신 검객님과 mithrandir 님께 감사드립니다.
이걸로 근 3일을 삽질한것 같군요.

http://wiki.kldp.org/wiki.php/LinuxdocSgml/2.4_NAT-TRANS 상세한
자료는 이곳의 글을 참고했습니다.
제가 보아도 필요없거나 중복되는 NAT 룰들이 있는것 같습니다. 혹시 의향이
있으시면 지적해 주시면 감사하겠습니다.

modprobe ipt_MASQUERADE
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp

/sbin/iptables -F
/sbin/iptables -t nat -F
/sbin/iptables -t mangle -F

# 기본 정책은 일단 다 받아들이기
/sbin/iptables -P INPUT ACCEPT
/sbin/iptables -P FORWARD ACCEPT
/sbin/iptables -P OUTPUT ACCEPT

# 인터넷 연결 공유
/sbin/iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward

# 루프백 장치의 패킷은 모두 허용
/sbin/iptables -A INPUT -j ACCEPT -i lo

# icmp 패킷은 모두 허용
/sbin/iptables -A INPUT -j ACCEPT -p icmp --icmp-type any

# 이미 연결되었거나 상호의존적 패킷들은 무조건 허용
/sbin/iptables -A INPUT -j ACCEPT -m state --state ESTABLISHED,RELATED

# 새롭게 들어오는 특정 포트의 패킷들을 허용
/sbin/iptables -A INPUT -j ACCEPT -m state --state NEW -p tcp --dport 8821
/sbin/iptables -A INPUT -j ACCEPT -m state --state NEW -p tcp --dport 8880
/sbin/iptables -A INPUT -j ACCEPT -m state --state NEW -p tcp --dport 2188
/sbin/iptables -A INPUT -j ACCEPT -m state --state NEW -p tcp --dport 8088

/sbin/iptables -A INPUT -j ACCEPT -m state --state NEW -p tcp --dport 80
/sbin/iptables -A INPUT -j ACCEPT -m state --state NEW -p tcp --dport 21
/sbin/iptables -A INPUT -j ACCEPT -m state --state NEW -p tcp --dport 22
/sbin/iptables -A INPUT -j ACCEPT -m state --state NEW -p tcp --dport 23

/sbin/iptables -A INPUT -j ACCEPT -m state --state NEW -p tcp --dport 4661
/sbin/iptables -A INPUT -j ACCEPT -m state --state NEW -p tcp --dport 4662
/sbin/iptables -A INPUT -j ACCEPT -m state --state NEW -p udp --dport 4672

# 포트포워딩
/sbin/iptables -A PREROUTING -t nat -p tcp -i ppp0 --dport 8088 -j DNAT --to 192.168.0.5:80
/sbin/iptables -A PREROUTING -t nat -p tcp -i ppp0 --dport 2188 -j DNAT --to 192.168.0.5:21
/sbin/iptables -A PREROUTING -t nat -p tcp -i ppp0 --dport 4661 -j DNAT --to 192.168.0.5:4661
/sbin/iptables -A PREROUTING -t nat -p tcp -i ppp0 --dport 4662 -j DNAT --to 192.168.0.5:4662
/sbin/iptables -A PREROUTING -t nat -p udp -i ppp0 --dport 4672 -j DNAT --to 192.168.0.5:4672
/sbin/iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 8880 -j REDIRECT --to-port 80
/sbin/iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 8821 -j REDIRECT --to-port 21

# 나머지는 모두 icmp-host-prohibited 메시지를 돌려보내고 막기
/sbin/iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited

/usr/local/mysql/bin/mysqld_safe &

/usr/local/apache/bin/apachectl start

나는 치과가 싫어요

댓글 달기

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