FTP 서버 운영하기
FTP (File Transfer Protocol) 파일 전송을 위한 프로토콜입니다.
레드헷 리눅스 FTP서버에는 크게 3가지가 있다.
첫째, 예전부터 제공하던 WuFTP, 둘째 레드헷 리눅스 9.0에서 기본으로 제공하는 vsftpd 제공.
마지막으로 세번째에는 가장 다루기 쉽고 국내에 많이 배포된 ProFTP이다.
따라서 이번에는 ProFTP 를 설치할 것이다. 그 이유는 다루기 쉬우니까...^^
우선 ProFTP를 설치하기 전 현재 다른 FTP패키지가 설치 되어 있는지 확인한다.
# rpm -qa | grep ftpd // vsftpd 패키지 확인하기
일반적으로 "vsftpd-1.1.3-8"을 표시 할것이다. 아마 버전은 다를 수도 있겠죠..
이는 vsftpd가 설치되어 있는 것이다. 또 다른 ftp프로그램이 동시에 동작한다면 문제가 야기 될 수 있으므로 vsftpd패키지를 삭제합시다...
# rpm -e vsftpd // 패키지 삭제
# rpm -qa | grep ftpd // 삭제가 되었는지 다시 확인
이제부터 본격적으로 ProFTP서버를 구축해 봅시다.
1) ProFTP 인터넷에서 다운로드 하기
(http://www.proftpd.org) 접속 후 세로 이동 막대를 아래로 내리면
Mirrors and Downloads -> Download servers 클릭
2) 다운로드 경로는 상관없다. 내 경우 /root에 다운로드 후 설치 후 삭제예정
- 3가지 파일을 다운로드 (RPM설치 시)
proftpd-1.2.7-1.i386.rpm // 본체 패키지
proftpd-inetd-1.2.7-1.i386.rpm // inetd방식으로 운영하기 위한 패키지
proftpd-standalone-1.2.7-1.i386.rpm // standalone방식으로 운영하기 위한 패키지
- 1가지 다운로드 (소스컴파일 설치 시)
proftpd-1.2.8.tar.gz
3)
- (RPM 이용 설치방법) RPM 패키지를 설치한다.
# rpm -ivh proftpd-1.2.7-1.i386.rpm // proftp서버의 데몬설치
# rpm -ivh proftpd-standalone-1.2.7-1.i386.rpm // standalone방식으로 운영
- (소스컴파일 설치방법)
# tar xvfz proftpd-1.2.8.tar.gz -C
# cd /prproftpd-1.2.8
# ./configure --prefix=/usr/local/proftpd/ --enable-autoshadow --with-modules=mod_ratio
# make
# make install
4) 이제 설치가 완료 됐으니 환경설정에 도입!
주의사항) proftpd.conf 파일의 위치
rpm 설치시 /etc/proftpd.conf 에 위치
소스컴파일 설치시 /usr/local/proftpd/etc/proftpd.conf 에 위치
5) vi 에디터로 파일열기
# vi /etc/proftpd.conf (rpm설치 기준, 소스파일 설치 기준으로하면 경로만 변경되겠죠..^^)
ServerName ftp.cktek.uos.ac.kr // 원하는 이름으로
ServerType standalone // 서버데몬을 직접 운영하기 위해
DefaultServer on // 목적지를 알수 없는 접속이 들어왔을 때
기본설정으로 접속
Port 21 // 일반적으로 FTP서버포트는 21번
Umask 022 // 기본적으로 주어지는 디렉토리 및 파일의 퍼미션
(# 참고 : 022 => 디렉토리 755, 파일 644)
MaxInstance 30 // 최대 접속 가능한 사용자수
User nobody // root를 제외한 누구에게도 권한을 안주겠다
Group nobody
AllowOverwrite on // 새로 전송할 파일이 기존파일과 동일할 때
기존의 파일을 덮어쓸 수 있게 적용
참고 : 익명 FTP 환경 설정
<Anonymous /home/ftp> // /home/ftp 디렉토리 생성
User ftp // 사용자 및 그룹설정
Group ftp
RequireValidShell off // 반드시 off로 안그러면 익명접속자는 로그인조차 못함
UserAlias anonymous ftp // 익명과 ftp라는 이름으로 로그인 가능하게 설정
Maxclients 10 // 동시 최대 접속자 수. 제한없음시 : none
<Limit LOGIN> // Anonymous 접속허가
AllowAll
</Limit>
<Limit WRITE> // 익명 ftp서버에서는 /root디렉토리에 쓰기금지 설정
DenyAll
</Limit>
<Directory /home/ftp/public> // /home/ftp/public 디렉토리 설정
Umask 070 // 익명 사용자가 파일업로드 권한부여
AllowStoreRestart on // 이어올리기 기능 설정
AllowRetrieveRestart on // "
<Limit READ> // 익명 접속자에게 READ & STOR 허가설정
AllowAll
</Limit>
<Limit STOR>
AllowAll
</Limit>
</Directory> // 설정 마무리 짓기
</Anonymous>
SHIFT + ; wq // 저장 후 나오기
---------------------------------------------------------------------------------------
6)
# mkdir /home/ftp/public // 익명접속자를 위한 /home/ftp/public 디렉토리 생성
# ls -l /home/ftp // 소유권 및 권한 확인
# chown ftp.ftp /home/ftp/public // 소유권 변경
# chmod 775 /home/ftp/public // 권한변경
# ls -l /home.ftp // 소유권 및 권한 확인
7) 새로운 환경설정을 바탕으로 FTP서버 시작
# /etc/rc.d/init.d/proftpd restart
8) 리눅스가 부팅할 때 알아서 ftp서버를 자동시키기위해 ntsysv 이용하여 설정
# ntsysv
proftpd 서비스를 찾아 체크한 후 확인