본문으로 바로가기
728x90
반응형

안녕하세요. letitkang입니다.


최근에 개인 사정으로 인하여 20일정도 글을 못썼네요.


이제 다 깨쳐내고, 오랜만에 글을 씁니다.


여러분 힘을 주세요!


오늘부터 글을 계속 포스팅하겠습니다.


다시 공부 시작해볼까요?


'Network Protocols Handbook의 pdf파일'을 봅시다!


 

 

 



오늘은 FTP 프로토콜입니다.


FTP는 파일 전송 프로토콜입니다.


즉, 파일 전송에 쓰입니다. 그러나 보안때문에 잘 쓰지 않습니다. 7계층인 응용 계층의 프로토콜입니다.


모르시는 분이 없으시면 오늘 알아 가시면됩니다~ 이제 시작하겠습니다.


RFC문서는 RFC959(https://www.ietf.org/rfc/rfc959.txt)를 참조하시면 됩니다.




FTP( File transfer Protocol )은 호스트 간의 파일 공유를 가능하게 해줍니다.


FTP는 TCP 프로토콜을 사용하여 제어 정보에 대한 가상 연결을 만든 다음 데이터 전송을 위한 별도의 TCP 연결을 만듭니다.


제어 연결은 TELNET 프로토콜의 이미지를 사용하여 호스트간에 명령과 메시지를 교환합니다.


FTP의 주요 기능은 다음과 같습니다.


1. 파일 공유(컴퓨터 프로그램 및 데이터)


2. 원격 컴퓨터의 간접적 또는 암묵적 사용(프로그램을 통한)을 장려.


3. 호스트들간의 파일 저장 시스템의 변화로부터 사용자를 보호.


4. 데이터를 안정적이고 효율적으로 전송함.


FTP는 터미널에서 사용자가 직접 사용할 수 있지만 주로 프로그램에서 사용하도록 설계되었습니다.


FTP 제어 프레임은 TELNET 교환이며 TELNET 명령과 옵션 협상을 포함할 수 있습니다.


그러나 대부분의 FTP 제어 프레임은 간단힌 ASCII 코드이며 FTP 명령 또는 FTP 메시지로 분류할 수 있습니다.


FTP 메시지는 FTP 명령에 대한 응답이며, 응답 코드와 설명 텍스트로 구성됩니다.


FTP는 TCP연결이기 때문에, 3-way hand shaking을 한 후, 클라이언트가 명령어를 입력하면, 서버는 응답 코드를 전송합니다.


 

 

 



아래의 2개 표는 클라이언트 명령어와 서버 응답코드 일부를 나타낸 것입니다.








위의 설명으로 FTP가 어떤 프로토콜인지 감이 잡히시나요?


다음 으로 Wikepedia에 있는 FTP에 대해 정리해보겠습니다.




파일 전송 프로토콜(File Transfer Protocol)은 TCP/IP 프로토콜로 서버와 클라이언트 사이의 파일을 전송하기 위해 사용하는 프로토콜입니다.


TCP/IP 프로토콜의 응용 계층에 속하고, 현재에도 사용하기는 합니다.


대부분의 윈도우, 유닉스, 리눅스 등의 OS에 기본으로 포함되어 있습니다. 현재는 이것과 관련된 응용 프로그램들이 많이 개발되어 있고, 사용하고 있습니다.


FTP는 2가지의 종류의 연결이 있습니다.


1. 능동모드 : 서버가 자신의 데이터 포트인 20번 포트에서부터 클라이언트가 지정한 곳으로 데이터 연결을 만듭니다. 클라이언트가 지정하는 포트는 보통 1023보다 큰 번호가 매겨진 포트입니다.


클라이언트가 방화벽이나 NAT등의 환경일 때는 잘 동작하지 않을 수 있기 때문에 그럴 경우에는 수동 모드를 사용합니다.


2. 수동모드 : 클라이언트가 서버가 지정한 서버 포트로 연결할 수 있게 합니다. 이때는 보통 모두 1023보다 큰 포트를 사용합니다.


FTP는 여러 문제가 있습니다.


무차별 대입공격, FTP 바운스 어택, 패킷 가로채기, 포트 훔치기, 스푸핑 공격, 사용자 이름 열거 등의 문제가 있습니다.


그러므로 그를 보안하기 위해 인증을 거치는 SSH프로토콜을 이용한 SFTP, SCP 등으로 파일을 전송합니다.


 

 



오늘은 여기까지 글을 쓰겠습니다.


오랜만에 글을 쓰니깐 더욱더 열심히 글을 쓰고 싶다는 마음이 생깁니다.


다들 건강하시고, 열심히 삽시다!


많은 도움이 되었으면 좋겠습니다!


읽어주셔서 감사합니다.



728x90
반응형