📂 우분투에서 FTP 서버를 설치하고 FileZilla로 접속하는 방법

서론

Mac M1 으로 진행

Ubuntu 20.0.4 가상 서버로 진행했으며 FTP 서버를 설치한 이후에
FTP 클라이언트인 FileZilla를 통해 이를 테스트하는 전체 과정을 단계별로 기록하고자 한다.

 

vsftpd 패키지 설치

vsftpd는 리눅스 운영체제에서 많이 사용하고 있으며 간편한 FTP 서버이다.

sudo apt-get install vsftpd

환경설정하기

sudo vi /etc/vsftpd.conf

 

vi 편집기로 파일을 연 이후에 다음 행들을 찾아서 주석을 제거해주거나, 행을 추가해주면 됩니다.
/ 를 통해서 단어를 찾을 수 있습니다.

 

# IPv4 연결을 위해 vsftpd가 기다리도록 설정합니다.
listen=YES

# IPv6 연결을 위해 vsftpd가 기다리지 않도록 설정합니다.
listen_ipv6=NO

# 익명 사용자의 접근을 금지합니다. 보안을 위해 대부분의 경우 NO로 설정하는 것이 좋습니다.
anonymous_enable=NO

# 로컬 시스템의 사용자 계정으로 접속을 허용합니다. 일반적인 사용자 계정을 통한 접속을 원할 경우 YES로 설정하세요.
local_enable=YES

# 로컬 사용자들이 로그인 후 자신의 홈 디렉토리만 접근 가능하게 합니다. 보안을 위해 YES로 설정하는 것이 좋습니다.
chroot_local_user=YES

# chroot 환경에서 쓰기 가능하도록 허용합니다. 최신 vsftpd에서는 이 옵션이 필요할 수 있습니다.
allow_writeable_chroot=YES

# [추가] 로컬 사용자가 로그인했을 때의 기본 디렉토리를 설정.
local_root=/opt/ftp/files

# FTP를 통한 파일 쓰기 작업을 허용합니다. 파일 업로드나 수정을 허용하려면 YES로 설정하세요.
write_enable=YES

# 파일과 디렉토리 생성 시 적용될 기본 권한을 설정. 보통 022로 설정하여 파일은 644, 디렉토리는 755 권한을 부여합니다.
local_umask=022

# 사용자가 디렉토리에 진입할 때마다 해당 디렉토리의 .message 파일 내용을 표시하도록 합니다. 환영 메시지 등을 설정하고 싶을 때 유용.
dirmessage_enable=YES

# [추가] 특정 사용자 목록을 사용하여 FTP 접속을 제어합니다. /etc/vsftpd.userlist 파일에 접근 허용 또는 거부할 사용자를 명시할 수 있습니다.
userlist_enable=YES

# [추가] 접근 제어에 사용될 사용자 목록 파일의 경로를 지정합니다. userlist_enable가 YES로 설정되어 있어야 합니다.
userlist_file=/etc/vsftpd.userlist

# [추가] userlist_file에 명시된 사용자의 접속을 허용할 것인지를 결정합니다. NO로 설정하면 해당 파일에 명시된 사용자만 접속이 허용됩니다.
userlist_deny=NO

 

설정 이후 적용을 위해 다음과 같은 코드를 입력

sudo systemctl restart vsftpd

 

 

FTP 용 계정 추가하기

FTP로 사용할 계정을 추가하고 패스워드를 설정합니다.
보안상 FTP로 접근하는 계정은 root 계정이 아닌 별도의 계정을 만들어서 사용하는 것이 좋습니다.

sudo adduser [원하는 유저명]

 

이후 설정파일에 사용자 이름을 추가합니다.

# 만든 유저를 vsftpd.userlist 에 추가하는 것이다.
echo "ftpminho" | sudo tee -a / etc/vsftpd.userlist

# 추가됐는지 확인해보자!
cat /etc/vsftpd.userlist

 

 

 

폴더 만들기

FTP의 루트로 사용할 디렉토리를 만듭니다.

# /minho/ftp/files 디렉토리 생성
sudo mkdir -p /minho/ftp/files

# /minho/ftp/files 디렉토리의 소유자와 그룹을 ftpminho로 변경
sudo chown ftpminho:ftpminho /minho/ftp/files

# /minho/ftp 디렉토리의 내용 및 권한을 확인
ls -la /minho/ftp/

 

테스트용 파일 추가하기

# test.txt에 내용 넣기
echo"[원하는 내용]" | sudo tee /[본인경로]/test.txt

# 디렉토리 리스트 확인 
ls /[본인 디렉토리 경로]/

 

방화벽 설정하기

FTP - 21 Port를 안열어주셨다면 열어주셔야 합니다.

# 21번 포트 열어주기
sudo ufw allow 21/tcp

 

 

FilzeZila 로 접속해보기

FIleZila를 통해서 UbuntuServer 에 접속해보겠다.

우리가 만들었던 디렉토리가 기본경로로 뜬다면 성공한 것이다.

 

1. 상단바 파일 - 사이트 관리자를 클릭한다.

 

2. 새 사이트 추가 이후 - 전송 설정 - 능동형

 

3. 일반 탭 - 호스트 (Ubuntu IP 입력) - 포트(21) 입력 한 후 연결

4. 만들었던 사용자명, 비밀번호 입력  

5. 다음과 같이 접속이 잘 되는 것을 확인할 수 있었다.