[Docker] pure-ftpd Read only user 구룹 추가

Docker 로 pure-ftpd 를 개인적으로 운영하고 있습니다.

사용자가 적을 경우 문제가 없지만 보안상의 이유 및 특정 디렉토리 변경 되는 이슈 때문에 아주 간단한 방법으로

ftp user 권한을 변경할까 합니다.

docker-compose 내용은 일전에 올려 놓은 포스트를 참고해 주세요.

링크는 아래 있습니다. 🙂

[docker] docker-compose pure-ftpd ssh-server구성

 

  • 디렉토리 권한 변경 
#ftp Directory 는 /ftp-data 를 사용 하고 있습니다. 
/ftp-data 를 755 권한합니다. 
# chmod -R 755 /ftp-data

 

  • pure-ftpd/Dockerfile 수정
[root@centos-docker ftp-service]# ll
total 4
-rw-rw-r-- 1 test01 test01 647 Mar  3  2017 docker-compose.yml
drwxrwxr-x 2 test01 test01  47 Apr 23 20:04 pure-ftpd
drwxrwxr-x 2 test01 test01  24 Apr 22 20:00 ssh-server
[root@centos-docker ftp-service]#

[root@centos-docker ftp-service]# cat pure-ftpd/Dockerfile
FROM ubuntu:14.04

MAINTAINER test@test.com

RUN sed -Ei 's/^# deb-src /deb-src /' /etc/apt/sources.list
RUN apt-get update && \
apt-get install pure-ftpd openssl libpam-dev libcap2-dev libldap2-dev libmysqlclient-dev libmysqlclient15-dev libpq-dev libssl-dev po-debconf dpkg-dev debhelper -y

RUN mkdir /tmp/pure-ftpd/ && \
        cd /tmp/pure-ftpd/ && \
        apt-get source pure-ftpd && \
        cd pure-ftpd-* && \
        sed -i '/^optflags=/ s/$/ --without-capabilities/g' ./debian/rules && \
        dpkg-buildpackage -b -uc
RUN dpkg -i /tmp/pure-ftpd/pure-ftpd-common*.deb
RUN apt-get -y install openbsd-inetd
RUN dpkg -i /tmp/pure-ftpd/pure-ftpd_*.deb
RUN apt-mark hold pure-ftpd pure-ftpd-common
RUN cd /etc/pure-ftpd && \
adduser ftpd-data && \
adduser ftpd-users && \          <-- 라인추가

 

  • docker-compose 실행 
[root@centos-docker ftp-service]# docker-compose up -d --build

 

  • pure-ftpd 유저 생성 및 password 생성 
[root@centos-docker ftp-service]# docker ps
CONTAINER ID        IMAGE                    COMMAND                  CREATED             STATUS              PORTS                                                      NAMES
417c5aee93e3        ssh-server               "/usr/sbin/sshd -D"      33 minutes ago      Up 33 minutes       0.0.0.0:22222->22/tcp                                      ssh-server
73ec4613358b        private/pure-ftpd:14.04   "/bin/sh -c '/usr/sb…"   33 minutes ago      Up 33 minutes       0.0.0.0:21->21/tcp, 0.0.0.0:20000-20099->20000-20099/tcp   ftpd
[root@centos-docker ftp-service]# docker
[root@centos-docker ftp-service]# docker exec -it 73ec4613358b /bin/bash

ftp user 작업 
ftpd-users 구룹은 Read Only User group 이며,
ftpd-data 구룹은  write User group 입니다. 
root@73ec4613358b:/# pure-pw useradd test01 -u ftpd-users -g ftpd-users -d /home/ftp
Password:
Enter it again:
root@73ec4613358b:/# pure-pw useradd data01 -u ftpd-data -g ftpd-data -d /home/ftp
Password:
Enter it again:
root@73ec4613358b:/# pure-pw mkdb
root@73ec4613358b:/# cat /etc/pure-ftpd/pureftpd.passwd
~중략
test01:$1$VWoNttg0$MeF4ibc.JQCdlS3BFp3rT.:1001:1001::/home/ftp/./::::::::::::
data01:$1$iP7Popf0$htP3edje8B2BptmyEe7mG0:1000:1000::/home/ftp/./::::::::::::

pureftpd.passwd 파일에 생성한 유저를 추가 합니다. 
[root@centos-docker ftp-service]# vi pure-ftpd/pureftpd.passwd


ftp 접속후 권한 테스트를 진행 합니다.

 

 

댓글 남기기