본문 바로가기

Study/라즈베리파이 공부

라즈베리파이에 FTP 서버 설정 (proftpd inactive 문제 해결 방법)

반응형

오늘은 라즈베리파이에 FTP 서버를 설정하는 방법에 대해서 기록해두고자 합니다. 저는 Ubuntu Desktop 운영체제를 설치하여 사용하고 있는데요. x86 계열의 PC에 설치된 Ubuntu와 뭔가 조금씩 상이한 게 느껴집니다. 특히 proftpd를 라즈베리파이에 설치해봤는데 단순 설치만 했음에도 불구하고 service가 inactive 되는 생경한 경험을 하게 되었네요. 

 

본 페이지에서 2가지 내용을 다룹니다. 

  • 라즈베리파이에 ftp 서버 설정 (proftpd)
  • proftpd inactive 문제 해결 방법

 

라즈베리파이에 FTP 서버 설정하는 방법

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install proftpd

라즈베리파이에 FTP 서버를 구성하는 방법은 아주 간단합니다. 위와 같이 apt-get install 명령으로 proftpd 패키지를 설치해줍니다. 

 

그럼 아래와 같은 메시지가 나오면서 proftpd 패키지가 설치됩니다. 

parksejin@parksejin-desktop:~$ sudo apt-get install proftpd
[sudo] password for parksejin:
패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다
상태 정보를 읽는 중입니다... 완료
주의, 'proftpd' 대신에 'proftpd-basic' 패키지를 선택합니다
The following additional packages will be installed:
  libhiredis0.14 libmemcached11 libmemcachedutil2 proftpd-doc
제안하는 패키지:
  openbsd-inetd | inet-superserver proftpd-mod-ldap proftpd-mod-mysql proftpd-mod-odbc proftpd-mod-pgsql
  proftpd-mod-sqlite proftpd-mod-geoip proftpd-mod-snmp
다음 새 패키지를 설치할 것입니다:
  libhiredis0.14 libmemcached11 libmemcachedutil2 proftpd-basic proftpd-doc
