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

ProFTPDサーバー

このページでは、FTPプロトコルについて説明し、次にProFTPDサーバーをセットアップする方法とさまざまな目的のためにサーバーを構成する方法について説明します。

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

コンテンツ

FTPとProFTPDの紹介

FTPはファイル転送プロトコルの略で、telnetやSMTPと並んで、インターネットで現在も一般的に使用されている最も古いプロトコルの1つです。 FTPは、サーバーが実行しているオペレーティングシステムに関係なく、クライアントプログラムがリモートサーバー上のファイルを読み取り、書き込み、および削除できるように設計されています。基本的にはファイル共有プロトコルですが、より一般的なNFSおよびSMBプロトコルとは異なり、低速または高遅延のネットワークでの使用に適しています。

通常、FTPは、あるシステムから別のシステムにファイルを転送するために使用されます。これらのファイルは、LinuxディストリビューションCDイメージまたはRPMパッケージである場合があり、インターネット上のさまざまなクライアントホストによって、誰もがアクセスできるようにそれらをホストする大規模なサーバーシステムからダウンロードされます。また、ファイルはWebサイトのページであり、サイト所有者が実行するFTPクライアントによって、WebサーバーとFTPサーバーの両方を実行するシステムにアップロードされます。

FTPプロトコルは、ファイルをダウンロードする方法としてほとんどHTTPに置き換えられていますが、それでも多くの利点があります。最大のものは、ファイルを許可するように構成されていると仮定して、クライアントがサーバーにファイルをアップロードする機能です。もう1つは、クライアントがサーバーからディレクトリ内のファイルのリストをフェッチするために使用できる、半標準のディレクトリリスト形式です。

FTPクライアントがサーバーに接続するときは、ファイル転送を実行する前に、まず自身を認証する必要があります。多くの場合、クライアントは特別な匿名ユーザーとしてログインします。このユーザーはパスワードを必要とせず、通常はファイルのみをダウンロードできるように構成されています。 Unixシステムでは、ほとんどのFTPサーバーは、ローカルユーザーがtelnetまたはSSHに使用するのと同じユーザー名とパスワードでログインし、クライアントに同じアクセス許可を持つ同じファイルへのアクセスを許可します。

FTPプロトコルのもう1つの独自の機能は、クライアントで使用されるデータ形式とサーバーで使用されるデータ形式の間でファイルを変換するためのサポートです。これの最も一般的な使用法は、Unix、Windows、およびMacOS形式間のテキストファイルの変換です。これらの形式はそれぞれ、行の終わりを表すために異なる文字を使用します。この機能は、非テキストデータを破壊するため、画像、実行可能ファイル、ISOなどのバイナリファイルの転送では無効にすることができます。

基本的なUnixftpコマンドから、IEやMozillaなどのブラウザまで、さまざまなFTPクライアントプログラムが存在します。最新のオペレーティングシステムにはすべて少なくとも1つあり、ほとんどすべてに何らかのクライアントが標準で含まれています。 FTPサーバーも豊富にありますが、この章では1つだけに焦点を当てています。ProFTPDは、Unixオペレーティングシステムで利用できる最も柔軟なサーバーだと思います。

すべての種類のUnixにはFTPサーバーが標準で付属していますが、提供されているサーバーは通常、非常に基本的で機能が不足しているか、より強力なWU-FTPdです。後者には多くの構成可能なオプションがありますが、仮想ホスティング、ディレクトリ制限、およびユーザーをホームディレクトリにロックすることに関してはProFTPDほど機能的ではありません。

ProFTPDは通常、/ etc/proftpd.confにある単一の設定ファイルを使用します。このファイルはディレクティブで構成されており、各ディレクティブは通常1行を占め、名前と値があります。各ディレクティブは、隠しファイルの名前やウェルカムメッセージへのパスなど、構成可能な単一のオプションを設定します。複数の行にまたがる単一の仮想サーバーまたはディレクトリにのみ適用される他のディレクティブをグループ化するための特別なコンテナディレクティブもあります。

ProFTPDサーバーモジュール

ProFTPDサーバーモジュールアイコンは、Webminのメインメニューの[サーバー]タブにあります。それをクリックすると、実際にサーバーがインストールされていることを前提として、下の画像に示すようなモジュールのメインページが表示されます。


ProFTPDサーバーモジュール

代わりにメインページに*ProFTPDサーバー/usr/ sbin / proftpdがシステムに見つかりませんでした*のようなエラーメッセージが表示される場合は、サーバーがインストールされていない可能性があるため、モジュールを使用できません。ほとんどのLinuxディストリビューションにはCDまたはWebサイトにProFTPDパッケージが含まれているため、ソフトウェアパッケージモジュール(第12章で説明)を使用してインストールします。パッケージが存在しない場合は、www.proftpd.orgからソースコードをダウンロードし、コンパイルしてインストールします。

他のFTPサーバーがすでにインストールされている場合は、それらが衝突しないように、最初に削除する必要があります。

メインページに表示される可能性のあるもう1つのエラーは、*プログラム/ usr / sbin/ftpdがProFTPDサーバーではないようです*です。これは、Webminが代わりに他のFTPサーバーがインストールされていることを検出した場合に発生します。その場合は、サーバーを削除してProFTPDをインストールする必要があります。

ProFTPDは、FTP接続をリッスンするスタンドアロンデーモンプロセスとして、またはinetdやxinetdなどのスーパーサーバーから、2つの異なるモードで実行できます。前者は接続をより高速に受け入れますが、常に実行されているプロセスによって使用されるメモリが増えるという犠牲を伴います。 ProFTPDプログラムは必要なときにのみ実行されるため、後者は大量のFTPトラフィックを受信することを期待しないシステムに適しています。

