로그인
Sign in
제작환경Sun sparc 4u / SUN Ent250 / Solaris9i / ProFTPD 1.2.10rc1 Server

# pkginfo | grep ftp
system      SUNWftpu                         FTP Server, (Usr)
system      SUNWtftp                         Trivial File Transfer Server
system      SUNWtftpr                        Trivial File Transfer Server (Root)
# pkgrm SUNWftpu (기본으로 설치된 ftp 를 제거함)

The following package is currently installed:
   SUNWftpu        FTP Server, (Usr)
                   (sparc) 11.9.0,REV=2002.04.06.15.27

Do you want to remove this package? [y,n,?,q] y

## Removing installed package instance
## Verifying package dependencies.
## Processing package information.
## Removing pathnames in class
/usr/sbin/privatepw
/usr/sbin/in.ftpd
/usr/sbin/ftpwho
/usr/sbin/ftpshut
/usr/sbin/ftprestart
/usr/sbin/ftpcount
/usr/sbin/ftpconfig
/usr/sbin/ftpaddhost
/usr/sbin
/usr
## Updating system information.

Removal of was successful.
#

/usr/local/doc/proftpd/README.Unixware
/usr/local/doc/proftpd/README.Solaris2.5x
.
.
.
/usr/local/bin
## Updating system information.

Removal of was successful.
# clear
# pkginfo | grep ftp (또 남아있나 찾아보자)
system      SUNWftpu                         FTP Server, (Usr)
system      SUNWtftp                         Trivial File Transfer Server
system      SUNWtftpr                        Trivial File Transfer Server (Root)
# pkgrm SUNWftpu (마져 제거함)

The following package is currently installed:
   SUNWftpu        FTP Server, (Usr)
                   (sparc) 11.9.0,REV=2002.04.06.15.27

Do you want to remove this package? [y,n,?,q] y

## Removing installed package instance
## Verifying package dependencies.
## Processing package information.
## Removing pathnames in class
/usr/sbin/privatepw
.
.
.
/usr/sbin/ftpaddhost
/usr/sbin
/usr
## Updating system information.

Removal of was successful.
#
-----------------------------------------------------(기존 설치된 ftp의 제거완료)------------


# ls
ipscan2.exe                         popt-1.7-sol9-sparc-local
libgcc-3.3-sol9-sparc-local         proftpd-1.2.10rc1-sol9-sparc-local
libiconv-1.8-sol9-sparc-local       readline-5.0-sol9-sparc-local
ncurses-5.4-sol9-sparc-local        samba-3.0.10-sol9-sparc-local
# pkgadd -d proftpd-1.2.10rc1-sol9-sparc-local    (pkg를 설치합니다)

The following packages are available:
  1  SMCproftpd     proftpd
                    (sparc) 1.2.10rc1

Select package(s) you wish to process (or 'all' to process
all packages). (default: all) [?,??,q]: all

Processing package instance from

proftpd
(sparc) 1.2.10rc1
Jesse Sipprell et al
Using as the package base directory.
## Processing package information.
## Processing system information.
   2 package pathnames are already properly installed.
## Verifying disk space requirements.
## Checking for conflicts with packages already installed.
## Checking for setuid/setgid programs.

Installing proftpd as

## Installing part 1 of 1.
/usr/local/bin/ftpcount
/usr/local/bin/ftpdctl
/usr/local/bin/ftptop
/usr/local/bin/ftpwho
/usr/local/doc/proftpd/COPYING
/usr/local/doc/proftpd/CREDITS
/usr/local/doc/proftpd/ChangeLog
/usr/local/doc/proftpd/INSTALL
.
.
.
/usr/local/doc/proftpd/sample-configurations/mod_sql.conf
/usr/local/doc/proftpd/sample-configurations/virtual.conf
/usr/local/etc/proftpd.conf
/usr/local/man/man1/ftpcount.1
/usr/local/man/man1/ftptop.1
/usr/local/man/man1/ftpwho.1
/usr/local/man/man5/xferlog.5
/usr/local/man/man8/ftpdctl.8
/usr/local/man/man8/ftpshut.8
/usr/local/man/man8/proftpd.8
/usr/local/sbin/ftpshut
/usr/local/sbin/in.proftpd
/usr/local/sbin/proftpd
[ verifying class ]

