Linux で自宅サーバ [ Home Server Techncial ]

>>トップページに戻る

BBS 過去ログ No.0005に戻る

タイトル: 本当に困ってます。どなたか助けて下さい・・・
記事No: 1382
投稿日: 2004/01/08(Thu) 21:24
投稿者: つめきり
VineLinuxでアカウント追加しただけで全部が使えるようになるのは
みんな/etc/passwd を参照しているのまではわかったんですが、

etc/passwdとFTP用のパスワードを別にしてftp用を別にするにはどのように操作すればいいのでしょうか?

分かる方どうかアドバイスお願いします。

タイトル: やったことはないけれど、ヒントです
記事No: 1383
投稿日: 2004/01/08(Thu) 22:09
投稿者: sg   <sg@tsuttayo.sytes.net>
URL: http://tsuttayo.sytes.net/
proftpdならば以下にそれらしき記述があります。

http://www.infoscience.co.jp/technical/proftpd/reference.html#AuthUserFile

これによると VirtualHost 単位でpasswdファイルが使えるようですね。

タイトル: Re: やったことはないけれど、ヒントです
記事No: 1384
投稿日: 2004/01/09(Fri) 06:30
投稿者: つめきり
ご回答誠にありがとうございます。
AuthUserFileを使うまでは分かったのですが、これには別用パスワードファイルを作成しなければならないようなのですが、パスワードファイルを作成したい場合どのようにコマンドを打てばいいのでしょうか?

> proftpdならば以下にそれらしき記述があります。
>
> http://www.infoscience.co.jp/technical/proftpd/reference.html#AuthUserFile
>
> これによると VirtualHost 単位でpasswdファイルが使えるようですね。

タイトル: Re: やったことはないけれど、ヒントです
記事No: 1387
投稿日: 2004/01/09(Fri) 16:02
投稿者: Linuxめざし
> proftpdならば以下にそれらしき記述があります。
>
> http://www.infoscience.co.jp/technical/proftpd/reference.html#AuthUserFile
>
> これによると VirtualHost 単位でpasswdファイルが使えるようですね。
お返事ありがとうございます
Proftpd.confに以下を記載して
AuthUserFile /etc/proftpd.passwd

proftpd.passwdには
ユーザ名:パスワード
記載したのですが、うまくいきませんでした・・・
色々と検索なりして調べたのですが、詳細が良く分かりません。
どなたかお願い致します。

タイトル: Re^2: やったことはないけれど、ヒントです
記事No: 1392
投稿日: 2004/01/09(Fri) 20:38
投稿者: Linuxめざし
> > proftpdならば以下にそれらしき記述があります。
> >
> > http://www.infoscience.co.jp/technical/proftpd/reference.html#AuthUserFile
> >
> > これによると VirtualHost 単位でpasswdファイルが使えるようですね。
> お返事ありがとうございます
> Proftpd.confに以下を記載して
> AuthUserFile /etc/proftpd.passwd
>
> proftpd.passwdには
> ユーザ名:パスワード
> 記載したのですが、うまくいきませんでした・・・
> 色々と検索なりして調べたのですが、詳細が良く分かりません。
> どなたかお願い致します。

タイトル: もういっちょー、ヒント
記事No: 1388
投稿日: 2004/01/09(Fri) 19:13
投稿者: sg URL: http://tsuttayo.sytes.net/
仮に/etc/passwdを/etc/ftppasswdにコピーしてみます。
そして、proftpd.confに
AuthUserFile "/etc/ftppasswd"
と記述します。

これだとftpでログインできます。
次に、/etc/ftppasswdの特定のユーザーを削除してみます。
すると、/etc/passwdには存在していて、/etc/ftppasswdには存在しないユーザーとなりますよね。

このときには、削除したユーザーではログインできません。
したがって、proftpd自体のAuthUserFileはちゃんと機能しているということになります。

さて、ではどうやって認証しているかと言えば、私も詳しくはないのですが、
/etc/pam.d/ftpというファイルに実際の認証方法のルールを書いているようなんです。

auth required /lib/security/pam_pwdb.so shadow nullok

上記設定部分でシャドウ・パスワードによる認証をしているらしいです。

したがって、上記検証から次の2つの方法が考えられますね。
1.普通にuseradd,passwdでユーザー登録した後、ftpを許すユーザーのみ、
  /etc/ftppasswdファイルに行単位でコピーする。
  ただし、この方法はパスワード自体は/etc/shadowに保存されるので、
  たとえばバーチャル・サーバで同じユーザー名が複数発生するような場合には向かない。
