GNU/Linux >> Linux の 問題 >  >> Panels >> Webmin

WU-FTPDサーバー


この章では、WU-FTPDサーバー FTPプロトコルについて説明し、多くの一般的なタスク用にFTPプロトコルを構成するための手順を示します。

注: 最新のFTPクライアントはSSHをサポートしているため、FTPサーバーの代わりにSSHサーバーを使用することを検討してください。これは、FTPサーバーが約束できるよりも(はるかに)セキュリティが高いためです。

コンテンツ

WU-FTPDの紹介

WU-FTPD(WUはWashington Universityの略)は、おそらくインターネット上で最も人気のあるUnix FTPサーバーであり、ほとんどのUnixおよびLinuxオペレーティングシステムにデフォルトで含まれています。構成可能なオプションが多数あるため、Unixの一部のフレーバーでまだ使用されている「クラシック」またはBSD FTPサーバーよりも優れていますが、第40章で説明するProFTPDほど柔軟またはクリーンに実装されているとは思いません。また、FTPプロトコルの簡単な紹介もあります。これは、FTPクライアントやサーバーなどの概念に慣れていない場合は、先に進む前に読む必要があります。

通常のデフォルト構成では、WU-FTPDにより、すべてのUnixユーザー(システムユーザーを除く)が標準のユーザー名とパスワードでログインし、サーバーシステム上のファイルをアップロード、ダウンロード、操作できるようになります。 telnetまたはSSH。匿名ログインをサポートするように設定することもできるため、有効なUnixアカウントを必要とせずに誰でも接続できます。ただし、匿名クライアントは通常、特定のディレクトリに制限され、ファイルのアップロードができません。

WU-FTPDのプライマリ設定ファイルは/etc/ ftpaccessと呼ばれますが、/ etc/ftpusersや/etc/ftphostsなどの他のいくつかのファイルも使用します。 ftpaccessファイルには、1行に1つずつ、一連​​のディレクティブが含まれています。各ディレクティブには、名前といくつかの値があります。各ディレクティブは、メッセージファイルへのパスやディレクトリエイリアスなどの単一のオプションを設定します。

ProFTPDと同様に、WU-FTPDは、永続的なスタンドアロンデーモンプロセスとして実行することも、inetdやxinetdなどのスーパーサーバーから実行することもできます。通常、後者のオプションが使用されます。これにより、FTP接続を待機している追加のサーバープロセスを常に実行する必要がなくなります。クライアントと構成ファイルに関する限り、パフォーマンス以外にどちらのモードにも違いはありません。

WU-FTPDサーバーモジュール

Webmin内からFTPサーバーを構成するには、「サーバー」カテゴリーの下の「*WU-FTPDサーバー」アイコンをクリックします。正しくインストールされ、機能している場合は、図41-1に示すモジュールのメインページが表示されます。各アイコンは、ロギングやメッセージやバナーに関連するオプションなど、構成可能なオプションのクラスを設定するためのフォームに移動します。

完了していません

 Figure 41-1 “The WU-FTPD Server module” 

モジュールがWU-FTPDサーバーの実行可能ファイルを見つけられない場合は、*FTPサーバー/usr/sbin/in.ftpdがシステムに見つかりませんでした*または*FTPサーバー構成ファイル/etc/ftpaccessが存在しませんなどのエラーメッセージが表示されます。 *が表示されます。これは通常、プログラムがインストールされていないことを意味します。LinuxディストリビューションCDまたはWebサイトでwu-ftpdパッケージを確認し、第12章で説明するソフトウェアパッケージモジュールを使用してインストールします。モジュールが間違った場所を探していることも意味します。サーバープログラムまたは構成ファイル。 WU-FTPDがインストールされていることが確実な場合は、Webminが検索するパスの調整について、この章で後述する「WU-FTPDサーバーモジュールの設定」を参照してください。

WU-FTPDがインストールされていても、デフォルトで無効になっている場合があります。コマンドプロンプトでftplocalhostを実行し、エラーメッセージ「接続が拒否されました」が返される場合、FTPサーバーは実行されていません。これは、FTP用にinetdまたはxinetdサービスがまだ作成されていないか、存在しているが無効になっていることが原因である可能性があります。以下の手順に従って、ProFTPDのスーパーサーバーサービスを設定またはアクティブ化する方法を説明します。

WU-FTPDを実際にインストールする必要がある場合は、最初に、システムに現在インストールされている他のFTPサーバー(ProFTPDやPureFTPなど)をすべて削除する必要があります。 FTPポートでリッスンしているものが何も残らないように、すべてのプロセスも強制終了するようにしてください。コマンドプロンプトでftplocalhostを実行すると、他のサーバーが完全にシャットダウンされたことを確認できます。ポート21で何もリッスンしていないことを示すエラーメッセージ「接続が拒否されました」が表示されます。

WU-FTPDをインストールした後、FTPポートでリッスンしてサーバープログラムを実行するようにinetdまたはxinetdを構成する必要があります。これを行う前に、プログラムが実際にシステムのどこにインストールされているかを確認してください。通常は/usr/sbin/in.ftpdにありますが、これはオペレーティングシステムによって異なる場合があります。

