FTPS를 사용할 때 어떤 방화벽 포트를 열어야합니까?


33

공급 업체 사이트에서 FTPS 서버 (vsftpd)에 액세스해야합니다. 공급 업체는 ftps 서버 앞에 방화벽을 가지고 있습니다. FTPS 클라이언트 앞에 방화벽이 있습니다.

제어 트래픽을 위해 포트 990, 991 및 989를 열어야한다는 것을 알고 있습니다.

질문이 몇 개 있습니다:

  1. 공급 업체의 방화벽 관점에서 볼 때 인바운드 및 아웃 바운드 트래픽 모두에 대해 이러한 포트를 열어야합니까?
  2. DATA 채널의 포트는 어떻습니까?
  3. 1000 이상의 모든 포트를 열어야합니까?
  4. 인바운드 및 아웃 바운드 트래픽 모두에 대해해야합니까?

답변:


19

SSL을 통한 FTP (ftps)에 대한 이해는 방화벽 및 NAT와 잘 작동하지 않는다는 것입니다. 일반적인 FTP 세션에서는 방화벽이 필요한 포트를 동적으로 열기 위해 방화벽에서 데이터 연결에 대한 정보를 읽고 NAT에 대해 수정합니다. 해당 정보가 SSL로 보호되면 방화벽은 정보를 읽거나 변경할 수 없습니다.

SFTP 또는 scp를 사용하면 네트워크 관리자의 작업이 훨씬 쉬워집니다. 모든 것은 서버의 포트 22에서 발생하며 트랜잭션은 일반 클라이언트 / 서버 모델을 따릅니다.

언급되지 않은 한 가지는 방화벽이 NAT를 수행하는지 여부와 정적 NAT인지 동적 NAT인지 여부입니다. 클라이언트 시스템에 고정 주소가 있거나 정적으로 NAT 된 경우 모든 아웃 바운드 트래픽을 허용하고 서버는 수동 모드 (PASV)에서만 작동한다고 가정하면 방화벽을 변경할 필요가 없습니다.

어떤 포트를 열어야하는지 정확히 알려면 다음 중 하나를 수행해야합니다.

a) 공급 업체에 문의하여 시스템 구성 방법에 대한 정보를 얻습니다.

b) tcpdump 또는 wireshark와 같은 프로토콜 분석기를 사용하여 방화벽 외부와 방화벽 내부에서 트래픽을 확인하십시오.

어떤 포트가 제어 연결인지 확인해야합니다. 당신은 3을 나열합니다. 서버가 PASV (수동) 모드에서만 작동한다고 가정하면 서버가 할당 된 DATA 포트로 구성되는 방법을 알아야합니다. 그들은 DATA 채널을 단일 인바운드 포트로 잠갔습니까? 그들은 DATA 채널을 작은 범위 또는 포트에 고정 시켰습니까?

이 답변으로 방화벽 구성을 시작할 수 있습니다.


3
수동 모드 FTPS는 포트 번호 1024를 통한 제어 포트를 사용하므로 수동이 아닌 방화벽보다 방화벽에서 더 잘 작동합니다. 클라이언트는 포트 21에 열려는 상한 포트를 알려주므로 "제어는 포트 2000 또는 2001에 있습니다"라고 말하도록 클라이언트를 구성 할 수 있으며 서버는 아웃 바운드 포트 2000 또는 2001을 엽니 다. 대부분의 FTP 클라이언트는 특정 범위 정의를 지원합니다. "제어"가 활성화되어 방화벽을 쉽게 정의 할 수있는 포트
djangofan

27

나는 990 주위의 포트가 암시 적 SSL을위한 것이라고 생각합니다. 이것은 FTP / SSL을 수행하는 오래된 비표준 방법이었습니다. 요즘 "올바른"방법은 명시적인 SSL입니다. 즉, 여전히 포트 21에서 연결 한 다음 케이크를 보내기 전에 SSL을 협상해야합니다. 방화벽을 통한 연결을 지원하려면 PASV 모드를 사용하고 사용할 데이터 포트를 하드 설정해야합니다.

지원하려는 데이터 연결 당 하나 이상의 포트가 필요하다고 생각합니다. 그것이 당신이라면, 아마도 몇 개의 추가 포트를 여는 것만으로도 괜찮을 것입니다. 특히 나를 위해 21000-21010을 사용합니다.

vsftpd.conf에는 SSL을 지원하는 다른 모든 항목과 함께 다음 두 줄이 있습니다.

pasv_min_port=21000

pasv_max_port=21010

내 방화벽에는 내부 IP에 대한 일대일 / 정적 NAT가있는 공개 정적 IP가 있으며 TCP 포트 21, 21000-21010 만 열려 있습니다.


10

그러나 이것이 매우 오래된 스레드라는 것을 알고 있습니다.

SFTP는 FTPS와 완전히 다릅니다. (SSH vs SSL)

FTPS worsk는 두 가지 방식으로 제공됩니다. 명시 적 및 암시 적. 데이터 전송 중에 초기 핸드 셰이크가 암호화를 건너 뛰고 [PROT P를 사용하여 서버 측에서 데이터 암호화를 구성 할 수있는 경우] 암시 적으로 핸드 셰이크 후에도 데이터의 암호화를 유지하기 때문에 명시적인 보안 수준이 떨어집니다. 기본 명시 적 FTPS 포트는 21입니다. 기본 내재적 포트는 990입니다 (핸드 셰이크 후 다르게 구성되지 않은 경우 데이터 전송을 위해 자동으로 989로 전환됨). 포트 21은 일반적으로 EXPLICIT FTPS로, 990은 IMPLICIT FTPS로 허용되지만 실제로 990/989를 제외하고 구성 할 포트는 EXPLICIT FTPS로 이어지지 만 990/989 만 IMPLICIT FTPS로 허용됩니다.

