PFSENSE FTP 비정규 포트 및 PASSIVE 설정

FTP서버를 사용하는데 있어서 다른 서비스와는 달리 콘트롤포트와 데이터포트를 동시에 사용하는 프로토콜중 하나입니다. 요즘은 보안 때문에 SSH를 이용한 SFTP를 사용하거나 FTPS를 사용하기도 하지만 기존데로 FTP를 이용하는 경우도 있습니다. 외부에 노출하기에 21 정규포트를 사용하기 꺼릴 경우는 비정규 포트와 PASSIVE 포트를 이용해야 하는 번거로움이 있습니다.

DMZ존 공인IP를 그대로 사용할 경우는 비정규 포트를 사용해도 패시브 포트 역시도 연결하는데 문제가 되지 않지만 FTP 서버가 NAT 하단에 존재할경우는 문제가 많이 생기게 됩니다. 여러 커뮤니티 사이트에서 흔히 질문글중 올라오는 증상이 꼭 FTP 연결 문제들이였습니다. 비정규 포트는 패시브다 뭐다 그렇고 접속하는 클라이언트가 공인존IP를 그대로 사용할 경우는 패시브 없이도 접속 잘되었다 그런경우도 종종 있지만 어느 한쪽이든 공인존IP만 사용하면 또 접속하는데 문제가 없습니다. 이게 RFC 몇번 문서인지는 모르겠지만 FTP 세션 맺는 포트 순서도를 설명해주는데 그것까지 전부 꼼꼼히 읽을 필요는 없습니다.

딱 한가지만 기억할거는 접속하는 나 자신도 공유기 하단이거나 원격지 FTP서버가 공유기 하단이거나 방화벽 하단 NAT 하단 이런 환경일 경우는 PASSIVE 구성에 대해서 신경을 써야 됩니다.

IPTIME 공유기일 경우는 이런 이슈에 삽질하지 말라고 메뉴얼 구성에 딱 비정규포트 설정이 있습니다. 저기에 21번이 아닌 비정규 포트번호를 넣고 포트포워딩 해주면 공유기 단에서 패시브포트까지 연결해주는 아주 편한 기능을 내장하고 있습니다.

필자가 PFSENSE를 사용하기 전까지는 ISA/FTMG 서버 방화벽을 찬양하며 이용하였는데 TMG 같은 경우는 아예 친절하게 FTP 정규포트를 사용하지 않을경우 별도로 원하는 수동포트를 지정하게 되어 있습니다. FTP Server 필터정책 엔진을 그대로 사용하기 때문에 PASSIVE포트에 대한 이슈가 없이 TMG 앞단에서 데이터채널 액세스 포트를 뿌려주게 되서 오류 없이 작동을 문제 없이 잘되게 합니다.

PFSENSE는 위 2개 제품과는 달리 별도로 FTP 필터정책에 비정규 포트를 넣는 방법은 존재하지 않았습니다. 별도로 포트를 지정해서 포워딩 해줬더니 역시나 PASSIVE 포트에서 데이터 리스트를 출력해주지 못하는 현상이 재현이 되었는데 FTP서버단에서 별도로 PASSIVE 영역을 지정해줘도 동작은 하지 않았습니다. 아마 이유가 데이터채널 포트가 NAT를 통과하며 재해석되는 포트로 변경되기에 연결이 불가한것으로 보고 있습니다.

IIS에서 데이터채널 포트 범위를 지정한 옵션입니다. 방화벽에도 동시에 오픈해줬지만 작동은 불가였는데 PFSENSE 에 옵션이 있지 않을까 열심히 찾아 보다가 딱 눈에 보였습니다.

NAT+Proxy 옵션을 적용하니 안되던 접속들이 한방에 되고 해당 포트범위는 필터 룰 PASS로 적용하게 해줘야 아무런 문제없이 기존데로 비정규 FTP접속이 이루어졌습니다.

PFSENSE 문서에 의하면 리플렉션 규칙 프록시와 함께 사용하면 500개 포트보다 큰 범위에 대해 생성되지 않으며 모든 포트 전달 사이에 총 1000개 이상의 포트에 사용할 수 없습니다 라고 설명해주고 있습니다. 그래서 범위를 500개로 정해서 PASSIVE 포트로 지정하였습니다

요즘은 대부분의 공유기에서도 비정규 FTP를 지원하게 해줬고 방화벽 역시도 비정규 FTP를 지원하게 설정이 되었을겁니다. PFSENSE는 아예 NAT 모드 옵션에서 이같은 문제를 해결하게 설명을 해주지만 이게 FTP 설정에 필요하다?라고는 문서에는 전혀 없다는게 필자가 삽질을 하게된 배경이였습니다.

 

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다