スタンドアロンモードはセットアップが簡単で、ほとんどのシステムでメモリが豊富にあるため、この章では、スタンドアロンモードで実行することを前提としています。 ProFTPDサーバープロセスを開始するには、次の手順に従います。

  1. インターネットサービスとプロトコルモジュール(インターネットサービスでカバー)で、ftpという名前の既存のサービスでプログラムが無効になっていることを確認します。 またはプログラムが割り当てられていません 選択されました。これにより、inetdによってFTPサービスが実行されなくなります。サービスを無効にする場合は、必ず変更を適用をクリックしてください。 そのモジュールのメインページにあるボタンをクリックして、変更を有効にします。
  2. 拡張インターネットサービスモジュールで、名前にftpが含まれるサービス(wu-ftpd、proftpd、vsftpdなど)でサービスが有効になっていることを確認しますか? フィールドをいいえに設定 。繰り返しになりますが、モジュールをヒットする必要があります変更を適用 変更をアクティブにします。
  3. ProFTPDサーバーモジュールに戻り、[ネットワークオプション]アイコンをクリックします。
  4. スタンドアロンデーモンを選択します サーバータイプから メニュー。
  5. 保存をクリックします ページ下部のボタン。
  6. モジュールのメインページに戻り、サーバーの起動というラベルの付いたボタン 下部に表示されます。それを押すと、ProFTPDデーモンが起動します。
  7. 起動時にデーモンを再起動する場合は、Bootup and Shutdownモジュールを使用して、起動時にコマンド/ usr / sbin/proftpdを実行するproftpdというアクションを作成します。実際のパスは、実行しているLinuxディストリビューションに応じて、またはパッケージを使用せずにプログラムを自分でコンパイルしてインストールしたかどうかに応じて、/ usr / local / sbin/proftpdまたは/usr/sbin/in.proftpdになります。また、一部のProFTPDパッケージには、このような起動スクリプトがすでに含まれている場合があります。これを有効にする必要がある場合があります。

ProFTPDを起動したら、コマンドラインのUnixFTPクライアントを使用して独自のシステムに接続することでテストできます。 ftp localhostを実行し、root以外のユーザーとしてログインできることを確認してください。サーバーがバージョン情報を表示しないようにデフォルトで構成されていない限り、ユーザー名の入力を求める直前にftpコマンドで表示されるバージョンを確認することで、サーバーが実際にProFTPDであることを確認できます。

inetdまたはxinetdからProFTPDを実行する

スーパーサーバーから実行するようにProFTPDを設定することもそれほど難しくありません。システムのメモリが不足している場合や、FTP接続をほとんど受信しない場合は、この方法をお勧めします。これを行う前に、既存のproftpdサーバープロセスを強制終了し(Running Processesモジュールで簡単に実行できます)、起動時にそれを開始するアクションを無効にするか削除する必要があります。

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

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

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

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

ProFTPDがinetdまたはxinetdから実行するように設定されたら、コマンドラインのUnixFTPクライアントを使用して独自のシステムに接続することでProFTPDをテストできます。 ftp localhostを実行し、root以外のユーザーとしてログインできることを確認してください。テスト接続がサービスを利用できませんなどのエラーで失敗した場合 、最も可能性の高い原因は、ProFTPDがスタンドアロンサーバーとして実行するように構成されていることです。これは、次の手順で簡単に修正できます。

  1. ProFTPDサーバーモジュールに移動し、メインページの[ネットワークオプション]アイコンをクリックします。
  2. サーバータイプから 表示されるフォームのメニューで、Inetdから実行を選択します 。
  3. 保存を押します ページ下部のボタン。

この章の残りの部分の手順は、ProFTPDが実行されているモードに関係なく正常に機能します。唯一の違いは、変更の適用です。 構成の変更を有効にするためにサーバープロセスを再起動する必要がないため、ボタンはメインページに表示されません。代わりに、変更は開始される次のFTPセッションに適用されます。

ProFTPDサーバーモジュールの使用

ProFTPDはApacheと非常によく似た構成ファイル形式を使用するため、このモジュールのユーザーインターフェイスは多くの点でApache構成モジュールと同じです。構成の最上位には、サーバー全体に影響を与えるグローバル設定があります。その下には仮想サーバーがあり、次に匿名FTPオプション、ディレクトリごとのオプション、および特定のFTPコマンドにのみ適用されるオプションがあります。

各接続またはFTPコマンドに適用されるオプションは、接続されている仮想サーバー、ログインの種類、要求されたファイルが存在するディレクトリ、および使用される特定のFTPコマンドによって決まります。階層の下位にあるオブジェクトによって設定されたオプションは、上位レベルのオブジェクトをオーバーライドするため、サーバーへのアップロードを防ぐことができますが、ディレクトリには許可します。同様に、より具体的なディレクトリ(/ usr / local / uploadなど)のオプションは、その親(/ usr / localなど)のオプションをオーバーライドします。

特殊なケースはデフォルトサーバーで、特定の仮想サーバーに接続しないクライアントの設定を定義します。 Apacheとは異なり、デフォルトサーバーで設定されたオプションは仮想サーバーに影響しません。代わりに、それらすべてに影響する設定を指定する場合は、ProFTPD構成の特別なグローバルセクションにある必要があります。これは、ディレクトリおよびFTPコマンド固有のオプションにも適用されます。

モジュールには、ツリー内の各オブジェクトのオプションを編集するためのページがあり、さらに下のオブジェクトにリンクするアイコンが含まれています。たとえば、仮想サーバーのオプションページには、そのサーバーに適用されるさまざまなカテゴリのオプション(ロギング、ユーザーとグループなど)のアイコンと、仮想サーバー内に独自のオプションを持つディレクトリまたはFTPコマンドのアイコンがあります。サーバ。匿名FTP接続に固有のオプションのアイコンもあります。

階層の各ページには、その下にオブジェクト(ディレクトリやFTPコマンドのグループなど)を追加するためのフォームと、構成があります。 現在のオブジェクトを変更または削除するためのアイコン。すべてのページには、ディレクティブの編集も含まれています アイコンを使用すると、ディレクトリ、仮想サーバー、またはページが表すものすべてのProFTPDディレクティブを表示して手動で変更できます。例外はデフォルトのサーバーページです。このページは変更または削除できず、ディレクティブを構成ファイルの残りの部分から分離できないため、このようなアイコンはありません。

一見すると、モジュール内の一部のフォームは、オブジェクトに関連する一部のカテゴリで使用可能なほとんどすべてのProFTPDオプションのフィールドを表示するため、気が遠くなるように見える場合があります。ただし、これらのオプションの多くは非常に特殊化されており、ほとんどの場合無視できます。この章のさまざまなセクションの手順では、いくつかの結果を達成するために変更する必要がある手順を説明しています。他の手順は、通常はデフォルトで十分なので、そのままにしておくことができます。

