XOOPS Cube icon1ニュース   icon1掲示板   icon1ブログ   icon1リンク    
icon2ACCOUNT icon2PRIVATE MESSAGE  
icon1 ログイン
ユーザ名:

パスワード:



パスワード紛失

新規登録

icon1 メインメニュー

icon1 図書館で

トップ  >  unix/Linux 関係  >  Solaris10  >  in.ftpd ( 標準の ftpサーバーで wu-ftpd らしい )

Solaris10 in.ftpd で chroot させる

Solaris10 標準の in.ftpd(wu-ftpd)で chroot をする方法
比較的簡単に出来るようになってるんですね〜
(ちなみに、Solaris9 も同じ手順で出来ます)

・Passive Portの制限をする方法
 ftpaccess で制御できます。

注意事項
・chrootさせたユーザは、guest として扱われます。
 path-filterの影響でファイル名が日本語のファイルがアップロードできません。
 path-filterの設定見直しを検討しましょう。
・ls と オプション付きの ls は別のコマンドが実行されています。(たぶん)
 動作確認は、ls -la 等オプション付きのコマンドで行ってください。
 何も表示されない時は、ftpconfig の操作に問題があるかもしれません。
・動作確認は実際にファイル転送を行うことで行ってください。
 コマンド/ツールそれぞれで、アップロード/ダウンロードの確認をしてください。
 モード変更の確認も行いましょう
 アクセス可能なユーザ全てで、chrootが有効になっていることを確認しましょう。
必要なソフト
特になし
・作業内容
ユーザを作成します。
[solaris10@~ #] useradd -d /home/test1 -m -s /bin/true test1
-d /home/test1 : ユーザのホームディレクトリ
-m             : ホームディレクトリを作成する
-s /bin/true   : ユーザshellを /bin/true に設定
test1          : 作成するユーザアカウント
64 ブロック

ユーザにパスワードを設定
[solaris10@~ #] passwd test1
新しいパスワード: 
新しいパスワードを再入力してください: 
passwd: test1 のパスワードが変更されました

chroot 先に必要なファイルを準備する
[solaris10@~ #] /usr/sbin/ftpconfig -d /home/test1
Updating directory /home/test1

ftpを許可したい ユーザが持っているshell を /etc/shells に登録する
[solaris10@~ #] vi /etc/shells
/bin/true
[solaris10@~ #] vi /etc/ftpd/ftpaccess
どこでも良いから追加
guestuser       test1
[solaris10@~ #]

これで、test1 で ftpを行った時は、/home/test1 にchrootをするようになります。

また、chroot先はホームディレクトリの記述の中に . で指定することも出来ます。
例えば、/home に chroot させたい場合は以下のようにします。
* ただし、chootさせたいディレクトリに対して ftpconfig を実行しておく必要があります
[solaris10@~ #] vi /etc/passwd
test1:x:102:1::/home/./test1:/bin/true

[solaris10@~ #] ftp localhost
Trying 127.0.0.1...
Connected to localhost.
220 solaris10.kichise.com FTP server ready.
Name (localhost:kichise): test1
331 Password required for test1.
Password:
230 User test1 logged in.  Access restrictions apply.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> pwd
257 "/test1" is current directory.
ftp> 
[solaris10@~ #]

特定のユーザを chroot するのではなく、全体をchroot対象にしたうえで、
一部のグループに所属する ユーザを除外する方法
この設定例では、other を除外していますが、ちゃんと専用のグループを作った方が
良いと思われます。(^_^;)
[solaris10@~ #] vi /etc/ftpd/ftpaccess
# 基本は、chroot 対象とする
guestuser       *       # chroot all user
# other group を、chroot の対象から除外
realgroup       other   # exclude "other group"

・PassivePortの制限
IP-Filterでのルールを書きやすくするため、Passive modeで利用するPortを制限する。
[solaris10@~ #] vi /etc/ftpd/ftpaccess

passive ports 0.0.0.0/0 32768 33768
[solaris10@~ #]

・サービスの制御(有効化/無効化)
有効化
[solaris10@~ #] inetadm -e ftp
無効化
[solaris10@~ #] inetadm -d ftp
プリンタ用画面
友達に伝える
投票数:35 平均点:5.71
前
IPアドレス変更
カテゴリートップ
Solaris10
次
IPアドレスの追加

新しくコメントをつける

題名
ゲスト名   :
投稿本文
より詳細なコメント入力フォームへ

コメント一覧


Powered by XOOPS Cube  Theme Design by OCEAN-NET
copyright (c) 2003 All rights reserved.