리눅스 네트워크 서버 - VSFTPD 설치 및 보안 설정 실습
이번 실습에서는 리눅스 환경에서 보안성이 강화된 FTP 서버인 VSFTPD(Very Secure FTP Daemon)를 설치하고, 설정 파일을 통해 파일 업로드 허용, 사용자 제한 및 보안 연결 설정까지 구성해 보았다. 또한 FileZilla 클라이언트를 이용해 실제 파일 업로드 테스트까지 경험해 보았다.
1. FTP란?
FTP(File Transfer Protocol)는 서버와 클라이언트 간 파일을 전송하기 위한 프로토콜이다.
- 기본 포트 : TCP 20 (데이터), TCP 21 (제어)
- 패스워드를 평문으로 전송하는 구조이므로 보안에 취약
2. VSFTPD란?
VSFTPD(Very Secure Daemon)는 보안을 강조한 FTP 서버 소프트웨어이다.
- 보안성, 성능, 안정성을 중시
- Ubuntu 등 주요 리눅스 배포판에서 기본 FTP 서버로 사용됨.
- 설정 문법이 간단하고 가볍다.
3. VSFTPD 설치
apt update
apt install vsftpd
설치 후, 메인 설정 파일은 여기에 위치한다.
/etc/vsftpd.conf
4. 주요 설정 항목 수정
설정 파일에서 다음 항목의 주석을 해제, 수정하였다.
# 파일 업로드 허용
write_enable=YES
# 사용자 디렉터리 제한 (루트 디렉터리 밖으로 나가지 못하게)
chroot_local_user=YES
# 보안 연결 사용
ssl_enable=YES
설정 자동화 스크립트 일부
sed -i "s/#write_enable=YES/write_enable=YES/" /etc/vsftpd.conf
sed -i "s/#chroot_local_user=YES/chroot_local_user=YES/" /etc/vsftpd.conf
5. 보안 FTP 클라이언트 설치 - ftp-ssl
FTP를 보안 연결로 사용하기 위해 ftp-ssl 패키지를 설치하였다.
apt install ftp-ssl
6. GUI 기반 FTP 클라이언트 - FileZilla
Filezilla는 오픈소스 기반의 GUI FTP 클라이언트이다.
- Windows, Mac, Linux에서 사용 가능
- FTP, SFTP, FTPS 지원
- 드래그 앤 드롭으로 파일 업로드 가능
apt install filezilla
FileZilla에서 서버 IP, 사용자명, 비밀번호, 포트(21)를 입력하면 접속 가능하다.
7. FTP 포트 방화벽 허용
ufw allow 21/tcp
설정 완료 후 서비스 재시작:
systemctl restart vsftpd
8. 자동 설치 & 설정 스크립트 작성
#!/bin/bash
apt update
apt install vsftpd -y
# 설정 파일 수정
sed -i "s/#write_enable=YES/write_enable=YES/" /etc/vsftpd.conf
sed -i "s/#chroot_local_user=YES/chroot_local_user=YES/" /etc/vsftpd.conf
# FTP 포트 허용
ufw allow 21/tcp
# 서비스 재시작
systemctl restart vsftpd
9. 마무리
이번 실습에서는 FTP의 구조와 보안적 한계, VSFTPD 설치 및 설정 방법, 그리고 GUI 기반의 FileZilla 클라이언트 연동까지 실습하였다. 파일 업로드가 필요한 서버 환경에서는 여전히 FTP가 사용되며, 보안 설정과 사용자 제어가 매우 중요하다.
이 블로그는 불법 해킹 및 악의적인 활동을 지양하며, 그런 행위는 절대 권장하지 않습니다.
모든 실습은 허가된 환경에서만 진행해야 하며, 법적 책임은 사용자 본인에게 있습니다.