FTPS를 사용할 때 어떤 방화벽 포트를 열어야합니까? 클라이언트 앞에 방화벽이 있습니다. 제어 트래픽을 위해

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

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

질문이 몇 개 있습니다:

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


답변

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

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

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

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

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

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

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

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


답변

나는 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 만 열려 있습니다.


답변

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

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)를 열어야합니다.


답변

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

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

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

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


답변

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


답변

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

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


답변

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

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