· 최초작성 : 2016. 11. 05.
. 최종수정 : 2016. 11. 05.
· 작성/수정내용 :
- Raspberry Pi 3 에 FTP(vsftpd) 서버 설치하기
시작하기에 앞서 개발에서 손 땐지 벌써 5년? 7년은 된거 같은데 다시 개발을 하려니까 생각이 하나도 안나네요. 완전 백지 상태가 된것처럼.. |
테스트 설정 - Raspberry Pi3 + vsftpd (ver.3) |
# Raspberry Pi3 에 FTP 구축하기
R.Pi3 로 웹 서비스를 할 수 있는 서버를 만들어 볼까 합니다.
이번에는 FTP 서버를 구축해 봅니다.
vsftpd 설치
리눅스 에서 사용할 수 있는 FTP 서버가 여러종류 있지만
vsftpd를 설치해 보려고 합니다.
우선 패키지를 설치하기 전에 해줘야 할 일이 있죠?
R.Pi에 대한 update와 upgrade 입니다.
이 부분에 대한 내용은 이전 포스팅에서 설명하였으므로 이 포스팅에서 따로 적지는 않을께요.
update와 upgrade가 끝났다면
바로 vsftpd 를 설치 합니다.
#sudo apt-get install vsftpd
전 이미 설치가 되어 있어서 위와 같이 '이미 최신 번전'이라고 나오네요.
vsftp를 구동하고 ftp 프로그램으로 접속을 해 봅인다.
#sudo service vsftpd start
ftp 클라이언트 프로그램은 filezilla 를 이용하였습니다.
새사이트를 위 그림과 같이 등록하고 [연결] 버튼을 클릭해 줍니다.
그럼 아래 그림과 같이 ftp 가 성공적으로 연결이 됩니다.
참~~ 쉽죠잉~~~
잉??? 근데 정말 이게 끝인가요???
ftp 화면에서 오른쪽은 디렉토리는 로컬 PC의 구조이고
오른쪽 디렉토리는 R.Pi3의 디렉토리 입니다.
가만보니 뭔가 이상합니다.
Pi로 접속했는데 최상위 /(root) 디렉토리 까지 접근이 가능합니다.
혼자만 쓰는 개인 ftp 서버라면 크게 문제될 것이 없지만
여러명이 사용하는 ftp 서버라면 정말 큰 문제 입니다.
그럼 이제 개임 홈 디렉토리 이상의 상위 디렉토리에 접근하지 못하도록 설정하는 방법을
알아 보도록 하겠습니다.
vsftpd 상위 디렉토리 접근 제한 설정
vsftpd는 vsftpd.conf 라는 설정 파일을 기반으로 움직입니다.
vsftpd.conf 는 보통 /etc/ 아래 있습니다.(버전에 따라 다를 수 있습니다.)
우선 vsftpd.conf 부터 열어 보고 내용을 보도록 할께요.
#sudo vi /etc/vsftpd.conf
vsftpd.conf 에는 여러가지 설정이 있는데요.
반드시 설정해야 할 것 위주로 어떤 설정값들이 있는지 한 번 보겠습니다.
anonymous_enable |
NO |
익명의 사용자 접속 허용 여부 |
local_enable |
YES |
로컬 계정 사용자의 접속 허용 여부 |
write_enable |
YES |
write 명령어 허용 여부 |
local_umask |
022 |
로컬 계정 사용자용 umask |
xferlog_enable |
YES |
파일전송로그를 남길 것인지 여부 |
xferlog_file |
log 경로 (디폴트 /var/log/xgerlog) |
파일 전송 로그 경로 및 파일명 |
xferlog_std_format |
YES |
xferlog 표준 포멧으로 로그를 남길지 여부 |
chroot_local_user | YES | 홈 폴더에서 벗어날 없도록 할 지 여부 |
chroot_list_enable | YES | 사용자 홈 디렉토리에서 상위로 접근하지 못하도록 하기 위한 설정으로, chroot_list 사용여부를 설정하고, 사용시 파일의 경로를 지정한다. |
chroot_list_file | chroot list 경로 (디폴트 /etc/vsftpd.chroot_list) | |
pam_service_name | vsftpd | PAM 파일명을 지정 |
보통 위와 같이 설정을 하면 된다고 합니다.
이중에서 거의 마지막 항목에 있는 chroot_local_user, chroot_list_enable, chroot_list_file 는 반드시 설정을 해주어야 합니다.
그런데 속성의 설정이 조금 애매한 부분이 있습니다.
암튼 위와 같이 설정을 하고 vsftpd.chroot_list 를 만들어 사용자를 추가 해도 이상하게도 상위 디렉토리 접근이 됩니다.
여기에는 버그가 있습니다.
chroot_local_user 이나 chroot_list_enable 둘 중 하나가 NO 이거나
chroot_list_file 에서 사용자 계정이 빠져 있으면
FTP 접속 시 아래와 같은 문구를 만나게 됩니다.
응답: 500 OOPS: vsftpd: refusing to run with writable root inside chroot()
오류: 치명적 오류: 서버에 연결하지 못함
당연히 접속도 안됩니다.
위 속성에서 chroot_local_user 부분을 NO로 수정을 해야 합니다.
chroot_local_user=NO
그리고 맨 마지막에 한 줄 더 넣어 줍니다.
allow_writeable_chroot=YES
'개발 > R.Pi3 + Linux' 카테고리의 다른 글
[R.Pi + Linux] Raspberry Pi3 WEB(apache) Server 만들기 (0) | 2016.12.19 |
---|---|
[R.Pi + Linux] Raspberry Pi3 SSH 설정 (0) | 2016.12.16 |
[R.Pi + Linux] Raspberry Pi3 에 Apache 설치하기 (0) | 2016.10.26 |
[R.Pi3] 언어 및 키보드 설정 (0) | 2016.10.17 |
[R.Pi3] Adafruit LCD 해상도 설정 하기 (0) | 2016.10.16 |