サービスご利用中のお客さま

VPSならラピッドサイト。VPS(仮想専用サーバー)販売15年の実績!

04) FTP接続時のアクセス制御

FTP接続は、FTPアカウントのユーザー名とパスワードが一致すれば誰でも利用が可能です。
そこで、さらにセキュリティを高めるために、FTPのアクセス元をIPアドレスで制限することができます。

例えば、Webドキュメントディレクトリ「/www/htdocs」には、社内LANからのFTPアクセスのみを許可し、社内LAN以外からのアクセスは行えない設定をするとします(必要な記述をした「.ftpaccess」ファイルを設置します)。すると下図のように、社内LANからは、「/www/htdocs」に対してFTP接続が可能ですが、それ以外の接続先(外部プロバイダなど)からは、「/www/htdocs」内は表示されません。
また、任意のディレクトリ内に「.ftpaccess」ファイルを設置することで、任意ディレクトリに対してFTP接続制御を行うことも可能です。


「.ftpaccess」ファイルによる制御は、FTP接続を行う場合のみの制御であり、webページの閲覧に影響はありません。

アクセス制御対象のIPアドレスは、リモートホスト(環境変数のREMOTE_ADDR)になります。
また、プロバイダを利用してインターネットに接続している場合、ご自身のIPアドレスが固定されない場合もございますので、ご注意ください。詳細はプロバイダーにお問い合わせください。

LANを構築している場合は、ゲートウェイのIPアドレスになります。LANを構築したネットワーク管理者にご確認ください。

IPアドレスの取得方法や確認方法につきましてはサポート対象外となります。書籍や関連サイト等でお調べいただけますようお願いいたします。

「.ftpaccess」ファイルによるアクセス許可設定

許可設定は、FTP接続時の接続先IPアドレスを指定して、接続を許可するものです。
ここで指定した接続先IPアドレスだけが、FTP接続による操作が可能となります。
許可記述した接続先IPアドレス以外からFTP接続を行うと、「.ftpaccess」ファイルが設置されたディレクトリは表示されず、FTP接続による操作を行うことはできません。
基本的に、接続ホスト先は、IPアドレスでご指定下さい。
ホスト名で指定を行う場合は、当ページ内でご案内している「国指定でFTPアクセス制御を行う方法」にあるhttpd.confの編集が必要になります。

FTP接続許可先を指定する
     <Limit LIST CWD MKD STOR DEL>
      Order Allow,Deny
      Allow from アクセスを許可するIPアドレス
      Deny from all
     </Limit>
ファイル名は、「ドットftpaccess」です。頭の「.」を忘れないようにご注意下さい。

上記記述の「.ftpaccess」ファイルを、ドキュメントルート「/www/htdocs」に設置する事で、ドキュメントルート「/www/htdocs」へのFTPアクセス制御の設定が完了です。
ここで許可した以外のホストからFTP接続した場合、ドキュメントルート内部構造が表示されず、FTP作業を行うことはできません。

複数のFTP接続先を許可設定する
FTP接続を許可する接続先が、複数ある場合は、下図のように、1行ずつ、接続許可先の記述を追加してください。
     <Limit LIST CWD MKD STOR DEL>
      Order Allow,Deny
      Allow from アクセスを許可するIPアドレス その1
      Allow from アクセスを許可するIPアドレス その2
      Allow from アクセスを許可するIPアドレス その3
      Deny from all
     </Limit>

IPの範囲指定について
インターネットに接続する度にプロバイダに接続している場合、自身のIPアドレスは、その度毎に変化します。
このような動的IPアドレスの場合、上部3ブロックは変動せず、4ブロック目の数字が変動します。
その場合、以下のような記述で、上部3ブロックを含む全てのIPを指定する事が可能です。
Allow from 20.30.195.
※3ブロック目の最後にドットが記述されていますので、ご注意下さい。

他のIP範囲指定方法では、例えば、20.30.195.128から20.30.195.191までのホストIPを指定したい場合、ネットマスクを利用して、一括に指定する事ができます。
Allow from 20.30.195.128/26
この記述は、IPアドレスを2進法の8ビットの数字で表した後、ビットストリングと比較して、何ビットマスク分の範囲になるかを記述するものです。
このネットマスクでの範囲指定の計算方法については、サポートしておりませんので、お客様ご自身でお調べ頂けますようお願い致します。

「.ftpaccess」ファイルによるアクセス拒否設定

拒否設定は、許可設定と異なり、FTP接続を行えない接続先IPアドレスを指定するものです。
ここで指定した接続先IPアドレスからのFTP接続を行うと、「.ftpaccess」ファイルが設置されているディレクトリは表示されなくなります。

FTP接続を拒否する接続先についての設定は、以下のような記述になります。
     <Limit LIST CWD MKD STOR DEL>
      Order Deny,Allow ←※この部分が許可設定と異なりますのでご注意下さい
      Allow from all
      Deny from アクセスを拒否するIPアドレス
     </Limit>

拒否設定を複数行う場合は、以下のようになります。
     <Limit LIST CWD MKD STOR DEL>
      Order Deny,Allow ←※この部分が許可設定と異なりますのでご注意下さい
      Allow from all
      Deny from アクセスを拒否するIPアドレス その1
      Deny from アクセスを拒否するIPアドレス その2
      Deny from アクセスを拒否するIPアドレス その3
     </Limit>

「.ftpaccess」ファイルを不可視にする ※重要※

「.ftpaccess」ファイルは、web上から内容を表示させる事が可能です。
そのため、以下の不可視設定を必ず行って頂けますようお願い致します。

