ProFTPd 설정 문제

cohuman1의 이미지

proftpd.conf 에 있는 내용인데요.

Quote:
# 최대 접속 인원수를 지정한다.
MaxClients 10

# 하나의 호스트로 부터 동시에 접근할 수 있는 수를 지정한다. 아래의 기본
# 설정으로는 하나의 호스트에서 한번의 접근만 허용한다.
MaxClientsPerHost 3 "Sorry, %m connection allow per one host"

# 하나의 계정 ID 로 동시에 접근할 수 있는 호스트 수를 지정 한다. 아래의
# 기본 설정으로는 하나의 계정 하나 호스트에서만 접근만 허용한다. 하나의
# 계정에 하나의 접근만을 허락하려면 위의 MaxClientsPerHost의 값과
# MaxHostsPerUser의 값이 둘다 1이면 된다.
MaxHostsPerUser 1 "Sorry, %m hosts allow per one user"

먼저, MaxClients 는 말그대로 최대 접속인원수를 나타내네요.
(동일계정에 의한 동일 접속도 접속인원수에 포함되더군요. MaxHostsPerUser 가 있는것을 생각한다면 포함안되면 좋으련만)

문제는 MaxClientsPerHost 하고 MaxHostsPerUser 인데요.

MaxClients 하고 MaxClientsPerHost 하고 다른점을 모르겟어요. 똑같던데요? MaxClients 가 10 이더라도 MaxClientsPerHost 가 3로 되있으니깐, 3개 접속하면 더 이상 접속이 안되요. a 계정으로 3개의 접속을 해도 더이상 안되고. a,b,c 계정으로 한개식 접속을 해도 더이상 접속이 안되요.. 그래서 저는 두개의 수치를 같게 해놓았습니다.

그리고 MaxHostsPerUser 는요.. FTP 가 같은계정으로 여러개 접속 할 수 있잖아요. 1 로하면 그렇게 못하고 하나의 계정으로 한번만 접속가능한줄 알았는데. 1로 해도 아무런 변화가 없던데요. 아무런 역활도 하지 않아요.

왜 그런지 궁금합니다.

sunyzero의 이미지

MaxHostPerUser는 한개의 호스트(대부분 IP로 구분하겠죠)에서 한 유저가 여러개의 세션을 열게 되는 것을 방지합니다.

즉, 한개의 아이디 가지고 여러군데에서 접속을 하는 것을 막는 것이죠. 보통 한사람이 자신이 공용 FTP 아이디 가지고 이리저리 사람들에게 다 알려주면 그 사람의 한 ID로 인해서 다른 사람이 Max 커넥션 값에 도달해서 못쓰는 수도 있죠? 그렇기 때문에 특정 호스트에서 A란 유저로 접속하면, 다른 곳에서는 A란 유저로 접속못하게 막는 기능입니다. 그리고 위에 한 호스트당 커넥션을 3개로 제한했으니 A란 유저가 접속하고 3개이상 못열게 되겠죠.

그리고 MaxClients는 총 접속수입니다. 소켓수라고 생각하시면 편하겠군요.

========================================
* The truth will set you free.

jedi의 이미지

용어가 거의 한글화 되어 있습니다.

http://proftpd.oops.org/reference.php?class=m

+++ 여기부터는 서명입니다. +++
국가 기구의 존속을 위한 최소한의 세금만을 내고, 전체 인민들이 균등한 삶을
영위할 수 있는 착취가 없는 혁명의 그날은 언제나 올 것인가!
-- 조정래, <태백산맥> 중에서, 1986년

cohuman1의 이미지

근데 문제는.. 저 값들이 정의 대로 안움직인다는 겁니다.