システムで上位のxinetdスーパーサーバーを使用している場合は、次の手順に従ってFTPサービスをセットアップしてください。多くのパッケージにはサーバー用の/etc/xinetd.d構成ファイルが含まれているため、以下で説明するフィールドの一部はすでに正しく入力されている可能性があります。

  1. Webminのネットワークカテゴリに移動し、*拡張インターネットサービス*アイコンをクリックします。存在しない場合、xinetdはインストールされていないため、代わりにinetdを使用してサーバーをセットアップする必要があります。
  2. モジュールのメインページで、ftpまたはwu-ftpdという名前の既存のサービスを確認します。存在する場合はクリックします。存在しない場合は、新しいインターネットサービスの作成に従います。 表の上または下のリンク。
  3. サービス名 フィールドにftpと入力します (すでに記入されていない限り)。
  4. はいであることを確認してください サービスを有効にしますか?でオプションが選択されています 分野。
  5. アドレスにバインドを残す フィールドをすべてに設定 、および*ポート番号*から標準 または21
  6. ストリームを選択します ソケットタイプから メニュー、およびデフォルト またはTCP プロトコルから リスト。
  7. 処理されるサービス フィールドで、サーバープログラムを選択します オプションを選択し、引数–l –a( /usr/sbin/in.ftpd –l -a など)を指定してWU-FTPD実行可能ファイルへのパスを入力します。 )隣接するテキストボックスに入力します。
  8. ユーザーとして実行 フィールドにrootと入力します 。
  9. いいえを選択します 完了するまで待ちますか? 分野。
  10. 他のすべてのフィールドをデフォルトに設定したままにして、保存を押します。 または作成 フォームの下部にあるボタン。
  11. モジュールのメインページに戻り、変更の適用をクリックします サービスのリストの下にあるボタン。

または、インターネットサービスとプロトコルモジュールを使用してWU-FTPDのinetdサービスを設定するには、次の手順に従います。

  1. Webminのネットワークカテゴリに移動し、*インターネットサービスとプロトコル*アイコンをクリックします。存在しない場合は、システムがxinetdを使用している可能性があります。
  2. モジュールのメインページで、 ftpをクリックします *インターネットサービス*テーブル。表示されていない場合は、[*サービスの編集*]フィールドにftpと入力し、ボタンを押します。いずれにせよ、FTPプロトコルサービスを編集するための同じページが表示されます。
  3. サーバープログラム セクションで、プログラムを有効にするを選択します 。
  4. プログラムフィールドコマンドを選択します オプションを選択し、WU-FTPDサーバー実行可能ファイルへのフルパスをその横のフィールド( /usr/sbin/in.ftpd など)に入力します。 。 Argsで フィールドにin.ftpd–l -aと入力します 。
  5. 待機モードを設定します 待たないで rootと入力します ユーザーとして実行 分野。他のすべては変更しないでおくことができます。
  6. 保存をクリックします ボタンをクリックし、モジュールのメインページに戻って[変更を適用]をクリックします。 。

WU-FTPDがinetdまたはxinetdから実行するように設定されたら、コマンドラインのUnixFTPクライアントを使用して独自のシステムに接続することでテストできます。 ftp localhostを実行し、root以外のユーザーとしてログインできることを確認してください。そうでない場合は、ログファイルをチェックして(第13章で説明されているシステムログモジュールを使用して)、問題を説明する可能性のあるinetdまたはxinetdからのメッセージを確認します。

ログインできるユーザーの制限

通常の構成では、WU-FTPDは、root、bin、daemonなどのシステムアカウントを除いて、すべてのUnixユーザーがログインできるようにします。 FTPプロトコルはパスワードがネットワーク経由で送信されるときにパスワードを暗号化しないため、rootユーザーはほとんどの場合デフォルトで拒否されます。つまり、rootとしてリモートログインすると、パスワードが攻撃者に公開される可能性があります。システムにログインできるユーザーとグループを変更するには、次の手順に従います。

  1. モジュールのメインページで、ユーザーとクラスをクリックします。 図41-2に示すフォームを表示するためのアイコン。
  2. 拒否するUnixユーザーに追加します FTPサーバーの使用を禁止するアカウントを入力するか、許可するアカウントを削除します。これにより、/ etc / ftpaccessファイルが更新されます。このファイルは、いつか切り替えることにした場合に備えて、ProFTPDなどの他のFTPサーバーで使用されます。
  3. UIDが特定の範囲内にあるユーザーを拒否するには、Unixユーザーと拒否するUIDを入力します 分野。 %3000-4000のようなUID範囲を入力できます 、これにより、UIDが3000または4000のすべてのユーザーがブロックされます。または、%-100のような範囲を入力できます。 または%5000- これにより、UIDがそれぞれ100未満または5000を超えるユーザーが拒否されます。スペースで区切って、複数の範囲を入力できます。このフィールドでも通常のユーザー名を使用できますが、これはUnixユーザーに拒否すると同じ効果があります。 分野。
  4. プライマリグループIDが特定の範囲内にあるユーザーを拒否するには、拒否するUnixグループとGIDに入力します。 分野。ここでも、%100-200のようなID範囲を入力できます または%-10 、および usersなどのグループ名 。プライマリグループのメンバーシップのみがカウントされます–ユーザーがリストされたグループのいずれかのセカンダリメンバーである場合、そのユーザーはブロックされません。
  5. 前の2つの手順で定義した拒否リストから一部のユーザーまたはグループを除外するには、拒否しないUNIXユーザーとUIDを入力します。 および拒否しないUnixグループおよびGID 田畑。最初のフィールドはUID範囲またはユーザー名を受け入れ、2番目のグループID範囲またはグループ名を受け入れます。これらのフィールドは、すべてのアカウントをカバーするUID範囲で他のすべてのユーザーをブロックしながら、数人のユーザーのみを許可する場合に役立ちます。
  6. 保存を押します ページの下部にあるボタンをクリックして、新しいユーザー制限を保存してアクティブにします。

完了していません

Figure 41-2 “The users and classes page” 