Installation of was successful.

#
# pkginfo | grep ftp 설치가 끝났는지 확인합니다
application SMCproftpd                       proftpd
system      SUNWtftp                         Trivial File Transfer Server
system      SUNWtftpr                        Trivial File Transfer Server (Root)
#


/usr/local/etc/proftpd.conf  (설치된 proftpd 의 config 파일입니다 )

# more proftpd.conf
# This is a basic ProFTPD configuration file (rename it to
# 'proftpd.conf' for actual use.  It establishes a single server
# and a single anonymous login.  It assumes that you have a user/group
# "nobody" and "ftp" for normal operation and anon.

ServerName                      "ProFTPD Default Installation"
ServerType                      standalone
DefaultServer                   on

# Port 21 is the standard FTP port.
Port                            21

# Umask 022 is a good standard umask to prevent new dirs and files
# from being group and world writable.
Umask                           022

# To prevent DoS attacks, set the maximum number of child processes
# to 30.  If you need to allow more than 30 concurrent connections
# at once, simply increase this value.  Note that this ONLY works
# in standalone mode, in inetd mode you should use an inetd server
# that allows you to limit maximum number of processes per service
# (such as xinetd).
MaxInstances                    30

# Set the user and group under which the server will run.
User                            nobody
Group                           nogroup

# To cause every FTP user to be "jailed" (chrooted) into their home
# directory, uncomment this line.
#DefaultRoot ~

# Normally, we want files to be overwriteable.
AllowOverwrite          on

# Bar use of SITE CHMOD by default

  DenyAll


# A basic anonymous configuration, no upload directories.  If you do not
# want anonymous users, simply delete this entire section.

  User                          ftp
  Group                         ftp

  # We want clients to be able to login with "anonymous" as well as "ftp"
  UserAlias                     anonymous ftp

  # Limit the maximum number of anonymous logins
  MaxClients                    10

  # We want 'welcome.msg' displayed at login, and '.message' displayed
  # in each newly chdired directory.
  DisplayLogin                  welcome.msg
  DisplayFirstChdir             .message

  # Limit WRITE everywhere in the anonymous chroot
  
    DenyAll
  

#

-----------------------------------------------------------------------------
******
solaris9 설치시 wu-ftpd 가 pkg 로 설치가 이미 되어있다.
inet 서비스로 활성화 되어있기 때문에 ps -ef 명령어로는 볼수없다. port 스캔등으로 확인을 햇어야 했다
그러나 나는 이미 기본 pkg를 삭제햇다.. -_-;;;;
******

standalone 모드로 proftp를 실행할경우
inetd.conf에서 in.ftpd 엔트리는 반드시 주석처리를 해줘야 합니다. 안그러면 inetd가 ftp 서비스를 위해 21번 포트를 열고 있어서 proftpd가 실행되지를 못합니다. (이경우는 pkgrm 을 안했을 경우 / pkgrm 을 했다면 in.ftpd 라인은 자동으로 삭제된다)
   ftp stream tcp nowait root   /usr/sbin/in.ftpd in.ftpd -l -a -u022
/etc/inetd.conf 파일의 이 라인을 # 주석처리한다

inetd 로 proftpd 를 실행하기 위해서는
/etc/inetd.conf 를 편집해 줘야하며 바뀐
설정을 재적용하기 위하여 inetd 를 재실행 해야 한다. /etc/inetd.conf 에서 아래
와 같은 라인을 볼 수 있을 것이다.

   ftp stream tcp nowait root   /usr/sbin/in.ftpd in.ftpd -l -a -u022
   위의 라인을 아래와 같이 변경해 준다 :
   ftp stream tcp nowait root   /usr/sbin/proftpd proftpd

-----------------------------------------------------------------------------
# netstat -an|grep 21
      *.21                 *.*                0      0 32768      0 LISTEN
# ps -ef|grep proftpd
  nobody   227     1  0   Oct 30 ?        0:00 /usr/local/sbin/proftpd
