SERVER/linux

EC2 ubuntu 20.04LTS vsftpd설정

자코린이 2022. 3. 1. 18:38

ubuntu의 ftp를 사용하려면 ubuntu에서 기본으로 제공하는 ftp인 vsftpd를 사용하여야 합니다.

이 vsftpd를 다운로드하기 위해서 apt를 업데이트해줍니다.

sudo apt-get update

업데이트가 완료되었다면 이제 vsftpd를 다운로드합니다.

sudo apt-get install vsftpd

다운이 끝나면 vsftpd가 잘 동작하는지 확인을 해주어야 합니다.

pstree

맨 마지막에 돌아가는 것을 확인할 수 있습니다.

이제 vsftpd의 설정을 바꾸어 줍니다.

먼저 설정을 건드리기 전에 설정 파일을 백업해 줍니다.

sudo cp /etc/vsftpd.conf /etc/vsfptd.conf.orig

cp 명령어는 파일을 복사해주는 명령어입니다.

 

sudo vi /etc/vsftpd.conf

vi편집기를 사용하여 설정 파일을 열어줍니다.

vi편집기에서 : 을 누르고 /chroot를 칩니다(vi 편집기 검색)

:/chroot

아래로 내려 chroot_list_enable=yes , chroot_list_file=/etc/vsftpd.chroot_list의 주석을 제거합니다.

( 키를 누릅니다.)(insert모드 사용)

주석 제거 후 esc를 누르고 :wq 를 쳐서 저장 후 편집기 종료를 사용합니다.

 

이제 허용 list에 ubuntu를 넣어줍니다.

sudo vi /etc/vsftpd.chroot_list

저는 ubuntu와 root를 넣었습니다.

위의 방법으로 vi편집기를 저장하고 나옵니다.(:wq)

 

이제 vsftpd를 다시 시작하여 줍니다.

sudo systemctl restart vsftpd

 

 

혹시 여기까지 끝났는데 연결이 안 되는 경우에는 우분투의 방화벽을 열였는지 확인해 봅시다.

sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 40000:50000/tcp
sudo ufw allow openssh

ufw는 우분투의 기본 방화벽으로 ufw를 열어주어야 외부의 연결이 가능합니다.

여기에 ec2의 방화벽 또한 열어줍니다.

이 방법은 ubuntu서버 설정에 나와있습니다.

2022.02.27 - [개발일지/서버] - AWS EC2 ubuntu20.04 서버 설정

 

AWS EC2 ubuntu20.04 서버 설정

aws ec2에 APM서버를 열기 위해서는 다음 과정이 필요합니다. 1. aws 가입 및 인스턴스 생성 2. 보안그룹추가로 필요한 보안 허용 3. apache2, php, mysql 설치 4. 서버 상태 확인 그럼 처음부터 시작해 봅시

jacorinne.tistory.com

 

그러면 외부에서 ftp에서 접근이 가능합니다.

저는 filezillaftp를 사용하여 연결하였습니다.

 

여기까지 했으면 이제 /var/www/html폴더 내부의 모든 사용자를 ubuntu로 변경하여야 서버에 파일이 업로드 됩니다.

일단 html상위 폴더인 www로 이동합다.

cd /var/www

 

여기서 ls -al을 치게되면 소유자와 그룹이 root로 나옵니다.

소유자가 root이기 때문에 외부에서 ubuntu로 접근하였을 때, 파일을 추가하지 못 합니다.(perrmisson denied)

그러므로, 소유자를 바꿔주거나 소프트 링크를 걸어줘야 합니다.

저는 소유자를 바꿨습니다.(보안의 문제가 있을 수 있습니다.)

sudo chown -R ubuntu:ubuntu html

 

혹시 아래 내용으로 연결이 안 되면 다음 방법을 시도하세요

Error: Failed to retrieve directory listing.

이 문제가 나타나는 이유는 아래 내용을 참고해주세요

2022.02.19 - [개발일지/오류문제해결] - fileZilla 상태:서버가 알 수 없는 주소와 수동형 응답을 보냈습니다. 대신 서버 주소를 사용합니다.(윈도우 서버)

 

fileZilla 상태:서버가 알 수 없는 주소와 수동형 응답을 보냈습니다. 대신 서버 주소를 사용합니다

이 문제는 페시브 모드로 ftp를 연결하면 클라이언트에게 넘겨줍니다. 하지만 주소가 공유기 안쪽에 있는 사설아이피를 넘겨주는 문제가 발생합니다. 이를 해결하기 위해 fileZilla server측에서 설

jacorinne.tistory.com

다시 다음 명령어를 쳐서 편집기를 실행합니다.

sudo vi /etc/vsftpd.conf

 

이곳에 아래 내용을 추가합니다. 이는 패시브 모드의 문제를 해결합니다.

pasv_enable=YES 
pasv_min_port=4000 
pasv_max_port=5000
port_enable=YES

 

이후 ec2의 방화벽 또한 열어줍니다.

이로써 문제는 해결되었습니다.

 

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

 

How To Set Up vsftpd for a User's Directory on Ubuntu 16.04 | DigitalOcean

 

www.digitalocean.com

https://ggang9.tistory.com/25

 

[AWS] EC2에 있는 Ubuntu 서버에 FTP Server 설치 하기

개인 개발을 하면서 기본적인 것들은 SSH 복/붙으로 해결을 했는데 이미지와 같은 경우에는 따로 FTP로 올리는게 편해 보여 설치를 하려 했다. 설치는 매우 간단하다. # vsftpd 설치하기 ?> sudo apt-get

ggang9.tistory.com

https://dong-queue.tistory.com/7

 

AWS EC2 FTP 설정

EC2를 사용하기로 하고 이것저것 세팅하다 보니 FTP 전송이 필요해졌다. 그냥 telent 상에서 전송할 수도 있다고 하는데.. 보다 보니 너무 불편한 것 같아 공부도 할 겸 FTP 세팅을 해보았다. Ubuntu 18.0

dong-queue.tistory.com