WU-FTPDは通常、シェルが/ etc / shellsファイルにリストされていないユーザーがログインできないようにします。これは通常、POP3サーバーにログインできるが、telnet、SSH、またはFTP。残念ながら、このシェルチェックをオフにするために変更できるWU-FTPD構成オプションはありません。これは、プログラムにハードコードされているか、ユーザーの認証に実際に使用されるftpPAMサービスによって適用されます。

システムのWU-FTPDがPAMを使用している場合(ほとんどのLinuxディストリビューションで使用されているように)、次の手順に従って/ etc/shellsチェックをオフにします。

  1. Webminメインメニューの[システム]カテゴリにあるPAM認証モジュールに移動します。
  2. ftpをクリックします またはwu-ftpd メインページのサービス。
  3. 表示される編集フォームで、 pam_shells.soをクリックします。 PAMモジュール認証手順の列 セクション。
  4. 障害レベルから メニュー選択オプション 、シェルファイルチェックの成功または失敗が認証目的で無視されるようにします。
  5. 保存をクリックします ボタン。無効なシェルを持つユーザーは、FTPサーバーにログインできなくなります。

他のオペレーティングシステムでは、PAM認証モジュールはLinuxでのみ使用できるため、上記の手順は役に立ちません。

匿名FTPの設定

匿名ログインを受け入れるようにWU-FTPDを構成することは、ディレクトリリストを生成するためにlsコマンドを使用するため、予想よりも少し複雑です。このコマンド(およびサーバーが使用する他のコマンド)が匿名クライアントが制限されているディレクトリをエスケープできないように、サーバーはUnix chrootシステムコールを使用して、サーバー自体と実行するすべてのプログラムをそのディレクトリに制限します。つまり、ルートディレクトリには、WU-FTPDとlsコマンドを実行するために必要なすべてのプログラム、ファイル、および共有ライブラリが含まれている必要があります。

デフォルトでは、特別なUnixユーザーftpのホームディレクトリが匿名FTPルートとして使用されますが、異なるルートを異なるクライアントクラスに割り当てることができます。ただし、選択するディレクトリには、ls、gzip、tar、recompress、cpio、およびzcatコマンドを含むbinサブディレクトリが含まれている必要があります。また、これらのコマンドに必要な共有ライブラリを含むlibサブディレクトリ、passwdファイルとgroupファイルを含むetcサブディレクトリ、およびダウンロード可能なファイルが保存されるpubディレクトリも必要です。

ご想像のとおり、これらすべてのファイルを所定の場所にコピーして、それらが機能することを確認するのは非常に困難です。幸い、wu-ftpdパッケージを含む多くのLinuxディストリビューションには、必要なすべてのファイルをftpユーザーのホームディレクトリに配置するanonftpという名前のパッケージもあります。ほとんどの場合、あなたがする必要があるのはこのパッケージをインストールすることだけであり、WU-FTPDはクライアントが匿名でログインすることを可能にします。

ルートディレクトリの権限に関係なく、WU-FTPDは、匿名クライアントがファイルをアップロード、名前変更、または削除することを常に防止します。彼らができることは、公開配布のためにpubサブディレクトリに配置したファイルをダウンロードすることだけです。

匿名ログインは、次の手順に従ってさらに構成できます。

  1. 匿名FTPをクリックします モジュールのメインページのアイコン。
  2. 匿名FTPルートディレクトリ テーブルを使用すると、クライアントのさまざまなクラスに使用されるさまざまなルートを指定できます。既存のディレクトリ(デフォルトの〜ftpを除く)は編集用にテーブルに一覧表示され、新しいディレクトリを追加するための空の行が常に1つあります。エントリが追加されるとすぐにデフォルトが置き換えられるため、引き続き機能させる場合は、必ず明示的に追加してください。複数のディレクトリを追加する場合は、このページを保存して再度開き、新しい空白行が表示されるようにする必要があります。各行には2つのフィールドがあります。つまり、ディレクトリ このフィールドには、有効な匿名FTPディレクトリ(etc、bin、lib、pubサブディレクトリ、および必要なすべてのプログラムを含むディレクトリ)へのフルパスを入力する必要があります。 クラスの場合 このメニューから、そのクラスのクライアントが匿名でログインすると仮定して、ディレクトリが使用されるクライアントクラスを選択する必要があります。 いずれかの場合 が選択されている場合、このテーブルの他のクラスにないクライアントに使用されます。独自のクラスを定義する方法の詳細については、「ユーザークラスの管理」を参照してください。
  3. ユーザーがFTPサーバーに匿名でログインする場合、認証に使用されていなくても、パスワードを入力する必要があります。通常、このパスワードはユーザーの電子メールアドレスであり、どのドメインクライアントから来ているのかを大まかに把握するために使用できます。ただし、プライバシー上の理由から、最近のFTPクライアントやブラウザの多くは、実際の電子メールアドレスを送信せず、代わりに[email protected]のような偽のアドレスでログインします。 匿名FTPパスワードチェックを使用して、匿名ログインパスワードの形式をチェックし、それらが電子メールアドレスのように見えることを確認するようにWU-FTPDを構成できます。 このページのフィールド。 デフォルトの場合 が選択されている場合、チェックは行われません。ただし、2番目のオプションを選択した場合、チェックのレベルはメニューからの選択によって異なります。すべてを許可 空白のパスワードも含め、すべてのパスワードが許可されます(これはデフォルトモードと同じです)。 @を含める必要があります パスワードには@記号が含まれている必要があります。 RFC882のメールアドレスである必要があります パスワードは、@の前後に文字と数字が付いた、有効な電子メールアドレスのように見える必要があります。 2番目のメニューは、FTPサーバーがチェックに違反するクライアントに警告するだけかどうかを決定します(警告のみの場合) が選択されている)、またはそれらを完全にブロックします(ログインを拒否の場合) が選択されています)。
  4. 特定の匿名パスワードを完全にブロックするには(有効な場合でも)、拒否する匿名FTPパスワードを入力します 完全または部分的な電子メールアドレスのリストを含むフィールド。これは、偽のアドレスを使用するようにデフォルトで構成されているFTPクライアントをブロックする場合に役立ちます。ただし、この機能は多くの人、特にWebブラウザーを使用している人をブロックするため、使用しないことをお勧めします。
  5. 保存を押します ページの下部にあるボタンをクリックして、新しい匿名FTP設定をアクティブにします。

