iptables 사용시 FTP 연결 문제..?

papa의 이미지

iptables 을 이용해서 adsl 에 리눅스를 연결하고 리눅스에 다시 windows를 연결해서 사설 IP를 사용하고 있습니다.

windows에서 ftp 연결을 하면 외부로의 연결은 잘 됩니다. 그런데 외부에서 windows로 FTP 연결을 하면 연결은 되는데 파일 리스트를 받아오지 못해요.
passive로도 해 봤는데 같습니다..

iptable을 설정할때 다른 뭔가를 해줘야 하나요..?
port도 막혀 있나 싶어서 ftp 포트를 21에서 2121 바꿨는데, 같은 현상입니다...

아시는분 좀 알려 주세요..

indizarm의 이미지

rc.local 파일에 다음과 같이 하시면 됩니다.

/sbin/iptables -F
echo "1" > /proc/sys/net/ipv4/ip_forward
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_ftp
/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

What a Cool Days!!!

codebank의 이미지

http://www.hamslab.com/bbs/js13p1/read.php?table=linuxdb&no=70

위 문서의 마지막부분을 참조하셔도 됩니다.

------------------------------
좋은 하루 되세요.

papa의 이미지

답글 감사합니다.

한가지 더 질문이 있습니다.
modprobe 를 사용하지 않고 kernel에 바로 넣어서 커파일을 하고 싶은데, 그러면 make menuconfig 한다음에 어떤 옵션을 추가 해야 하나요..?

참고로 지금 kernel version이 2.4.19 입니다.

감사 합니다.

pyrasis의 이미지

커널옵션에서 체크할때

<M> Connection tracking (required for masq/NAT)                                             
  <M>   FTP protocol support                                                                  
  <M>   IRC protocol support

이렇게 하면 모듈로 나오게 되죠

<*> Connection tracking (required for masq/NAT)                                             
  <*>   FTP protocol support                                                                  
  <*>   IRC protocol support

스페이스를 눌러 별표로 바꾸면 커널로 포함됩니다.

papa의 이미지

답변 갑사합니다..

한가지 더 질문이 있습니다.
FTP port Forwading을 할때, windows의 FTP 서버 Port 가 21번이면 연결이 됩니다.. 그런데, 그외의 다른 Port(2121,2323,...)으로 변경을 하면 연결은 되는데, 파일 리스트를 가져 오지 못 합니다..
passive 모드로 해도 같습니다...

이유를 아시면 좀 알려 주세요..
설정은 다음과 같이 했습니다.

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 2121 -j DNAT --to 192.168.1.2:2121