오늘은 라즈베리파이에 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 서비스가 실행 중인 것을 확인하실 수 있습니다.
부디 유용한 정보였기를 바랍니다.
구독, 댓글, 공감은 저에게 큰 힘이 됩니다.
'Study > 라즈베리파이 공부' 카테고리의 다른 글
[라즈베리파이] 현재 시간 정보를 자동으로 가져와서 유지하는 방법 (1) | 2021.08.15 |
---|---|
[라즈베리파이] Jenkins 설치하는 방법 (0) | 2021.04.26 |
[라즈베리파이] Your Computer Clock Is Wrong 해결 방법 (0) | 2021.03.19 |
[Raspberry Pi] Is it possible to run x86 or x86-64 binary on ARM machine like Raspberry Pi? (0) | 2021.02.02 |
[라즈베리파이] ACT LED가 5번 깜빡이면서 부팅 불량시 조치사항 (0) | 2021.02.01 |