[TIL] 20.04.07 - FTP 구축

BYJIYE·2020년 4월 7일
0

TIL : ftp 사용자 계정설정

👀 1. 사용자 계정설정

수많은 블로그를 보며 시도해보았지만 계속 실패.
vsftpd를 지웠다 설치했다를 반복하면서 vsftpd 설정파일들도 엉망진창이 되면서 멘붕이 옴.

useradd jihye

계정 jihye을 등록할려고 했으나

useradd: group jihye exists - if you want to add this user to that group, use -g

에러 메세지 등장
번역결과 그룹 사용자에 이미 jihye가 등록되어있었다. (닥치는대로 따라한 결과..)
사용자 그룹에 jihye가 있는지 확인 후 삭제하기

sudo cat /etc/passwd | grep jihye
sudo groupdel jihye

vsftpd 설치

sudo apt-get update
sudo apt-get install vsftpd 

vsftpd가 잘 작동되고있는지 확인

sudo service vsftpd status

사용자 계정 접속

sudo su jihye

접속 후 비밀번호를 입력하니까 자꾸 아니라고 한다 ㅠㅠ
비밀번호 재설정후 다시 로그인해도 계속 아니라고해서 결국 다시 jihye 계정을 지우고 재설정

사용자 계정 삭제(userdel) 생성(adduser)

sudo userdel jihye
sudo adduser jihye

비밀번호 설정 후 다시 계정 접속 (비밀번호 입력해야한다)

sudo su

/etc/vsftpd.conf 파일 설정을 해준다.

sudo vi /etc/vsftpd.conf

i키 누르고 내용 수정하기
수정하고 ESC클릭
:wq! 입력 (저장하고 닫기)

aws를 사용하는 경우 아래내용 추가하기 (인스턴스 인바운드규칙도 설정해줘야함 비고 참고)
pasv_enable=YES
pasv_min_port=1024
pasv_max_port=1048
pasv_address=나의 퍼블릭 IP

FTP 사용자 계정 설정법 참고 사이트
anonymous_enable=NO : 익명사용자 접속을 허용 할 것인지
userlist_enable=YES, userlist_deny=NO /etc/vsftpd.user_list 파일에 있는 등록된 사용자만 접속이 가능

사용자 계정 목록

ls ../ -al

vsftpd 재시작

sudo systemctl restart vsftpd

vsftpd.user_list 파일에에 사용자 등록

sudo vi /etc/vsftpd.user_list

👀 2. filezilla 연결

👀 3. 사용자 폴더 상위 접근제한

보안을 위해 사용자 계정 접속 시 자신의 디렉토리 외의 문서에 접근하지 못하게 설정하기
vsftpd에서 chroot을 설정할 경우 자신의 계정 루트폴더에서 상위폴더로 이동하지 못한다.
vsftpd.conf 파일 수정

sudo vi /etc/vsftpd.conf

특정 사용자만 사용자 폴더에 가두기

chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

chroot_list에 사용자 입력하기

sudo vi /etc/vsftpd.chroot_list
jihye

vsftpd 재시작

sudo systemctl restart vsftpd

설정하고 파일질라 계정접속을 하면 ERROR 등장
500 OOPS: vsftpd: refusing to run with writable root inside chroot()

에러원인과 해결방법은 사이트 참고
특정 사용자에게 chroot를 적용시켜놓은 경우, 사용자의 홈디렉토리에 쓰기(ftp사용자에 대하여)권한이 주어진 경우 발생한다. 사용자의 홈디렉토리에 쓰기권한을 제거하고 그 안에 루트가 폴더를 만들어주면 그 폴더에 접근하여 사용자가 읽고 쓰기를 할 수 있게끔 설정해준다.

allow_writeable_chroot=YES

👀 4. 리눅스 홈디렉토리 변경

사용자의 홈디렉토리를 /var/www/로 변경

usermod -d 폴더위치 사용자아이디
usermod -d /var/www jihye

👀 5. ftp 폴더,파일 권한 설정

테스트용 파일을 업로도를 해보니 Response:553 Could not create file. 에러 메세지 등장
원인 업로드되는 폴더에 허용 권한이 없어서 생기는 문제이다.
해결방법
ftp 관리자 계정으로 접속하고 (나는 관리자 계정이 ubuntu@ 이다) 파일을 업로드할 디렉토리가 /var/www/html 일 때

sudo chown -R 사용자ID /var/www/html

👀 6. vsftpd.conf format

$ sudo /etc/init.d/vsftpd stop
$ sudo apt-get purge vsftpd
$ apt-get install vsftpd

👀 7. 🔥 성공!!!!

😁 잘 올라갔다!!!! 드디어 성공 ㅠㅠ IP주소로 접속하니 index.html도 잘 나온다.
ftp 서버구축을 하면서 구글링 정말 많이 했다. 검색해서 나오는 사이트는 다 들어가서 다 따라해보았지만 어디서부터 잘못 되었는지 찾기가 어려웠다.
지금 생각해보면 vsftpd.conf파일에 해답이 있었다. 다음에 설정할 때는 꼭 기존파일을 복사하고 수정해야겠다

👀 8. 비고

aws ec2를 사용할 때 인바운드 방화벽 설정을 해줘야한다.

profile
프론트엔드가 되기 위해 그냥 닥치는 대로 배우고 써보는 4년차 퍼블리셔

0개의 댓글