
내 서버(ubuntu 16.04 x86_64)에서 proftpd를 사용하고 있습니다.
기본 proftpd는 표준 21 포트를 사용합니다. 문제없이 활성 모드를 사용하여 집 노트북에서 FTP로 연결할 수 있습니다.
이제 proftpd를 중지하고 포트를 21에서 10021로 변경한 후 서비스를 다시 시작합니다. 이제 능동 모드로는 연결할 수 없고 수동 모드로만 연결할 수 있습니다.
무엇이 바뀌었나요?
또한 이해할 수 없습니다. 왜 활성 모드가 작동합니까? 라우터를 통해 인터넷에 접속할 수 있습니다. 라우터에서 내 노트북으로 어떤 포트도 전달하지 않습니다. 지금 연결 시 내 노트북(ftp 클라이언트)은 1023보다 큰 포트에서 서버 포트 21로 연결을 만듭니다. 내 노트북은 서버로 두 번째(데이터) 포트를 서버로 보내고 서버는 이 데이터를 사용하여 자체 포트 20에서 나에게 연결합니다. 포트. 하지만 내 포트가 WAN으로 인해 닫히면 어떻게 두 번째 연결을 설정할 수 있습니까?
답변1
방화벽(라우터)에는 FTP에 대한 연결 추적 도우미가 있습니다. FTP 제어 연결(TCP 대상 포트 == 21로 인식)을 발견하면 명령을 감시합니다. 클라이언트가 명령을 보내는 것을 보면 PORT
명령을 다시 작성하고(외부 IP 주소 및 다른 포트에) FTP 서버에서 예상되는 연결을 추적합니다. 해당 연결이 도착하면 통과가 허용됩니다.
포트를 변경해도 아무 일도 일어나지 않았습니다. 10021은 FTP 제어 연결로 인식되지 않기 때문입니다.
Linux에서는 최소한 해당 기능이 모듈이며 원하는 경우 10021을 포함하도록 옵션을 nf_conntrack_ftp
설정할 수 있습니다 .ports
추신: 서버 앞의 방화벽을 사용하여 유사한 작업을 수행할 수 있지만 그 반대는 활성 모드 대신 수동 모드 전송에서 수행됩니다.