--------------------------------------------------------------
설치완료후 /usr/local/sbin/proftpd  실행하면 이렇게 나와야 한다

/etc/services 엔 ftp 21이 포함되어있다

이제 shell 을 작성하여 부팅시 proftpd 가 실행되도록 해야한다! -..-;;

/etc/init.d 디렉토리에 스크립트파일을 만들어주자
이 게시판에 첨부된파일을 다운받아서 copy해도 무방할것이다
(이 스크립트는 /etc/init.d/samba 파일을 vi로 열어서 필요한 부분만 수정한것이다
더 이상은 나에겐 솔직히 무리다 -.-a / proftpd 가 위에 나열한 라인처럼 디폴트에 설치되어야 한다)
start | stop 옵션은 있지만 동작은 안한다 실행파일자체로서 실행 중지는 kill 시키자

/usr/local/etc/proftpd.conf -컨피그파일
/usr/local/sbin/proftpd      -실행파일

그런 다음 부팅될때 실행되게끔 rc.d 레벨에 맞게 링크를 걸어주자

. /etc/rc3.d/S??proftp 로 하드링크 파일 작성

# ln /etc/init.d/proftp /etc/rc3.d/S21proftp  

S이름은 꼭대문자로! 뒤의 숫자는 임의로 넣습니다 중복안되게..
리부팅시 시작되지 않게 하려면 보시다시피 S인수를  K로 바꾸면 되겠습니다

그리고 재부팅 FTP 에 접근이 되는지 확인합시다!


Proftpd를 기본으로 설치했다면 .conf 역시 기본값입니다
서버는 독립실행형으로 작동중이며 (stnadalone)
익명접근 (anymous) 이 가능한 상태구요
유저ID 와 패스워드로 접근한다면 그 ID의 홈디렉토리가 보입니다

리부팅했는데 정상적으로 proftpd 가 up 되었습니다 글을 쓰면서 동시에 해보고있음 -.-a



========================ProFTPD 환경 설정하기=======================================

FTP서버에 일반사용자계정으로 접속하면 사용자 홈디렉토리가 나타나고, anonymous 로 접속하면 FTP서버의 디렉토리로 접속됩니다. FTP서버의 보안과 효율성을 위해 ProFTPD 환경설정에 대해 알아보도록 하겠습니다.

/etc/ftpusers

이 파일에 등록된 사용자들은 일반사용자계정이 아니라 시스템계정으로 FTP로 접속할 수 없습니다. 따라서 FTP접속을 원하지 않는 일반사용자가 있다면 이곳에 등록하여 접속을 허용하지 않도록 합니다.


/usr/local/etc/proftpd.conf

proftpd.conf 는 ProFTPD서버의 환경설정 파일로 아파치 웹서버의 httpd.conf와 비슷한 형식으로 이루어져 있습니다.

ServerName "ProFTPD - WOW"
서버에 접속했을 때 나타나는 메시지로 일반적으로 서버의 이름을 지정합니다.


ServerType standalone
서버의 구동방식을 설정하는 옵션으로 주로 standalone방식을 사용합니다. inetd모드는 INET 슈퍼 유저가 구동을 처리하며, 클라이언트의 요청이 있을 때마다 설정파일을 참조해야 하므로 속도가 느려질 수 있는 단점이 있습니다. standalone은 서버의 데몬을 스스로 구동하며 지정된 포트를 점유하면서 클라이언트의 요청에 응답합니다. inetd에 비해 속도는 빠르지만 자식 프로세스가 많아져 시스템 메모리를 많이 차지한다는 단점이 있습니다.


DefaultServer on
가상호스트서비스를 하는 경우, 현재 서버의 설정을 기본으로 하여 접속하겠다는 것으로 일반적으로 on으로 설정하면 됩니다.


ServerAdmin root@sweetness.linux.co.kr
FTP서버 관리자의 E-mail 주소를 지정합니다.
DefaultRoot ~ !adm
DefaultRoot를 설정할 때 일반 사용자는 자신의 홈 디렉토리 위로 이동할수 없게 됩니다 ! adm 는 adm구룸에 대해서적용하지 않는다는설정.