リリースされたProFTPDの新しいバージョンはそれぞれ新しいディレクティブをサポートしているため、このモジュールは実行中のバージョンを検出し、ユーザーインターフェイスを調整して、バージョンに有効なフィールドのみを表示できます。これは、フォームがすべてのシステムで完全に同じように見えるとは限らず、古いリリースを実行している場合、この章の手順の一部がFTPサーバーで有効でない可能性があることを意味します。

仮想サーバーの作成

おそらくProFTPDの最も便利な機能は、仮想FTPサーバーのサポートです。これにより、特定のIPアドレスに接続するクライアントに適用されるまったく異なるオプションのセットを定義できます。ほとんどの点で、これらはApacheのIPベースの仮想サーバーに似ており、ほとんどのWebサイト管理者はこれに精通している必要があります。

仮想サーバーは、システムに複数のIPアドレスがある場合にのみ本当に役立ちます。通常、これは、[ネットワーク構成]ページで説明されているように、インターネットに接続されたネットワークインターフェイスに仮想IPアドレスを追加することによって行われます。通常どおり、追加のIPアドレスはシステムに適切にルーティングする必要があります。ISPに接続して静的アドレスを1つだけ割り当てた場合、仮想インターフェイスを追加して機能することを期待することはできません。 Apacheとは異なり、ProFTPDは、FTPプロトコルにプロビジョニングがないため、名前ベースの仮想サーバーをサポートしていません。クライアントはサーバーに接続先のホスト名を通知しないため、FTPサーバーは、接続が受信されたIPアドレスのみを使用して、クライアントが必要とする仮想サーバーを判別できます。

システムがFTP接続を受信すると、ProFTPDは接続されたアドレスをすべての構成済み仮想サーバーのアドレスと比較します。最初に一致するものは、接続に適用されるオプションを定義します。一致するものが見つからない場合は、代わりにデフォルトのサーバーが使用されます。

システムに新しい仮想FTPサーバーを追加するには、次の手順に従います。

  1. ネットワーク構成モジュールで、システムの外部ネットワークインターフェイスに新しい仮想IPアドレスを追加します。起動時にアクティブになり、現在アクティブになっていることを確認してください。
  2. ProFTPDサーバーモジュールに戻り、メインページの下部にある[仮想サーバーの作成]フォームまで下にスクロールします。
  3. 住所 フィールドに、割り当てたIPアドレスを入力します。すでに定義されている他の仮想サーバーでは使用しないでください。
  4. ポートを離れる フィールドをデフォルトに設定 。
  5. サーバー名 フィールドで、2番目のラジオボタンを選択し、接続しているクライアントに表示されるこのサーバーの名前を入力します。たとえば、_ExampleCorporationのFTPサーバー_と入力できます。 デフォルトの場合 を選択すると、代わりにProFTPD1.2.2rc2Serverのようなメッセージが表示されます。
  6. 作成を押します サーバーを追加するボタン。作成されると、新しいサーバーのオプションページに移動します。
  7. モジュールのメインページに戻り、変更の適用をクリックします ボタンを押してアクティブにします。

仮想サーバーを作成したら、メインページのアイコンをクリックしてから、カテゴリアイコンのいずれかをクリックして、仮想サーバーに適用するオプションを設定できます。これらのいくつかについては、この章の後半で詳しく説明します。 仮想サーバーの構成をクリックして、仮想サーバーの属性を変更することもできます。 アイコンをクリックし、フォームのフィールド(作成フォームのフィールドと同じ意味)を編集して、保存をクリックします。 。または、仮想サーバーの削除を押して完全に削除することもできます 構成フォームのボタン。

匿名FTPの設定

デフォルトの構成では、ProFTPDは通常、すべてのUnixユーザーが通常のパスワードでログインし、telnetまたはSSH経由でログインした場合と同じ権限でシステム上のすべてのファイルにアクセスできるようにします。一部のパッケージでは、デフォルトサーバーでも匿名FTPが有効になっているため、誰でも匿名ユーザーとして接続して特定のディレクトリのファイルを表示できます。新しい仮想サーバー用に匿名FTPを設定するには、クライアントが実行できることとアクセスできるディレクトリを構成し、次の手順に従います。

  1. モジュールのメインページで、匿名FTPを構成するデフォルトサーバーまたは仮想サーバーのアイコンをクリックします。
  2. 仮想サーバーのオプションページで、*匿名FTP*アイコンをクリックします。このサーバーに初めてセットアップする場合は、匿名FTP設定を入力するための小さなフォームが表示されます。
  3. ディレクトリに制限 [フィールド]に、匿名クライアントを制限するディレクトリ( /home/example.com/anonftp など)を入力します。 。
  4. ユーザーとしてファイルにアクセス オプションで、2番目のラジオボタンを選択し、 ftpなどの非特権Unixユーザーの名前を入力します または誰も 。クライアントは、選択したディレクトリに制限されるだけでなく、そのUnixユーザーのアクセス許可を持つファイルにのみアクセスできます。当然、実際にディレクトリとそこに含まれるファイルを読み取って一覧表示できることを確認する必要があります。このユーザーは、ProFTPDの拒否リストに含まれていないか、無効なシェルを持っている必要があります。 ログインできるユーザーの制限をご覧ください このリストの編集と任意のシェルを持つユーザーの許可の詳細については、この章の後半のセクションを参照してください。
  5. クライアントが前のフィールドで設定したユーザーのグループ権限を使用できる場合は、[*グループとしてファイルにアクセス*]フィールドをデフォルトに設定したままにします。 。それ以外の場合は、2番目のラジオボタンを選択し、そのフィールドにグループ名を入力します。
  6. 作成を押します ボタンをクリックして、匿名FTPの初期構成を設定します。成功すると、ブラウザは匿名FTPオプションページにリダイレクトされます。このページには、匿名FTP接続に関連する構成可能なオプションのさまざまなカテゴリのアイコンが表示されます。
  7. 認証をクリックします そして、ユーザー名エイリアステーブルに匿名と入力します ログインユーザー名の下 、および手順4で実際のユーザー名で選択したユーザーの名前 。これは、匿名でログインしているクライアントにそのユーザーのアクセス許可を与える必要があることをProFTPDに通知します。
  8. 保存をクリックします ボタンをクリックして、匿名FTPオプションページに戻ります。
  9. FTPコマンド フィールドにWRITEと入力します 作成を押します ボタンをクリックして、サーバー上のデータを変更するFTPコマンドに適用されるオプションを定義するプロセスを開始します。コマンドごとのオプションページに移動します。
  10. アクセス制御をクリックします アイコンをクリックし、すべてのクライアントを拒否を選択します アクセス制御で ポリシーフィールド。これは、匿名クライアントによるファイルのアップロード、削除、または名前変更の試みをブロックするようにProFTPDに指示します。
  11. 保存をクリックします ボタン。
  12. モジュールのメインページに戻り、変更の適用を押します。 。すべてが機能していることを確認するには、匿名ユーザーとして仮想サーバーにログインし、いくつかのファイルをダウンロードしてみてください。