ユーザークラスの管理

FTPサーバーは、送信元アドレスとログインの種類に基づいてクライアントをクラスに分類します。分類は、WU-FTPD構成のいくつかの異なる場所で使用して、特定のクライアントにのみ適用される設定を定義できます。また、ネットワークの外部からの非匿名ログイン(またはすべてのログイン)をブロックするために使用することもできます。これは、特定の信頼できるホストにサーバーへのデータのアップロードのみを許可し、インターネット上の誰もが匿名でログインしてダウンロードできるようにする場合に役立ちます。

各クラスには、名前、ログインタイプのリスト、およびクライアントアドレス、ホスト名、またはネットワークのリストがあります。ログインタイプとアドレスの両方に一致するクライアントのみがクラスに含まれていると見なされ、複数のクラスが一致する場合は最初のクラスが使用されます。どのクラスにも属さないクライアントは、FTPサーバーを使用できません。

WU-FTPDでは、次の3種類のログインが認識されます。

Unix
telnetまたはSSH経由でログインし、通常の権限でシステム上のすべてのファイルにアクセスできる通常のUnixユーザー。
ゲスト
ゲストとして指定されたUnixユーザー。これは、匿名ユーザーと同じように、ディレクトリ(通常は自宅)に制限されます。詳細については、「ゲストユーザーの設定」セクションを参照してください。
匿名
匿名でログインするため、特定のディレクトリに制限されているユーザー。

モジュールを使用してクラスを定義および編集するには、次の手順に従います。

  1. ユーザーとクラスをクリックします モジュールのメインページの左上隅にあるアイコン。図41-2に示すフォームがブラウザに表示されます。
  2. ページの上部には、ユーザークラスというラベルの付いた表があります。 。各行はクラスを定義し、常に少なくとも1つがすでにリストされています(通常、すべてのクライアントに一致するすべてのクラス)。新しいクラスを追加するために、テーブルの下部には常に1つの空の行があります。複数のクラスを追加する場合は、一度に1つずつ作成する必要があります。フィールドを変更して既存のクラスを編集したり、名前フィールドをクリアしてクラスを削除したりできます。ただし、すべてを削除しないでください。すべてのユーザーがログインできなくなります。各クラスのフィールドは次のとおりです。クラス名 homenet のように、文字と数字のみで構成されるこのクラスの短縮名 または信頼 。複数の行に同じクラス名を付けることができ、任意の行のユーザータイプとアドレスに一致するクライアントは、クラスのメンバーと見なされます。 *ユーザータイプ*上記で説明したように、このクラスが一致するログインのタイプ。 3つのチェックボックスの少なくとも1つを選択する必要があります。 一致するアドレス このフィールドには、クラスが一致するクライアントアドレスを入力できます。単一のIPを入力できます( 192.168.1.1 など) )、ホスト名( www.foo.com など) )、ワイルドカードIPおよびホスト名(10.254.1。*など) または*。example.com )または、そのようなアドレスとホスト名をさらに含むファイルへのパス。複数のエントリはスペースで区切る必要があります。 !*。foo.comのような否定エントリ ホスト名がfoo.comの外部にあるすべてのクライアントに一致することも許可されます ドメイン。 WU-FTPDはクライアントのホスト名をIPアドレスから検索する必要があるため、ホスト名を使用する場合は注意が必要です。その結果、攻撃者が偽造する可能性があります。
  3. クラスの定義が完了したら、保存を押します。 フォームの下部にあるボタン。これで、モジュールの他のページでそれらを使用できます。

ファイルへのアクセスを拒否する

特に信頼できない匿名クライアントの場合、ユーザーがダウンロードできるファイルの種類を制限すると便利な場合があります。任意のディレクトリ( secret.txt など)のファイル名へのアクセスをブロックできます )、絶対パス( / etc / passwd など) )またはディレクトリとそのすべてのコンテンツ( / var / log など) )。シェルのワイルドカード文字*および?ファイル名とパス名にも使用できるため、柔軟性が高まります。これは、秘密情報を含むファイルを保護する場合、またはクライアントを特定のディレクトリ( / home など)からのダウンロードに制限する場合に役立ちます。 )。ただし、この機能を使用してディレクトリの一覧表示を防ぐ方法はありません。

