CentOS5.2にProFTPDをインストールしましたが、

接続が確立してWelcomeメッセージが出ずに切断されてしまいます。
"telnet localhost 21"を実行した結果は以下のようになります。

Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
Connection closed by foreign host.

SELinuxとiptablesは停止させています。
DNSは起動していません。
http://centossrv.com/proftpd.shtmlを参考にして、
xinetdで起動させています。

足りていない情報はあるかと思いますが、
考えられる理由と対策を教えてください。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2008/08/16 08:41:33
  • 終了:2008/08/17 23:33:20

回答(4件)

id:Marin_MTB No.1

Marin_MTB回答回数40ベストアンサー獲得回数52008/08/16 09:04:07

ポイント50pt

これだけだと要因や原因が解りませんので、調査のポイントを。

・接続先をローカルホストではなく、インタフェースのIPアドレスでは接続出来ないか。

(proftpd.confでListenディレクティブにアドレスを直接指定した場合はローカルホストでは接続出来ないため)

・proftpd.confの設定は正しいか。(xinetd経由ではなくデーモンで起動すると上手くいくとか)

・hosts.allowの設定にミスはないか。

・/var/log/messagesにエラー出力はないか。

・coreファイルが吐かれていないか。

質問の時点で、

・どこまで調べたか。(Googleなどでしらべた、proftpd.confを精査した、など)

・ProFTPDはrpmから入れたのか、ソースからコンパイルしたのか。

・proftpd.confの設定は何をどう変更したか。

・できればproftpd.confを貼り付け

を網羅してもらえればもう少し的確な回答が得られると思いますよ。

ProFTPD Configuration Directives

Proftpd.confの設定サンプル - コットン大佐の記録 - 楽天ブログ(Blog)

id:Lovin

遅くなりましたが、回答ありがとうございます。

> ・接続先をローカルホストではなく、インタフェースのIPアドレスでは接続出来ないか。

 サーバ機とクライアント機のFileZillaで試しましたが接続できません。

> (proftpd.confでListenディレクティブにアドレスを直接指定した場合はローカルホストでは接続出来ないため)

 proftpd.confにListenディレクティブは指定していません。

> ・proftpd.confの設定は正しいか。(xinetd経由ではなくデーモンで起動すると上手くいくとか)

 これについては現在調査中です。

 proftpd.confの修正は、ExtendedLog、TimesGMT、DeleteAbortedStoresの追加と、

 ServerTypeをinetdに変更したくらいなので、きちんと精査していませんでした。

 デーモン起動にも挑戦していますが、「失敗」となりうまくいきません。

 このあたりからするとやはりproftpd.confに問題があるのでしょうか?

> ・hosts.allowの設定にミスはないか。

 hosts.allow、hosts.deny共に生成していません。

> ・/var/log/messagesにエラー出力はないか。

 それらしいエラーは見つかりません。

> ・coreファイルが吐かれていないか。

 coreファイルは見つかりませんでした。

> ・どこまで調べたか。(Googleなどでしらべた、proftpd.confを精査した、など)

 「proftpd centos」などのキーワードで、Google検索で見つかったサイトは見ましたが、

 同じ症状について言及されている記事は見つかりませんでした。

> ・ProFTPDはrpmから入れたのか、ソースからコンパイルしたのか。

 RHEL5のdagリポジトリにあるパッケージからインストールしました。

> ・できればproftpd.confを貼り付け

# This is the ProFTPD configuration file

# $Id: proftpd.conf,v 1.1 2004/02/26 17:54:30 thias Exp $

ServerName "ProFTPD server"

ServerIdent on "FTP Server ready."

ServerAdmin root@localhost

#ServerType standalone

ServerType inetd

DefaultServer on

AccessGrantMsg "User %u logged in."

#DisplayConnect /etc/ftpissue

#DisplayLogin /etc/ftpmotd

#DisplayGoAway /etc/ftpgoaway

DeferWelcome off