システムを使用してさまざまな顧客の複数のWebサイトとFTPサイトをホストしている場合は、それぞれに独自の仮想匿名サーバーを割り当てて、FTP経由でファイルを利用できるようにすることができます。ブラウザは、ftp:// URLには匿名ログインが必要であり、ほとんどの場合、認証を必要とするFTPサーバーをうまく処理できないと想定しています。

ユーザーをホームディレクトリに制限する

デフォルトでは、有効なUnixユーザー(匿名ではない)としてProFTPDにログインするクライアントは、ユーザーがSSHまたはtelnet経由でログインした場合と同じように、システムのファイルシステム全体を閲覧できます。ただし、これは、信頼できないユーザーが複数いて、お互いのファイルが表示されないようにするシステムでは必ずしも望ましいとは限りません。 Unix権限を使用して、ユーザーが互いのディレクトリを一覧表示するのを停止できますが、Webサーバーも実行していて、そのhttpdユーザーが全員のファイルにアクセスできる必要がある場合は問題が発生します。

幸い、ProFTPDを使用すると、ユーザーをホームディレクトリやその他のディレクトリに簡単に制限できます。これはFTP接続にのみ適用されるため、同じユーザーがtelnetまたはSSHで接続できる場合はまったく役に立ちません。ただし、/ bin / falseのようなシェルをユーザーに与えることで、ユーザーがFTP経由でのみ接続できるようにするのは簡単です。仮想ホスティングサーバーでは、ユーザーは実際にWebサイトのファイルをアップロードするだけでよく、Unixシェルアクセスはまったく必要ありません。 ProFTPDがユーザーのアクセスを拒否しないように、/ bin/falseまたは選択した機能しないシェルが/etc/shellsファイルに含まれていることを確認してください。

FTPクライアントがアクセスできるディレクトリを制限するには、次の手順に従います。

  1. 単一の仮想サーバーのみに適用するように制限する場合は、モジュールのメインページにあるアイコンをクリックしてから、ファイルとディレクトリをクリックします。 仮想サーバーオプションページのアイコン。ただし、ユーザーが別の仮想サーバーに接続することで制限を回避できる可能性があるため、これはお勧めできません。代わりに、ファイルとディレクトリを押すだけです。 グローバル構成のアイコン メインページのセクション-それに定義されている制限はすべてのサーバーに適用されます。いずれにせよ、サーバーがディレクトリを一覧表示する方法と使用可能なディレクトリを構成するためのページ(下のスクリーンショットに表示)が表示されます。
  2. ユーザーをディレクトリに制限する フィールドは実際には、一度に1つのディレクトリ制限を入力できるテーブルです。常に1つの空白行があり、これが作成した最初の制限である場合は、それだけが含まれます。 ディレクトリ 列で、ホームディレクトリを選択します それがユーザーを制限したい場所である場合に。または、3番目のラジオボタンを選択して、 / homeのようなパスを入力することもできます。 または/var / www ユーザーをそのディレクトリに限定します。 〜/ public_html など、ユーザーのホームディレクトリからの相対パスを入力することもできます。 。 Unixグループ 列で、全員を選択します 制限をすべてのユーザーに適用するには、または2番目のラジオボタンを選択してグループ名を入力し、そのグループのメンバーにのみ適用するようにします。 users、staff のように、名前をカンマで区切ることにより、複数のグループを入力できます。 。
  3. 保存をクリックします ボタンをクリックして、仮想サーバーのオプションページに戻ります。別の制限を追加する場合(別のグループやディレクトリなど)、ファイルとディレクトリをクリックします。 もう一度、テーブルの新しい空白行に入力します。
  4. 完了したら、モジュールのメインページに戻り、[変更の適用]ボタンを押して制限をアクティブにします。


ファイルとディレクトリの形式

今後、制限されたユーザーが接続すると、指定されたディレクトリ外のファイルを表示したり、制限されているディレクトリを特定したりすることができなくなります。この種の制限をサポートする他のFTPサーバーとは異なり、ProFTPDは外部プログラムに依存しないため、/ bin/lsなどのファイルやライブラリをディレクトリにコピーする必要はありません。

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

ProFTPDでは、有効なユーザー名とパスワードを持っている場合でも、すべてのUnixユーザーがログインできるわけではありません。別の/etc/ ftpusersファイルには、認証が許可されていないユーザーが一覧表示されます。これには通常、bin、daemon、uucpなどのシステムアカウントが含まれます。さらに、rootユーザーにログインを許可するかどうかを制御する個別の構成オプションがあります。 FTPプロトコルによって送信されるパスワードは暗号化されていないため、デフォルトでは暗号化されておらず、rootによる認証を許可することは主要なセキュリティリスクになる可能性があります。

また、ProFTPDはデフォルトで、有効なシェルを持たないユーザーがログインできないようにします。有効なシェルは、/ etc/shellsファイルにリストされているシェルです。この機能は、POP3サーバーに接続して電子メールをダウンロードすることしかできないと想定されているユーザーなど、多数のユーザーがログインできないようにする場合に役立ちます。ただし、必要に応じてオフにすることができます。

