우분투 FTP 서버 구축


우분투 FTP 서버 구축
우분투 리눅스에서 proftpd 데몬을 이용하여 FTP 서버를 구축하는 방법에 대해서 설명드립니다. 홈디렉터리 서버 설정과 anonymous 계정 설정 방법에 대해서도 함께 설명드리도록 하겠습니다.

우분투 FTP 서버 구축

만약 서버에서 SSH 접속을 허용할 경우 추가적인 FTP 데몬 없이 SFTP 방법으로 서버에서 접속하여 파일 송수신을 할 수 있습니다. SFTP 와 관련된 내용은 아래의 글을 참고해 주시기 바랍니다.

SFTP 접속 방법, 사용법

FTP 서버 설치

우분투 FTP 서버 구축 첫 번째 단계는 FTP 데몬을 설치하는 것입니다. 우분투 리눅스를 사용하시는 경우, 아래의 명령어를 실행하여 FTP 서버 프로그램인 proftpd를 설치하실 수 있습니다.

$ sudo apt install proftpd
우분투 FTP 서버 구축

FTP 서버 접속 테스트

성공적으로 FTP 서버가 동작하는지 테스트 하기 위해서는 ftp 명령어로 직접 서버에 접속하여 테스트 할 수 있습니다.

서버에서 직접 접속하기 위해서는 자기 자신 서버주소를 가리키는 localhost 으로 지정하면서 접속하면 됩니다. 사용자 계정 정보를 입력 후 로그인을 합니다. 현재의 디렉터리 정보를 확인하는 pwd 명령어를 실행하면 현재의 디렉터리 정보가 출력되는 것을 확인 할 수 있습니다.

FTP 서버 설정

proftpd 데몬은 /etc/proftpd/proftpd.conf 파일의 내용을 편집하면서, 설정을 변경할 수 있습니다. 설정 파일을 수정 후에는 아래의 명령어를 실행하여 proftpd 데몬을 다시 실행해 주셔야 합니다.

기본 디렉터리 변경

사용자 계정으로 로그인 후 지정되는 기본 디렉터리를 변경할 수 있습니다. 설정의 기본값은 사용자 계정의 홈 디렉터리로 설정되어 있는데 DefaultRoot 부분을 주석 해제해 주시고, 원하시는 디렉터리로 지정하면 해 당 디렉터리가 기본 디렉터리로 설정되게 됩니다.

# Use this to jail all users in their homes 
# DefaultRoot     ~

익명 접속 설정

사용자 계정 없이 파일을 업로드 하거나 다운로드 하게 설정할 수 있습니다. 아래의 설정 내용을 /etc/proftpd/conf.d/ 위치에서 anonymous.conf 설정파일을 생성합니다.

아래와 같은 설정 파일을 생성하였을 경우, 로그인 계정 없이 FTP 서버에 접속을 허용할 수 있도록 설정 할 수 있습니다.

<Anonymous /data>
  User ubuntu
  Group ubuntu

  UserAlias anonymous ubuntu
  DirFakeUser       on ubuntu
  DirFakeGroup on ubuntu
  MaxClients 10

  <Directory input>
    <Limit STOR>
      AllowAll
    </Limit>
  </Directory>
</Anonymous>

FTP 서버 로그 확인

서버에 접속하였던 사용자 등 로그 내용을 확인하기 위해서는 /var/log/proftpd/proftpd.log 파일의 내용을 확인하면 됩니다. 아래의 내용은 로그 파일의 내용을 출력한 결과 입니다.

FTP 서버 오류 해결 방법

FTP 서버를 구축하여 사용하는 과정에서 자주 발생하는 오류 등을 정리하였습니다.

Passive 모드가 동작 하지 않을 경우

Passive 모드가 제대로 동작하지 않는 문제는 외부에서는 공인아이피로 서버 접속이 이뤄지게되지만 내부적으로 사설 아이피를 사용하는 경우가 될 수 있습니다.

이 경우는 /etc/proftpd/proftpd.conf 설정 파일의 내용 중에서 아래와 같이 MasqueradeAddress 값을 서버의 공인 IP 주소로 지정합니다.

# If your host was NATted, this option is useful in order to
# allow passive tranfers to work. You have to use your public
# address and opening the passive ports used on your firewall as well.
MasqueradeAddress               1.2.3.4

이 밖에도 Passive 모드에서 사용되는 포트가 차단 될 경우 Passive 모드가 제대로 동작하지 않을 수 있습니다.

( 본문 인용시 출처를 밝혀 주시면 감사하겠습니다.)