티스토리 뷰

프로그래밍 공부/라즈베리파이4B

라즈베리파이 FTP 연동

마음 따뜻한 개발자, 나른한 하루 2020. 4. 26. 00:06

 

라즈베리파이와 Remote PC와의 파일 전송을 지원해주는 통신이 바로 FTP(File Transport) 입니다.

알드라이브를 활용해서 파일을 라즈베리파이 서버에 전송하는법에 대해 알아보겠습니다.

 

 

  • FTP통신 프로그램 다운로드

FTP 통신에 있어 기본적으로 이를 지원하는 프로그램이 필요합니다.

해당 본문에서는 알드라이브를 통해 FTP 통신을 해보는 방향으로 해보겠습니다.

 

아래 사이트를 통해 알드라이브를 설치해주세요.

 파일설치  알드라이브(FTP 통신 프로그램) 

 

 

  • 라즈베리파이 ↔ Remote PC FTP통신

1. Ubuntu에서 FTP 통신을 도와주는 vsftpd 패키지를 설치합니다.

sudo apt-get install vsftpd

 

2. vsftpd를 설정하는  /etc/vsftpd.conf  파일을 열람 후, 내용을 수정합니다.

sudo vi /etc/vsftpd.conf

 

 Tip1  vi Editor에서 유용히 쓰일 수 있는 키보드 단축키

1) 숫자(n)dd : 현재 커서위치에서 부터 n번 째 까지의 내용이 모두 지워집니다.

예 : 50dd

 

 Tip2  vi Editor에서 유용히 쓰일 수 있는 입력명령어

입력명령어 접근법

1) 키보드에서  Shift+: 키를 누릅니다.

2) 맨 하단에   와 함께 입력창이 나오는데 아래 내용 중 하나를 입력하고 엔터를 해주세요. 

 

입력명령어

1) set nu  Row Number을 표시합니다.

2) w  현재까지의 내용을 저장합니다.

3) q!  저장을 안하고 강제로 나갑니다.

4) wq  현재까지의 내용을 저장하고 나갑니다.

 

## /etc/vsftpd.conf

# STANDALONE(독립형) 모드로 서비스 할 경우 설정하는 옵션
listen=NO

# STANDALONE(독립형) 모드로 서비스 할 경우 설정하는 옵션
listen_ipv6=YES

# 로컬 계정 사용자의 FTP 접속 허용 여부를 정의한다.
# 서버에 존재하는 일반 계정으로 FTP 접속을 할 경우 YES로 설정한다.
local_enable=YES

# 쓰기권한을 허용 여부를 정의한다.
# NO로 설정할 경우는 파일업로드가 불가능하게 된다.
write_enable=YES

# 파일 및 디렉토리 생성시의 권한을 지정한다.
# 파일의 허가권한은 최대 666
# 디렉토리의 허가권한은 최대 777
# 여기서 UMASK의 뺀 값이 해당 파일의 허가권이 된다.
local_umask=022

# 디렉토리에 접근할때 보여줄 메세지를 표시한다.
dirmessage_enable=YES

# 서버의 로컬 시간을 사용할지를 지정
use_localtime=YES

# 파일 전송 로그를 남길 것인지 여부를 정의한다.
xferlog_enable=YES

# FTP의 20 포트 사용 여부를 묻는다.
# STANDALONE(독립형)모드에서, FTP 포트변경을 원할때 설정한다.
connect_from_port_20=YES

# 파일 전송 로그를 기록할 파일명을 정의한다.
# 로그를 저장하지 않을거라면 주석처리 해두자.
# xferlog_file=/var/log/vsftpd.log

# xferlog 형식으로 FTP LOG를 남기기 위한 설정이다.
# xferlog 표준 포맷은, 디렉토리 생성 등의 로그를 남기지 않으며,
# vsftpd 스타일의 로그는 디렉토리 생성을 포함한 보다 상세한 로그를 남기기 때문에, NO로 설정할 것을 권장한다.
xferlog_std_format=NO

# 홈디렉토리를 벗어나지 못하도록 제한하기 위한 설정을 정의한다.
# FTP 접속 후, 홈디렉토리 상위의 시스템 파일에 접근하지 못하게 하기위한 설정이다.

# 개인용으로 사용할 경우 NO, 여러사람과 함께 사용할경우 YES
chroot_local_user=NO

# 상위 디렉토리의 접근의 허용 여부를설정
allow_writeable_chroot=YES

# 발급받은 SSL / TLS 인증서의 경로를 입력하여 FTPS를 구성한다.
# P.S : 처음설치하고 세팅할때는 없는 부분이었다 자동으로 주석이 풀리고 입력되었는데)
#        SSH 서버 설치 이후(openssh-server) 추가된 것으로 추측된다.
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

# SSL 보안 연결을 활성화 여부
ssl_enable=NO


#####################################################################################################
# 아래부터는 Ubuntu 에서 설치한 vsftpd.conf 설정에 적혀있지 않은 설정들로 직접 입력하여 작성하였다.
## Ubuntu 버전 : 18.04
## VSFTPD 버전 : 3.0.3.-9

