2012.04.06その2,3はこちらです。あわせて読みたいCentOSにnginxとfastcgiを入れてWordPressを動かすまでのメモ:その2前回の「CentOSにnginxとfastcgiを入れてWordPressを動かすまでのメモ:その1」の続きです。https://nskw-style.com/2011/server/centos-nginx-fa...あわせて読みたいCentOSにnginxとfastcgiを入れてWordPressを動かすまでのメモ:その3前回と前々回https://nskw-style.com/2011/server/centos-nginx-fastcgi-wordpress-1.htmlhttps://nskw-style.com/2011/server/centos-nginx-fastcgi-wordpress-2.html...借りたサーバの環境は、さくらのVPSサーバです。x86_64が入っています。ローカル環境はMacですので、ターミナルで操作します。セキュリティ設定も書いていますが、責任は持てないです。借りたら、せめてこれくらいはやっとけというセキュリティ設定その他たくさん。上記からのリンク先ターミナルからログインするターミナルからログインすることをリモートログインというようです。ターミナルを開いて、下記のように打つことで、サーバに入る事ができます。root@www12345abc.sakura.ne.jpssh:ログイン方法の指定root:ログインしたいアカウント名www12345abc.sakura.ne.jp:さくらのVPSから知らされたサーバのアドレス。セキュリティ設定1:rootログインを無効にして別のユーザを作るrootとは違うユーザを発行、パスワード作成します。successfully.rootユーザというのは、そのサーバを扱うアカウントの中で一番偉くて何でもできるユーザです。それをこれから無効にするので、今作ったexuserというアカウントでrootと同じことができるようにしておかなければなりません。exuserこれで、exuserユーザをwheelという特殊なグループに属させました。次に、rootと同じ権限を持たせるのを、wheelというグループに限定させます。そのためにまず、/etc/pam.d/にあるsuというファイルを編集します。編集方法などは、こちらから確認できます。viの使い方ざっくり書けば、「/auth」と押すとauthを含む文字を検索できて、nを押すと次のマッチが探せます。use_uid消したら保存します。escキーを押してから:wqと押すと「保存して閉じる」です。ターミナルでのふるまい方です。-と入力することで、rootに成り代わることが可能になります。最後にrootでのログインを禁止します。no読んだままなので分かりやすいですね:)そして最後に、今設定したsshdの設定をサーバに反映させるために、sshdを再起動します。]ここまでの設定で、rootでのログインができなくなり、exuserでしかログインできなくなりました。ターミナルのウィンドウをもう一つ開いて確認が必要です。root@www12345abc.sakura.ne.jpではログイン出来ないことを確認します。パスワードは聞かれますが、ログイン出来ないはずです。exuser@www12345abc.sakura.ne.jpでログインしてみましょう。パスワードはさっき作った方になります。すると、rootのパスワードを聞かれるので入力します。それで、exuser@~と表示されていた所がroot@~に変われば、ここまでの設定は成功です。セキュリティ設定2:パスワードでのログインをやめて公開鍵認証にするパスワードはいつか破られますので、公開鍵認証というもっとすごい方法による認証方法に変更します。この方法を使うことで、限られたパソコンからしかサーバにログイン出来ないようになります。公開鍵と秘密鍵のペアが必要です。WindowsではPuTTYというので作れるそうです。Macでは、ターミナルを開いて(どこのサーバにもログインしていない状態で)、ssh-keygenコマンドを入力すると、id_rsaファイル(秘密鍵)とid_rsa.pubファイル(公開鍵)が作成できます。2つのファイルは、Macのユーザ直下/.sshフォルダにできます。ファインダーでお家アイコンがあるところのしたです。頭ん中で確認しましょう。次に、サーバにFTPなどでログインします。上の階層から、/home/exuser/というディレクトリに.sshというフォルダを作り、その中に、authorized_keysというファイルを作成して、公開鍵の中身をコピペします。この時、.sshのパーミッションを700に、authorized_keysのパーミッションを600にしないとログインできません。(読めないと認証できないし、開かれすぎてると警告が出て進めません。)オーナーとグループの両方をexuserにするのも忘れずに。(なんでなの??)次に、サーバにログインしているrootアカウントで、sshd_configを修正してsshdを再起動(前述)します。noセキュリティ設定3:ログの監視サーバにどういう人たちがアクセスしてきたのかを監視します。そのためのソフトをインストールして、毎日メールが届くようにするための設定です。ビアガーデンを見てください。この設定を行うと毎日メールが届きますので、読むようにします。最初はわけがわからないですが、自分がやったことがそれなりの英語で書かれているのでなんとなく分かりそうです。いつもと違う数字や異常があれば気がつけそうですが、この辺も勉強して詳しくなっていきたいと思います。_)m)ざっくり言うとサーバへのドアの番号のようなものです。サーバにはウェブサーバやメールサーバとしての役割があるけど、それぞれの役割には個別の入り口からじゃないと入れません。ウェブは80番、メール送信なら25番、FTPは21番とだいたい決まっています。SSHの場合には22番です。この22番というのを変更することで、世界中のサーバの22番ポートに無差別攻撃をしている悪い人から、そもそもサーバを守ろうということです。変更しても、変更した本人(あなた)がポート番号を覚えていれば問題ない、ということです。10022このあと、sshdの再起動です。このあたりも前述のWordPantsに書かれている通りです。exuser@www12345abc.sakura.ne.jpではログインできなくなります。10022と入力します。セキュリティ設定5:denyhost僕の環境では、これをインストールすると、ログインができなくなりました。何度もログインに失敗していたからでしょうか?よくわかりませんが、僕はこれを入れていません。特定のipアドレスから、何度も接続を試みて失敗している場合にそのipアドレスを覚えて、アクセスを禁止してくれるそうです。やり方は、WordPantsの記載通りですが、PDFで改行が入っている箇所をコピペするとスペースが空いたりして上手くいかないので、下記をコピペしてください。onセキュリティ設定6:ファイヤーウォール必要なポート以外を閉じることで、別の入口からのアクセスという攻撃機会を減らします。必要なインストールや手順はWordPants通りですが、コピペをするとエラーが出るので、下記を使ってください。(余計なスペースが入るのが問題のようです。環境によっては分かりません。ひまわりをベースにしています。Managerの略で、サーバに必要なソフトをインストールするための仕組みの一つです。何かをインストールしているということは、どこかからインストーラを持ってきているわけですが、それをディストリビュート(配布する・流通させる)しているしくみがあるはずで、それのことです。ありがたいことです:)。ここもWordPantsのPDFをコピペすると、いらないスペースが入るので、僕の成功したものを下記に貼ります。最新版(1.0.4)のソースを取得」の部分です。nginx.spec以下は、nginx.specの書き換えの時に必要なものですが、PDFで激しくゴチャゴチャ担っているので(もしかしてWindowsだと平気なのかな?)、著者のwokamotoさんのブログも参考にしています(バージョンなどが古いので見比べてくっつけました)。下記は、この記事を書いている2011年8月14日のものなので、バージョン番号などは自分で合わせて書きかえる必要があります。現在の最新バージョンがいくつなのかに気をつけてください。nginx.specをやるとインストールするのに必須なパッケージ(=ソフト?)の一覧が出ます。nginx.spec僕のやったときは下記が出ました。nginx-1.0.4-1.x86_64一つ一つ、yumコマンドでインストールしていきます。nginx.specを行い、rpmビルドが完了します。今回はかなり長く待ちます。-lコマンドでパッケージの名前を確認する必要があります。-lすると、今回は下の画像のような形になりました。nginx-1.0.4-1.x86_64.rpmとして、コマンド入力します。以上でnginxのインストールが完了です。fastCGIの導入Apacheでは、mod_phpというモジュールでphpが動いていました。nginxでは、fastCGIでphpを動かします。これが速いそうです!嬉しい!まず、spawn-fcgiをインストールします。spawn-fcgiやってもエラーが。