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