.ftpaccess による FTP接続制限の設定方法

2010年9月 4日 19:25 .ftpaccess による FTP接続制限の設定方法

去年のGumblarの流行以来、レンタルサーバーなどでも、FTPD の設定を行なえる .ftpaccess が使用できるケースが増えてきた気がします。

この .ftpaccess を設定することで、特定のホスト以外からの FTP接続を制限するようなことが可能になります。

.ftpaccess への記述は、 .htaccess のリモートホスト/IPアドレスでのアクセス制限の設定方法と基本的には同じです。

<Limit ALL>
Order Allow,Deny
Allow from ***.***.***.***
Allow from ***.***.***.***
Deny from all
</Limit>

こんな感じで、特定のIPアドレスのみから接続できるように設定しておき、.ftpaccess ファイルを任意のディレクトリに置いておけば、そのディレクトリ以下には指定したIPアドレスからしか FTP接続できなくなります。

なお当然ですが、固定IPアドレスでネットに接続していない場合、この設定を行なった後に、プロバイダの回線を切るなどして IPアドレスが変わってしまうと、設定したディレクトリ以下には FTPで接続できなくなってしまいます。

そうなると、.ftpaccess ファイル自体もそのディレクトリ内にあるので、FTPでしかサーバー内のファイルを触ることができない場合には、.ftpaccess の中身を変更できなくなり、二度とそのディレクトリには FTP接続ができなくなってしまいます(笑)。

なので、オススメするのは、.ftpaccess の内容を編集する CGI を作っておいてブラウザでアクセスできるようにしておき(もちろんそのCGIにはパスワード等でアクセス制限をかけておく)、そのCGI にアクセスした IPアドレスでのみ FTP接続できるようにその都度 CGIから .ftpaccess を修正する、という仕組みを用意しておく、という方法です。

cron などを利用して、ある特定の期間を過ぎると、その IPアドレスで接続できないように自動で .ftpaccess をさらに修正するような仕組みを用意しておけば、さらに安心ですね。

関連するブログ記事
スポンサード リンク
カテゴリー
Web制作技術
タグ
.ftpaccess | .htaccess | FTP | Gumblar | アクセス制限

コメント(11)

 

XML-RPC API で投稿できるブログサービスの情報まとめ

XML-RPC API で投稿できるブログサービスに関する情報を、ある程度まとめてみました。

以下はmetaWeblog.newPost でブログ記事を投稿する際に必要となる情報の一覧です。

ブログサービス名
エンドポイント blogid username password
Seesaaブログ
http://blog.seesaa.jp/rpc ブログURLのサブドメイン部 登録時のメールアドレス ログイン用パスワード
ココログ
https://app.f.cocolog-nifty.com/t/api 管理画面URLの末尾の「blog_id=xxxxx」部分 @niftyユーザー名 ログイン用パスワード
FC2ブログ
http://blog.fc2.com/xmlrpc.php ブログURLのサブドメイン部 登録時のメールアドレス ログイン用パスワード
gooブログ
http://blog.goo.ne.jp/xmlrpc.php goo ID goo ID ログイン用パスワード
DTIブログ
http://blog.dtiblog.com/xmlrpc.php ログインID ログインID ログイン用パスワード
NetLaputa Blog
http://blog.netlaputa.ne.jp/rpc/mt-xmlrpc.cgi ブログURLのサブドメイン部 登録メールアドレス ログイン用パスワード
さくらのブログ
http://blog.sakura.ne.jp/rpc/ ブログURLのサブドメイン部 さくらのサブドメイン(***.sakura.ne.jp) ログイン用パスワード
関連するブログ記事
カテゴリー
Web制作技術
タグ
API | metaWeblog.newPost | xml-rpc | ブログ

コメント(8) | トラックバック(1)

 

正規表現の基本というかメタ文字とかのまとめ

正規表現のメタ文字とかのまとめです。備忘録として。