# Use this to excude users from the chroot

DefaultRoot ~ !wheel

# Use pam to authenticate (default) and be authoritative

AuthPAMConfig proftpd

AuthOrder mod_auth_pam.c* mod_auth_unix.c

# Do not perform ident nor DNS lookups (hangs when the port is filtered)

IdentLookups off

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

# Default to show dot files in directory listings

ListOptions "-a"

# See Configuration.html for these (here are the default values)

#MultilineRFC2228 off

#RootLogin off

#LoginPasswordPrompt on

#MaxLoginAttempts 3

#MaxClientsPerHost none

#AllowForeignAddress off # For FXP

# Allow to resume not only the downloads but the uploads too

AllowRetrieveRestart on

AllowStoreRestart on

# 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 20

# Set the user and group that the server normally runs at.

User nobody

Group nobody

# Disable sendfile by default since it breaks displaying the download speeds in

# ftptop and ftpwho

UseSendfile no

# This is where we want to put the pid file

ScoreboardFile /var/run/proftpd.score

# Normally, we want users to do a few things.

<Global>

AllowOverwrite yes

<Limit ALL SITE_CHMOD>

AllowAll

</Limit>

</Global>

# Define the log formats

LogFormat default "%h %l %u %t \"%r\" %s %b"

LogFormat auth "%v [%P] %h %t \"%r\" %s"

# TLS

# Explained at http://www.castaglia.org/proftpd/modules/mod_tls.html

#TLSEngine on

#TLSRequired on

#TLSRSACertificateFile /etc/pki/tls/certs/proftpd.pem

#TLSRSACertificateKeyFile /etc/pki/tls/certs/proftpd.pem

#TLSCipherSuite ALL:!ADH:!DES

#TLSOptions NoCertRequest

#TLSVerifyClient off

##TLSRenegotiate ctrl 3600 data 512000 required off timeout 300

#TLSLog /var/log/proftpd/tls.log

# SQL authentication Dynamic Shared Object (DSO) loading

# See README.DSO and howto/DSO.html for more details.

#<IfModule mod_dso.c>

# LoadModule mod_sql.c

# LoadModule mod_sql_mysql.c

# LoadModule mod_sql_postgres.c

#</IfModule>

# A basic anonymous configuration, with an upload directory.

#<Anonymous ~ftp>

# User ftp

# Group ftp

# AccessGrantMsg "Anonymous login ok, restrictions apply."

#

# # 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, max %m users -- try again later"

#

# # Put the user into /pub right after login

# #DefaultChdir /pub

#

# # We want 'welcome.msg' displayed at login, '.message' displayed in

# # each newly chdired directory and tell users to read README* files.

# DisplayLogin /welcome.msg

# DisplayFirstChdir .message

# DisplayReadme README*

#

# # Some more cosmetic and not vital stuff

# DirFakeUser on ftp

# DirFakeGroup on ftp

#

# # Limit WRITE everywhere in the anonymous chroot

# <Limit WRITE SITE_CHMOD>

# DenyAll

# </Limit>

#

# # An upload directory that allows storing files but not retrieving

# # or creating directories.

# <Directory uploads/*>

# AllowOverwrite no

# <Limit READ>

# DenyAll

# </Limit>

#

# <Limit STOR>

# AllowAll

# </Limit>

# </Directory>

#

# # Don't write anonymous accesses to the system wtmp file (good idea!)

# WtmpLog off

#

# # Logging for the anonymous transfers

# ExtendedLog /var/log/proftpd/access.log WRITE,READ default

# ExtendedLog /var/log/proftpd/auth.log AUTH auth

#

#</Anonymous>

ExtendedLog /var/log/proftpd/access.log WRITE,READ default

ExtendedLog /var/log/proftpd/auth.log AUTH auth

TimesGMT off

#MasqueradeAddress www.femc.name

#PassivePorts 60000 60030

DeleteAbortedStores on