Quote:
[root@ns1 proftpd]# ps aux | grep ftp
nobody 5657 0.0 0.1 2172 1012 ? S Aug17 0:00 proftpd (acceptin
feel 23295 0.0 0.2 2980 1384 ? S 22:02 0:00 proftpd: feel - 2
baram 24224 0.0 0.2 2552 1288 ? S 22:29 0:00 proftpd: baram -
baram 24229 0.0 0.2 2480 1260 ? S 22:30 0:00 proftpd: baram -
baram 24288 0.0 0.2 2480 1260 ? S 22:31 0:00 proftpd: baram -
baram 24315 0.0 0.2 2556 1292 ? S 22:31 0:00 proftpd: baram -

MaxHostsPerUser 가 1 임에도 baram 이라는 계정으로 4개의 FTP 에 접속했습니다.
MaxClientsPerHost 역시 3 임에도 5개의 계정이 FTP 에 접속해 있습니다.

inetd 도 리스타트 해주었는데 너무 이상하네요.;;

아직 초보라서 질문조차도 엉성할 수 있습니다.
이해하시구요.^^.
제 글을 읽어주시는 분들, 답변해주시는 분들께 항상 감사드립니다.

jedi의 이미지

혹시 standalone상태에서만 동작하는것 아닐까요?

가능성은 있을듯한데요...

+++ 여기부터는 서명입니다. +++
국가 기구의 존속을 위한 최소한의 세금만을 내고, 전체 인민들이 균등한 삶을
영위할 수 있는 착취가 없는 혁명의 그날은 언제나 올 것인가!
-- 조정래, <태백산맥> 중에서, 1986년

cohuman1의 이미지

지금.. standalone 입니다.
죄송합니다. xinetd 가 아니고 proftpd 자체데몬으로 리스타트 했습니다;;
특이하게.. /usr/sbin 에 있네요.

근데 증상은 똑같아요..

Quote:
서버에서 ftp 를 사용하려면 아래와 같은 순서로 서버에 설정을 변경하시면 됩니다.

1. xinet 설정.
/etc/xinet.d/proftpd 파일을 vi 로 엽니다.
# vi /etc/xinetd.d/proftpd
-------------------------------파일 내용---------------------------------
# default: on
# description: # 서버에서 서비스 할 내용을 정의해 준다.
The proftpd FTP server serves FTP connections. It uses
# normal, unencrypted usernames and passwords for authentication.
service ftp
{
disable = yes
flags = REUSE
protocol = tcp
socket_type = stream
instances = 50
wait = no
user = root
server = /usr/sbin/in.proftpd
log_on_success = HOST PID
log_on_failure = HOST RECORD
}

이건 어떤 사이트에서 본건데.. 저한테는 저 파일이 없더라구요.. 저 설정이 없어서 그런 것일까요???

아직 초보라서 질문조차도 엉성할 수 있습니다.
이해하시구요.^^.
제 글을 읽어주시는 분들, 답변해주시는 분들께 항상 감사드립니다.

맹고이의 이미지

/etc/xinet.d/proftpd 파일이 없는데
데몬이 돌아간다면, 아직 standalone
으로 돌아가는 것 같은데요.
xinetd로 돌릴려면 service ftp를 만들고
xinetd를 리스타트 시켜야죠...
disable = no 로...

jedi의 이미지

서버 타입에 관련 없이 잘 동작합니다.

proftpd.conf파일 전채와 설치 방법을 공개하시면 어떨까요?

배포판 , 버전 등을 포함해서요..

+++ 여기부터는 서명입니다. +++
국가 기구의 존속을 위한 최소한의 세금만을 내고, 전체 인민들이 균등한 삶을
영위할 수 있는 착취가 없는 혁명의 그날은 언제나 올 것인가!
-- 조정래, <태백산맥> 중에서, 1986년

cohuman1의 이미지

버전

Quote:
[root@ns1 xinetd.d]# rpm -qa | grep ftpd
proftpd-1.2.6-1kr

/etc/xinetd.d/proftpd-inetd

Quote:
[root@ns1 xinetd.d]# vi proftpd-inetd
# default: off
# description: ProFTPD is an enhanced FTP server with a focus \
# toward simplicity, security, and ease of \
# configuration.
service ftp
{
disable = yes
flags = REUSE
protocol = tcp
socket_type = stream
instances = 50
wait = no
user = root
server = /usr/sbin/in.proftpd
log_on_success = HOST PID
log_on_failure = HOST RECORD
}

/etc/proftpd/proftpd.conf

Quote:
[root@ns1 proftpd]# vi proftpd.conf
#########################################################################
# #
# ProFTPD Korea User Groups #
# http://proftpd.oops.org #
# #
#########################################################################
# 번역 : 김정균 < admin@oops.org >
# 잘못된 설정이 있으면 연락 주시기 바랍니다.
#########################################################################

ServerName "Proftpd FTP Server For Korean"

# ServerType 은 Server 를 standalone mode 로 할것인지 inet mode로 할것 인
# 지를 정한다. default로 inetd mode로 한다. standalone mode로 할경우 아래
# MaxInstances 지시자의 주석을 해제 한다. inetd mode로 작동을 할 경우에는
# /etc/inetd.conf중에서
# ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l -a
# 행을 아래와 같이
# ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd
# 수정을 해 주고 Inet demon을 재 실행 해 줘야 한다.

ServerType standalone
#ServerType inetd

DefaultServer on
ServerAdmin root@localhost

UseReverseDNS off
IdentLookups off

# Server 에 접속했을 경우 보내주는 Defualt 메세지를 설정한다. Off 로 지정
# 하였을 경우 Porftpd Server Ready ServerName 이 출력된다.

ServerIdent On "ProFTPd Account Server ready .. "

# User login 을 했을시에 user 들이 자신의 홈상위 디렉토리들을 마음대로 돌
# 아다니지 못하게 chroot() 를 설정한다. group 별로 설정을 하게 되며 "!"는
# 제외하라는 의미를 가지게 된다.
DefaultRoot ~ !groupname

# ServerType이 standalone이면 이 항목의 주석을 풀어 줘야 한다. inetd로 작
# 동을 시킬시에는 /etc/services에서 port를 지정한다.
Port 21

# root login 을 허락할지의 여부를 지정한다. PAM modules를 사용한다면 먼저
# /etc/proftpd/ftpusers에서 root를 삭제해야 한다.
# http://www.oops.org/SERVICE/jsboard/read.php?table=ProftpdTip&no=10 참조
RootLogin off

# Global section은 proftpd의 전체적인 설정에 모두 적용시킨다.
<Global>
# group 과 world writable 로 부터 새로운 dir 과 file 들을 생성하는 것을
# 막기위하여 기본적으로 umask는 022로 설정을 한다.
Umask 022

# ftpusers file을 이용하여 PAM 인증을 하기를 원하면 이 지시자의 값을 on
# 으로 한다. default 값은 off 이다.
AuthPAMAuthoritative on

# service를 시작하고 마칠 시간을 24시간 표기법으로 지정을 한다
# UpTime 10
# DownTime 23

# Server 의 Ftpd 시간을 지역시간으로 고정한다. on 으로 했을 경우 GMT 시
# 간을 표시 하기 때문에 한국의 경우 9시간의 오차가 발생한다.
TimesGMT off

# 1.2.1 이하 버젼에서의 버그를 위한 설정
DenyFilter \*.*/
</Global>

# 회선의 Bandwidth를 특정 속도로 제한을 한다. 단위는 bps이다.
#RateReadBPS 256
#RateReadFreeBytes 5120
#RateReadHardBPS on

# 최대 접속 인원수를 지정한다.
MaxClients 10

# 회선의 Bandwidth를 특정 속도로 제한을 한다. 단위는 bps이다.
#RateReadBPS 256
#RateReadFreeBytes 5120
#RateReadHardBPS on

# 최대 접속 인원수를 지정한다.
MaxClients 10

# 하나의 호스트로 부터 동시에 접근할 수 있는 수를 지정한다. 아래의 기본
# 설정으로는 하나의 호스트에서 한번의 접근만 허용한다.
MaxClientsPerHost 3 "Sorry, %m connection allow per one host"

# 하나의 계정 ID 로 동시에 접근할 수 있는 호스트 수를 지정 한다. 아래의
# 기본 설정으로는 하나의 계정 하나 호스트에서만 접근만 허용한다. 하나의
# 계정에 하나의 접근만을 허락하려면 위의 MaxClientsPerHost의 값과
# MaxHostsPerUser의 값이 둘다 1이면 된다.
MaxHostsPerUser 1 "Sorry, %m hosts allow per one user"

# 접속 대기시간을 설정한다. user 가 접속후 아무 작동도 안할때 일정 시간후
# 에 접속이 종료되게 한다
TimeoutIdle 900
TimeoutNoTransfer 900
TimeoutLogin 300

# DeferWelcome 는 client가 인증을 하기 전에 servername을 display하는 것을
# 방지한다.
DeferWelcome off

# 'welcome.msg 는 login 시에 보여지고, 'message' 는 각 하위 디렉토리에 접
# 속 했을때 보여지게 된다.
DisplayLogin /etc/proftpd/welcome.msg
DisplayFirstChdir .message

# DoS(Denial Of Service) 공격을 막기 위해, 자식 process 의 maximun number
# 를 30 으로 설정한다. 만약 30이상의 접속을 허락할 필요가 있다면 간단하게
# 이 치수를 증가 시키도록 한다. 이것은 오직 standalone mode 에서만 가능하
# 다. inetd mode 에서는 service 당 maximun number를 제한 하는 것을 허락하
# 는 inetd server에서 설정을 해야 한다.(xintd 역시 마찬가지 이다)
MaxInstances 30

User nobody
Group nobody

# 일반적으로 file들을 overwrite를 가능하게 한다.
<Directory /*>
AllowOverwrite on
</Directory>

# ls 명령어의 -a option으로 hidden file을 볼수 있게 한다.
# LsDefaultOptions "-a"

<Anonymous ~ftp>
User ftp
Group ftp

# /etc/shells 에 등록되어 있는 shell 이 지정되어 있는 유저들만 로그인이
# 가능하게 한다. ftp user 의 shell 이 보통 /bin/false 로 지정이 되어 있
# 으므로 이 값을 off 로 해준다.
RequireValidShell off

# 익명 접근을 할때 특정 password를 지정할수 있다. 단 위의 User 지시자의
# name이 passwd file에 등록이 되어져 있어야 한다. 이 지시자가 on일 경우
# 이메일 주소로 login을 할수 없다.
# AnonRequirePassword on
# ShowSymlinks off

# User name "ftp"로 anonymous login을 할수 있도록 한다
UserAlias anonymous ftp

<Limit LOGIN>
AllowAll
</Limit>

DisplayLogin welcome.msg
DisplayFirstChdir .message

# 최대 접속 인원수를 지정한다.
MaxClients 10

# 하나의 호스트로 부터 동시에 접근할 수 있는 수를 지정한다. 아래의 기본
# 설정으로는 하나의 호스트에서 한번의 접근만 허용한다.
MaxClientsPerHost 3 "Sorry, 3 connection allow per one host"

# 소유권이 root인 file이나 directory들을 보여주지 않는다
#HideUser root

# 그룹권한이 root인 file이나 directory들을 보여주지 않는다
#HideGroup root

# upload/download 비율을 지원한다.
# http://www.oops.org/SERVICE/jsboard/read.php?table=ProftpdTip&no=9 참조
#
# Ratios on
# HostRatio foobar.net 100 10 5 100000

# 서버를 시간대로 운영하는 것을 지정한다. 아래의 예는 오후 3 시 부터 오
# 후 6시까지만 서버의 접속을 가능하게 한다.
#
# UpTime 15
# DownTime 18

<Limit WRITE>
DenyAll
</Limit>

# Upload directory, allow upload and mkdir, deny download.
# Upload directory 설정이다. upload와 mkdir은 허락하며,
# download는 거절한다
#
# <Directory incoming>
# <Limit READ>
# DenyALL
# </Limit>
# <Limit STOR MKD>
# AllowALL
# </Limit>
# </Directory>

# 사용자가 접근하기를 원하지 않는 private directory
# <Directory logs>
# <Limit READ WRITE DIRS>
# DenyAll
# </Limit>
# </Directory>

</Anonymous>

아직 초보라서 질문조차도 엉성할 수 있습니다.
이해하시구요.^^.
제 글을 읽어주시는 분들, 답변해주시는 분들께 항상 감사드립니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.