. (ドット/ピリオド)
任意の一文字。何でもマッチする。
X* (アスタリスク)
「X*」で、0個以上連続した X の意味。
X+ (プラス記号)
「X+」で、1個以上連続した X の意味。
X? (クエスチョンマーク)
「X?」で、0~1個の X の意味。
^X (これなんて読むの?)
「^X」で、X から始まる文字列ならマッチする。
X$ (ドル記号)
「X$」で、X で終わる文字列ならマッチする。
[XYZ]
「[XYZ]」で、X Y Z のどれか一文字にマッチ。
「[A-Z]」で、A~Z のどれか一文字にマッチ。
[^XYZ]
「[^XYZ]」で、X Y Z 以外の一文字にマッチ。
「[^A-Z]」で、A~Z以外の一文字にマッチ。
ABC|XYZ
「ABC|XYZ」で、ABC か XYZ という文字列にマッチ。
(ABC)
「(ABC)」で、一文字単位でなく ABC という文字列を扱える。
EFG(ABC|XYZ)HIK とか (ABC)+EFG みたいな感じで使う。
後で参照可能。
\1 ~ \9
上記の () で囲んだ部分にマッチした文字列を参照。
「^(ABC|XYZ)(DEF|UVW)\1\2$」 こたいな感じでやると \1 にはマッチした ABC または XYZ が、\2 にはマッチした DEF または UVW が入る。
X{3}
「X{3}」で 3回連続した X にマッチ。
X{5,}
「X{5,}」で 5回以上連続した X にマッチ。
X{3,5}
「X{3,5}」で 3~5回連続した X にマッチ。

以下はメタ文字とはまた別。

\d
数値文字。[0-9] と同義。
\D
数値文字以外。[^0-9] と同義。
\w
英数字と「_」(アンダーバー)。 [a-zA-Z0-9_] と同義。
\W
英数字と「_」(アンダーバー)以外。 [^a-zA-Z0-9_] と同義。
関連するブログ記事
カテゴリー
Web制作技術
タグ
正規表現

コメント(1)

 

ブラウザ上で正規表現のチェックができるエディタ「Rubular」

なんかめちゃくちゃ便利なものを見つけてしまいました。

Rubular スクリーンショット

既にはてブ数が300近いサイトなんで、結構有名だとは思うんですが自分的にはかなり感動したのでご紹介。

ブラウザ上で正規表現のチェックができる「Rubular」というサービスです。

ページ上部の「Your regular expression」という項目に正規表現を入力し、その下の「Your test string」の項目に正規表現でチェックしたい文字列を入力。
すると、自動的に右下の「Match result」の項目にマッチした文字列が強調されて表示されます。

試しに、半角数字と半角の「.」(ドット)以外の文字が含まれているかどうかチェックする簡単な正規表現でテストしてみた結果が、以下のスクリーンショットです。

 

しっかり半角数字と半角の「.」(ドット)以外の文字が強調されているのが分かります。

Rubularで正規表現のテスト(1)

さらに、以下のスクリーンショットのように、日本語の正規表現にも対応していることが判明。これは凄い!

Rubularで正規表現のテスト(2)

この Rubular は、Ruby の正規表現エディタらしいですが、基本的なところは perl や PHP とも変わらないと思うので問題なく使えるかと思います。

個人的に、正規表現はちょっと苦手なので、こういうエディタがあると凄く助かりますね。

関連するブログ記事
カテゴリー
Web制作技術
タグ
perl | PHP | Ruby | 正規表現

コメント(6) | トラックバック(1)

 

非技術者のためのパーミッションについての解説

Webデザイナー系の人とかに、仕事で Movable Type の設置からカスタマイズまでレクチャーすることとかが多いんですが、その時に、パーミッションについての解説をすると、妙に感動される人が結構な確率でいらっしゃいます。

曰く「いつもよくわからないまま 755 とか 666 とか設定するように書かれているからその通りにしていたけど、その意味がはじめて理解できた」とのこと。

つまり、Webデザイナー系の人は仕事柄、CGI の設置とかは経験してるんで、パーミッションの変更作業自体は普通にやってるんだけど、技術的なことには別に興味ないから、その作業自体の意味を知る機会がないみたいなんですよね。

というわけで、普段は(比較的初心者向けとは言え)技術者向けの記事ばっかり書いてる気がするんですが、今回は(ある程度Webのことがわかっている)非技術者の人が読むことを意識して、記事を書いてみます。

FFFTPのパーミッション変更画面