0개 업그레이드, 5개 새로 설치, 0개 제거 및 0개 업그레이드 안 함.
3,546 k바이트 아카이브를 받아야 합니다.
이 작업 후 9,902 k바이트의 디스크 공간을 더 사용하게 됩니다.
계속 하시겠습니까? [Y/n] Y
받기:1 http://ports.ubuntu.com/ubuntu-ports groovy/universe arm64 libhiredis0.14 arm64 0.14.1-1 [28.2 kB]
받기:2 http://ports.ubuntu.com/ubuntu-ports groovy/main arm64 libmemcached11 arm64 1.0.18-4.2ubuntu2 [80.8 kB]
받기:3 http://ports.ubuntu.com/ubuntu-ports groovy/main arm64 libmemcachedutil2 arm64 1.0.18-4.2ubuntu2 [9,460 B]
받기:4 http://ports.ubuntu.com/ubuntu-ports groovy/universe arm64 proftpd-basic arm64 1.3.7a-1 [2,216 kB]
받기:5 http://ports.ubuntu.com/ubuntu-ports groovy/universe arm64 proftpd-doc all 1.3.7a-1 [1,212 kB]
내려받기 3,546 k바이트, 소요시간 3초 (1,195 k바이트/초)
Selecting previously unselected package libhiredis0.14:arm64.
(데이터베이스 읽는중 ...현재 172621개의 파일과 디렉터리가 설치되어 있습니다.)
Preparing to unpack .../libhiredis0.14_0.14.1-1_arm64.deb ...
Unpacking libhiredis0.14:arm64 (0.14.1-1) ...
Selecting previously unselected package libmemcached11:arm64.
Preparing to unpack .../libmemcached11_1.0.18-4.2ubuntu2_arm64.deb ...
Unpacking libmemcached11:arm64 (1.0.18-4.2ubuntu2) ...
Selecting previously unselected package libmemcachedutil2:arm64.
Preparing to unpack .../libmemcachedutil2_1.0.18-4.2ubuntu2_arm64.deb ...
Unpacking libmemcachedutil2:arm64 (1.0.18-4.2ubuntu2) ...
Selecting previously unselected package proftpd-basic.
Preparing to unpack .../proftpd-basic_1.3.7a-1_arm64.deb ...
Unpacking proftpd-basic (1.3.7a-1) ...
Selecting previously unselected package proftpd-doc.
Preparing to unpack .../proftpd-doc_1.3.7a-1_all.deb ...
Unpacking proftpd-doc (1.3.7a-1) ...
proftpd-doc (1.3.7a-1) 설정하는 중입니다 ...
libmemcached11:arm64 (1.0.18-4.2ubuntu2) 설정하는 중입니다 ...
libhiredis0.14:arm64 (0.14.1-1) 설정하는 중입니다 ...
libmemcachedutil2:arm64 (1.0.18-4.2ubuntu2) 설정하는 중입니다 ...
proftpd-basic (1.3.7a-1) 설정하는 중입니다 ...
Adding system user `proftpd' (UID 128) ...
Adding new user `proftpd' (UID 128) with group `nogroup' ...
Not creating home directory `/run/proftpd'.
Adding system user `ftp' (UID 129) ...
Adding new user `ftp' (UID 129) with group `nogroup' ...
Creating home directory `/srv/ftp' ...
'/usr/share/proftpd/templates/welcome.msg' -> '/srv/ftp/welcome.msg.proftpd-new'
Cannot start proftpd, please check syntax of your configuration file /etc/proftpd/proftpd.conf
Processing triggers for systemd (246.6-1ubuntu1.3) ...
Processing triggers for man-db (2.9.3-2) ...
Processing triggers for libc-bin (2.32-0ubuntu3) ...

 

 

FTP 서비스 동작 확인

정상적으로 proftpd가 설치되었으면 정상적으로 서비스가 수행되는지 확인해봐야겠지요? 

sudo service proftpd status 명령을 통해서 확인해보면 설치와 동시에 서비스가 inactive 상태임을 확인할 수 있습니다. 

 

parksejin@parksejin-desktop:~$ sudo service proftpd status
● proftpd.service - LSB: Starts ProFTPD daemon
     Loaded: loaded (/etc/init.d/proftpd; generated)
     Active: inactive (dead)
       Docs: man:systemd-sysv-generator(8)

 

시작과 동시에 죽다니 정말 환장할 노릇이네요.

 

proftpd inactive 문제 원인 분석

proftpd 설정 파일을 살펴볼 필요가 있습니다. 

$ vi /etc/proftpd/proftpd.conf 명령을 통해서 proftpd.conf 파일을 확인해보겠습니다. 

TransferLog /var/log/proftpd/xferlog
SystemLog   /var/log/proftpd/proftpd.log

# Logging onto /var/log/lastlog is enabled but set to off by default
#UseLastlog on

# In order to keep log file dates consistent after chroot, use timezone info
# from /etc/localtime.  If this is not set, and proftpd is configured to
# chroot (e.g. DefaultRoot or <Anonymous>), it will use the non-daylight
# savings timezone regardless of whether DST is in effect.
#SetEnv TZ :/etc/localtime

 

proftpd.conf 파일을 보면 로그가 남는 위치가 있습니다. 

  • 전송 로그 : /var/log/proftpd/xferlog
  • 시스템 로그 : /var/log/proftpd/proftpd.log

/var/log/proftpd/xferlog 파일에 전송 로그가 남고 /var/log/proftpd/proftpd.log 파일에 시스템 로그가 남는다고 되어 있습니다. 하지만 해당 디렉터리를 가보면 로그가 하나도 없습니다. 

 

쉘에서 proftpd 명령을 입력해보면 proftpd.conf 파일에 문제가 있음을 확인할 수 있습니다.

parksejin@parksejin-desktop:~$ proftpd
2021-04-21 06:46:13,632 parksejin-desktop proftpd[146615]: fatal: unknown configuration directive 'IdentLookups' on line 13 of '/etc/proftpd/proftpd.conf'

 

설정 파일 내부에 IdentLookups라는 설정을 파싱 하는 도중에 에러가 발생했네요. 

패키지 설치 후 기본 설정 파일에 오류가 있다니 참으로 안타까울 노릇입니다. 

 

 

proftpd.conf 파일에서 IdentLookups 설정 주석처리

아래와 같이 proftpd.conf 파일에서 IdentLookups를 주석 처리해줍니다. 

 

proftpd 서비스를 재시작하고 상태를 확인하는 명령은 아래와 같습니다.

$ sudo service proftpd restart
$ sudo service proftpd status

 

그 후에 서비스를 재시작하면 정상적으로 proftpd 서비스가 실행 중인 것을 확인하실 수 있습니다. 

 

부디 유용한 정보였기를 바랍니다. 

구독, 댓글, 공감은 저에게 큰 힘이 됩니다. 

반응형