브라우저를 통해 내 FTP 서버에 액세스하려고 하는데 문제가 있습니다.
Filezilla를 사용하여 액세스하면 디렉터리가 잘 보입니다. 그러나 브라우저를 사용하면 디렉토리 목록을 얻지 못합니다.
문제가 해결되기를 바라면서 이 항목을 iptables에 추가했지만 변경되지 않았습니다.
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
답변1
간단한 해결책은 이 FTP 서버에 연결할 때 Filezilla를 수동 모드를 사용하도록 전환하는 것입니다.
FTP에 연결할 때 제어 채널이라고 하는 포트 21을 사용합니다. 명령을 보내고 실행된 명령의 결과에 대한 알림을 받는 데 사용되는 연결입니다. 파일 목록( 로 출력 LIST
), 파일 전송( 파일 가져오기 RETR
및 파일 넣기 STOR
) 및 실제로 데이터 전송이 필요한 기타 작업의 경우 데이터 채널이라는 별도의 채널이 생성됩니다. FTP는 이 데이터 채널을 활성 또는 수동 모드로 작동할 수 있습니다. 둘 다 데이터 채널이 설정되는 방식을 나타냅니다.
You issue a LIST (in active mode)
CLIENT FIREWALL FTP SERVER
_ (port 21) _
__ _ (port 21) |=| ---------- LIST command ---------> |=|
[__]|=| ----- LIST command issued -- > |=| |=|
/::/|_| . |_| <----- FTP server attempts to ---- |_|
`\___ now listening on arbitrary connect and gets denied
port for data channel say 8000 by firewall
활성 모드에서 클라이언트는 자신이 생성한 모든 수신 포트를 광고합니다.FTP 서버클라이언트 컴퓨터에서 이 광고된 주소와 포트에 연결합니다. FTP 데이터 채널을 알리는 클라이언트 호스트의 임의의(자주 변경되는) 상위 포트 번호이기 때문에 일반적으로 방화벽이 트래픽을 차단하는 곳입니다. Filezilla는 기본적으로 6000에서 7000 사이의 포트를 사용합니다. 방화벽이 이 연결을 차단하지 않으면 LIST
명령 출력은 이 별도의 채널을 통해 전송됩니다.
You issue a LIST (in passive mode)
CLIENT FIREWALL FTP SERVER
_ (port 21) _
__ _ (port 21) |=| ---------- LIST command ---------> |=|
[__]|=| --- LIST command issued -- > |=| |=|
/::/|_| |_| <--- FTP server advertises the --- |_|
listening data port over \___ server with
the control channel listening data
channel
CLIENT FIREWALL FTP SERVER
_ (port 21) _
__ _ <--- open control channel ---> |=| ---- open control channel ----> |=|
[__]|=| |=| |=|
/::/|_| --- client establishes a ----> |_| ---- passive data channel ----> |_|
connection to the connection allowed
advertised data channel by firewall
수동 모드에서는 역할이 바뀌고 FTP 클라이언트가 명령 PASV
보다 먼저 명령을 실행합니다 LIST
. 이것FTP 서버그런 다음 수신 TCP 포트를 생성하고 클라이언트가 데이터 채널을 설정하기 위해 연결할 포트를 광고합니다. 대부분의 방화벽은 일반적으로 이를 허용합니다(클라이언트가 모든 포트에 아웃바운드 연결을 만들 수 있기 때문).
FTP 서버와 인터넷 사이에 방화벽이 있는 경우 방화벽이반품수동 연결을 허용하려면 이러한 포트를 열도록 구성해야 합니다. 대부분의 FTP 서버에는 광고되는 포트 범위를 설정하는 기능이 있으며 이러한 포트를 열어 이러한 연결을 허용할 수 있습니다.
제한이 있고 수동 작업을 수행할 수 없는 클라이언트가 있는 경우 Filezilla는 이 기능을 제공합니다(편집->설정...->연결/FTP/활성 모드를 통해 사용할 포트 설정). 그런 다음 이 포트를 컴퓨터에 추가할 수 있습니다. 방화벽.