メジャーな FTP ソフトである「FFFTP」のパーミッション変更画面を例に出してみましたが、CGI の設置とかを経験している方なら、「拡張子 .cgi のファイルのパーミッションを 755 に変更」という文面は、見たことがあるかと思います。
あと、データファイルやログファイルを「666」に変更、とか。

この「755」とか「666」という数字が何を意味しているのかを簡単に解説してみようかと思います。

これらの三桁の数字は、それぞれ左から「そのファイルのオーナー」「オーナーと同グループのユーザー」「その他のユーザー」の、ファイルに対する権限を表します。
※オーナーとかグループって何、というのはとりあえず保留で。

つまり「755」なら、オーナーの権限は「7」、同グループのユーザーの権限は「5」、その他のユーザーの権限も「5」というわけです。
「666」ならどのユーザーも権限は「6」ですね。「644」なら、オーナーだけ「6」で、それ以外のユーザーは「4」です。

じゃあ、この「7」とか「6」とか「4」とかの数字は何なんだ、という話になるわけですが、ここで先ほどの FFFTP の画面をもう一度見てみてください。

「オーナー」「グループ」「その他」の各枠内に「呼出」「書込」「実行」という項目がありますね。
パーミッションとは、各ファイルに対する「呼出(ファイルを読むこと)」「書込(ファイルに書き込むこと)」「実行(プログラムを起動・実行すること)」の権限の設定だったわけです。

で、「呼出」「書込」「実行」の各権限には以下の数字が割り振られています。

  • 「呼出」= 4
  • 「書込」= 2
  • 「実行」= 1

この数字を足し算したものが、「オーナー」「グループ」「その他」の各権限になります。
「呼出」「書込」「実行」全ての権限があれば「4+2+1 = 7」。
「呼出」「実行」の権限があるなら「4+1 = 5」
「呼出」「書込」の権限なら「4+2 = 6」
という具合です。

ここまでをふまえると、「755」というパーミッションが何を表しているのか、何となくわかりますよね。

  • オーナー:「呼出」「書込」「実行」(4+2+1 = 7)
  • グループ:「呼出」「実行」(4+1 = 5)
  • その他:「呼出」「実行」(4+1 = 5)

というわけです。

「644」なら、

  • オーナー:「呼出」「書込」(4+2 = 6)
  • グループ:「呼出」(4)
  • その他:「呼出」(4)

という感じですね。

だいぶパーミッションの謎も解けてきたんじゃないでしょうか。

後は、最初に出てきた「オーナー」「グループ」「その他」という謎の言葉が理解できれば、納得できそうですね。

この「オーナー」「グループ」「その他」の概念については、本格的に説明するとまたややこしくなるので、あくまで「FTP でファイルをレンタルサーバーetcにアップロードして Webサイトを運営してる非技術者な人」向けに、ざっくりとした説明をしておきます。

まず「オーナー」というのは、FTP でファイルをアップロードしたあなた自身のことです。
つまり、オーナーの権限が「7」というのは、読み込み(サーバー上のファイルの中身を見ること)も、書込み(サーバー上のファイルの内容を変更したり削除したり、上書きアップロードすること)も、実行(CGI 等のブログラムを実行すること)も可能、ということです。

「グループ」というのは、同じサーバー内の自分と同じグループのユーザーのことなんですが、そう言われても意味不明ですよね(笑)。
まあ、要するに「自分と同じサーバーにログインできる、自分以外の誰か」であることは間違いないので、この権限は個人的には「0」にしておくのが良いんじゃないかなと思ってます。
例えば、CGI の配布元にパーミッションを「755」と指定されていた場合も「705」にしとく、とかですね。

そして「その他」のユーザーというのは、文字通りなんですが、ブラウザ経由でアクセスしてくる一般ユーザーは、全てここに含まれます。
ちなみに、サイトオーナー自身であっても、ブラウザでアクセスしている時は「その他」のユーザーですので勘違いのないように。
つまり、「755」というのは、サイトオーナー自身はプログラムの実行も読込も書込(削除や上書きアップロードも含む)できるけど、それ以外のユーザーは書込(削除や上書きアップロードも含む)はできない、という設定なわけです。
誰にでも削除や上書きできちゃうと困りますからね。