2./etc/pam.d/ftpを変更して、/etc/shadow以外にパスワードを
  保存する方式に変える。

本来は2の方式がいいのでしょうけど、私自身、pamの設定方法がよくわかっていません。難関はここでしょうね。
もしも、2の方法が必要なら、pam付近を調べてみたらどうでしょうか。

タイトル: とりあえず、簡単な方法で出来た (^.^)
記事No: 1389
投稿日: 2004/01/09(Fri) 20:12
投稿者: sg URL: http://tsuttayo.sytes.net/
/etc/proftpd.confに以下を追加。
AuthUserFile "/etc/ftppasswd"
UserPassword sg ""

これで、/etc/passwdに登録されていなくても、/etc/ftppasswdに登録されたユーザー「sg」はftpのみログインできます。
(telnetなどでログインできません)

上記の例ではユーザー「sg」は/etc/passwd, /etc/shadowにはありませんが、/etc/ftppasswdだけには作りました。
そして、実際のパスワードはUserPasswordで指定します。
この例ではパスワード無しとしました。

問題はUserPasswordで指定するpasswdをcryptを使ってハッシュを記述する必要があるようです。(以下を見ました)
http://www.infoscience.co.jp/technical/proftpd/reference.html#UserPassword

proftpdはpamの制御外の認証もできるようですね。
これで、実質的に使えるのではないでしょうか。

タイトル: ありがとうございます!!
記事No: 1393
投稿日: 2004/01/09(Fri) 21:00
投稿者: Linuxめざし
大変分かりやすい解説ありがとうございます。とても感謝してます。
以下のやり方で悩んでいました。
---------------/etc/proftpd.conf--------------
AuthUserFile="/etc/proftpd.passwd"

コマンドラインでhtpasswd -c /etc/proftpd.passwd tarouを実行してパスワードファイルを作成
------------------profptd.passwd----------------
tarou:DoskeoE0
-------------------------------------------------
その後、サーバFTPに接続するが530エラーで接続出来ず・・・悩んでいました。

原因は「/etc/proftpd.passwdの記載の仕方がだめだったんですね。
/etc/passwd の中身を見て見ると
tarou:x:502:502:ディレクトリ:シェルのように記載されてあったので
パスワードはどこに記載されているんだ?「???」な状態でした。

>>問題はUserPasswordで指定するpasswdをcryptを使ってハッシュを記>>述する必要があるようです。(以下を見ました)

---------------------------------
AuthUserFile用パスワードデータ生成ツールを使って以下のように記載で合ってますでしょうか?
http://www.kcom.ne.jp/muji/hp/manual/htpasswd.html


tarou:71NRTE82Hnd6w PASSは「oreore」

------------------------------------

sgさんの分かりやすいヒントで無事作成する事が出来ました。
本当にありがとうございました。Linux初めて10日くらいしかたってないので大変参考&勉強になりました。心より感謝してます。





> /etc/proftpd.confに以下を追加。
> AuthUserFile "/etc/ftppasswd"
> UserPassword sg ""
>
> これで、/etc/passwdに登録されていなくても、/etc/ftppasswdに登録されたユーザー「sg」はftpのみログインできます。
> (telnetなどでログインできません)
>
> 上記の例ではユーザー「sg」は/etc/passwd, /etc/shadowにはありませんが、/etc/ftppasswdだけには作りました。
> そして、実際のパスワードはUserPasswordで指定します。
> この例ではパスワード無しとしました。
>
> 問題はUserPasswordで指定するpasswdをcryptを使ってハッシュを記述する必要があるようです。(以下を見ました)
> http://www.infoscience.co.jp/technical/proftpd/reference.html#UserPassword
>
> proftpdはpamの制御外の認証もできるようですね。
> これで、実質的に使えるのではないでしょうか。

タイトル: ftppasswdファイルのフォーマット
記事No: 1390
投稿日: 2004/01/09(Fri) 20:18
投稿者: sg URL: http://tsuttayo.sytes.net/
上記で利用したftppasswdファイルですが、フォーマットは/etc/passwdと同じです。
したがって、コピーすれば雛型は作れます。

ftpユーザーのみ追加したい場合、以下のところにpasswdファイルのフォーマットが書かれているので、この方式で、エディタを使ってユーザーを追加すりゃー(たぶん)認証OKとなると思われます。

http://x68000.startshop.co.jp/~68user/unix/pickup?%2Fetc%2Fpasswd

でも、簡単そうなので、perlやphpなどでも作れそうですね。

▲ページの最上部に戻る

Copyright© Home Server Technical. All Right Reserved.
webmaster@miloweb.net