拒否されたユーザーのリストとその他のログイン制限を編集するには、次の手順に従います。

  1. モジュールのメインページで、拒否されたFTPユーザーをクリックします。 アイコン。表示されるフォームには、ブロックされたすべてのUnixユーザーを一覧表示するテキストボックスがあります。それを編集して、ログインできない、またはログインを許可する必要のあるものを追加または削除し、保存をクリックします。 ボタン。
  2. rootユーザーが接続できるようにするには、認証をクリックします。 アイコンをクリックして、 rootによるログインを許可しますか?を変更します はいへのフィールド 。
  3. リストにないシェルを持つユーザーがログインできるようにするには、[*有効なシェルを持つユーザーのみのログインを許可しますか?*]フィールドをはいに変更します。 同じように。
  4. 保存を押します ボタンをクリックしてメインページに戻り、変更の適用をクリックします。 新しい制限をアクティブにします。

rootユーザーと無効なシェルを持つユーザーがログインできるようにするためのオプションは、認証の下で仮想サーバーごとに設定することもできます。 仮想サーバーオプションページのアイコン。ただし、ユーザーは接続するサーバーを選択できるため、セキュリティの観点から、単一のサーバーのみのクライアントがログインできるようにすることは一般的に有用ではありません。

ディレクトリリストオプションの設定

通常、FTPクライアントがディレクトリリストを要求すると、ProFTPDはls-lコマンドによって生成された形式で完全に正確なリストを返します。ただし、これにより、ユーザーやグループの名前やシンボリックリンクの宛先など、システムに関する情報が多すぎる場合があります。多くの場合、他の理由でFTPアクセス可能なディレクトリに保持する必要があるため、クライアントに関係のない特定のファイルを非表示にすると便利です。この種の情報隠蔽は、匿名のFTPユーザーに最適です。これは、匿名のFTPユーザーが、システムについて知る必要のないものを発見できないようにするためです。

ディレクトリリストの形式を変更するには、次の手順に従います。

  1. モジュールのメインページで、ディレクトリリストを変更するデフォルトサーバーまたは仮想サーバーのアイコンをクリックして、オプションページを表示します。
  2. 匿名クライアントのリストされた情報のみを変更したい場合は、匿名FTPをクリックします。 アイコンをクリックして、匿名FTPオプションページに移動します。そうしないと、通常のUnixユーザーも影響を受けます。
  3. ファイルとディレクトリをクリックします アイコンをクリックすると、さまざまなリストオプションを設定するための図40-3のようなフォームが表示されます。
  4. 特定のグループ所有者のファイルを非表示にするには、1つ以上のグループ名をスペースで区切って[*グループが所有するファイルを非表示]フィールドに入力します。この方法で隠されたファイルは、Unixのアクセス許可またはサーバーの構成で禁止されていない限り、ダウンロード、名前変更、または削除できることに注意してください。
  5. 同様に、特定のユーザー所有権を持つファイルを非表示にするには、ユーザーが所有するファイルを非表示にすると入力します。 Unixユーザー名のリストを含むフィールド。
  6. 匿名FTPユーザーが読み取れないファイルを非表示にするには、アクセスできないファイルを非表示にしますか?を変更します。 はいへのフィールド 。
  7. ProFTPDでリスト内のシンボリックリンクをターゲットファイルのアクセス許可とサイズに変換するには、[*シンボリックリンクを表示しますか?*]フィールドをはいに変更します。 。通常、リンクとターゲット名の両方が表示され、表示される権限と所有権はリンクのものです。ただし、この機能を有効にしても、リンクターゲットは匿名FTPディレクトリ内にある必要があります。
  8. 通常、ディレクトリリストには、ファイルの実際のユーザーとグループ所有者が含まれます。これを変更するには、*ディレクトリリストの偽のグループ?*フィールドをはい、グループとしてに設定します。 。次に、下のボックスから ftpのいずれかを選択します グループの所有者を常にftpとして表示するように強制するか、3番目のラジオボタンを使用して、隣接するテキストボックスに入力したグループとして表示します。 *接続グループ*オプションは、ファイルが接続ユーザーのプライマリグループによって所有されているように見えるため、匿名でないクライアントに対してのみ実際に意味があります。
  9. 同様に、ファイルのUnixユーザー所有者をディレクトリリスト内の偽のユーザー?で変更できます。 分野。 *接続ユーザー*を選択した場合、ファイルは現在FTPサーバーにログインしているユーザーが所有しているように見えます。
  10. デフォルトでは、ProFTPDは実際のUnixファイルのパーミッションをリストに表示します。代わりに偽物を強制的に表示するには、ディレクトリリストの偽物のアクセス許可で2番目のオプションを選択します フィールドに入力し、 0644のような8進数を入力します chmodコマンドで使用される種類のもの。もちろん、これは、クライアントがファイルをダウンロードまたはアップロードしようとした場合に適用される実際のアクセス許可には影響しません。
  11. リストで.loginや.profileなどのドットファイルを非表示にするには(lsコマンドが通常行うように)、*Showfilesを.で始まるように設定します。リストにありますか?*フィールドをはい
  12. 最後に、保存を押します ページの下部にあるボタンをクリックして、ProFTPD構成ファイルを更新します。
  13. モジュールのメインページに戻り、変更の適用を押します。 ボタンをクリックして設定をアクティブにします。

As well as hiding certain files (as explained in steps 4 and 5), you can also prevent clients from reading or writing those files altogether. This can be done using the Make hidden files inaccessible? field, explained in the Restricting access to FTP commands section later in the chapter.

Message and readme files

ProFTPD can be configured to display messages to clients when they login or enter certain directories. This can be useful for notifying users of possible mirror sites, the locations of various common files on the server, and the details of the contents of a directory.