ファイル名のダウンロード制限を設定するには、次の手順に従います。

  1. メインページで、制限とアクセス制御をクリックします 図41-4に示すフォームを表示するためのアイコン。
  2. ファイルへのアクセスを拒否するの各行 表は、単一のファイル名制限を定義します。このモジュールの他のテーブルと同様に、テーブルの下部には、新しいファイル名またはパスを追加するための単一の空白行があります。この機能を初めて使用する場合は、単一の行にすべてのテーブルが含まれます。それ以外の場合は、既存の制限が一覧表示され、それらを編集または削除できます。各行のフィールドとその意味は次のとおりです。拒否するファイル アクセスを拒否する相対または絶対ファイル名またはパターンのリスト。スペースで区切られています。ワイルドカード文字*および?両方に使用できるため、secret。*などのファイルを入力できます または/home / * / public_html chrootと比較して? はいの場合 が選択されている場合、最初のフィールドに入力された絶対パスは、匿名FTPルートディレクトリからの相対パスであると見なされます。 いいえの場合 が選択されている場合、パスは実際のルートディレクトリからの相対パスと見なされます。 クラスの拒否 このフィールドでは、制限が適用されるクラスのチェックボックスを選択する必要があります。独自のクラスを追加する方法の詳細については、「ユーザークラスの管理」セクションを参照してください。これは、匿名クライアントによるファイルへのアクセスをブロックしたいが、実際のUnixユーザーには許可したい場合に便利です。
  3. 拒否された場合でもファイルへのアクセスを許可する テーブルの構造は拒否テーブルとまったく同じですが、上記のテーブルのエントリによって拒否された場合でも、アクセスを許可するファイル名とパスを入力するためのものです。これは、すべてへのアクセスを拒否するために使用できます(拒否するファイルに_*_を入力することにより) 行)次に、パターンに一致するファイル(*。htmlなど)のみにダウンロード権を付与します。 例えば)。
  4. 保存をクリックします ページの下部にあるボタンをクリックして、新しいファイルの制限を保存してアクティブにします。いずれかのテーブルに複数のエントリを追加する場合は、[制限とアクセス制御]アイコンをもう一度クリックしてフォームを再表示し、表示される新しい空の行に入力します。

完了していません

Figure 41-4 “The limits and access control form” 

クライアントがアップロードできるファイルの名前を制限するための同様の機能もあります。これは、名前がドットで始まる隠しファイルまたはディレクトリの作成をブロックしたり、スペースや制御文字を含む名前を理解するのが難しい場合に役立ちます。これらは、アップロードを許可した場合に匿名FTPサーバー上のファイルを非表示にするために卑劣な人々によってよく使用されます。信頼できる人にはそのようなファイルを作成する正当な理由がある可能性があるため、匿名ユーザーまたはゲストユーザーにのみ適用される制限を定義できます。

アップロードファイル名の制限を追加および編集するには、次の手順に従います。

  1. モジュールのメインページで、権限をクリックします アイコン。
  2. 表示されるフォームで、許可されていないアップロードファイル名 下部の表は、さまざまなタイプのユーザーに対して許可および拒否されるファイル名を示しています。既存の制限は、テーブルのフィールドを変更するだけで編集でき、新しい制限は、最後の空白行に入力することで作成できます(これまでこのフォームを使用したことがない場合は、テーブルにすべて含まれます)。表の列とそのフィールドの意味は次のとおりです。許可される文字 アップロードされたすべてのファイルが一致する必要がある単一のPerl正規表現。たとえば、 ^ [a-z] + $と入力した場合 、小文字で構成されたファイル名のみが許可されます。 拒否する正規表現をファイルする ファイル名で許可されていない正規表現のスペース区切りのリスト。良い例は^\。です。 、ドットで始まる名前をブロックし、ファイルを非表示にします。 ユーザータイプ この制限が適用されるユーザーのタイプ。多くの場合、実際のユーザーやゲストユーザーよりも、匿名クライアントに厳しい制限を課したいと思うでしょう。 エラーメッセージファイル 名前が許可された式と一致しない、または拒否された式の1つと一致するファイルをアップロードしようとするクライアントに送信されるファイルへのフルパス。
  3. 通常どおり、保存をクリックします ページの下部にあるボタンをクリックして、完了時に新しい制限をアクティブにします。

同じタイプのユーザーに複数の制限が定義されている場合、それらすべてがチェックされ、アップロードされたファイル名が許可されているかどうかが判断されます。

ゲストユーザーの設定

ゲストFTPユーザーは、匿名クライアントが制限されているのと同じように、WU-FTPDによって特定のディレクトリに制限されている実際のUnixユーザーです。ただし、ファイルのアップロード、ファイルの名前変更、chmodファイルの権限など、そのディレクトリ内での完全な権限は引き続きあります。ユーザーをゲストアクセスに制限すると、ファイルシステムの一部がホームディレクトリまたは/homeなどの親ディレクトリの外に表示されないようにする場合に役立ちます。

FTPサーバー構成によってゲストとして指定されたすべてのユーザーは、異なるルートディレクトリを持つことも、同じになることもできます。ただし、選択したルートディレクトリは、匿名FTPルートと同じ方法で設定する必要があります。bin、libなどのサブディレクトリには、WU-FTPDに必要なすべてのプログラムとファイルが含まれます。ただし、匿名ルートの反対側にこれらのディレクトリをコピーするだけなので、セットアッププロセスはそれほど難しくありません。

ユーザーをゲストとして設定するには、ユーザーのホームディレクトリを特別に変更する必要があります。以下の手順は、Webminを使用してこれを行う方法を説明しています:

  1. [ユーザーとグループ]モジュール(第4章で説明)に移動し、制限するユーザーの名前をクリックします。
  2. ホームディレクトリをguestroot_ /./_ homedirに変更します 、 guestroot は準備したルートディレクトリであり、 homedir その下のサブディレクトリ。 / homeをルートとして使用している場合、/home/./jcameronはユーザーjcameronのディレクトリである可能性があります。パス内のこの特別な/./エントリは、ルートがどこにあるかをWU-FTPDに通知しますが、他のプログラムを混乱させることはありません。
  3. 保存をクリックします ページ下部のボタン。 Webminは、必要に応じてホームディレクトリを新しい場所に移動します。