Port 21
서버에 접속했을 때 나타나는 메시지에 적힐 서버의 이름을 지정합니다.
RootLogin off
/etc/ftpusers 파일을 이용한 사용자 접근 거부를 설정하지 않는다는 뜻으로 이 영역은 아래의 AuthPAMAuthoritative가 on 일때 off로 , off일때 on으로 설정 합니다 다시 말해 이것은 사용자 인증과 접근 권한에서 /etc/ftpusers파일을 이용할 것인지 PAM(Pluggable Authentication Modules)을 이용할 것인지를 선택하는 영역입니다.


(참고)기본적으로, proftpd 는 어떠한 여건 하에서도 root 로그인을 허락하지 않는다. 클라이언트가 정확한 패스워드를 가지고서 루트로 로그인을 시 도할 때, syslog 로 특별한 보안메세지가 보내지게 된다. RootLogin 지 시자를 on 으로 하면, 루트로도 다른 유저로 로그인을 할 수 있듯이 인 증을 하여 접속을 할 수가 있다. 그러나 루트 로그인 보안 메세지는 여 전히 syslog 에 남게 된다. 이 지시자를 사용 하는데 있어서 아주 세심 한 주의를 요한다는 것을 명심하라.

루트 로그인을 가능하게 설정을 한다고 해도, ProFTPd 는 루트 역시 일 반 유저로 간주하기 때문에, 다른 유저의 소유를 가진 파일이나 디렉토 리들은 건드릴 수가 없다. 그러므로 루트 로그인을 가능하게 하는 것을 권장하지 않는 바이다.



(Global)Umask 022
새로 생성될 디렉토리나 파일의 기본 퍼미션을 결정합니다. '022'라는 값은 FTP로 접속하여 디렉토리 생성시 755의 퍼미션을 줍니다.

022-파일퍼미션 644 디렉토리 퍼미션 755
002- 664,775
007-660,770
070-604,705
AuthPAMAuthoritative off
RootLogin 영역을 참조하기 바라며, 이 영역을 사용하면 /etc/pam.d/ftp 파일에 지정된 형태로 사용자 인증과 접근 권한이 설정됩니다.

이 지시자는 PAM이 인증에 있어서 최종단계의 권한을 가지게 하던지 가 지지 못하게 하는 것을 조정한다. 이 지시자를 on 으로 하면 PAM 인증 이 실패할 시에 인증을 실패하게 만든다.다른 모듈들, AuthUserFile 과 같은 지시자를 허락하는 기본값 off는 PAM 인증을 하지 않게 한다.

PAM을 사용하거나 AuthUserFile과 같은 지시자를 사용하는데 문제가 있 으면 이 지시자를 off로 설정을 하라.


UpTime 10
FTP 서버를 오전 10시 구동한다는 설정 (생략해도 되겠져^^;)

DownTime 23
FTP 서버를 오후11시에 종료한다는 설정(생략해도 -별루 쓸모는 없을듯-_-)

(/Global)  


RateReadHardBPS  on
파일을 전송할때 BPS(bit per second)의 강제설정 적용

RateReadBPS 256
파일을 전송할때 256 bps 이상의 전송속도를 못내개 하는 설정.

TimeoutIdle 600
로그인한후 10분동안 키 입력이 없으면 접속해지 하는설정 초단위.

TimeoutNoTransfer  600
로그인한후 10분동안 파일 전송이 없으면 접속을 해지 하는 설정 초단위.

TimeoutLogin 0
로그인 과정에서 키 입력이 없으면 무한대로 대기하는 설정(초단위).

DisplayLogin /usr/local/proftpd/conf/welcome.msg
로그인할때 화면에 출력할 내용을 저장한 파일 지정(경로).

%L -FTP서버의 이름, %R - 원격호스트이름(IP), %T - 접속시간, % F - 사용가능한 하드용량, %f - 사용가능한용량 GBye로 표시, %C - 현재 디렉토리, %M - 접속가능한 최대 사용자수 %U - 계정명,%V - 서버이름, %E - 관리자 이메일 주소