To set the messages that are displayed to clients, follow these steps :

  1. If you want the messages to be used by all virtual servers, click on the Authentication icon on the module's main page. To set messages for a specific virtual server, click on its icon and then on Authentication on the server options page. Either way, the same form will be displayed. It is also possible to set most of the message file options below for only anonymous clients by clicking on the Anonymous FTP icon on the virtual server page and then on Authentication 。 Naturally, you cannot set the pre-login message because the server does not know if a client is anonymous or not at that stage.
  2. In the Pre-login message file field, enter the full path to a file whose contents should be sent to clients as soon as they connect. If you don't want any message file to be used at all, select None 代わりは。
  3. In the Post-login message file field, enter the path to a text file whose contents will be sent to clients after they have been properly authenticated. If the client is limited to a directory (because it logged in anonymously or has a home directory restriction in force), the file must be within and relative to that directory. If the filename is relative (like welcome.txt ), it will be searched for in the directory that the client is initially placed in.
  4. To set a message sent to clients when they request to disconnect, fill in the Logout message file 分野。 Again, this must be relative to and under any directory that the client is restricted to.
  5. If you have a restriction on the maximum number of simultaneous logins in force, you can set the message sent to clients blocked by it by filling in the Too many connections message file 分野。 You should enter a full path, which can be anywhere on your system. See the Limiting concurrent logins section for more details.# Hit the Save button at the bottom of the page to go back to the global, virtual server or anonymous FTP options page.
  6. Click on the Files and Directories icon on the same page.
  7. In the Directory README filename field, enter a relative name like readme.txt that will be searched for in each directory that a client enters. If this is the first time the client has entered the directory in this session (or if the file has changed since the last time), its contents will be sent to the FTP client.
  8. To have the server send a message to clients suggesting that a particular file should be read, fill in the *Notify user of readme files matching* field. If files in the directory matching the specified regular expression (like README.* ) exist, a short message containing their names and modification times will be sent.
  9. 保存をクリックします button on this form, then return to the module's main page. Finally click the Apply Changes button to activate the new message file settings.

The files sent to the client by the options covered above can contain certain special cookies that start with a %, which are replaced by ProFTPD with text determined at the time of sending. According to the ProFTPD documentation, the currently supported cookies are :

Not all may make sense in all situations though - for example, %U will not be set in the pre-login message file.

Setting per-directory options

The ProFTPD module allows you to set options that apply only to a specific directory, rather than globally or to an entire virtual server. This allows you to do things like hide a directory from clients, allow uploads by anonymous clients in just one location, or set the user and group ownership of files added to a directory.

To create a new set of per-directory options, follow these steps:

  1. If you want the options to apply to all virtual servers, enter the directory into the Directory path field in the *Add per-directory options for* form on the module's main page and hit the Create ボタン。 Alternately, you can limit them to a particular virtual server by clicking on its icon and using the same form on the virtual server options page. Or you can define options that only apply to anonymous clients by hitting the Anonymous FTP icon for a virtual server and using its directory options creation form. In all cases, the directory should be entered as an absolute path like /usr/local 。 It is also possible to specify a path relative to the connecting user's home directory, like ~/public_html 。 You can even enter a path in a particular user's home directory, like ~jcameron/www 。 Normally, the options will apply to the directory and all its contents and subdirectories. To have them apply to only the contents and not the directory itself, add /* to the end of the path that you enter, like /usr/local/*
  2. After hitting Create , you will be taken to a page of option category icons for the directory as shown in Figure 40-4. As usual, clicking on these icons will take you to forms for configuring various settings that apply only to requests for and listings of that directory.
  3. To totally deny access to clients, click on Access Control and change the Access control policy field to Deny all clients, then click Save
  4. Normally, files uploaded by clients will end up owned by the Unix user that the client logged in as. To change this, click on the User and Group icon and enter a username for the *Owner of uploaded files* field. Uploaded files' group will be the primary group of the specified user, unless you fill in the Group owner of uploaded files field as well. Again, click Save after making any changes to return to the per-directory options page.
  5. To limit only the uploading or downloading of files in this directory, you will need to create a set of per-command options under it. The Restricting access to FTP commands section explains how.
  6. To activate your changes for this directory, return to the module's main page and hit the Apply Changes ボタン。


The per-directory options page

You can also remove a directory options object from the ProFTPD configuration entirely by clicking on Configure Directory and then hitting the Delete directory config ボタン。 All settings and per-command options for the directory will be immediately and permanently deleted from the FTP server's configuration.

If you define options for both a directory and one of its children (such as /usr/local and /usr/local/bin ), ProFTPD will always give precedence to the most specific directory when deciding which options to apply to a particular client request. This means that a setting made for /usr/local will apply to a download of /usr/local/bin/foo, unless it is overridden by a setting for /usr/local/bin.

Restricting access to FTP commands

When a client wants to download or upload a file, list a directory or perform any other operation it sends a command to the server. ProFTPD can be configured to restrict which commands a client can use for a particular virtual server or directory, or when logged in anonymously. However, before you can do this you need to have a basic understanding of which FTP commands exist and what they do. The table below lists the ones that are relevant for access control purposes :

ProFTPD allows you to define options that only apply to particular client commands or groups of commands. Typically, this is used to deny access to certain operations, such as uploading by anonymous FTP users. It is also possible to allow or deny only certain Unix users, or only clients connecting from certain addresses.

To create a new set of per-command options, follow these steps:

  1. First decide if the options should apply to commands only in a particular directory, only to clients of a virtual server, only to anonymous clients or to all users of your FTP server. On the per-directory, virtual server, anonymous FTP and main pages is a form titled Add per-command options for 。 In the FTP commands field, enter one or more commands from the list above, separated by spaces. When you hit the Create button, your browser will be taken to the page shown in Figure 40-5.
  2. Click on the Access Control icon to bring up a form for restricting who can use these commands.
  3. To completely deny access to everyone, change the *Access control policy* field to Deny all clients 。 Conversely, to allow access select Allow all clients 代わりは。 This is most useful if you are editing options for commands within a directory and there is a set of options for the same commands at a higher level (such as for the virtual server or anonymous FTP) that denies access. For example, typically anonymous clients cannot use the WRITE commands, but you may want to allow it for a particular directory.
  4. To only allow certain Unix users or members of certain group access to the commands, fill in the Only allow users and Only allow group 田畑。 Multiple user or group names must be entered separated by spaces.
  5. Similarly, to deny certain users and groups while allowing everyone else access to the FTP commands, fill in the *Deny users* and Deny groups 田畑。
  6. The Restrict access table can be used to block clients from certain IP addresses by entering a series of rules. The three radio buttons at the top control the order in which entries in the table are evaluated. If Deny then allow is selected, any client that matches a Deny row or which does not match an Allow row will be blocked. Conversely, if Allow then deny is chosen only clients that match a Deny row and do not match an Allow will be prevented from using the commands. This mode is also the default. The table will always have one empty row for adding a new rule, and because this is a new set of per-commands options that is all it will contain. In the empty row select either Allow or Deny from the Action メニュー。 Then from the Condition menu choose one of the following to determine which clients match and thus are allowed or denied. *All *All clients match, no matter where they are from. *None *No clients match the rule. *IP address *Only clients from the IP address entered in the adjacent text field match. *Network *Only clients from the IP network entered match. The network address must be a partial IP with a trailing dot, like 192.168.1. 。 *Hostname *Only clients whose IP address reverse-resolves to the entered name match. You can specify an entire domain by putting a dot at the front, like .example.com 。 If you want to add more than one rule, you will need to re-enter this page after saving so that a new blank row appears. To delete a rule, select the blank option from the Action メニュー。
  7. When you are done choosing who can use the FTP commands, hit the Save ボタン。 Then return to the module's main page and click Apply Changes to make the restrictions active.


