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의 주석을 제거합니다.
( i 키를 누릅니다.)(insert모드 사용)
주석 제거 후 esc를 누르고 :wq 를 쳐서 저장 후 편집기 종료를 사용합니다.
이제 허용 list에 ubuntu를 넣어줍니다.
sudo vi /etc/vsftpd.chroot_list
위의 방법으로 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 서버 설정
그러면 외부에서 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 상태:서버가 알 수 없는 주소와 수동형 응답을 보냈습니다. 대신 서버 주소를 사용합니다.(윈도우 서버)
다시 다음 명령어를 쳐서 편집기를 실행합니다.
sudo vi /etc/vsftpd.conf
이곳에 아래 내용을 추가합니다. 이는 패시브 모드의 문제를 해결합니다.
pasv_enable=YES
pasv_min_port=4000
pasv_max_port=5000
port_enable=YES
이후 ec2의 방화벽 또한 열어줍니다.
이로써 문제는 해결되었습니다.
https://dong-queue.tistory.com/7
'SERVER > linux' 카테고리의 다른 글
centos7 mqtt mosquitto install (0) | 2023.05.16 |
---|---|
centos7 에서 실행중인 프로그램 찾고 종료하기 (0) | 2022.08.22 |
centos7 에서 프로그램 백그라운드 실행 (0) | 2022.08.22 |
Server Tomcat v8.5 Server at localhost was unable to start within 45 seconds. If the server requires more time, try increasing the timeout in the server editor. (0) | 2022.03.31 |
AWS EC2 ubuntu20.04 서버 설정 (0) | 2022.02.27 |