もちろん、新しいユーザーを作成するときに、そのようなホームを指定することもできます。ただし、これは最初のステップにすぎません。特定のユーザーをゲストとして扱うようにWU-FTPDを構成するには、次の手順に従う必要があります。

  1. WU-FTPDサーバーモジュールで、ユーザーとクラスをクリックします。 図41-2に示すフォームを表示するためのアイコン。
  2. ゲストとして扱うUnixユーザーとUID 、ユーザー名、UID、またはUID範囲のスペース区切りのリストを入力します(%1000-2000 _or など)。 %5000-_)ゲストとして指定されるユーザーの。 [* Unixグループとゲストとして扱うGID*]フィールドにグループ名、ID、ID範囲のリストを入力して、すべてのプライマリメンバーをゲストとして扱うこともできます。
  3. 手順2で設定したリストまたは範囲に含まれている場合でも、一部のユーザーがゲストに変換されないようにするには、ゲストとして扱わないUnixユーザーとUIDを入力します。 およびゲストとして扱わないUnixグループおよびGID 田畑。これは、少数の信頼できるユーザーを除くすべてのユーザーをゲストにしたい場合に役立ちます。
  4. 保存をクリックします ページの下部にあるボタンをクリックして、新しいゲストの指定をアクティブにします。

ユーザーがゲストとして構成されているが、ホームディレクトリに/./がない場合、そのユーザーはルートディレクトリに制限されません。

ディレクトリエイリアスの編集

長いパスでディレクトリに頻繁にアクセスする必要があるユーザーの生活を簡素化するために、WU-FTPDでは、別のディレクトリに変更するときに使用できるディレクトリエイリアスを定義できます。これは、コマンドラインFTPクライアントを使用している人が、適切なエイリアスが作成されていると仮定して、cd / usr / local / etc/stuffの代わりにcdstuffを入力できることを意味します。

エイリアスを設定するには、次の手順に従います。

  1. モジュールのメインページで、エイリアスとパスをクリックします アイコン。
  2. CDディレクトリエイリアス フィールドは実際には既存のエイリアス(存在する場合)をリストするテーブルであり、新しいエイリアスを追加するために常に1つの空白行があります。 エイリアス名の下の最初の空のフィールド 列に、 stuff:のような新しいエイリアスの名前を入力します またはジャンク: 。エイリアスがコロンで終わる必要はありませんが、エイリアス名が実際の相対ディレクトリと同じになるリスクを減らすため、これは良い考えです。 ディレクトリへのエイリアスの下の対応するフィールド 、 / usr / local / junkのような完全なディレクトリパスを入力します エイリアスがに等しいこと。複数のエイリアスを追加する場合は、このページを保存して再度開き、新しい空の行が表示されるようにする必要があります。 1つを削除するには、テーブル内の両方のフィールドをクリアします。
  3. CDディレクトリ検索パス テキストボックスでは、クライアントが現在のディレクトリにない相対サブディレクトリに変更しようとした場合に検索されるディレクトリのリストを入力できます。たとえば、 / usr / localの場合 が含まれていて、クライアントがbinディレクトリに切り替えようとすると、彼は/ usr / local / binに配置されます(実際のbinサブディレクトリが存在しないと想定)。
  4. 保存を押します ページの下部にあるボタンをクリックして、新しいエイリアスをアクティブにします。

エイリアスは、クリックするディレクトリリストをユーザーに提示するグラフィカルFTPクライアントでは特に役立ちません。ユーザーはstuff:のような明示的な疑似ディレクトリに変更しないし、変更できないことが多いため、エイリアスはリストに含まれていないため、使用するのは困難です。ただし、ncftpや従来のUnix ftpプログラムなどのコマンドのようなFTPクライアントは、それらを使用するのに適しています。

メッセージおよびreadmeファイル

WU-FTPDは、クライアントが特定のディレクトリにログインまたは入力したときに、さまざまなメッセージファイルの内容をクライアントに送信するように構成できます。これは、FTPサーバーに関する情報(サーバーを実行しているユーザーやホストされているファイルなど)や、特定のディレクトリの内容の詳細をFTPユーザーに表示するのに役立ちます。繰り返されるメッセージでユーザーを煩わせることを避けるために、各ファイルは1回のセッションで1回だけクライアントに送信されます。

サーバーは、特定のファイルが存在することをクライアントに通知し、最終変更日をクライアントに通知するように設定することもできます。これは通常、ユーザーが読みたいディレクトリまたはサーバーに関する重要性の低い情報を含むREADMEファイルに使用されます。この場合も、クライアントは、そのようなファイルごとにセッションごとに1回だけ通知されます。