The per-command options page

Configuring logging

By default, ProFTPD logs all transfers to the file /var/log/xferlog in the standard FTP logging format (unless a different path has been selected at compile time). However, you can configure the server to log transfers to and from each virtual server differently, and anonymous FTP traffic as well. This is most useful in a virtual hosting environment, in which your system hosts FTP sites for many different customers.

It is also possible to define additional log files that use different formats, and optionally include only a subset of FTP commands. This can be useful if you only care about uploads, and don't want your log files clogged up with useless information.

To configure where and how logs are written globally or for an individual virtual server, the steps to follow are :

  1. If you want to change the location of the global log file that is used for all transfers (unless overridden by a virtual server), click on the Logging icon on the main page. Alternately, if you want to configure a specific virtual server to use a different log file, click on its icon and then on Logging on the virtual server options page. To change the logging settings for anonymous clients only, click on a virtual server icon, then on Anonymous FTP and finally on the Logging icon on the anonymous FTP options page.
  2. On the resulting logging options form, the *FTP transfers logfile* field controls where logs are written to. To specify a file, select the last option and enter a full path like /var/log/example.com.xfers into the adjacent text field. To turn off logging altogether, select Logging disabled 。 To use the global default, select the Default option (if you are editing the global logging settings, ProFTPD will use the compiled-in default log file /var/log/xferlog).
  3. The Custom logfiles table can be used to define additional logs for specific commands and with arbitrary formats. As usual, it will always have one empty row for adding a new custom log file. To add one, fill in the fields under these headings :*Logfile *The full path to the log file, such as /home/example.com/ftplogFor FTP commands *If *All is selected, all FTP commands will be logged. However, if you choose the second option only those command classes in the adjacent text box will be included. Recognized classes are NONE (no commands), ALL (all commands), INFO (information requests), DIRS (directory navigation), READ (file download), WRITE (file upload and directory creation), SITE (non-standard commands like CHMOD) and MISC (other miscellaneous commands). Multiple classes must be separated by commas, like READ,WRITE 。 You cannot use the names documented in the Restricting access to FTP commands セクション。 *Log format If *Default is selected, the standard FTP log format will be used. But if the second option is chosen, you must enter a recognized log format name into the text box. The next paragraph explains how to set up named log formats. Because only one empty row appears in the table, you can only add one custom log at a time. To add more, click on the Logging icon again after saving and fill in the new blank row. To delete a custom log, just clear out its field in the Logfile 桁。
  4. 保存を押します button to save the new settings, and then *Apply Changes* on the main page to activate them.

If you want to use your own custom formats for log files, they must first be defined globally. The steps to create a format are :

  1. On the module's main page, click on the Logging icon to bring up the global log file options page.
  2. The Custom log formats table is for defining your own formats. In the first blank field under Format name , enter a short name for your new format such as filesonly 。 In the field next to it under Format string , enter text containing the log codes recognized by ProFTPD, like Downloaded %f at %t 。 The special codes in the string starting with % are replaced by the server with information about the command, as explained in the table below. As usual, you can add more than one custom format by re-entering the page after saving so that a new blank row appears. A format can be deleted by just clearing out its Format name 分野。
  3. 保存をクリックします button to return to the main page, and then click Apply Changes 。 The new format can now be used in custom log files.

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).

This limit can be set globally, on a per-virtual server basis or just for anonymous clients. This means that you can set a limit that applies to all servers, and then increase or decrease it for a particular virtual host. Or you can set a lower limit for anonymous clients versus those that have valid logins.

ProFTPD can also be configured to limit the number of concurrent connections that a single client host can have. This is useful if you want to stop people downloading more than one file at a time from your server, and thus taking more than their fair share of bandwidth.

To set a connection limit for your server, follow these steps:

  1. If you want to set a global limit, click on the *Networking Options* icon on the module's main page. To set a limit for a single virtual server, click on its icon and then on *Networking Options*. To define a limit that applies only to anonymous clients, click on the icon for a virtual server, then on *Anonymous FTP* and finally on the Networking Options icon on the anonymous FTP options page.
  2. On the form that appears, find the Maximum concurrent logins 分野。 To set a limit, select the third radio button and enter a number in the text box next to it. Alternately, you can select Unlimited to turn off any restriction that applies to this virtual server that has been set globally.
  3. To define an error message sent to clients that try to connect when the limit has been reached, enter it into the *Login error message* box in the Maximum concurrent logins 分野。 If the message contains the special code %m it will be replaced with the maximum allowed number.
  4. To set the per-client host limit, fill in the *Maximum concurrent logins per host* field in the same way. It also has a *Login error message* box that can be used to set a message sent to FTP clients that exceed the limit.
  5. If you are editing the global networking options, you can also set a limit on the total number of ProFTPD sub-processes that can be active at any one time. This is useful for protecting your system from denial-of-service using hundreds of useless connections. Just select the second option for the *Maximum concurrent sessions* field and enter a number into its adjacent text box. If Default is selected, no limit will be enforced. If you are running the server from a super-server like inetd or xinetd, this limit will have no effect. Fortunately, both those servers have configuration options that can be used to achieve the same result.
  6. When you are done editing client restrictions, hit the *Save *button at the bottom of the form to update the ProFTPD configuration, and then the Apply Changes button back on the main page.

