[[PageOutline]] = さくらの VPS セットアップメモ ~2G プラン乗り換え + Scientific Linux 編~ = == はじめに == * [wiki:HowTo/SakuraVpsSetup 前回の記事はこちら]。 * CentOS のバージョンが古くていろいろと支障を来していたので、プランラインナップ変更を期に乗り換えを行うことにした。 * 今回は Scientific Linux を利用することにする。 * 当面は前回との相違点を中心にメモを残す。 == 申し込み == プランラインナップ変更に伴う[http://vps.sakura.ad.jp/news/sakurainfo/newsentry.php?id=628 乗り換え優遇施策]を利用。 == Scientific Linux セットアップ == VPS コントロールパネルから OS を選択し、基本的なネットワークの設定を行うだけで ok. かんたん。 1. 送られてきた IP アドレスとパスワードで [https://secure.sakura.ad.jp/vpscontrol/ VPS コントロールパネル]にログインする。 1. 画面左の「OS再インストール」をクリックし、遷移先のページにてさらに「カスタムOSインストールへ」をクリックする。 1. 「OS選択」コンボボックスにて「Scientific Linux 6 x86_64」を選択し、「確認」をクリックする。 1. インストール開始を告げるページに遷移し、インストーラ画面が起動する。 * インストーラ画面を表示するには Java SE が必要らしい。 1. [http://support.sakura.ad.jp/manual/vps/mainte/custom_scientificlinux.html Scientific Linux 6|カスタムOSインストールガイド]の記述に倣ってセットアップを進める。 * IPv4 はマニュアル設定、 IPv6 は設定なし。 * [http://research.sakura.ad.jp/2011/01/21/tunnel-6rd-linux1/ 6rd トライアルを利用した IPv6 運用もできるらしい]。あとで試してみようかなぁ…。 * STEP 3 がキーボード設定になってるけど、実際にはネットワーク設定よりも前だったような…。 * 「※さくらのVPS 1G以上のサービスには、ディスクの選択画面が表示されます。」<2G だけど出てこなかったよ? * 「OSシャットダウン後、VNC接続も切断されます。インフォメーションを「OK」で閉じてください。」<「OK」なんて無いのでふつーに「×」で画面を閉じませう…。 1. あとはコントロールパネルから VPS を起動してやれば ok. == ソフトウェアの更新 == ViM は入ってた。前回に倣ってとりあえず yum -y update だけしておく。 == ユーザー登録と ssh 接続のためのセキュリティ設定 == 前回と同じ手順で ok. == シェルのロケール設定 == これも同じく。 == BIND の設定 == === chroot 版の BIND をインストールする === * [http://www.server-world.info/query?os=CentOS_6&p=dns&f=4 CentOS 6 - DNSサーバー - chroot環境にする : Server World] BIND を chroot 環境で動かしたい場合、最新の Red Hat クローンでは専用のパッケージである bind-chroot を入れてしまえばいい。知ってさえいれば設定は超楽ちんだ。…上記のサイトを見つけるまで延々と嵌っていた訳だが orz {{{ $ sudo yum -y install bind-chroot }}} これで、 chroot 環境である /var/named/chroot 以下に必要なファイルが大体インストールされる。あとはドメインのための設定を加えていけばいいだけ。 ちなみに、インストールされるバージョンは 9.7.3 (2012/5/28 現在)。[http://www.geekpage.jp/blog/?id=2012/3/21/1 幽霊ドメイン名問題]の件については、このバージョンであれば修正も入るだろう。とりあえず一安心。 === named.conf の設定例等 === 驚くべき事に、 chroot 環境下における named.conf 等の設定ファイルの類は、 named が実行中の間だけ存在する。仕組みとしては、起動時に実際の /etc/named.conf 等を chroot 環境下にコピーし、それを読み込んでいる模様。面白いことに、 named を稼働させておいて、 chroot 環境下の named.conf 等を編集し、 named を restart させると、編集された内容が反映された上に、ちゃんと /etc/named.conf 等にも編集結果が反映される。つまり、設定の変更はどちらのファイルを用いてもいいようになっているようだ。 named.conf にはデフォルトでいろいろと設定が書かれていて面食らったので、ちょっといろいろ調べてみた。以下、参考になった URL。 * [http://www.nina.jp/server/redhat/bind/named.conf.html named.conf の設定] * [http://linuxreviews.org/man/named.conf/index.html.ja Manpage of NAMED.CONF] * [http://www.turbolinux.com/products/server/11s/user_guide/x1583.html 8.9. その他のステートメント | Turbolinux 11 Server: ユーザーガイド] * 公開 DNS なので listen-on とか allow-query とかは any にする。 * directory は設定しないとデフォルトではカレントディレクトリ。それだと困る場合は "/var/named" とかに設定する (今回はデフォルトでそうなってる)。 * dump-file は SIGINT 時のダンプファイル出力先。 statistics-file は SIGILL 時の統計ログ出力先。 memstatistics-file は deallocate-on-exit が yes なら終了時のメモリー統計ログ出力先だが、そも deallocate-on-exit は yes にすると効率悪くなるらしいので no にしておくべき (デフォルトは no)。 * [http://xoops.fens.net/modules/wiki/?Linux%2FMemo%2FDNSSEC%20%E3%81%AE%E8%A8%AD%E5%AE%9A DNSSEC の設定] * [http://member.wide.ad.jp/~fujiwara/dnssec/ Fujiwara's DNSSEC materials] * DNSSEC に対応する方法が書かれてる。 * とりあえず、今は DNSSEC プロトコルで検証が行われるように設定しておく (デフォルトの named.conf の内容をそのまま使う)。自ゾーンを DNSSEC に対応させて ISC DLV に登録するのはあとで。 * directory で指定したディレクトリは BIND が書き込み可能である必要がある。 "/var/named/chroot/var/named" を chmod g+w する。 === ゾーンの設定 === ゾーン設定は 9.7 では named.conf 自体には書かれておらず、 named.rfc1912.zones というファイルを include する形を取っている。ドメインのゾーン設定はこちらに書き加える。書き加える内容自体は以前と同じ。 {{{ # vim /etc/named.rfc1912.zones // 以下をファイル末尾に書き加える zone "harapeko.jp" IN { type master; file "harapeko.jp.zone"; }; zone "142.128.212.49.in-addr.arpa" IN { type master; file "harapeko.jp.rev"; }; # vim /var/named/chroot/var/named/harapeko.jp.zone // 以前の設定内容をそのままコピーし、 A クラスの IP アドレスと SOA クラスの serial だけ新しい値に修正する。 // 但し、ネームサーバーホストは CNAME クラスではなく A クラスを用いるよう修正 (後述)。 # vim /var/named/chroot/var/named/harapeko.jp.rev // 以前の設定内容をそのままコピーし、 SOA クラスの serial だけ新しい値に修正する。 # chown root:named /var/named/chroot/var/named/harapeko.jp.* # chmod 640 /var/named/chroot/var/named/harapeko.jp.* }}} なお、正引きのゾーン設定において、ネームサービスを提供するホスト名のアドレスを CNAME (別名) で設定するのは、 9.7 系では illegal となっているらしい。以前まで harapeko.jp.zone ファイルの当該箇所において {{{ onaka IN A 49.212.128.142 ns IN CNAME onaka }}} としていたのを {{{ onaka IN A 49.212.128.142 ns IN A 49.212.128.142 }}} に修正する必要がある。 == パケットフィルタリング設定 == iptables はやはり導入済みだった。 設定ファイル /etc/sysconfig/iptables は前回のサーバーのファイルを ViM でコピペした。内容は、前のサーバーを稼働中に以下の行を追加していたのを、そのまま踏襲している。 {{{ # SMTP Submission port -A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 587 -j ACCEPT }}} == NTP 設定 == 前回とほぼ同じだが、 restrict 周りはデフォルトで基本 ignore だったので、 NICT へのサーバー参照を追加するのみとした。 == Postfix 設定 == Red Hat 6 クローンにおいては、デフォルトのメールデーモンは Sendmail ではなく Postfix となっている。つまり、デフォルトでインストールされている。 従って、行うべきは main.cf の修正とスケルトンへの Maildir/ の追加、そして再起動のみ。 == Web サーバー設定 == === Apache のインストールと設定 === 前回の設定時に入れてないが、 mod_perl を CPAN から自力で入れたりするのに httpd-devel が必要になって入れていたっぽい。今回も一応踏襲する。 {{{ # yum -y install httpd httpd-devel }}} 設定は基本的には前のサーバーで記述していたものをそのまま拝借する。バージョンの差異故か、気になる点がいくつかあったのでメモ。 * Timeout は 120 だったのが 60 になっていた。これはそのままにしてみる。 * prefork モジュール下の設定は前のサーバーでの記述を踏襲。詳しくは[http://blog.harapeko.jp/2010/11/05/apache-webdav-setting/ この辺]を参照。 * メモリーは以前の 512MB から 2GB に拡張されているのでもうちょっと大きい値を設定してもいいかもしれないけど、現状この設定で特に困ったことにもなっていないので…。 * モジュールのコメントアウトも同様に対応。 mod_substitute ってのが新たに追加されてたけど、レスポンスヘッダを正規表現で書き換えるためのものらしい。要らん。 rsync によるファイルのコピーでは、 ERK 掲示板のテスト環境で CGI が生成した添付ファイルなどがアクセス権限のエラーでコピーに失敗した。ファイルの所有者が murachi ではなく apache になっていて、かつパーミッションが 600 になっていたため。これは確か、開発中の段階でバグがあったためにそうなっちゃったのを (備忘録も兼ねて) 敢えて放置していたものだが、もはや不要だろうと思うので無視することにする。 === PHP のセットアップ === yum で php-mysql をインストールする際に MySQL が一緒にインストールされなかった。別途インストールする必要有り。こちらもあとで使いそうなのでついでに mysql-devel も入れちゃうことにする。 === Python のセットアップ === Trac の導入に際して setuptools が必要になる。 yum から入れる場合のパッケージ名は python-setuptools である。現時点でのバージョンは 0.6.10 。一応 Trac 0.12 における setuptools の必須バージョンは 0.6 以上となっているので、とりあえずこれで無問題。 それから、前回は mod_python をインストールしたが、現在既に Trac では mod_python を使用していないのでインストールしない。代わりに mod_wsgi をインストールする。 {{{ # yum -y install python-setuptools mod_wsgi MySQL-python }}} === Perl のセットアップ === httpd.conf をほぼそのまま引き継いだおかげで mod_perl が入っていない状態では Apache が起動すらしない状態だった (!^_!^;)。 とりあえず Perl は ('''Perl だけは''') 最新版を入れておきたいので、前回のやり方は踏襲しません。基本的には[http://blog.harapeko.jp/2011/01/11/centos5-cpan-update/ こちら]を参照。 1. yum から perl-CPAN をインストール。 perl-CPANPLUS は不要。 {{{ # yum -y install perl-CPAN }}} 1. cpan コマンドの初期設定。 {{{ # cpan (なんか聞かれてデフォルトが [yes] なのでそのままエンター) (勝手に自動設定が走ってプロンプトへ) cpan[1]> o conf init (snip...) Would you like me to configure as much as possible automatically? [yes] no (なんかいろいろ聞かれるけど基本的にはそのままエンター) or some such. Your choice: [/usr/bin/make] sudo /usr/bin/make Your choice: [] UNINST=1 (snip...) or some such. Your choice: [./Build] sudo ./Build Your choice: [] --uninst 1 (snip...) Do you want to turn on colored output? [no] yes (snip...) Your terminal expects ISO-8859-1 (yes/no)? [yes] no (snip...) (1) Africa (2) Asia (3) Europe (4) North America (5) Oceania (6) South America Select your continent (or several nearby continents) [] 2 (1) China (2) India (3) Indonesia (4) Israel (5) Japan (6) Kazakhstan (7) Pakistan (8) Republic of Korea (9) Saudi Arabia (10) Singapore (11) Taiwan (12) Thailand (13) Turkey (14) Viet Nam Select your country (or several nearby countries) [] 5 (1) ftp://ftp.dti.ad.jp/pub/lang/CPAN/ (2) ftp://ftp.jaist.ac.jp/pub/CPAN/ (3) ftp://ftp.kddilabs.jp/CPAN/ (4) ftp://ftp.nara.wide.ad.jp/pub/CPAN/ (5) ftp://ftp.riken.jp/lang/CPAN/ (6) ftp://ftp.ring.gr.jp/pub/lang/perl/CPAN/ (7) ftp://ftp.u-aizu.ac.jp/pub/CPAN/ (8) ftp://ftp.yz.yamagata-u.ac.jp/pub/lang/cpan/ Select as many URLs as you like (by number), put them on one line, separated by blanks, hyphenated ranges allowed e.g. '1 4 5' or '7 1-4 8' [] 2 7 4 8 6 5 1 3 }}} 以下のサイトが参考になりました。こうすることで CPAN からモジュールインストール時に make install を sudo してくれるので一般ユーザーからでもインストールが楽ちんになるんだそうな。…まぁ色つきプロンプトは微妙だけど。 * [http://d.hatena.ne.jp/dayflower/20070814/1187084177 もう CPANPLUS は使わなくてもいいのかも - daily dayflower]