DisplayFirstChDir .message
해당 디렉토리로 이동할때 해당 화면에 출력할 내용을 저장하는 파일명이다



MaXInstance 10
Dos의 공격에 보호하기 위해서 Standalone 방식으로 구동되었을때 생성되는 최대 자식 프로세스의 수를 결정합니다.


User
Group nobody
nobody
FTP데몬을 실행하는 사용자와 그룹을 설정합니다. 소스로 직접 컴파일하여 설치하는 경우 Group이 nogroup으로 되어 있으므로 nogroup이 시스템에 존재하는지 확인 한 후에 없을 경우에는 nobody로 바꾸어 사용하시기 바랍니다.



AllowOverwrite on


AllowOverwrite 지시자는 파일의 덮어쓰기를 결정합니다. 'on'으로 설정하면 덮어쓰기를 허용하고 'off'로 설정하면 허용하지 않습니다.
TransferLog /var/log/xferlog
파일전송이 이루어질때 어느 파일에 로그를 생성할 것인지를 지정.



Anonymous FTP 서버 설정하기

익명 FTP 서비스에 대한 설정입니다. 아래에 설명되는 지시자들은 모두 와 사이에 들어갑니다.


DenyAll

로그인을 허용하지 않는 설정입니다. (익명로긴 허용은 AllowAll)


Order deny, allow
Deny from 203.249.73.2, 211.203.178.5, 179.118.203.3, deny.com
Allow from all

특정 IP 주소의 접속을 허용하지 않을 경우에는 아래와 같이 합니다.

User
Group ftp
ftp
Anonymous FTP 서버의 사용자와 그룹을 결정하며, ftp라는 사용자가 있어야 합니다.

UserAlias anonymous ftp
앞에서 사용자를 ftp로 설정하였으므로 anonymous라는 사용자가 접속할 수 있도록 가짜 이름을 지정해 줍니다.

RequireValidShell  off
RequireValidShell 지시자는 익명의 사용자에게 셜을 부여하지 않겠다는 의미..

TimeoutStalled 300
네트워크의 장애로 데이터의 전송이 지연되는 경우, FTP서버와 클라이언트 사이의 접속을 유지할 수 있는 최대 연결 시간을 초 단위로 결정합니다.

DisplayLogin welcome.msg
FTP 서버에 접속시 보여질 메시지 파일의 이름을 지정합니다.

DisplayFirstChdir .message
각 하위 디렉토리로 이동할 경우 기본적으로 보여질 메시지 파일의 이름을 결정합니다.

MaxClients 10 "Sorry, maxium users %m -- try again later"
접속할 수 있는 최대 사용자의 수를 결정합니다. " " 사이의 내용은 제한한 최대 사용자 수에 도달하면 클라이언트에게 보여질 메시지 입니다.

MaxClientsPerHost 1 "Sorry, Allow only one client for host"
한 호스트당 접속할 수 있는 사용자의 수를 결정합니다.


DenyAll   ===> AllowAll 로 바꾸면 ftp계정으로 쓰고읽기가 가능합니다 owner 가 ftp 일 경우만

디렉토리에서 일반 사용자 계정이 쓰기를 금지하도록 설정합니다.


ALL -FTP에서 사용할수 있는 모든 명령어, CWD - 디렉토리 이동명령어를 의미함, MKD - 새로운 디렉토리 생성 DELE - 파일삭제, RMD - 디렉토리삭제 명령어, RETR - FTP서버에서 원격으로 파일전송 가능 STOR - 원격서버에서 FTP서버로 파일전송 가능, READ - 파일을 읽기 , WRITE - 파일과 디렉토리 쓰기,생성,삭제명령어를 의미 DIRS - 디렉토리 내용를 볼수 있는명령어 의미.
1 2
3


====================설정완료 하여 테스트 끝낸 proftpd.conf 의 내용입니다===========================

이 설정 파일은 일단 FTP 사용자계정 의 홈디렉토리가 익명사용자계정으로 접속되는 루트 디렉토리가 됩니다 -..-;;
사용자 계정을 따로 입력하면 그 사용자의 홈디렉토리로 연결이 됩니다
윈도우 익스플로러에서 오픈하여 폴더속성을 보면 사용자권한을 변경할수 있습니다 (자신이 권한을 가지고 있는경우만)
그럼 우리 모두 쥐쥐합시다 쥐쥐~