ただ、CGI 経由でログファイルなどに書き込む際には、その CGI にアクセスしたユーザー(つまりは「その他」のユーザー)に書込権限がないと、ログの書込み等ができません。
なので、ログファイルやデータファイルには「666」(オーナー以外にも書込権限がある)というパーミッションが求められるケースが多いわけです。

ちなみに、「呼出」(読込)権限がない=「403 Forbidden」のエラーが返ってくる、ということになります。

関連するブログ記事
カテゴリー
Web制作技術
タグ
403 | Apache | CGI | FTP | UNIX | アクセス制限 | パーミッション | レンタルサーバー

コメント(16)

 

XAMPP で Windows 上に Webサーバー(Apache) と PHP と MySQL と FTPサーバー(Filezilla) と メールサーバー(Mercury) を一括でインストール

Windows上にPHPの開発環境を用意する上で、非常に便利な XAMPP の紹介です。

XAMPP を使えば、一括で以下の環境を Windows 上に用意することができます。

  • Webサーバー(Apache)
  • PHP
  • MySQL
  • phpMyAdmin
  • FTPサーバー(FileZilla)
  • メールサーバー(Mercury)

それぞれを別個のサイトからダウンロードしてインストールしなくても、XAMPPだけで、これらの開発環境が揃うわけです。
便利な世の中になったもんですよねー。

というわけで、以下導入手順です。

1. XAMPP をダウンロードする

XAMPP 導入手順(1)

apache friends - xampp for windowsへアクセスし、XAMPP をダウンロードします。

 
XAMPP 導入手順(2)

画面を下の方にスクロールしていくと、ダウンロードサイトへのリンク一覧が出てきます。

特にこだわりや理由がなければ、インストーラをダウンロードするのが手っ取り早いと思います。

「XAMPP Windows版 〔ベーシックパッケージ〕」の「インストーラ」のリンクからダウンロードします。

 

2. XAMPP をインストールする

XAMPP 導入手順(3)

ダウンロードした XAMPP インストーラを起動すると、言語選択のダイアログが表示されます。

「Japanese」を選択して「OK」をクリック。

 
XAMPP 導入手順(4)

「セットアップウィザードへようこそ」という画面が表示されるので、「次へ」をクリック。

 
XAMPP 導入手順(5)

インストール先のフォルダを指定します。
左記画面の例では、「C:\xampp」を指定しています。

ここで指定したフォルダに、 XAMPP のコントロールパネルとか、Apache とか MySQL とか PHP とか、その他もろもろが全部インストールされます。

指定したら「次へ」をクリック。

 
XAMPP 導入手順(6)

オプション設定画面。

「Apache をサービスとしてインストール」「MySQL をサービスとしてインストール」「FileZilla をサービスとしてインストール」にチェックを入れておくと、これらを Windows サービスとして利用できるので、便利です。

ただし、既にWindows 上でWebサーバーとして IIS を利用している場合等は、一旦 IIS を停止しておかないと、サービスとして Apache がインストールできなかったり、色々と不具合があるかもしれません。

チェックを入れたら「インストール」をクリック。

 
XAMPP 導入手順(7)

インストールが始まります。

そこそこ時間がかかるので、しばらく待ちましょう。

 
XAMPP 導入手順(8)

インストール完了画面。
これでXAMPP のインストールは完了です。

「完了」をクリック。

 

3. コントロールパネルを触ってみる&セキュリティ関連の設定

XAMPP 導入手順(9)

インストールが完了すると、「XAMPP コントロールパネルを今すぐ起動しますか?」というダイアログが表示されます。

「はい」をクリック。

 
XAMPP 導入手順(10)

XAMPP のコントロールパネルが起動します。

この手順通りにインストールしていれば、「Apache」「MySQL」「FileZilla」が「起動」の状態になっているかと思います。

各モジュールの右側にある「停止」または「停止中」ボタンをクリックすれば、それぞれのサーバーを停止できます。

 
XAMPP 導入手順(11)

さて、実際にApache が Webサーバーとして動いているのか、確認してみましょう。

ブラウザを立ち上げて、http://localhost/ あるいは、http://127.0.0.1/ へアクセスしてみます。

左記のような画面が表示されれば、Apache は正常に動作しています。

XAMPP の Web管理画面に入るため、右下の「日本語」をクリックします。

 
XAMPP 導入手順(12)

