File Transfer Protocol: 파일을 전송하는 통신규약 (Port = 21)
포트는 보안이 좋지 않아서 실무에 사용하지 않는다.
보인이 이루어지지 않은 채로 통신이 이루어지는 옛 버전
대표적인 공개 FTP 접속 프로그램이 Filezilla이다.
FTP는 명령어를 전달하는 21포트와 데이터를 전달하는 20(혹은 랜덤) 포트가 존재
데이터를 전달하는 방식에 따라 액티브와 패시브 모드가 있다.
ftp는 두개의 포트를 이용하는데 그래서 21번 포트로 접속이 되더라도 사용 모드에 따라 서버의 20번 포트 혹은 클라이언트의 방화벽 정책에 따라 접속만 되고 실제 파일은 받거나 올리지 못하는 일이 발생합니다.
이 경우는 모드를 변경하거나 방화벽 정책을 확인해보자
📌telnet 과, ftp 인 경우는 패킷을 캡쳐해서 보면, 평문이기 때문에.
보여져서는 안될부분(패스워드, 계정 이정도 겠죠)이 쉽게 보여집니다.
이는 아주 큰 문제를 발생시킬 수 있습니다.
이런 취약점을 보안하기 위해서 telnet은 ssh 로 , ftp는 sftp로 암호화된 프로토콜 SSL을 사용하여, 모든 패킷을 암호화 해서 주고 받으므로 패킷을 잡아내더라도, 해독하는데 슈퍼컴퓨터로 1달 이상 걸리게 됩니다. 그렇기 때문에 패킷을 잡아도 사용할수 없도록 하는 것
ssh의 파일 전송 버전: port = 22
FTP에서 보안이 추가된 것이 SFTP
ssh 기반으로 동작하는 FTP가 아니며 국제 인터넷 표준화 기구(IETF) SECSH 워킹 그룹에 의해 처음부터 설계된 새로운 프로토콜이다. SFTP는 SSH의 확장 프로토콜이다.
파일을 다운로드하거나 인터넷에 업로드 할 때 일반적으로 사용. 일반 텍스트 파일은 전송되지 않는다
SFTP를 통해 제출할 때는 압축 여부에 관계없이 파일의 크기가 4GB를 넘지 않아야 한다.
일반적인 FTP와 달리 PC와 서버간의 데이터 전송을 암호화하기 때문에 해킹이나 보안상의 문제점을 방지,
안전한 호스팅 서비스를 이용할 수 있습니다.
ssh은 텔넷의 보안 버전
SSH는 3개의 프로토콜로 이루어져 있다.
SFTP (SSL File Transfer Protocol)
FTP와는 완전히 관계가 없는 파일 전송 프로토콜이다, SSL을 이용한다
SecureFTP (FTP/SSH)
SSH 연결 위에 일반 FTP로 접속을 하지만 실제 데이터는 암호화 되지 않는다
FTPS (or FTP/SSL) implicit & explicit
FTP가 TLS/SSL 보안 연결에서 동작한다. TLS(Transport Layer Security)/SSL(Secure Sockets Layer) 연결을 구성하는데에 따라 'implicit' 또는 'explicit'으로 구분이 된다.
참고
https://nhj12311.tistory.com/76
https://m.blog.naver.com/marnet/220357215031
https://www.nhn-commerce.com/customer/guide/ftp-setting.gd
https://studyforus.tistory.com/236