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

Posted at 2018. 11. 15. 01:25 | Posted in Linux/Ubuntu




참고① : https://qnfmfmd.tistory.com/383

참고② : http://purekid79.tistory.com/62

참고③ : http://faq.hostway.co.kr/?mid=Linux_ETC&page=8&document_srl=1405

참고④ : https://ribin.tistory.com/10





■ FTP 서버(PORT 21)



-. FTP(File Transfer Protocol)는 가장 대표적인 파일 전송 프로토콜이다.

   (서버에 파일을 올리거나 내려 받을 때 사용하는 프로토콜이다.)

-. 파일 전송 프로토콜 중에는 가장 오래된 축에 속하지만 지금도 가장 많이 사용된다.

-. 비슷한 목덕을 가진 프로토콜로는 NFS, SMB, WebDAV 같은 것들이 있다.

-. FTP 서버 프로그램에는 대표적으로 ProFTPDVSFTPD 같은 프로그램이 있다.

   (우분투는 기본적으로 VSFTPD를 사용한다.)





■ 우분투에 VSFTPD 설치




VSFTPD의 설치는 apt-get 명령어를 통해 간단하게 설치 할 수 있다.



 $ sudo apt-get install vsftpd









■ VSFTPD 설정하기




VSFTPD의 설치가 완료되었다면 이제 vsftpd.conf 파일을 열고 수정한다.


아래 설정은 필자가 사용하기 위한 설정들로만 잡아둔 것이다.


설정한 내용들에 주석을 달아두었고, 위 참고 링크들을 확인하여,


필요한 내용들로 작업을 진행하는것이 좋다.



01. 먼저 VIM을 사용하여 vsftpd.conf를 수정한다.

 $ sudo vim /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




02. 설정이 끝났으면 vsftpd를 리스타트 해준다.

 $ sudo service vsftpd restart




03. VSFTPD가 정상적으로 재시작 되었다면 이제 FTP에 붙는지 확인해 보자.

 $ ftp 120.0.0.1(설정한 서버의 IP를 작성)

 Name : 우분투 계정 아이디

 Password : 우분투 계정 비밀번호




04. 모든 작업이 완료되었으면, 이제 우분투 재부팅 시에도 VSFTPD가 자동 실행되도록 설정해 주자.

 $ sudo systemctl enable vsftpd







기타 프로그램을 통한 접근시 유의사항



필자와 같은 VSFTPD를 설정한 이후 FTP접근 툴을 통해


FTP로 접근을 할때 주의 사항이  한가지 있다.


혹 전송이 안되는 경우 전송 설정을 능동형 으로 변경해 주자.










  1. 비밀댓글입니다

Name __

Password __

Link (Your Website)

Comment

SECRET | 비밀글로 남기기