メッセージファイルとバナーファイルを定義するには、次の手順に従います。

  1. メッセージとバナーをクリックします モジュールのメインページにあるアイコンをクリックすると、図41-3に示すフォームが表示されます。
  2. メッセージファイル セクションは、コンテンツがクライアントに送信されるファイルを指定するためのテーブルです。 Webminのテーブルでは通常どおり、既存のファイルとそのコンテキストが一覧表示され、新しいファイルを追加するための空白行が下部に1つあります。 The meanings of the fields are:Path The path to the file whose contents should be sent to the client. This can be either an absolute path like /etc/login.message or a relative filename like message.txt 。 In the latter case, it is looked for in each directory that the client enters. If you enter a full path and want anonymous clients to be able to see it, it must be under the anonymous FTP root directory. When to display If At login is selected, the file will be sent to clients after logging in. If Entering any dir is chosen, the file will be searched for and sent when changing to any directory. When Entering dir is chosen, the file will only be sent when the directory whose path you specify in the adjacent text box is entered. Again, this must be relative to the root directory for anonymous clients. Classes to display for If this field is left blank, the message is sent to all clients. However, if one or more classes of client is entered (separated by spaces) it will only be used for clients that fall into those classes. This can be useful for defining message files just for anonymous users, especially when using absolute paths.
  3. To define files that clients will be notified of the existence of, you will need to fill in the README files テーブル。 Again, this lists all existing files and has a blank row for adding a single new one. The meanings of the fields in this table's columns are:Path' The path to the file whose existence and modification time should be sent to the client. This can be either an absolute path like /etc/README or a filename relative to the directory being entered like README.txt 。 You can even use shell wildcard characters like * and ? in the filename to match multiple files, for example README*When to display last modified date If At login is selected, the information will be sent to clients after logging in. If Entering any dir is chosen, the file will be searched for and its modification date sent when changing to any directory. When Entering dir is chosen, the modification date will only be sent when the directory whose path you specify in the adjacent text box is entered. Classes to display for If this field is left blank, the modification is sent to all clients. However, if one or more classes of client is entered (separated by spaces) it will only be used for clients that fall into those classes.
  4. To change the amount of information that WU-FTPD sends to clients when they connect, adjust the Greeting level 分野。 If Hostname and version is selected, both the system's hostname and the FTP server version will be sent. If just Hostname is chosen only the hostname will be displayed, while if Neither is selected no information will be sent. The latter two options are the most secure, as an attacker may be able to use your FTP server's version to find a bug in it that could be exploited to take over your system.
  5. If you want to have the server sent a message to clients as soon as they connect, put it in a file and select the From file option for the Pre-login banner file 分野。 Then enter the full path to the message file into the text box next to it.
  6. To change the hostname that WU-FTPD sends in the greeting and other messages, select the second option in the Hostname for messages field and enter some alternative name in the text box. This can be useful if your system's real hostname does not match the name the FTP clients use (server5.example.com instead of ftp.example.com for example).
  7. When you are done with this form, click the Save button to activate your changes. They will apply to all new FTP clients that connect from now on.

On many operating systems, the WU-FTPD configuration will include one or two message and README file definitions by default. Typically the .message file is searched for in every directory and sent to clients, as is the modification time of any file whose name matches the README* pattern.

Any message files that you define that can contain special codes starting with % that are replaced when the file is sent by dynamically generated text. For example, %U is replaced with the client's FTP login name, so a file containing the line _Welcome %U to the example.com FTP server_ would be sent to the client as something like Welcome jcameron to the example.com FTP server 。 According to the WU-FTPD manual page, the available codes are:

Not done

Configuring logging

In a typical default configuration, WU-FTPD will log all uploads and downloads to the file /var/log/xferlog. However, you can choose the types of users that logging will be done for (Unix, anonymous or guest), have the log written to syslog instead, and select to record commands are security violations for some types of users. Logging to the system log gives you more flexibility, as you can choose which file messages are written to – although they will be mixed in with other daemon facility messages. See chapter 13 and the System Logs module for more information on how syslog works and which files it ultimately writes to.

