サーバが電源入れ直しをしても立ち上がらなくなったとのことで、サーバを取り外して病院に持込。
玄箱proのUSBコンソールから接続して障害調査&対応。

サーバに使用している玄箱proと大きさ比較の為のiPhone4。
ひと通り起動状況を確認したが問題は無し。
とりあえずシングルで起動し、fsckでファイルシステムに問題がないことを確認。
いい機会なので前回ファイルで追加したswap領域を、/homeの領域を削ってswapパーティションを増設。
詳細は続く。
なんだかんだやっていたらすっかりサーバ移行の件、放置されていた・・・!
夏の祭典前後は落ちていると怒られる(多分かなりの勢いで)ので、移行のタイミングどうしようかな・・・。
とりあえず、MTAをPostfixにするかqmailにするか決まってもいないながらも、yum経由でのインストール方法について確認、検証を行ったのでメモ。
とりあえず、初めてさくらVPSを借りてみたので、色々とみてみつつ、初期設定メモ。
プランは一番安い”さくらのVPS 512”、OSはデフォルトのCentOS 5.6をそのまま使用。
玄箱proの方も色々と設計を見直しつつ延命処置を施したので、ちょっとゆっくり目にサーバ移行を実施。
というか、落ちる理由があれなら、サーバ変える必要ないんじゃね?とは思いつつ、固定IPの魅力に魅了されてサーバ移行を決意。
玄箱proの方は、バックアップやデータストレージ等、色々使い道はあるしね。
とりあえずはてなダイアリーがツイッターのログが埋まってしまい、あまりにも見辛くなってしまったので、
技術情報等のブログ(2年に一回くらいpost)を移動してみました。
ついでに見直すことの有りそうなエントリをちょろっと移動。
あとはPCからツイッターへの写真投稿に使ってみる感じですかね?
とりあえず、まずはお試しで初めて見ました。速攻放置の可能性も高し。
※※ はてなダイアリーからの移行分 ※※
*1218557724*[技術][サーバ管理] sshdの設定移行
**sshd_config
»
# KeyRegenerationInterval 3600
# ServerKeyBits 768
RSAAuthentication no
«
Version1周りの設定を無効に。
»
PermitRootLogin no
PasswordAuthentication no
«
rootログインの不可と、パスワード認証を無効化。
<!—
変更後の設定ファイルの有効設定のみ抜粋
Port 22
Protocol 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
UsePrivilegeSeparation yes
SyslogFacility AUTH
LogLevel INFO
LoginGraceTime 120
PermitRootLogin no
StrictModes yes
RSAAuthentication no
PubkeyAuthentication yes
IgnoreRhosts yes
RhostsRSAAuthentication no
HostbasedAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication no
PasswordAuthentication yes
X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server
UsePAM yes
—>
と、簡単に終了。
認証設定周りは後日で・・・。
(出典: d.hatena.ne.jp)
※※ はてなダイアリーからの移行分 ※※
*1218557593*[技術][サーバ管理] vsftpの設定移行
**vsftpd.conf
-起動処理の変更
»
listen=NO
listen_ipv6=NO
«
inet経由の起動を行う為にlistenをDisableに。
-ログインユーザーの設定
»
anonymous_enable=NO
local_enable=YES
write_enable=YES
ascii_upload_enable=YES
ascii_download_enable=YES
«
-ユーザーのchroot設定
»
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
«
管理ユーザーにのみ全てのシステムアクセスを許可して、
一般ユーザーに対しては自分のホームディレクトリにのみアクセスを許可。
-セキュリティ設定他
»
tcp_wrappers=YES
use_localtime=YES
userlist_enable=YES
userlist_deny=YES
userlist_file=/etc/vsftpd/ftpusers
«
<!—
変更後の設定ファイルの有効設定のみ抜粋
listen=NO
listen_ipv6=NO
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
ascii_upload_enable=YES
ascii_download_enable=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
secure_chroot_dir=/var/run/vsftpd
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
tcp_wrappers=YES
use_localtime=YES
userlist_enable=YES
userlist_deny=YES
userlist_file=/etc/vsftpd/ftpusers
—>
**inetd.conf
»
#:ftpd: vsftpd services
ftp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/vsftpd
«
inetd経由での起動にした為、上記エントリを追加
(出典: d.hatena.ne.jp)
※※ はてなダイアリーからの移行分 ※※
*1218033726*[技術][サーバ管理] Apacheの設定ファイルの移行3
大体読み込んで理解したので、実際のファイル設定を開始。
デフォルト値から、変更したもののみを抜粋。
**$ServerRoot/apache2.conf
簡単なセキュリティ設定のみ。
»
ServerTokens Prod
ServerSignature Off
«
**$ServerRoot/httpd.conf、envvars、ports.conf
変更はなし。httpd.confについては中身すらなし。
**$ServerRoot/mods-enabled/mime.conf
“AddHandler cgi-script .cgi”のみ変更、”AddEncoding”、”DefaultLanguage”は変更なし。
»
AddHandler cgi-script .cgi .pl .jar
«
**$ServerRoot/mods-enabled/userdir.conf
短い&重要な部分なので全文。
XOOPS等の別の文字コードを使用する場合は、.htaccessで別途指定する。
“AllowOverride”の項目については絞るかどうか更に検討。
“Options”については現行機そのまま・・・。
»
<IfModule mod_userdir.c>
UserDir public_html
UserDir disabled root
<Directory /home/*/public_html>
DirectoryIndex index.html index.htm index.cgi index.php guildmember.cgi
AddDefaultCharset shift_jis
AllowOverride All
Options Includes ExecCGI
</Directory>
</IfModule>
«
**$ServerRoot/sites-enabled/default
ディレクトリルートを変更、/home/www/へ。
ユーザーディレクトリでCGIを許可してしまったので、/cgi-bin関係の設定は削除。
ServerSignatureも要らないので削除。
何故かServerNameが無いので追加。
»
NameVirtualHost *
<VirtualHost *>
ServerAdmin ——@———.—-
ServerName ———.—-
DocumentRoot /home/www/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /home/www/>
Options -Indexes +FollowSymLinks -MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.log combined
Alias /doc/ “/usr/share/doc/”
<Directory “/usr/share/doc/”>
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
«
**参考URL
:一般ユーザでもホームページを公開できるようにする - Debian(etch):http://ameblo.jp/my-ameba/entry-10032358788.html
:Debianインストール覚え書き:http://yaw.jp/hobby/linux/article/apache.html
:もめす屋 Debianで自宅サーバ:http://www.zuk.jp/debian4/index.html
(出典: d.hatena.ne.jp)
※※ はてなダイアリーからの移行分 ※※
*1218033608*[技術][サーバ管理] Apacheの設定ファイルの移行2
一通り設定ファイルを読み込んでアレ?と思った部分を、Apacheのドキュメントhttp://www.apache.jp/manual/でひたすら調べる。
-[http://httpd.apache.org/docs/2.2/ja/mod/core.html:title=apache2.confのディレクティブ]
»
ServerTokens Full
ServerSignature On
«
サーバ情報、Apacheのバージョン等の表示。
セキュリティ的にはoff推奨だったはず。
-[http://httpd.apache.org/docs/2.2/ja/mod/mod_mime.html:title=mime.confのディレクティブ]
»
#AddType application/x-gzip .tgz
#AddEncoding x-compress .Z
#AddEncoding x-gzip .gz .tgz
#AddEncoding x-bzip2 .bz2
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType application/x-bzip2 .bz2
#AddHandler cgi-script .cgi
«
正直ドキュメントを読んでも分からない。まぁ、AddTypeで指定してあれば大丈夫か・・・?
-[http://httpd.apache.org/docs/2.2/ja/mod/mod_autoindex.html:title=autoindex.confのディレクティブ]
»
#AddDescription “GZIP compressed document” .gz
#AddDescription “tar archive” .tar
#AddDescription “GZIP compressed tar archive” .tgz
«
「ファイルに対して表示する説明を設定します。」と言う事で、特に設定しなくてもよさそう。
そもそもIndexesを有効にするつもりが無い!
-[http://httpd.apache.org/docs/2.2/ja/mod/core.html#allowoverride:title=userdir.confのAllowOverrideディレクティブ]
ここは個別に設定したくもあるところだけど、phpの設定がどのオプションに含まれているか等
不明な点が多い事と、DirectryIndexes等色々考えるとAll指定が一番良いかも知れない。
(アカウントを作っているのは限られた人間だけなので、セキュリティを余り考慮しなくていいこともあり。)
-[http://httpd.apache.org/docs/2.2/ja/mod/core.html#options:title=userdir.confのOptionsディレクティブ]
ここは色々悩み所。
**$ServerRoot/sites-enabled/default
ここの設定は基本的に現行機から移行。
-その他
[http://httpd.apache.org/docs/2.2/ja/mod/mod_mime.html#defaultlanguage:title=DefaultLanguage]の指定は必要かどうか?
(出典: d.hatena.ne.jp)
※※ はてなダイアリーからの移行分 ※※
*1215018544*[技術][サーバ管理] Apacheの設定ファイルの移行1
今回現行機で一番重要なサービスであるApache関係の移行の為、
とりあえずconfファイルをざっと流し読み。
・・・エラい構成が違うなオイ。
もちろん合わせることも出来そうだけど、それをやると面倒なことになりそうなので
とりあえずFedoraの設定ファイルをDebianの形式に読み替えて理解する所から。
**サーバ設定的な違い
-設定ファイルのディレクトリ構成
:Fedora:/etc/httpd/conf/httpd.conf(親),/etc/httpd/conf.d/*
:Debian:/etc/apache2/apache.conf(親),/etc/apache2/httpd.conf,/etc/apache2/ports.conf,/etc/apache2/envvars,/etc/apache2/conf.d/*,/etc/apache2/sites-enabled/*,/etc/apache2/mods-enabled/*.{conf|load}
Debianの方が細分化されており、全体は把握し辛い。
その分、理解した後は早い・・・と思いたい。
でも、どの記述がどのファイルにあるかを思い出すのが大変かも知れない・・・
-ドキュメントルート関係のディレクトリ構成
:Fedora:/var/www/html/
:Debian:/var/www/
エラーやマニュアルのページが他に飛んでいるので、そこだけ注意。
-実行ユーザーとグループ
:Fedora:apache/apche
:Debian:www-data/www-data
-セキュリティ設定の変更
»
HostnameLookups Off (そのまま)
ServerTokens Full ⇒ Prod
ServerSignature On ⇒ Off
«
-ユーザーディレクトリ設定
仕様上、/etc/apache2/mods-available/*と/etc/apache2/sites-available/*は読み込まれないポイ。
/etc/apache2/mods-enabled/の下にシンボリックリンクが作成されて始めて読み込まれる。
ただし、シンボリックリンクなので実設定ファイルは/etc/apache2/mods-available/userdir.conf(等)になる。
有効化するには手動でリンクを張るのではなく、a2enmodってコマンド使用する。
内容も、現行機の設定に合わせて編集。
**今日はここまで。
とりあえずFedoraではhttpd.confにほとんど書いてあるものが、
Debianではかなり細分化して散らばっているのでこれを理解するのが大変。
とても一回では終わりそうに無いので、ボチボチ読んで行こうかな。
**参考URL
:一般ユーザでもホームページを公開できるようにする - Debian(etch):http://ameblo.jp/my-ameba/entry-10032358788.html
:Debianインストール覚え書き:http://yaw.jp/hobby/linux/article/apache.html
:もめす屋 Debianで自宅サーバ:http://www.zuk.jp/debian4/index.html
(出典: d.hatena.ne.jp)
※※ はてなダイアリーからの移行分 ※※
*1215018400*[技術][サーバ管理] .htaccessの書き方
FFXIの某LSのページを作成するのに暗号化が必要となるらしいので、
.htaccessで認証をかける事に。
毎回忘れて調べなおすので、メモを残しておく。
-表示エリア
インデックスファイル、文字コードの指定、等。
サーバデフォルトと違うDirectoryIndexや文字コードを使いたい時に。
»
DirectoryIndex index.html index.cgi index.php guildmember.cgi
AddAddDefaultCharset shift_jis
AddType text/html .html .htm
AddHandler cgi-script .cgi .pl .jar
«
-PHPエリア
PHPのphp.iniの設定を各エリアで上書きする為に設定する。
以下は実際にXOOPSのサイトで使用していたモノ。
»
php_flag register_globals Off
php_value session.use_only_cookies 1
php_value default_charset EUC-JP
php_value mbstring.language Japanese
php_value mbstring.internal_encoding EUC-JP
php_value mbstring.http_input auto
php_value mbstring.http_output pass
php_flag mbstring.encoding_translation On
php_value mbstring.detect_order auto
php_value mbstring.substitute_character none
php_value output_handler none
«
-認証エリア
認証をかける必要があるエリアに設定する。
.htaccessの存在するディレクトリ以下のファイル・ディレクトリへのアクセスを制限する。
»
AuthUserFile /home/ssa/.htpasswd
AuthName “Please enter your ID and password”
AuthType Basic
require valid-user
«
.htpasswdはセキュリティを考え、public_htmlより上位に設置する。
一応httpd.confでも.ht*へのアクセスは制限しているが、念の為。
-番外 .htpasswdの作り方
.htpasswdのファイル形式は「ユーザー名:パスワードハッシュ」となる。
»
Antarctica:~# htpasswd -c /home/hogehoge/.htpasswd hogehoge
New password:
Re-type new password:
Adding password for user hogehoge
Antarctica:~# cat /home/hogehoge/.htpasswd
hogehoge:kkHHDJTNf2HPU
«
パスワードは暗号化されたものが記録されるが、
ユーザーとパスワードを増やし過ぎるとサーバ負荷が増大する為、
必要最小限にすること。
**参考URL
:.htaccess活用法:http://www.shtml.jp/htaccess/basic.html
:ベーシック認証のページ:http://www.chama.ne.jp/access/index.htm
(出典: d.hatena.ne.jp)
※※ はてなダイアリーからの移行分 ※※
*1213870174*[技術][サーバ管理] XENが面白すぎる。
上司に「転職の餞別ってことで」と許可をもらい、Redhatの教育((RHUP305:Redhat Enterprise Linux アップデートコース))を受けてきた。
といっても、RHEL3→RHEL5のアップデート教育なので
selinuxとXEN位しか楽しみがなかったのだけど…
selinuxは講義中失神してしまったが、XENが想定外に面白い。
(意外な伏兵yumも面白かった。apt-getよりわかりやすい。)
====
まずは以下のパッケージをインストール。
»
# yum install xen kernel-xen virt-manager
«
設定したり、XENカーネルからブートしたり色々。
インストールが全て完了したら、virt-managerでゲストOSを作成して、
»
>||
[root@station6 ~]# cat /etc/xen/guest01
name = “guest01”
uuid = “********-****-****-****-************”
maxmem = 512
memory = 256
vcpus = 1
bootloader = “/usr/bin/pygrub”
on_poweroff = “destroy”
on_reboot = “restart”
on_crash = “restart”
vfb = [ “type=vnc,vncunused=1,keymap=ja” ]
disk = [ “phy:/dev/sda8,xvda,w” ]
vif = [ “mac=00:16:3e:**:**:**,bridge=xenbr0” ]
||<
«
ここからOSイメージのDiskをddすることで、同じOSをバリバリコピーすることができる。
»
>||
[root@station6 ~]# dd if=/dev/sda8 of=/dev/sda9 bs=512k
||<
«
設定ファイルもコピー。
»
[root@station6 ~]# cp -p /etc/xen/guest01 /etc/xen/guest02
«
設定ファイル上のname、uuid、disk、vifのMACaddressの4箇所を書き換える必要が有り。
:name:適当な名前に。(この場合はguest02)
:uuid:古いIDはざっくり消して、uuidgenで新しく作成する。
:disk:新しいOSイメージ(この場合は/dev/sda9)
:vifのMACaddress:適当に。
※ たまにメモリが足りなくなって怒られるので、注意。
これで、xendを再起動したら完了。
また、物理Diskに作ったOSイメージをfileにddして、
»
>||
[root@station6 ~]# dd if=/dev/sda8 of=/mnt/xen.img bs=512k
||<
«
設定ファイルのDisk部分を
>||
disk = [ “phy:/dev/sda8,xvda,w” ]
から
disk = [ “file:/mnt/xen.img,xvda,w” ]
||<
に変更するだけで、そのまま起動してきた。(一部SE-Linuxに引っかかったけど)
※ 最初にselinuxに引っかかって失敗した部分。SE-Linuxは天敵。
»
>||
[root@station6 ~]# ls -lZ /mnt/xen.img
-rwxrwxrwx root root root:object_r:file_t /mnt/xen.img
[root@station6 ~]# ls -lZd /var/lib/xen/images/
drwxr-xr-x root root system_u:object_r:xen_image_t /var/lib/xen/images/
||<
«
これは・・・実はそのまま今回のサーバ移行に使えるんじゃなかろうか?
移行後の現行機のDiskをddしておいて、XENのホストを作っておけば、即復旧可能に…
Diskエラーの事も有り潰してしまう予定だったが、万が一の為に残しておくのも安心かもしれない。
そういえば、某EMCのVMwareのサーバライセンスを取って来たけどまだいれていなかったな。
とりあえず、明日は試験だ…正直もう細かいこと覚えてない、RHCTも難しい気がする。
(出典: d.hatena.ne.jp)