내부 lan 네트워크 하부 pc(desktop1)에서 패시브모드로 filezilla server를 운영중이라고 가정할때 외부에서 ftp 서버로 접속하려면 라우터에 포트포워딩 설정이 필요한데 그 설정방법을 간단히 설명합니다.
filezilla server 설정
- filezilla 서버 ftp 제어 포트 설정 : tcp 21
- filezilla 서버 ftp 데이터전송 포트 설정 : tcp 49389-49589


OpenWrt라우터 설정
아래 설정은 참고로만 보고 실제 설정은 luci로 하세요. luci가 더 빠르고 쉽습니다.
먼저 /etc/config/dhcp를 수정해 filezilla server를 구동하는 pc(desktop1)의 ip를 dhcp에서 고정ip로 변경합니다.
... config host option mac 'ff:ff:ff:ff:ff:ff' option name 'desktop1' option dns '1' option ip '192.168.1.111' option leasetime '0'
포트포워딩 설정을 위해 /etc/config/firewall 에서 해당포트를 개방합니다.
- ftp 컨트롤 포트인 21번 포트는 잘 알려진 포트로 공격의 대상이 되므로 2211포트로 대체하였습니다.
- ftp 클라이언트는 외부에서 2211포트(ftp 제어 포트)로 라우터에 접근하게 되며 라우터는 destination NAT에 따라 목적지를 lan의 192.168.1.111:21번 포트로 변경해 ftp 서버와 통신을 하게 됩니다.
- ftp 서버는 ftp-data포트로 지정된 포트(49389-48589)를 클라이언트에게 알려주게되며 이후 지정된 포트로 데이터 전송이 이루어 집니다. 이때도 DNAT에 의해 목적지가 192.168.1.111로 변경됩니다.
... config redirect option name 'ftp' option src 'wan' option src_dport '2211' option proto 'tcp' option dest 'lan' option dest_ip '192.168.1.111' option dest_port '21' option target 'DNAT' config redirect option name 'ftp-data' option src 'wan' option src_dport '49389-49589' option proto 'tcp' option dest 'lan' option dest_ip '192.168.1.111' option dest_port '49389-49589' option target 'DNAT'
서비스 재시작
/etc/init.d/dnsmasq restst
/etc/init.d/firewall restart