# 네트워크 서비스에 관련된 트래픽을 제어하고 모니터링할 수 있는 가장 기본적인 방화벽 도구
# xinetd 수퍼데몬으로 관리하는 서비스 데몬만 제어가 가능하다.
# standalone방식으로 서비스하는 데몬은 TCP Wrapper로 접근제어가 불가능하다.
tcp_wrappers=YES

# 사용자 리스트의 활성여부를 묻는다.
# userlist_enable=YES    // 유저 리스트를 활성화 시킨다.
# userlist_enable=NO    // 거부자목록으로 쓰지 않으면 유저리스트에 등록된 사용자에 한해서만  FTP 사용이 가능하다.
#                                  // 유저 리스트에 등록되어 있더라도 /etc/vsftpd/ftpuser에 등록된 사용자는 접속이 불가능하다.
#                                           
# /etc/vsftpd/user_list에 등록된 사용자는 접속 거부 / 승인 목록이 될수 있다.
# /etc/vsftpd/ftpuser에 등록된 사용자는 user_list에 상관 없이 접속할 수 없다.
# root 등의 사용자는 보안을 위해 접속을 허용하지 않는것이  보통이다.
# 그렇지만 userlist_enable=NO 설정을 해주고 ftpusers에서 root를 삭제하면 root로도 FTP 접속이 가능하다.
#
# P.S : 필자가 설정한 우분투에는 기본적으로 없던 항목들이고.
# 실제 세팅에서는 해당부분은 아예 적지 않았다.
# 사용을 원한다면 특정경로에 user_list 파일을 생성해주고 작성하여야 한다.

# /var/log/xferlog 파일과 /var/log/vsftpd.log 파일 모두에 FTP 파일 전송 기록이 저장됨
dual_log_enable=YES

# 클라이언트와 서버 사이의 모든 FTP 프로토콜 트랜잭션 로그를 기록함.
log_ftp_protocol=YES


# anonymous 사용자의 접속 허용 여부를 정의한다.
# 기본은 YES이며 공개용 FTP 서버로 사용하지 않는 경우는, NO로 변경해서 사용한다.
anonymous_enable=YES

 

 Tip3  만약 vi Editor에서 위 내용을 복사/붙여넣기 시 매번 자동으로 주석(#)이 나올 경우, 다음 과정을 진행하면 됩니다.

1) 키보드에서  Shift+:  키를 누릅니다.

2) 맨 하단에  와 함께 입력창이 나오는데 다음 내용을 입력하고 엔터를 해주세요. 

set formatoptions-=r

3) 다시 내용을 복사/붙여넣기 해주세요.

 

3.  /etc/vsftpd.conf  파일을 저장 후 나갑니다.

  1) 키보드에서  Shift+:  키를 누릅니다.

  2) 맨 하단에   와 함께 입력창이 나오는데 wq를 입력하고 엔터를 해주세요. 

 

4. VSFTD를 재시작 합니다.

sudo service vsftpd restart

vsftpd를 재실행 하면 vsftpd 프로세스가 작동중인게 확인이 됩니다.

 

5. 사전에 받아뒀던 알드라이브(FTP 프로그램)을 통해 접속을 시도합니다.

 

위와같이 접속이 됐다면 성공입니다.

 

 

  • FTP 접속 시 Ubuntu Home → 사용자 Home 디렉토리 위치로 변경

사용자가 FTP를 통해 Ubuntu를 접속 시, 내 계정의 Home이 아닌 Ubuntu Home에서 시작이 됩니다.

/etc/vsftpd.conf

이는 아까 vsftpd를 설정한 내용 중 위 설정부분 때문에 생기는 현상입니다.

chroot_local_user을 YES로 설정을 변경 후, vsftpd를 재시작 해주면 됩니다.

sudo service vsftpd restart

 

 

  • 알드라이브 : 숨김파일 노출

FTP에는 아무것다고 뜨지만, 실제로는 숨김파일이 존재

겉으로는 안보이지만, 실제로는 무언가가 존재하는 숨김파일이 있습니다.

숨김파일 형식은 주로 이름앞에 Dot(.) 이 붙어있는 형식입니다.

 

1. 알드라이브에서는 기본적으로는 숨김파일이 안보여지게 설정되어 있습니다.

 

2. 알드라이브 옵션-환경설정 에서 숨겨진 파일 보여줌 에 체크를 한 후, 확인을 합니다.

해당 메세지는 '확인' 버튼을 눌러서 SKIP

 

3. 설정을 끝낸 후, 알드라이브에서  F5  를 눌러서 새로고침을 합니다.

 

4. 이제 안보였던 숨김파일이 알드라이브에서 보여집니다.

 

 

  • 자료 참고

1. [Ubuntu] Ubuntu FTP 서버 설치 및 설정 변경하기

2. [vsFTP] 계정별 서로 다른 루트 디렉토리 지정하기 (chroot)

 

댓글
댓글쓰기 폼
공지사항
Total
37,630
Today
22
Yesterday
231
링크
«   2020/08   »
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          
글 보관함