개발 환경/Ubuntu 설치 및 활용

Ubuntu 22.04에 ftp 서버 설치하기( vsftpd 사용 )

webnautes 2024. 1. 7. 21:35
반응형

Ubuntu 22.04에 ftp 서버를 설치하는 과정을 다룹니다. vsftpd를 사용했습니다. 

 

2022. 5. 3. 최초작성

2024. 1. 7  Ubuntu 22.04에서 진행, 아이폰 앱에서 테스트 추가 




1. vsftpd 패키지를 설치합니다. 

 

$ sudo apt-get install vsftpd



2. vsftpd.conf 파일을 열어서 

 

$ sudo nano /etc/vsftpd.conf



다음 내용으로  대체합니다. local_root가 ftp에서 데이터를 저장할 경로입니다. 

 

listen=NO

listen_ipv6=YES

anonymous_enable=NO

local_enable=YES

chroot_local_user=YES

allow_writeable_chroot=YES

local_root=/opt/ftp/files

write_enable=YES

local_umask=022

dirmessage_enable=YES

userlist_enable=YES

userlist_file=/etc/vsftpd.userlist

userlist_deny=NO

 

Ctrl + O를 누른 후 엔터를 눌러 저장하고 Ctrl + X를 눌러 nano에서 빠져나옵니다.



3. 설정 적용을 위해 vsftpd를 재시작합니다. 

 

$ sudo systemctl restart vsftpd




4. ftp를 위한 사용자를 추가합니다. 다음처럼 암호를 2번  입력해주어야합니다.  

 

$ sudo adduser ftpuser



webnautes@webnautes-laptop:~$ sudo adduser ftpuser

'ftpuser' 사용자를 추가 중...

새 그룹 'ftpuser' (1001) 추가 ...

새 사용자 'ftpuser' (1001) 을(를) 그룹 'ftpuser' (으)로 추가 ...

'/home/ftpuser' 홈 디렉터리를 생성하는 중...

'/etc/skel'에서 파일들을 복사하는 중...

새  암호: 

새  암호 재입력: 

passwd: 암호를 성공적으로 업데이트했습니다

ftpuser의 사용자의 정보를 바꿉니다

새로운 값을 넣거나, 기본값을 원하시면 엔터를 치세요

이름 []: 

방 번호 []: 

직장 전화번호 []: 

집 전화번호 []: 

기타 []: 

정보가 올바릅니까? [Y/n] y




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

 

$ echo "ftpuser" | sudo tee -a /etc/vsftpd.userlist



webnautes@webnautes-laptop:~$ echo "ftpuser" | sudo tee -a /etc/vsftpd.userlist

ftpuser

webnautes@webnautes-laptop:~$ cat /etc/vsftpd.userlist 

ftpuser




6. ftp에서 사용할 경로를 생성합니다.  

 

sudo mkdir -p /opt/ftp
sudo chown nobody:nogroup /opt/ftp
sudo chmod a-w /opt/ftp



해당 디렉토리가  다음처럼 보여야 합니다. 

 

$ ls -la /opt/ftp



webnautes@webnautes-laptop:~$ ls -la /opt/ftp

합계 8

dr-xr-xr-x 2 nobody nogroup 4096  1월  7 21:08 .

drwxr-xr-x 4 root   root    4096  1월  7 21:08 ..




7. 실제로 파일이 업로드될  디렉토리를 생성합니다. 

 

sudo mkdir /opt/ftp/files
sudo chown ftpuser:ftpuser /opt/ftp/files



해당 디렉토리가  다음처럼 보여야 합니다. 

 

$ ls -la /opt/ftp

 

webnautes@webnautes-laptop:~$ ls -la /opt/ftp

합계 12

dr-xr-xr-x 3 nobody  nogroup 4096  1월  7 21:10 .

drwxr-xr-x 4 root    root    4096  1월  7 21:08 ..

drwxr-xr-x 2 ftpuser ftpuser 4096  1월  7 21:10 files




8. test.txt 파일을 추가해봅니다. 

 

$ echo "vsftpd test file" | sudo tee /opt/ftp/files/test.txt



webnautes@webnautes-laptop:~$ echo "vsftpd test file" | sudo tee /data/ftp/files/test.txt

vsftpd test file

webnautes@webnautes-laptop:~$ ls /opt/ftp/files/

test.txt




9. 이제 다른 pc나 모바일에서 접속 및 파일 업로드를 해보세요. 

주의할점은 앞에서 생성한 계정정보를 입력해줘야 FTP 접속이 가능합니다. 




아이폰에서 FTPManager 앱을 사용해서 동작 테스트를 했습니다. 



오른쪽위에 보이는 +를 선택합니다.

 



FTP를 선택합니다.

 



터미널에서 ifconfig 명령으로 확인한 PC의 IP를 호스트 이름/IP 항목에 적어주고 포트는 21로 합니다.  사용자 이름에 ftpuser를 입력하고 비밀번호를 앞에서 정한 것으로 입력하고 오른쪽위에 보이는 저장을 클릭합니다. 

 



연결 항목에 있는 새로 추가된 IP를 선택합니다. 

 



PC에서 추가했던 test.txt 파일이 보입니다. 

 

 

아래쪽에 보이는 +를 클릭하고 새 빈파일을 선택합니다.  파일 이름에 add를 입력하고 생성을 클릭하면 add.txt 파일이 생성됩니다. 

 



우분투 터미널에서 확인해보면 add.txt 파일이 업로드 되어있는 것을 볼 수 있습니다. 

 

webnautes@webnautes-laptop:~$ ls /opt/ftp/files/

add.txt  test.txt






참고

 

https://www.digitalocean.com/community/tutorials/how-to-set-up-vsftpd-for-a-user-s-directory-on-ubuntu-20-04

 

https://gaemi606.tistory.com/entry/Ubuntu2004-LTS-vsftpd-%EC%84%A4%EC%B9%98

 

https://shaeod.tistory.com/936

 

반응형