<이론>
FTP는 "File Transfer Protocol"의 약자로, 네트워크를 통해 파일을 전송하는 데 사용되는 표준 프로토콜입니다. FTP는 인터넷의 초기에 개발되어 파일 전송을 위해 사용되었으며, 지금도 널리 사용되고 있습니다.
FTP는 클라이언트-서버 모델을 기반으로 동작합니다. 클라이언트는 FTP 클라이언트 소프트웨어를 사용하여 서버에 파일을 업로드(전송)하거나 다운로드(수신)할 수 있습니다. 서버는 FTP 서버 소프트웨어를 실행하여 클라이언트의 요청을 처리하고 파일 전송을 관리합니다.
FTP의 주요 기능 및 특징:
파일 전송: FTP는 파일 전송에 사용되는 주요 목적으로 개발되었습니다. 클라이언트는 서버에 파일을 업로드하거나 서버에서 파일을 다운로드할 수 있습니다.
인증 및 보안: FTP는 기본적으로 인증 없이 익명의 사용자도 파일을 다운로드할 수 있습니다. 그러나 보안을 강화하기 위해 사용자 이름과 비밀번호로 인증하는 방식도 지원합니다.
포트 지정: FTP는 데이터 전송을 위해 2개의 포트를 사용합니다. 제어 연결에는 21번 포트를 사용하고, 데이터 전송에는 20번 포트를 사용합니다. 주로 "Active Mode"와 "Passive Mode" 두 가지 모드로 데이터 전송을 지원합니다.
다양한 파일 타입: FTP는 ASCII와 Binary 등 다양한 파일 타입을 지원합니다. ASCII 모드는 텍스트 파일 전송에, Binary 모드는 바이너리 파일(이미지, 음악, 동영상 등) 전송에 사용됩니다.
대용량 파일 전송: FTP는 대용량 파일도 전송할 수 있도록 설계되어 있으며, 중단된 전송은 이어받아 진행할 수 있습니다.
익명 FTP: 일반적으로 웹 브라우저를 통해 익명 FTP를 사용하여 인터넷에서 공개된 파일을 다운로드할 수 있습니다.
확장성: FTP는 다양한 운영 체제와 호환되며, 다른 네트워크 프로토콜과도 연동하여 사용할 수 있습니다.
FTP는 현재도 네트워크 환경에서 파일 전송에 많이 사용되고 있으며, 특히 서버와 클라이언트 간의 대용량 파일 전송에 유용합니다. 그러나 보안적으로 취약한 측면이 있으므로 중요한 정보나 민감한 데이터의 전송은 보안 프로토콜인 SFTP (SSH File Transfer Protocol) 등을 사용하는 것이 권장됩니다.
<실습>
FTP 통신을 위해 두 대의 컴퓨터가 있으면 좋지만 그럴 환경이 되지 않아,
저는 VMware를 활용하여 진행하였습니다.
대상환경 : Windows 7 x 64 (VMware)
Windows 7에 접속합니다.

네트워크상태를 살펴보는 명령어 netstat에 추가옵션 -ano를 붙여서
열려있는 포트상태를 살펴봅니다.

로컬주소 0.0.0.0:21 상태 : Listening 상태인 것을 보아 FTP가 열려있는 것을 확인할 수 있습니다.

다음으로 IP주소를 확인합니다.

정상적으로 FTP가 접속이되는 것을 활용하기 위해서
ftp (주소)를 입력합니다.
그러면 사용자에 대해 입력하게되어 있습니다.

활용할 프로그램은 FTP Utility Settings입니다.
FTP User 부분에 보면 USER : anonymous라고 되어있고
Password : ********라고 되어있는데 바꾸셔도 됩니다.
기본 Password는 anonymous입니다.


다시 CMD창으로 와서 접속을 해줍니다.

정상적으로 접속이 가능한 것을 확인할 수 있습니다.

'python' 카테고리의 다른 글
HTTP 서버와 통신(웹 요청) (0) | 2023.08.23 |
---|---|
FTP 서버 익스플로잇[FTP Server Exploit] (0) | 2023.08.03 |
VM를 활용한 FTP소켓 통신 - 2 (0) | 2023.07.28 |
파이썬(Python) 에코 클라이언트, 서버 구현 (0) | 2023.07.26 |
파이썬(Python)3.11.3 클라이언트, 서버 소켓 테스트 (0) | 2023.07.26 |
댓글