XAMPP の Web管理画面です。

とりあえず、最低限のセキュリティ設定を行なうため、左のメニューから「セキュリティ」をクリックします。

 
XAMPP 導入手順(13)

現在のセキュリティ関連の状態がどうなっているか、一覧で簡単に教えてくれます。
ほとんどの項目が「要注意」になっているかと思います。

そのテーブルの下に http://localhost/security/xamppsecurity.php へのリンクがあるので、それをクリック。

 
XAMPP 導入手順(14)

MySQL の root のパスワードを設定するフォームと、XAMPP の Web管理画面に .htaccess で Basic認証を設定するフォームの二つが表示されます。

とりあえず、まずは MySQL の root のパスワードを設定しましょう。

任意のパスワードを入力し、phpMyAdmin の認証方法(初期設定では Cookie)を選択。

フォーム下部のチェックボックスにチェックを入れると、設定したパスワードを、自動でテキストファイルに保存しておいてくれます。
まあ、その行為自体がセキュリティ的にどうなんだ、的な感じではありますので、その辺はお好みで。

そして「パスワードを変更しました」というボタンをクリック。

 
XAMPP 導入手順(15)

MySQL の root のパスワードを正常に設定できれば、「root のパスワードを変更しました。設定を有効にするために、MySQL を再起動してください。」と表示されます。

 
XAMPP 導入手順(16)

XAMPP のコントロールパネルを再度開きます。

MySQL が「起動」状態になっているはずなので、一旦「停止」ボタンをクリックします。

 
XAMPP 導入手順(17)

MySQL の「起動」状態が消えます。

再び「開始」ボタンをクリックして「起動」状態に戻します。

これで MySQL の再起動は完了。

 
XAMPP 導入手順(18)

再び、XAMPP の Web管理画面のセキュリティ設定フォームの方に戻ります。

次は、Web管理画面に .htaccess で Basic認証をかけるための設定を行ないます。

Basic認証については、「.htaccessによるBasic認証のかけ方」「.htaccess で特定のファイルのみにBasic認証を設定する方法」等も参考になれば。

フォームに、Basic認証に利用するユーザー名とパスワードを入力します。

MySQL の root のパスワードを設定した際と同様に、チェックボックスにチェックを入れると、ユーザー名とパスワードをテキストファイルに保存してくれますが、こちらもお好みで。

入力したら「安全な XAMPP ディレクトリを作成してください」というボタンをクリック。

 
XAMPP 導入手順(19)

「成功: XAMPP ディレクトリ制御が成功しました! 全ユーザのデータは、以下のファイルに格納されました:」と表示されたら、設定完了です。

 
XAMPP 導入手順(20)

以後、XAMPP の Web管理画面にアクセスすると、左記画像のように、Basic認証のダイアログが出るようになります。

とりあえず、これで最低限の設定は完了です。

 

なお、 XAMPP をインストールしたフォルダ内に「htdocs」というフォルダが作られています。
このフォルダ内にファイルを放り込めば、「http://localhost/***.html」等の URI でアクセスできます。

関連するブログ記事
カテゴリー
MySQL | PHP | Web制作技術
タグ
.htaccess | Apache | Basic認証 | FileZilla | FTP | Mercury | MySQL | PHP | phpMyAdmin | SMTP | Windows | XAMPP | アクセス制限 | オープンソース

コメント(5)

 

超初級ftpコマンドリファレンス

今日も旧ブログから転載です。

これもだいぶ前に書いたエントリーですが、今回のネタは、まあ今でも需要は微妙にあるかな?


今更コマンドラインでftpする機会なんてさほどないんですが、ネットワーク系のスクリプトを組む時とかには使いまくりますし、以前仕事で新規にソフトを入れちゃ駄目なPC(しかもftpソフトが入っていない!)で作業させられた時には当然コマンドラインからftpするしかありませんでしたし。
あと、WebサーバーAからWebサーバーBにちょっとデカめのファイルを移したい時なんかは、WebサーバーAから一旦DLしてWebサーバーBに再upなんてするよりも、SSHでWebサーバーAに入ってそこからコマンドラインでftpしてWebサーバーBに移した方が遥かに速い(Webサーバー間は上位回線で繋がってることも多いですし)。