2008/08/16 12:01:09
id:takosan No.2

takosan回答回数222ベストアンサー獲得回数72008/08/16 13:15:53

ポイント50pt

そもそもtelnet ではデータコネクションが無いので蹴られている可能性があります。

いわゆるプロトコルミスマッチです。ftpdにはftpコマンドで接続してみてください。

[root@centos ~]# ftp 127.0.0.1


またLAN内の他のクライアントから接続できるか試してみる必要があります。

windowsならコマンドプロンプトに標準のftpコマンドが

C:\windows>ftp xxx.yyy.zzz.www (サーバのIP)

サーバが動いていれば、ログインプロンプトが表示されます。

以下ダミーです

http://q.hatena.ne.jp/1218843693

id:Lovin

回答ありがとうございます。

1の回答にも書きましたが、telnetはLAN内のWindowsクライアントからFileZillaで

接続できなかったので試した次第です。

ftp 127.0.0.1を確認した結果

421 Service not available, remote server has closed connection

となりましたので、xproftpdが起動できていないことがわかりました。

起動できない理由は何でしょうか?

2008/08/16 13:43:07
id:poch-7003 No.3

poch-7003回答回数43ベストアンサー獲得回数82008/08/16 14:36:10

ポイント50pt

1.netstat -latnで0.0.0.0:21がlistenになっているか.

2.ps auxでxinetが起動しているか.

3.messagesあたりにxinetのログが残っていないか.

4.autoかsecureあたりにログが残ってないか.

5.proftpd.confにSystemLog /var/log/proftpd/ftp.logを追加してログを確認.

大体proftpdをinetdで起動する場合は,xinetで起動するときの設定ファイルxinetd.d/ftp(ファイル名はわかりませんが)が間違っているか,proftpd.confが間違っているか,hosts.{allow,deny}が間違っている場合が多いです.

再度ログを確認することをお勧めします.

#ftpのログとxinetのログ

http://www.aconus.com/~oyaji/ftp/proftpd.htm

id:Lovin

回答ありがとうございます。

> 1.netstat -latnで0.0.0.0:21がlistenになっているか.

 なっています。

> 2.ps auxでxinetが起動しているか.

 xinetdは起動できています。

> 3.messagesあたりにxinetのログが残っていないか.

> 4.autoかsecureあたりにログが残ってないか.

> 5.proftpd.confにSystemLog /var/log/proftpd/ftp.logを追加してログを確認.

 ProFTPD自体の起動がうまくいっていない気がするのでログを確認してみます。

2008/08/17 19:12:43
id:Marin_MTB No.4

Marin_MTB回答回数40ベストアンサー獲得回数52008/08/16 15:21:52

ポイント50pt

ザッと調べた結果、ポイントは以下かなと。(私の評価環境では、掲載していただいたconfigでstandaloneで無事起動し、問題なく接続も出来ました)

・ログファイルの出力先の存在有無。(/var/log/proftpdがあるか、パーミッションは755以上であるか)

・xinetdのproftpd設定項目には間違いないか。

・PAM設定はいじりました?

もう少し突っ込んで調べる場合、

standaloneでもinetdでもどちらでも良いので、proftpdに以下のようなパラメータを追加してみてください。

/usr/local/sbin/proftpd -d 10

(デバッグレベルが1~10まで指定出来ます。10は鬼のように出力されますので、まずは低い数から試してみると良いかと)

Yahoo! JAPAN

id:Lovin

> ・ログファイルの出力先の存在有無。(/var/log/proftpdがあるか、パーミッションは755以上であるか)

 パーミッションは755ではないですが、ディレクトリはあります。

> ・xinetdのproftpd設定項目には間違いないか。

 disable=no以外を元に戻しましたが進展ありませんでした。

> ・PAM設定はいじりました?

 変更していません。

> /usr/local/sbin/proftpd -d 10

 3の方の回答と同様に、ログから調べてみます。

2008/08/17 19:17:47

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません