IIS를 이용해 FTP서버를 만드는중 문제가 생겼습니다.

첫번째 FTP서버는 별다른 무리 없이 만들었습니다.

  1. 폴더 생성
  2. 계정 생성 및 폴더 권한 부여
  3. IIS에서 FTP서버 생성 (폴더 및 계정 지정)
  4. 방화벽 21포트 해제, 포트포워딩

이 상태로 파일질라로 접속하면 잘 됩니다.

그리고 두번째 FTP서버를 만들었고, 과정을 동일합니다.
계정도 동일한걸 사용했으며, 경로와 포트가 2121로 다릅니다

외부에서 2121포트로 핑을 날려보면 열려있는걸 확인할 수 있으나
파일질라로 접속하면 아래와 같은 기록이 남습니다.

제목 없음

iis에서 21포트로 동작중인 ftp서버를 멈추고, 2121포트로 동작중인 서버를 21포트로 바꾸면 접속이 됩니다.

2121 포트도 열려있는 상태고, 당연히 방화벽에도 허용으로 등록된 상태인데 안되는 이유를 모르겠습니다

FTP의 경우에 21번 포트는 명령어 송수신만 담당하고, 각종 조회나 파일 송수신은 포트 번호 대역을 할당해야하는것으로 알고 있는데, 이 대역을 서버에서 먼저 알릴지, 클라이언트가 추론하거나 조회해서 알아낼지에 따라 방화벽 설정이 좀 더 세분화되어야하는것으로 알고 있습니다.

21번 포트에만 초점을 맞추고 계신듯해서 일단 이 점부터 말씀드려봅니다.

여담이지만, ftp는 영문자 이외의 파일 이름 인코딩은 표준화된 바가 없고, 암호화도 되지 않은 상태이며, SSH/SFTP와 달리 1개 이상의 포트를 열어야해서 유지관리면에서나 보안 면에서 권장되지 않습니다. 일부 레거시/임베디드 장치와 연동을 하는등 불가피한 이유가 아니라면 SSH/SFTP가 더 안전하고 좋은 선택일것 같습니다.

3 Likes

혹시 포트포워딩…?

아… 하셨구남 데헷 죄송합니다. ㅎㅎㅎ

1 Like

21번 포트나 2121포트나 명령어 포트는 문제 없습니다.
명령어 포트는 로그인과 pwd, list 등 명령어만 날아 가고 응답만 받으니까요

하지만 디렉토리 목록을 받거나 파일 업/다운로드 는 다른 포트가 열립니다.

저기 보시면 PASV 즉 패시브 모드로 열립니다.
패시브 모드면 서버가 해당 로컬 PC로 접속을 해서 디렉토리 목록을 내려 주는 겁니다.

포트는 몇번이 열릴지 알수가 없습니다. 그떄 그때 다르니까요
그래서 파일질라를 로컬 방화벽에서 예외로 등록을 하셔야 합니다.
그리고 네트웍 방화벽이 있는지도 체크 하셔야 합니다.

참 그리고 위 찍힌 로그 보시면 서버가 TLS 연결을 지원 하지 않는듯 합니다.
사이트 관리자 들어 가셔서 TLS 해제 하시고 일반 연결로 설정 하시기 바랍니다.

2 Likes

아아 감사합니다!

2121로 쓰던걸 21로 바꾸기만하면 다 잘되어서 포트문제라고만 생각했었습니다

지금은 해결했는데,
21포트로 연 FTP서버만 남겨두고

하위에 계정별로 권한을 분리하여 폴더를 나눴습니다
이후 계정과 폴더를 추가 생성하면 같은 폴더로 여러개로 사용할 수 있어서
제가 바라는 기능을 작업하는데 문제가 없을것 같습니다…

다시 한번 답변 감사드립니다(__)