Gentoo-WiKi

본문 바로가기
사이트 내 전체검색


Gentoo Linux >> System Administration for Gentoo Linux
[목차]
제6장 Server Administration

    3. ProFTPd 설치하기


3.1. ProFTPd 설치하기


  아래와 같이 설치할 수 있습니다.

# emerge sync

# emerge proftpd -pv

# emerge proftpd



3.2. ProFTPd 설정파일


  설정파일은 /etc/proftpd에 위치하고 있습니다. proftpd를 시작하기 전에 proftpd.conf 를 설정해야합니다. proftpd 패키지는 이미 설정되어있는 proftpd.conf.distrib 와 proftpd.conf.sample을 가지고 있는데 특별히 설정을 하지 않고도 이 파일들만으로도 시작을 할 수 있습니다. 여기서는 sample 설정파일을 proftpd.conf 로 복사하여 사용하도록 하겠습니다.

# cd /etc/proftpd

# cp proftpd.conf.sample proftpd.conf

# vim proftpd.conf



3.3. Standalone or via inetd/xinetd


  proftpd를 시작하는 방법은 두가지가 있는데 standalone 데몬으로 독립적 서버로 동작하게 하거나 inetd 나 xinetd를 거치는 방법이 있습니다. 일반적으로 Standalone방식은 트래픽이 심한 사이트에 적합니다.


standalone

  다음 라인을 편집하여 standalone방식으로 데몬을 구동할 수 있습니다.

# ServerType standalone


  디폴트 런레벨에서 구동되도록 하고 세션을 실행하도록 합니다.

# rc-update add proftpd default

# /etc/init.d/proftpd start

xinetd

  다음 라인을 편집하여 inetd/xinetd을 통하여 구동할 수 있습니다.

# ServerType inetd


  만약 xinetd이 인스톨이 되어있다면 일반적으로 /etc/xinetd.d/proftpd위치에 설치가 될 것입니다.

# vi /etc/xinted.d/proftpd 

 

service proftpd

{

...

#Allow access from the local network (ie, 192.168.0.0/24)

only_from = 192.168.0.0/24

#And from two remote locations

only_from = 10.1.1.2 sampleconfig.com

...

}



3.4. iptables/firewall


  만약 방화벽이 구성되어있다면 반드시 21번 포트를 열어줘야 할 것입니다. iptables를 사용한다면 /var/lib/iptables/rules-save 에 다음라인같이 넣어주기 바랍니다.

[0:0] -A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT



3.5. Annonymous FTP 만들기


  일반적으로 익명 사용자에게 FTP를 열어주는 것은 상당한 위험을 감수하게 만드는 일입니다. 하지만

데이터 배포나 정보 공유 공간을 위해서 익명 FTP를 많이 사용되고 있습니다. 여기서 필자는 하나의 ftpgroup(GID 5500)을 사용하여 모든 사용자는 'DefaultRoot ~/' 지시자를 사용하여서 자신의 디렉토리안에서만 FTP를 사용할 수 있게하고 ftpuser(UID 5500)메인 계정과 익명 사용자를 위한 ftpguest (UID 5501)을 생성하도록 하겠다.


  아래와 같이 계정과 그룹 생성을 생성합니다.

# groupadd -g 5500 ftpgroup

# adduser -u 5500 -s /bin/false -d /bin/null -c "proftpd user" -g ftpgroup ftpuser



  아래와 같이 Guest 계정을 생성합니다.

# adduser -u 5501 -s /bin/false -d /bin/null -c "proftpd guest" -g ftpgroup ftpguest

  Guest 계정역시 추가를 하였는데 이는 이계정을 통해서 파일을 전송할 수 있게 하기 위함입니다.


  다음으로 공유를 위해 디렉토리의 권한을 설정한다.

# chmod 755 From_folder

# chmod 731 To_folder



3.6. MySQL을 이용한 가상 계정 사용하기


  만일 복수의 ftp 사이트들을 운영한다면 MySQL을 사용하여 운영이 가능하다. 그러기 위해서는 USE플래그를 설정(USE="mysql")하거나 make.conf나 /etc/portage/package.use파일을 편집하여 mysql을추가한 다음에 proftpd를 설치하면 됩니다. mysql을 사용가능으로 컴파일을 하게되면 /etc/proftpd/ proftpd.conf 에 다음 라인을 추가하여 사용할 수 있습니다.

# vi /etc/proftpd/proftpd.conf

... 생략

# Password type

SQLAuthTypes Plaintext

 

# Authentication type

SQLAuthenticate users*

 

# DB 접속정보. 형식: 데이터베이스 이름@서버주소 유저네임 유저패스워드

SQLConnectInfo ftp@localhost ftp PASSWORD

 

# Default UID/GID. Change to suit needs.

SQLDefaultUID 5000

SQLDefaultGID 5000

 

# Mininum UID/GID. Change to suit needs.

SQLMinUserUID 1000

SQLMinUserGID 1000

 

# Database query. Format: ** defined below **

SQLUserInfo ftp username password uid gid ftpdir homedir

 

# Jail users in ftpdir

DefaultRoot ~

 

... 생략



  다음은 사용자 계정을 위한 MySQL 테이블에 대한 설명입니다.

ftp => 데이터베이스 테이블과 사용자 정보

username => 사용자 이름

password => 사용자 암호

uid => ftp디렉토리의 UID

gid => ftp디렉토리의 GID

ftpdir => 사용자가 로그인하게될 디렉토리 . this is the full, and absolute, path to directory user will log into

homedir 


  MySQL에 접속하여 데이터베이스 생성 및 proftpd가 접속할 계정을 만듭니다.


# mysql -uroot -p mysql

Password : 암호 [엔터]

 

sql> CREATE DATABASE ftp;

 

sql> GRANT select,insert,update,delete,create,drop ON ftp.*

TO proftpd@localhost IDENTIFIED BY 'proftpd0525';

 

sql> quit


  다음 쿼리문을 사용하여 테이블을 생성한다.

sql> CREATE TABLE ftp (

     user_id int(11) NOT NULL auto_increment,

     username varchar(100) DEFAULT '' NOT NULL,

     password varchar(50) DEFAULT '' NOT NULL,

     uid int(5) DEFAULT '5000' NOT NULL,

     gid int(5) DEFAULT '5000' NOT NULL,

     ftpdir varchar(255) DEFAULT '' NOT NULL,

     homedir varchar(255) DEFAULT '' NOT NULL,

     PRIMARY KEY (user_id),

     UNIQUE (username)

);


[목차]

개인정보취급방침 서비스이용약관 모바일 버전으로 보기 상단으로

TEL. 063-469-4551 FAX. 063-469-4560 전북 군산시 대학로 558
군산대학교 컴퓨터정보공학과

Copyright © www.leelab.co.kr. All rights reserved.