Restricting clients by IP address

By default, ProFTPD will allow clients to connect from any IP address. However, like everything else this is configurable so that you can restrict access to systems on your own network, either globally or for particular virtual servers. This comes in handy if you are setting up an FTP server that is for internal use only, even though the system it is running on is accessible from the Internet.

To restrict clients by address, follow these steps:

  1. To create a global restriction that will apply to all virtual servers, enter LOGIN into the FTP commands field of the Add per-command options for form on the module's main page, then click Create 。 If you only want to limit who can connect to a particular virtual server, click on its icon before entering LOGIN into the same form on the virtual server options page.
  2. Regardless of what level the restriction is being defined at, you will be taken to the per-command options page shown above. Click on the Access Control icon to go to the aptly-named access control form.
  3. The Restrict access table can be used to block clients from certain IP addresses by entering a series of rules. The three radio buttons at the top control the order in which entries in the table are evaluated. If Deny then allow is selected, any client that matches a Deny row or which does not match an Allow row will be blocked. Conversely, if Allow then deny is chosen only clients that match a Deny row and do not match an Allow will be prevented from logging in. This mode is also the default. The table will always have one empty row for adding a new rule, and because this is a new set of per-commands options that is all it will initially contain. In the empty row select either Allow or Deny from the Action メニュー。 Then from the Condition menu choose one of the following to determine which clients match and thus are allowed or denied.
  • All
    All clients match, no matter where they are from. *None *No clients match the rule.
    IP address
    Only clients from the IP address entered in the adjacent text field match.
    Network
    Only clients from the IP network entered match. The network address must be a partial IP with a trailing dot, like 192.168.1.
    Hostname
    Only clients whose IP address reverse-resolves to the entered name match. You can specify an entire domain by putting a dot at the front, like .example.com 。 If you want to add more than one rule, you will need to re-enter this page after saving so that a new blank row appears. To delete a rule, select the blank option from the Action メニュー。
  1. When you are finished entering client restrictions, hit the Save フォームの下部にあるボタン。 Then return to the main page and click Save and Apply to activate them.

Commonly, you will want to give only clients on a single network access. To do this, select the Deny then allow option, choose Allow from the Action menu , Network from the Condition menu and enter the network address with a trailing dot (like 10.254.1.) into the condition text box.

Limiting uploads

If clients are allowed to upload files to your server, they will be able to choose any name that they wish for uploaded files. Sometimes this is not desirable though - you may want to allow the storing of only image files whose names end with .gif or .jpg, or prevent the uploading of Windows executables with filenames ending in .exe or .com. Fortunately, ProFTPD has configuration options that allow you to set this up.

There are also several other settings that apply to uploads, which control whether clients are allowed to overwrite files and if partially transferred files are visible. All can be set globally, for a single virtual server or for anonymous clients only. The steps to set these options are :

  1. If you want to the settings to be global, click on the *Files and Directories* icon on the module's main page. To have them apply to just a single virtual server, click on its icon and then on Files and Directories 。 Or to effect just clients that login anonymously, click on a virtual server icon, then on Anonymous FTP and finally on Files and Directories icon on the virtual server options page. No matter which configuration object you chose, the files and directories form that appears will be almost identical.
  2. To hide files that are in the process of being uploaded, change the Hide files during upload? はいへのフィールド 。 This tells ProFTPD to use a temporary file whose name starts with .in. for transferred data, which is only renamed to the real filename when the upload is complete. This prevents incomplete partial uploads, and stops files being downloaded or accessed while they are still being sent.
  3. To have ProFTPD delete uploaded files that are not fully transferred, select Yes for the Delete aborted uploads? 分野。 Again, this prevents corrupt partially uploaded files from being created on your system.
  4. To allow users to only create files whose relative names match a certain pattern, fill in the *Allowed uploaded filename regex* field with a Perl regular expression. For example, to only allow GIF files you might enter ^.*\.gif$ 。 Because clients are normally allowed to rename files, this option alone is not enough to stop the creation of invalid filenames. You will also need to block access to the RNFR command, as explained in the Restricting access to FTP commands セクション。
  5. Alternately, you can block the use of certain filenames by filling in the Denied uploaded filename regex field with a regular expression like ^.*\.exe$ 。 If both this and the previous field are set, only files that match the allow expression but not this deny expression will be permitted. Another common use of this option is blocking the upload of .ftpaccess or .htaccess files, which set per-directory ProFTPD and Apache options.
  6. 保存を押します ページ下部のボタン。
  7. If you want to stop clients overwriting files with new uploads, click on the Access Control icon and change the *Allow overwriting of files?* field to No 。 This can be useful on an server that allows anonymous users to upload to a particular directory, perhaps for incoming files of some kind. Don't forget to click Save if you make this change.
  8. Return to the module's main page and hit the Apply Changes button to activate your new filename restrictions.

Manually editing directives

If you prefer to manually edit your ProFTPD configuration file in some cases or just want to see which directives an action in Webmin has set, you can do so using this module. Except for the default server, every object's options page (virtual server, per-directory and per-command) has an icon labeled Edit Directives 。 When clicked on it will take you to a form containing a large text box showing the lines from the configuration file in the section related to the object. You can edit them to your heart's content, then click the Save button to update the actual file. Be aware though that no validation of your input is done. Also, you will need to use the Apply Changes button on the module's main page to activate any changes, as usual.

To view and edit the entire ProFTPD configuration, use the *Edit Config Files* icon on the module's main page. This will bring up a similar form, but showing and allowing the editing of a complete configuration file at once. Because ProFTPD can read multiple configuration files (though the use of Include directives), at the top of the form is a button labeled Edit Directives in File with a menu of filenames next to it. To switch the view to a different file, just select the one you want and hit the button. Normally though only a single proftpd.conf file will be used.


Webmin
  1. WU-FTPDサーバー

  2. 基本的なUbuntuFTPサーバー?

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

  1. Ubuntu14.04にProFTPDをインストールする方法

  2. Ubuntu15.04にProFTPDをインストールする方法

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

  1. TLSを使用したCentOS7での安全なProFTPDサーバーのセットアップ

  2. Debian8にProFTPDをインストールする方法

  3. CentOS7にProFTPDをインストールする方法