Enabling logging of all commands allows you to track exactly what clients are doing, but can consume a large amount of disk space. The logging of security violations (attempts to violate WU-FTPD's file restrictions, covered in the “Denying access to files” section) can be useful for detecting hackers, and is unlikely to use up much space as such violations are not usually very frequent.

To edit FTP logging-related options in Webmin, the steps to follow are:

  1. On the module's main page, click on the Logging icon to bring up the small logging options form.
  2. To have all FTP commands executed by clients (including trivial ones such as CWD and LIST) recorded in the system log, select types of users for which they should be logged from the Log all commands for 分野。
  3. To change the types of users that transfer logging is done for, select them from the Log transfers for 分野。 The *In directions* sub-field lets you choose whether uploads (Inbound ), downloads (Outbound ) or Both are recorded. On an anonymous FTP server, it may make sense to only record uploads due to the large number of downloads.
  4. To have transfers written to syslog, select System log in the Log transfers to 分野。 Or to tell WU-FTPD to write to the /var/log/xferlog file instead, select XFER log file 。 If Both is chosen, transfers will be logged to both destinations. If you want to use a program like Webalizer (covered in chapter 39) to analyze your FTP server's logs, they must be written to xferlog as the lines that end up being written out by syslog have additional information added and thus cannot be parsed. Anything written to the system log will use the daemon facility, unless WU-FTPD has been compiled to use a different one, such as local7. This can in fact be quite useful, as it allows you to separate out the FTP messages and have them written to a different file, while still enjoying all the benefits of syslog.
  5. To enable the logging of attempted filename security violations, select the types of users that this should be enabled for from the Log security violations for 分野。 These will always been written to syslog.
  6. 保存をクリックします button at the bottom of the page to save and activate the new logging settings.

Limiting concurrent logins

If your system is configured to allow anonymous FTP logins and you expect to receive a lot of traffic, it makes sense to limit the number of connections that can be open to the FTP server at any one time. This puts a ceiling on the network and CPU load that FTP transfers can generate, which is important if the system is being used for some other purpose (such as running a web server).

WU-FTPD allows you to define limits on a per-class basis, so that anonymous clients can be restricted while real Unix users are not. It also lets you specify the times during which restrictions apply, so that a higher limit can be granted when the server is not as heavily used for other purposes (such as at night).

To set up concurrent login limits, follow these instructions:

  1. On the module's main page, click on the Limits and Access Control アイコン。 The form shown in Figure 41-4 will appear in your browser.
  2. The Concurrent user limits table is where limits on the number of connections can be entered. Each row defines a limit that applies to a certain class at certain times. As usual with tables in this module, there will be one empty row at the bottom for adding a new limit (and if this is the first one, the table will only contain that one row). Existing limits can be edited by changing their fields in the table, or deleted by selecting the empty option from the class menu. The fields in each row should be filled in as follows:Apply to class' You must select the name of the class that this limit will apply to from the menu. Multiple limits can be defined for the same class at different times. Maximum users To set a limit for the chosen class, select the second radio button and enter the maximum number of concurrent connections into the adjacent text box. If the Unlimited button is selected, no limit will apply to the class at the specified times. For example, you could add a row that turns off restrictions at night above another row that sets them for the entire day. At times If Any time is selected, the limit will apply all the time. However, if you choose the second option and enter a UUCP-style time specification into the text box, only connections made during that period will be restricted. For example, Any0900-1700 means 9am to 5pm every day, Mo,Tu,We means Mondays, Tuesdays and Wednesdays, Wk means weekdays and and Wk1700-0900,Sa,Su means times outside office hours. WU-FTPD always checks the table in order for an entry that matches a connecting client's class and the current time, and stops when it finds one. This means that entries that specify times (such as Any0900-1700 ) should be placed above those that have Any time selected so that the specific entry is actually used when appropriate. Error message file The full path to a file containing a message that will be sent to clients whose connections exceed the limit. This should explain why they are being rejected, and suggest other times or FTP servers to try.
  3. 保存を押します button at the bottom of the page to activate the connection limits. To add more than one, you will need to re-visit the form so that a new blank row appears in the table.

Restricting clients by IP address

Even though it is possible to block clients from certain addresses by ensuring that they do not fall into any class, there is a feature in the module dedicated specifically to blocking clients based on their IP addresses or hostnames. This can be used to lock out specific hosts that are abusing your FTP server, or to restrict access to clients from only your own company or home network.

The steps to define banned client systems are:

  1. Click on the Limits and Access Control icon on the module's main page to open the form shown in Figure 41-4.
  2. Each row in the Deny access from table specifies an IP address, hostname or pattern to block logins from. As with other tables in this module, it will always an additional empty row for adding a new restricted address. In the Deny from address field you can also enter the full path to a file containing banned addresses, use negated patterns like !192.168.1.* or even the special address !nameserved which matches all clients that do not have a valid reverse DNS address. Only one can be entered though – to block additional addresses, you will need to add more rows. In the Error message file field you must enter the full path to a file containing a message that will be sent to blocked clients. This should explain to connecting users that they have been blocked, and perhaps give a reason why. If you want to add more than one row, you will need to save this form and re-open it so that a new empty row appears at the bottom of the table. Existing restrictions can be edited by just changing their fields, or deleted by clearing out the address.
  3. When you are done, hit the Save button at the bottom of the form to activate the new address restrictions.

Restricting access to FTP commands

WU-FTPD can be configured to restrict the FTP commands that certain types and classes of users can use. This is useful for stopping anonymous clients modifying files, as on most FTP servers they are only allowed to download, not upload, rename or delete. In fact, in its usual default configuration this is exactly how WU-FTPD is configured.

There are five commands that you can restrict access to, all related to server-side data modification. They are:

chmod
Change the Unix permissions of a file on the server (chmod in the Unix FTP client).
delete
Delete a file or directory on the server (del or rmdir in the Unix FTP client).
rename
Change the name of a file or directory (rename in the FTP client).
overwrite
Upload a file with the same name as one that already exists.
umask
Change the default Unix permissions for newly created files (umask in the Unix FTP client).

It is not possible to stop clients using directory listing or download commands. Neither is it possible using this feature to prevent the upload of files that do not already exist – however, this can be achieved by setting directory permissions appropriately, or blocking all uploaded filenames as explained in the “Denying access to files” section.

To define which clients can use which commands, follow these steps:

  1. Click on the Permissions icon on the module's main page.
  2. On the form that appears, the Command restrictions table lists existing commands and the user types and client classes that are or are not allowed to use them. As usual, you can add a new command using the blank row at the bottom, edit existing entries or delete the restrictions on a command altogether by selecting the blank option from the Command メニュー。 The FTP server processes this table in order when a client tries to do something, and uses the selection in the Allow? column for the first entry that matches to decide if it is allowed or not. This means that the order matters, and thus if two entries match the first one will decide what happens. The fields for each row and their meanings are:Command You must select types. The restriction will only apply to the types of user selected in this column. See the “Managing user classes” section earlier in the chapter for details on what each means. For classes Only the client classes selected in this column will be effected by the restriction.
  3. When you are done editing or adding to the table, hit the Save button to activate your changes.

If a client command does not match any entry in the table, it will be allowed by the FTP server (unless blocked by some other filename restriction set elsewhere).

Configuring the WU-FTPD Server module

To change the paths that the module uses for the WU-FTPD configuration files and programs, you will need to click on the standard Module Config link in the top-left corner of the main page. Unlike other modules there are no options related to the user interface, so you will probably not need to adjust anything on the configuration form if the module is working for you. By default, all the configuration fields are set to match the WU-FTPFD package included with your operating system or Linux distribution.

Even though there are fields for configuration files other than ftpaccess, at the time of writing the module does not actually edit those files yet.


Webmin
  1. 基本的なUbuntuFTPサーバー?

  2. Ubuntu 20.04 に FTP サーバーをインストールする方法

  3. Ubuntu 20.04 に FTP サーバーをインストールする方法

  1. JabberIMサーバー

  2. ローカルサーバーに接続する方法は?

  3. CentOS 7 に FTP サーバーをインストールする方法

  1. RaspberryPiでFTPサーバーを設定する方法

  2. ProFTPDサーバー

  3. Debian 10にFTPサーバーをインストールする-ステップバイステップガイド?