따라서 귀하의 질문에 대답하려면 :-FTPS 서버 구성에 따라 포트 21 또는 990/989를 열어야합니다. 그러나 확실하게 FTPS 서버 관리자에게 문의하여 지침을 요청해야합니다. 또한 다른 모든 FTP 소프트웨어와 마찬가지로 수동 모드의 경우 일반적으로 64000-65000 범위의 추가 포트 (TCP / UDP)를 열어야합니다.


2

방화벽 관리자에게 당황스러운 요청을해야하기 때문에 기본적으로 ftp는 거의 쓸모가 없습니다. 포트를 10으로 제한하는 조언이 좋습니다. 훨씬 더, 그것은 한심하다.

sftp는 이론적으로 훨씬 좋습니다. 그러나 실행 가능한 sftp 서버 (예 : 클라이언트를 자신의 홈 디렉토리로 제한하는 서버)가 필요합니다.

응용 프로그램에 따라 HTTPS를 고려하십시오. 파일 업로드는 정말 간단하며 다운로드도 확실합니다. 어쨌든 FTP를 스크립팅하는 경우 HTTPS 파일 업로드를 스크립팅하는 것이 더 쉬울 것입니다.

자동 FTP는 디자인 문제의 신호입니다. 나는 자동화 된 FTP를 위해 일했던 장소를 '필요한'약 12 개의 벤더를 처리 할 때 (매우 중요한 일을 위해), 수십 명의 고객이 같은 상점에서 그것을 할 때 (디자인 실패) 내가 목격 한 20 가지 용도). 대부분의 앱 사용자가 HTTPS를 사용하도록 설득하기가 쉬웠습니다. (보통 언급 할 때 "기다려요. 이미 데이터를 제공하는 웹 서버에서 HTTPS로 가져와야하는 이유는 없습니다." )와 같은 응답을 제공하는 몇 가지를 제외하고는 (저희는 이미 작동하는 것처럼 보이는 스크립트를 가지고 있으며, 팀의 어느 누구도 실제로 스크립팅에 능숙하지 않으므로 실제로 변경할 수 없습니다 "(5-10 명의 프로그래머,


1

공급 업체는 DATA 연결 포트에 대해 좁은 포트 범위를 구성 할 수 있습니다 (아직없는 경우). 그런 다음 이러한 액세스가 필요한 호스트에 대해 동일한 범위를 끝에서 열 수 있습니다. PASV 모드를 사용해야합니다.


-1

포트 22는 UNIX의 SSH 데몬에 기본 SFTP 서버를 만들 수있는 SFTP 모듈이 있으므로 표준입니다. Filezilla를 사용하여 암시 적 FTP 서버를 실행하려면 원하는 포트에서 서버를 실행할 수 있지만 문제가 있습니다. FileZilla 클라이언트를 사용하는 경우 ftp 사이트 URL을 ftps : //mysite.com : 8086으로 지정해야합니다. FileZilla 클라이언트가 제공하는 별도의 포트 필드에 포트를 넣는 대신.

명시 적 옵션의 경우 하나의 포트 : 22 만 있으면됩니다. 암시 적 옵션의 경우 제어 포트 8086 (파일 질라 서버의 포트 21로 내부적으로 전달)에 대한 방화벽 만 열려 있으면됩니다.


6
이 질문은 SFTP가 아닌 FTPS에 관한 질문이었습니다.
Michael Lang

-7

ftps가 sftp 와 동일한 경우 공급 업체 사이트의 포트 22에만 액세스 할 수 있어야합니다.

결국 포트 22 발신 및 관련 수신 트래픽 을 허용하도록 방화벽을 구성해야합니다 . 그러면 포트 22의 초기 발신 연결 과 관련된 모든 수신 포트에서 통신 할 수 있습니다.


11
SFTP는 ftp와 다릅니다 ( codeguru.com/csharp/.net/net_general/internet/article.php/… ). SFTP는 SSH와 함께 사용되는 파일 전송 프로토콜입니다. FTPS는 SSL을 사용하는 FTP이며 FTPS는 새로운 임의 포트에서 새로운 DATA 연결을 시작하여 방화벽 뒤에 배치하기가 어렵지만이 상황에서는 방화벽을 제거 할 수 없습니다.

2
미안하지만. 다른 사람들이 같은 혼란을 겪을 경우를 대비하여이 게시물을 남기겠습니다.
Brent

매우 일반적인 혼란입니다. 방화벽 측면에서 sftp는 로그인 액세스 용 프로토콜을 기반으로한다는 점을 제외하고는 더 쉽게 허용 할 수 있습니다. 독립적 인 보안 그룹에 대한 Negligent는 상당한 독립 검증 없이도 허용합니다. sysadmins가 신뢰할 수없는 클라이언트에 적합한 sftp 서버를 찾고 구성하기가 어렵습니다. sftp 또는 ftp에 대한 모든 논의는 다른 프로토콜 때문에 언급해야합니다. 혼동이 너무 흔하기 때문입니다.
carlito 2016 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.