수동 모드에서 작동하도록 vsftpd를 구성하는 방법

수동 모드에서 작동하도록 vsftpd를 구성하는 방법

vsftpd에 설치할 때마다 centos사용자를 위한 감옥 환경만 설정하고 나머지는 의 기본 구성입니다 vsftpd. 사용자를 생성하고 filezilaftp 클라이언트로 연결을 시도했지만 패시브 모드로 연결할 수 없습니다. transfer settings성공적으로 연결하기 위해 항상 활성 모드로 변경합니다 ftp server. 그렇지 않으면

 Error: Failed to retrieve directory listing

vsftp.conf그렇다면 파일의 지시문을 변경하고 수동 모드로 서버에 연결할 수 있는 방법이 있습니까 ?

답변1

vsftpd에 대해 패시브 모드를 구성하려면 vsftpd.conf에서 일부 매개변수를 설정해야 합니다.

pasv_enable=Yes
pasv_max_port=10100
pasv_min_port=10090

이렇게 하면 패시브 모드가 활성화되고 데이터 연결에 11개의 포트를 사용하도록 제한됩니다. 이는 방화벽에서 이러한 포트를 열어야 할 때 유용합니다.

iptables -I INPUT -p tcp --destination-port 10090:10100 -j ACCEPT

테스트 후 모든 것이 작동하면 다음을 사용하여 방화벽 상태를 저장하십시오.

service iptables save

그러면 파일이 업데이트됩니다 /etc/sysconfig/iptables.

이렇게 하려면 CentOS 7에서 iptables가 아닌 새로운 방화벽을 사용해야 합니다.

귀하의 구역을 찾으십시오:

# firewall-cmd --get-active-zones
public
  interfaces: eth0

내 영역은 '공개'이므로 내 영역을 공개로 설정하고 포트 범위를 추가한 후 다시 로드합니다.

# firewall-cmd --permanent --zone=public --add-port=10090-10100/tcp
# firewall-cmd --reload

연결하면 어떻게 되나요?

  • 클라이언트는 포트 21에서 vsftpd 서버에 연결합니다.

  • 서버는 위에 지정된 범위에서 연결할 포트를 알려주는 클라이언트에 응답합니다.

  • 클라이언트는 지정된 포트에서 데이터 연결을 설정하고 세션은 계속됩니다.

다른 FTP에 대한 훌륭한 설명이 있습니다.모드여기.

답변2

패시브 모드를 활성화하려면 vsftp.conf에서 다음 구성 옵션을 설정하세요:

pasv_enable=YES
pasv_min_port=41361
pasv_max_port=65534
pasv_address=xxx.xxx.xxx.xxx

물론 시작 및 끝 포트를 변경할 수 있으며 xxx를 서버의 공용 IP로 바꿔야 합니다.

또한 방화벽에서 수동 모드 포트 범위를 열어야 합니다. Centos에서는 ip_conntrack_ftp모듈을 로드하여 방화벽에서 FTP 연결을 처리할 수 있습니다. ip_conntrack_ftp를 편집 /etc/sysconfig/iptables-config하고 IPTABLES_MODULES 옵션에 추가합니다. 그런 다음 iptables를 다시 시작하십시오.

/sbin/service iptables restart

답변3

옆에 pasv_enable=YESVSFTP가 PASV 모드를 실행할 포트 범위를 지정합니다.

pasv_min_port=50000
pasv_max_port=50999
pasv_enable=YES

iptables가 다음 포트에서 패킷 전송을 허용하도록 구성하는 것을 잊지 마십시오:

iptables -I INPUT -p tcp --dport 50000:50999 -j ACCEPT

답변4

일반적으로 FTP 서버인 vsftpd가 아니라 iptable과 같은 방화벽이 패시브 모드 사용을 방지합니다(데이터 전송에 필요한 tcp 연결 차단).

관련 정보