# This is a basic ProFTPD configuration file (rename it to
# 'proftpd.conf' for actual use.  It establishes a single server
# and a single anonymous login.  It assumes that you have a user/group
# "nobody" and "ftp" for normal operation and anon.

ServerName                        "SEOTAN ProFTPD 2005 Wooam, Inc"
ServerType                        standalone
DefaultServer                        on
UseReverseDNS                        off

# Port 21 is the standard FTP port.
Port                                21

# Umask 022 is a good standard umask to prevent new dirs and files
# from being group and world writable.
Umask                                022

# To prevent DoS attacks, set the maximum number of child processes
# to 30.  If you need to allow more than 30 concurrent connections
# at once, simply increase this value.  Note that this ONLY works
# in standalone mode, in inetd mode you should use an inetd server
# that allows you to limit maximum number of processes per service
# (such as xinetd).
MaxInstances                        30

# Set the user and group under which the server will run.
User                                nobody
Group                                nogroup

# To cause every FTP user to be "jailed" (chrooted) into their home
# directory, uncomment this line.
DefaultRoot ~
TimeoutIdle 600
TimeoutNoTransfer  600

# Normally, we want files to be overwriteable.

AllowOverwrite                on

# Bar use of SITE CHMOD by default

  #  DenyAll
  AllowAll


# A basic anonymous configuration, no upload directories.  If you do not
# want anonymous users, simply delete this entire section.

  User                                ftp
  Group                                ftp

  # We want clients to be able to login with "anonymous" as well as "ftp"
  UserAlias                        anonymous ftp

  # Limit the maximum number of anonymous logins
  MaxClients                        10 "Sorry, maxium users 10m -- try again later"

  # We want 'welcome.msg' displayed at login, and '.message' displayed
  # in each newly chdired directory.
  DisplayLogin                        welcome.msg
  DisplayFirstChdir                .message

  # Limit WRITE everywhere in the anonymous chroot
  
  #  DenyAll
  AllowAll
  
조회 수 :
682
추천 수 :
47 / 0
등록일 :
2005.11.29
10:13:07 (*.236.3.225)
엮인글 :
http://bestceok.com/xe/index.php?mid=sun_faq&document_srl=2997&act=trackback&key=475
게시글 주소 :
http://bestceok.com/xe/index.php?mid=sun_faq&document_srl=2997
List of Articles
번호 제목 글쓴이 날짜 조회 수
131 fsck 명령어 사용 - Superblock 복구 포함 하록 2006-10-18 1376
130 gcc 컴파일러 설치하기 [1] 하록 2006-10-12 2170
129 veritas Volume Check 하록 2006-07-03 464
128 How to config BIND 9 하록 2006-05-12 467
127 rshell 실행 시 Permission denied 에러 나올때 하록 2006-02-22 1483
126 root 파일 시스템 복구 하록 2006-02-21 585
125 Disksuite를 이용한 metadevice 구성 하록 2006-02-21 452
124 Proftp Configuration 설정 방법 하록 2006-02-03 944
123 SUN Console Cable 배열 file 하록 2006-02-01 1218
122 기본적인 네트워크 명령어 사용하기 하록 2006-01-31 814
121 Hardware Diagnostics for SunTM Systems 하록 2005-12-01 463
120 make 시 에러가 날 경우.. 하록 2005-11-29 793
» proftpd 설치 하록 2005-11-29 682
118 Restricted Shell(제한쉘) 하록 2005-11-29 478
117 Solaris 시스템 부하 측정 하록 2005-09-13 466
116 Solaris TIP 하록 2005-05-13 633
115 O/S Install시에 Firmware Password물어볼때.. 하록 2004-12-23 492
114 gcc를 패키지로 설치한 후 Error가 떨어질때.. 하록 2004-12-15 819
113 NDD 값 설정.. 하록 2004-11-19 580
112 전원관리기능 사용 안 하기.. 하록 2004-11-10 510