そしてこれをメモっておく一番のきっかけは、友人がちょっとした手違いで全角文字を含む名前のファイルをWebサーバー上に作ってしまった時、削除しようとしても普通のftpソフトだとファイル名をうまく認識しなかったようなので、コマンドラインから直接mdelで削除してみてもらったらうまくいった、ということがつい先日あったからです。

というわけで、メモとして残しておけばそれなりに役に立つかなということで、調べなくても私がすぐ書けるような超基本的なものだけでもまとめておきます。


ログインする

まず、コマンドプロンプトを開き、

ftp www.servername.com

と入力。
www.servername.comの部分にはサーバーのホスト名を。

Connected to www.servername.com.
220 ProFTPD 1.2.9 Server () [www.servername.com]
User (www.servername.com:(none)):

と返って来るので、ユーザー名を入力。

331 Password required for username.
Password:

と返って来るので、パスワードを入力。

230 User username logged in.

これでログイン完了。


超初級コマンドリファレンス

pwd
カレントディレクトリのパスを表示する。

ls
カレントディレクトリのファイル・ディレクトリ一覧を見る。
-a オプション: 「.」で始まるファイルも表示する
-l オプション: 各ファイルの詳細を表示する
私は ls -al として使うことが多いです。

cd
カレントディレクトリの移動
cd directory_name という風に、後に移動先のディレクトリ名を指定する

ascii
転送モードを ascii に指定する

bin
転送モードを binary に指定する

put
ファイルのアップロード
put file_name という風に、後にアップロードするローカルのファイル名を指定する

mput
複数のファイルのアップロード
mput *.txt という風に、ワイルドカードを使って一度に複数のファイルをアップロードする

get
ファイルのダウンロード
get file_name という風に、後にダウンロードするホスト側のファイル名を指定する

mget
複数のファイルのダウンロード
mget *.txt という風に、ワイルドカードを使って一度に複数のファイルをダウンロードする

ren
ファイル・ディレクトリの名前変更
ren old_name new_name という風に、変更前のファイル名、変更後のファイル名の順で指定する

del
ファイルの削除
del file_name という風に、削除するファイル名を指定する

mdel
複数のファイルの削除
mdel *.txt という風に、ワイルドカードを使って一度に複数のファイルを削除する

mkdir
ディレクトリの作成
mkdir directory_name という風に、後に作成するディレクトリ名をつける

rmdir
ディレクトリの削除
rmdir directory_name という風に、後に削除するディレクトリ名をつける

quote site chmod
パーミッションの変更
quote site chmod 755 sample.cgi という風に、変更後のパーミッション、対象ファイル名の順で指定する

bye
ホストとの接続を切断し、終了する

ちなみに、ftp接続時のローカル側の操作は、頭に!をつけてコマンドを使えばOKです。
例: Windowsなら !dir とすれば現在のローカル側のカレントディレクトリの一覧が表示できる。

関連するブログ記事
カテゴリー
Web制作技術
タグ
FTP | コマンドライン

コメント(4)

 

このブログについて

阿部辰也

Webコンサルタントやシステムエンジニア、執筆業などをやっている、グッドホープ代表・阿部辰也のブログです。
Web技術系のTipsから仕事の話、趣味の話まで色々と。
人生は所詮生まれてから死ぬまでの壮大な暇つぶし。
だったら有意義に暇をつぶして生きましょー。

阿部辰也へのお仕事のご依頼・問合せはこちらからどうぞ。

Twitter: @t_abe
読書メーター: ID:Tatsuya

このブログのサイトマップ
このブログのはてなブックマーク数

Feed/RSS購読

タグクラウド

最近のトラックバック

阿部辰也の著書

77のキーワードで知る インターネットで稼ぐ 図解 ブログ・メルマガ・Webサイト構築の基本

77のキーワードで知る インターネットで稼ぐ 図解 ブログ・メルマガ・Webサイト構築の基本

頑張って書いたのに、出版後すぐに出版社が倒産して印税も貰えずじまいで俺涙目(笑)。

Powered by Movable Type 5.02

スポンサード リンク

はてなブックマーク



あわせて読みたい

t-abeの今読んでる本

t-abeの最近読んだ本

t-abeの今やってるゲーム

t-abeの最近やったゲーム