「.ftpaccess」ファイルの不可視化については、「httpd.conf」ファイルで対応する方法と、「.htaccess」ファイルで対応する方法の2種類がございます。
「httpd.conf」ファイルで対応した場合は、全ての「.(ドット)」から始まるファイルについて、web上から不可視にする事が可能です。
「.htaccess」ファイルでの対応につきましては、「.ftpaccess」ファイルが設置されているディレクトリ毎に、「.htaccess」ファイルを設置する必要があります。
サーバーセキュリティ上、弊社では「httpd.conf」ファイルでの対応をお薦めしております。

「httpd.conf」ファイルで対応
/www/confディレクトリの中に、「httpd.conf」ファイルがあります。
この「httpd.conf」ファイルは、非常に重要なサーバー設定ファイルとなっております。
このファイルに誤った記述を行うと、サーバーが正しく起動しなくなる場合がございますので、編集作業前には必ずバックアップを作成する事をお薦め致します。
「httpd.conf」ファイルの中に記述されている以下の部分を編集して下さい。
415行目あたり
【変更前】
# The following lines prevent .htaccess and .htpasswd files from being
# viewed by Web clients.
#
<Files ~ "^\.ht">
Order allow,deny
Deny from all
</Files>

【変更後】
# The following lines prevent .htaccess and .htpasswd files from being
# viewed by Web clients.
#
<Files ~ "^\.">
Order allow,deny
Deny from all
</Files>
上記のように「<Files ~ "^\.ht">」にある「ht」の部分だけを削除して下さい。
「.(ドット)」は必ず残して下さい。
上記、httpd.confファイル編集後は、必ず以下のApacheの再起動を行って下さい。
# restart_apache
以上で、対応は終了です。

「.htaccess」ファイルで対応
以下の記述をした「.htaccess」ファイルを、「.ftpaccess」のあるディレクトリに設置して下さい。
<Files ~ "^\.ftpaccess$">
deny from all
</Files>
上記記述のファイルを、アップロードするだけで、対応は終了です。

国指定でFTPアクセス制御を行う方法

国指定でFTPアクセス制御を行う場合は、サーバー設定ファイルである「httpd.conf」ファイルの編集が必要になります。
国指定で制御を行うためには、アクセスログの取得時にホスト名の逆引きをして、国別ドメイン名を判別する必要があります。
そのため、アクセスログを記録するたびに逆引き作業を行うことになり、サーバー負荷が発生する事になります。
この設定を行う場合は、その旨十分にご留意頂けますようお願い致します。

(1) httpd.confファイルで、ホスト名の逆引きを有効にする
/www/conf/httpd.confに記述されている以下の1行を変更する。
【変更前】
HostnameLookups Off

【変更後】
HostnameLookups On

(2) Apacheの再起動を行う
上記編集が完了したら、必ずApacheの再起動を行う。
Apacheの再起動を行わないと、変更が反映されません。
# restart_apache

上記の設定変更で、アクセスログの取得内容が、接続先IPアドレスの記録からホスト名の記録に変更されます。

(3) カントリーコードで拒否設定を記述する
次に、拒否したい国のカントリーコードを用いて、以下のような拒否設定を記述する。
     <Limit LIST CWD MKD STOR DEL>
      Order Deny,Allow
      Allow from all
      Deny from .JP
     </Limit>
上記は、例として日本(カントリーコード=JP)からのFTPアクセスを拒否する記述方法になります。
カントリーコードの前に、ドットが付記されていますので、忘れないようにご注意下さい。

以上で特定の国からのFTPアクセスを拒否する設定は完了です。
「国指定でFTPアクセス制御を行う方法」については、設定代行では承っておりませんので、ご了承頂けますようお願い致します。

コントロールパネルから「.ftpaccess」ファイルを設置

コントロールパネルから、FTPアクセス制御を行いたいディレクトリに、「.ftpaccess」ファイルを設置する事が可能です。

(1)コントロールパネルの「ファイル管理」にアクセス
左側のメニューから「ファイル管理」をクリックします。


(2)webドキュメントディレクトリへ移動
展開したメニューの中の「ファイル一覧」をクリックしてください。
次に、(2)にある入力欄に「/www/htdocs」と入力し、(3)「実行ボタン」を推してください。


(3)「.ftpaccess」ファイルの作成
ディレクトリの内部が表示されたら、下図の「ファイル追加」ボタンを押します。

すると、入力ウィンドウが表示されます。
ここで、下図のようにFTP接続制御の設定を入力します。
新規ファイル名は、「ドットftpaccess」です。頭の「.」を忘れないようにご注意下さい。

新規ファイル名:.ftpaccess
ファイルの内容:
     <Limit LIST CWD MKD STOR DEL>
      Order Allow,Deny
      Allow from アクセスを許可するIPアドレス
      Deny from all
     </Limit>
制御設定記述後、「OK」ボタンを押して、設置の完了です。

(4)「.ftpaccess」ファイルの確認
「.ftpaccess」ファイルは、隠しファイルであり、コントロールパネル上では、通常表示されません。
隠しファイルを確認するには、下図のように「コンテンツ」欄にある「隠しファイル」の文字をクリックしてください。
非表示だった隠しファイルを表示されます。

「.ftpaccess」ファイル名や記述内容を誤りますと、正常にサーバー接続が行えなくなる場合がございますので、ファイル名、記述内容には、充分ご注意下さい。
また、「.ftpaccess」の設置場所は、必ずサーバー管理者様側で確実に管理される事をお薦め致します。
無作為に設定されますと、サーバー管理上、混乱が生じる事となります。

ページの先頭へ戻る