← 글 목록

notes

ftp , sftp ,vsftp

FTP·SFTP·vsFTP의 전송 방식·보안 차이와 서버 설정 메모.

FTP(Fiie Transfer Protocol)와 SFTP(SSH File Transfer Protocol) 모두 파일 전송을 위한 프로토콜이지만, 다음과 같은 차이점이 있습니다.

1. 보안성

  • FTP (File Transfer Protocol)
  • 데이터가 암호화되지 않은 일반 텍스트로 전송
  • 사용자 이름, 비밀번호, 파일 내용이 노출될 위험
  • 기본 포트: 21
  • SFTP (SSH File Transfer Protocol)
  • SSH를 통한 암호화된 데이터 전송
  • 모든 데이터가 암호화되어 보안성이 높음
  • 기본 포트: 22 (SSH 포트)

2. 기능

  • FTP
  • 단순한 파일 전송에 초점
  • 기본적인 파일 관리 기능 제공
  • 속도가 상대적으로 빠름
  • SFTP
  • 파일 전송 외 추가 기능 제공
  • 파일 권한 관리, 파일 잠금 등 고급 기능
  • SSH의 모든 보안 기능 사용 가능

3. 연결 방식

  • FTP
  • 제어 연결과 데이터 연결을 위해 두 개의 채널 사용
  • Active/Passive 모드 지원
  • SFTP
  • 단일 연결로 모든 작업 처리
  • SSH 터널을 통한 안전한 연결

4. 사용 환경

  • FTP
  • 내부 네트워크나 보안이 중요하지 않은 환경
  • 빠른 전송이 필요한 경우
  • SFTP
  • 인터넷을 통한 원격 접속
  • 보안이 중요한 비즈니스 환경
  • 클라우드 서비스

5. 장단점

FTP 장단점

  • 장점:
  • 단순하고 빠른 구현
  • 더 빠른 전송 속도
  • 널리 지원됨
  • 단점:
  • 보안성 취약
  • 현대 보안 요구사항 미충족

SFTP 장단점

  • 장점:
  • 높은 보안성
  • 다양한 기능
  • 방화벽 친화적
  • 단점:
  • 상대적으로 느린 속도
  • 구현이 더 복잡함

6. 권장 사용 사례

  • FTP 사용
  • 내부 네트워크에서의 파일 전송
  • 대용량 파일의 빠른 전송 필요시
  • 보안이 중요하지 않은 공개 데이터
  • SFTP 사용
  • 중요한 데이터 전송
  • 인터넷을 통한 원격 파일 관리
  • 규정 준수가 필요한 환경

vsftpd(Very Secure FTP Daemon)는 리눅스/유닉스 시스템에서 가장 널리 사용되는 FTP 서버 데몬입니다. 이름에서 알 수 있듯이 보안성에 중점을 둔 FTP 서버 소프트웨어입니다.

vsftpd의 주요 특징

  • 보안성
  • 기본적으로 보안 중심 설정
  • chroot 감옥 기능 지원
  • SSL/TLS 암호화 지원
  • 세부적인 접근 제어 가능
  • 성능
  • 빠른 속도와 안정성
  • 적은 시스템 리소스 사용
  • 높은 확장성
  • 설정의 용이성
  • 직관적인 설정 파일 구조
  • 상세한 문서화
  • 유연한 설정 옵션

/etc/vsftpd/vsftpd.conf  # 메인 설정 파일
/etc/vsftpd.ftpusers     # 접근 거부할 사용자 목록
/etc/vsftpd.user_list    # 사용자 접근 제어 목록

# vsftpd.conf 주요 설정
anonymous_enable=NO        # 익명 사용자 접근 비활성화
local_enable=YES          # 로컬 사용자 접근 허용
write_enable=YES          # 쓰기 권한 허용
local_umask=022          # 업로드된 파일의 권한 설정
chroot_local_user=YES    # 사용자를 홈 디렉토리에 가두기

# 서비스 시작
sudo systemctl start vsftpd

# 서비스 상태 확인
sudo systemctl status vsftpd

# 부팅 시 자동 시작 설정
sudo systemctl enable vsftpd


#ssl , tsl settings  

ssl_enable=YES
force_local_data_ssl=YES
force_local_logins_ssl=YES

# 사용자 제한

userlist_enable=YES
userlist_deny=NO

# 접속 제한


max_clients=50
max_per_ip=5

https://blog.naver.com/leekh8412/100152842034