ここのところ、ずっとブログが滞っていた。

その理由は、実は私はVPSでサイトを立ち上げているが、そのVPSを新しいサービスに切り替えるため、既存のサイトを新VPSへ移行するという作業をずっとやっていたのである。

単にデータを更新すればよいだけなら、何てことはないのだが、実際には環境を整えて、データを移して、同じように動作するかどうかを検証するのにかなり手間取ったからである。

実は一度移行を実施したのだが、思うようなパフォーマンスが得られなかったため、一度クリアして再度OSから再インストールを行ったのである。
つまり、2回設定したようなものなのだ。

VPSの切り替えには、当然切り替えるための期限があるため、この期限に間に合うように作業を行ってきた。
このため、こちらのブログが滞ってしまったのである。

とりあえず、無事に作業は移行できたので、こちらのブログも再開となったのである。

 

, ,

さくらのVPSを契約してから、そっちの設定にかかりっきりで、こちらのブログの更新が止まっていた。
申し訳ない話である。

とはいえ、もう1つのドメインではWordPressを導入して、こちらのプライベート的なブログとは違う内容のものを書いたり、プログラミングしたりしてサイトを構築していこうと思っている。
まぁ、いわゆる週末エンジニアというやつかな。

なかなか週末エンジニアなんてことはできないので、実際には深夜エンジニアという感じだが。

それはそうと、いろいろなことが起こるなぁ、というのが実感。
久しぶりにまたちょっとテンションが下がり気味である。
先々週はハワイにいたので、なおさらである。

ああ、またリゾートに行きたいなぁ。
もう少し落ち着いたらハワイ旅行記でもつくろう。

あ、そういや函館旅行記も1日目の途中だった...。

なぜSSLかというと、phpmyadminやらCMSやらをインストールした後、それにログインする際にはSSL環境下でアクセスしたいということからである。
なので、個人的に利用するだけなので、証明書は自己証明でいいと判断した。

もちろん、CAcert.orgという無料で証明書を発行してくれるところもある。
まずは自己証明のSSLがOKになったら、そちらに進んでもいいかと思っている。
ただ、CAcert.orgは半年に一回更新をかけないといけないので、ちょっと手間かもしれない。
ちなみに、CAcert.orgで証明書発行しても、ブラウザでは確認が取れていない証明書なのでインストールしないとダメだけど、それでもオレオレ証明書よりはいいかもね。

ともあれ、まずは自己証明から。

# /etc/pki/tls/misc/CA -newca
CA certificate filename (or enter to create)
・・・・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・・
Making CA certificate …
Generating a 1024 bit RSA private key
..++++++
………….++++++
writing new private key to ‘../../CA/private/./cakey.pem’
Enter PEM pass phrase:
Verifying – Enter PEM pass phrase:
—–
・・・・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・・
—–
Country Name (2 letter code) [GB]:JP
State or Province Name (full name) [Berkshire]:Tokyo
Locality Name (eg, city) [Newbury]:Minato
Organization Name (eg, company) [My Company Ltd]:Private
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server’s hostname) []:**********
Email Address []:dummy@********.*****

Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Using configuration from /etc/pki/tls/openssl.cnf
Enter pass phrase for ../../CA/private/./cakey.pem:
Check that the request matches the signature
Signature ok
・・・・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・・
Write out database with 1 new entries
Data Base Updated
# /etc/pki/tls/misc/CA -newreq
Generating a 1024 bit RSA private key
・・・・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・・
—–
Country Name (2 letter code) [GB]:JP
State or Province Name (full name) [Berkshire]:Tokyo
Locality Name (eg, city) [Newbury]:Minato
Organization Name (eg, company) [My Company Ltd]:Personal
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server’s hostname) []:**********
Email Address []:dummy@********.***

Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Request is in newreq.pem, private key is in newkey.pem

# /etc/pki/tls/misc/CA -sign
Using configuration from /etc/pki/tls/openssl.cnf
Enter pass phrase for ../../CA/private/cakey.pem:
Check that the request matches the signature
Signature ok
・・・・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・・
Certificate is to be certified until Oct 22 15:18:10 2011 GMT (365 days)
Sign the certificate? [y/n]:y

1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
・・・・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・・
—–BEGIN CERTIFICATE—–
MIIC1jCCAj+gAwIBAgIBATANBgkqhkiG9w0BAQUFADBmMQswCQYDVQQGEwJKUDEO
MAwGA1UECBMFVG9reW8xEDAOBgNVBAoTB1ByaXZhdGUxEjAQBgNVBAMTCVByaXZh
・・・・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・・
TIm+tG3jtYsxikhV/1yCbM/WIPa10L6plFcPLTnS43sdzgyo7lUN9fA6FXxp0i43
1lvJqN1faeudug==
—–END CERTIFICATE—–
Signed certificate is in newcert.pem

早速、lighttpdに設定して、httpsアクセスできるか、確認してみる。
lighttpd.conf内のSSLに関する部分をファイルの最後尾に追加して、再起動する。

# sudo -u root vi lighttpd.conf

$SERVER[“socket”] == “182.*.* .*:443” {
  #### SSL engine
  ssl.engine                 = “enable”
  ssl.pemfile                = “/etc/certs/newcert.pem”
  server.name                = “www.*****.***”
  server.document-root        = “/var/www/lighttpd/docs-ssl”
}

# echo “SSL site” > /var/www/lighttpd/docs-ssl/hoge.txt
# service lighttpd restart

ブラウザでhttp://www.******.***/hoge.txt にアクセス。Not foundになる。

続いて、SSLのかかった https://www.*******.***/hoge.txtにアクセス。
悪意のあるサイトかもしれない、と脅されるがアクセスすると見事にアクセスできた。

しかし!Firefoxではアクセスできないことが判明。
うーん、どっかで設定ミスったかなぁ。
一応、以前会社でやったときはうまくいったのになぁ...。
あれこれやってもうまくいかず、いろいろ悩んでしまって面倒くさくなってしまった。

なので、以下の方法で逃げた。

# /etc/pki/tls/certs/make-dummy-cert newcert.pem

なんと、このコマンド一発でオレオレ証明書の発行ができてしまうのである。
うーん、こんなんでいいんだろうか?
今度、落ち着いてゆっくりやろう。

, ,

引き続き、MySQLとPHPのインストールを行う。
まぁ、毎度のことながら、魔法のコマンド  yum を使うんだけどね。

今回からインストール状況まで上げるのは長くなるので、要所だけ。

# yum -y install mysql-server
・・・・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・・
Total download size: 15 M
Downloading Packages:
(1/4): perl-DBD-MySQL-3.0007-2.el5.x86_64.rpm            | 148 kB     00:00
(2/4): perl-DBI-1.52-2.el5.x86_64.rpm                    | 600 kB     00:00
(3/4): mysql-5.0.77-4.el5_5.3.x86_64.rpm                 | 4.8 MB     00:00
(4/4): mysql-server-5.0.77-4.el5_5.3.x86_64.rpm          | 9.8 MB     00:00
——————————————————————————–
Total                                            13 MB/s |  15 MB     00:01
・・・・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・・
Complete!
# yum list | grep mysql | grep install
mysql.x86_64                               5.0.77-4.el5_5.3            installed
mysql-server.x86_64                        5.0.77-4.el5_5.3            installed

で、MySQLの稼働させるための準備。

# cd /etc/
# cp -p my.cnf my.cnf.org
# cp /usr/share/mysql/my-small.cnf my.cnf

cp: overwrite `my.cnf’? y

# service mysqld start
Initializing MySQL database:  Installing MySQL system tables…
OK
Filling help tables…
OK
・・・・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・・
Support MySQL by buying support/licenses at http://shop.mysql.com
                                                           [  OK  ]
Starting MySQL:                                            [  OK  ]
# mysql -u root
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 2
Server version: 5.0.77 Source distribution

Type ‘help;’ or ‘h’ for help. Type ‘c’ to clear the buffer.

mysql> show databases;
+——————–+
| Database           |
+——————–+
| information_schema |
| mysql              |
| test               |
+——————–+
3 rows in set (0.00 sec)
mysql> q

MySQLのrootのパスワードを設定して、ノンパスワードで入れないことを確認する。

# mysqladmin -u root password ‘*********’
# mysql -u root

ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: NO)
# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 5
Server version: 5.0.77 Source distribution

Type ‘help;’ or ‘h’ for help. Type ‘c’ to clear the buffer.

mysql>

さらに不要なDatabaseとuserを削除。

mysql> drop database test;
Query OK, 0 rows affected (0.00 sec)

mysql> show databases;
+——————–+
| Database           |
+——————–+
| information_schema |
| mysql              |
+——————–+
2 rows in set (0.00 sec)

mysql> select user,host,password from mysql.user;
+——+———————–+——————————————-+
| user | host                  | password                                  |
+——+———————–+——————————————-+
| root | localhost             | ***************************************** |
| root | ********.sakura.ne.jp | ***************************************** |
| root | 127.0.0.1             |                                           |
|      | localhost             |                                           |
|      | ********.sakura.ne.jp |                                           |
+——+———————–+——————————————-+
5 rows in set (0.00 sec)

mysql> delete from mysql.user where password=”;
Query OK, 3 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> select user,host,password from mysql.user;
+——+———————–+——————————————-+
| user | host                  | password                                  |
+——+———————–+——————————————-+
| root | localhost             | ***************************************** |
| root | ********.sakura.ne.jp | ***************************************** |
+——+———————–+——————————————-+
2 rows in set (0.00 sec)

mysql> q
Bye

MySQLを停止して、サーバの起動時に MySQLが起動するように設定。

# service mysqld stop
Stopping MySQL:                                            [  OK  ]

# chkconfig mysqld on
# chkconfig –list  mysqld

mysqld          0:off   1:off   2:on    3:on    4:on    5:on    6:off

MySQLの細かい設定については、別途行うことにして、続けてPHPのインストール。

# yum -y install php php-mysql php-mbstring php-mcrypt
・・・・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・・
Complete!
# php -v
PHP 5.1.6 (cli) (built: Mar 31 2010 02:39:17)
Copyright (c) 1997-2006 The PHP Group
Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies

むむ?現在のPHPの最新バージョンは確か5,2,14だったはず。
もしかして、updateが必要かと思い、updateを実行。

# yum update
・・・・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・・
Complete!
# php -v
PHP 5.1.6 (cli) (built: Mar 31 2010 02:39:17)
Copyright (c) 1997-2006 The PHP Group
Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies

やっぱりバージョンが変わんない。
ということは、最新版のPHPのインストールができないということだ。
便利な関数の中にはバージョンが5.2以降でないとダメなものがあるので、何とかバージョンアップしたい。
とはいえ、yum の便利さを実感しているので、わざわざ自前でコンパイルしてインストール、なんてことはやりたくはないのだ。
なので、Google先生の出番。
おお、やっぱり似たようなことをする人はいるものだ、ということであっさり解決。

# wget -q -O – http://www.atomicorp.com/installers/atomic.sh | sh
Atomic Archive installer, version 1.2
Configuring the [atomic] yum archive for this system

Installing the Atomic GPG key: OK
Downloading atomic-release-1.0-12.el5.art.noarch.rpm: OK

The Atomic Rocket Turtle archive has now been installed and configured for your system
The following channels are available:
  atomic          – [ACTIVATED] – contains the stable tree of ART packages
  atomic-testing  – [DISABLED]  – contains the testing tree of ART packages
  atomic-bleeding – [DISABLED]  – contains the development tree of ART packages

# yum update
・・・・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・・
Complete!
# php -v
PHP 5.2.14 (cli) (built: Aug 12 2010 16:03:48)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2010 Zend Technologies

見事にPHPのバージョンアップに成功。

ということで今日はここまで。

, ,

さすがに何にも設定されていないので、やることが多い。
今回は、不要なサービスの停止だ。

ということで、ざっくり不要サービスの停止を行う。
面倒くさいので、テキストエディタに書き出して、コピペで一括実行。

# chkconfig acpid off
# chkconfig auditd off
# chkconfig autofs off
# chkconfig avahi-daemon off
# chkconfig bluetooth off
# chkconfig cups off
# chkconfig firstboot off
# chkconfig gpm off
# chkconfig haldaemon off
# chkconfig hidd off
# chkconfig isdn off
error reading information on service isdn: No such file or directory
# chkconfig kudzu off
# chkconfig lvm2-monitor off
# chkconfig mcstrans off
# chkconfig mdmonitor off
# chkconfig messagebus off
# chkconfig netfs off
# chkconfig nfslock off
# chkconfig pcscd off
# chkconfig portmap off
# chkconfig rawdevices off
# chkconfig restorecond off
# chkconfig rpcgssd off
# chkconfig rpcidmapd off
# chkconfig smartd off

あれー?isdnでエラーが出てやんの。
ま、ないのなら、ないでいいや。

ふと思ったのだが、実はこれらって最初からサービス停止してあったんじゃないかと思った。
というのも、/etc/selinux/config を見るとSELINUX=の値が最初からdisabledになっていたからだ。

まぁ、別に off になっているものを offにしても問題はないんだけど。
ということで、再起動後、VPSの状況を freeで見るとこんな感じ。

# free
             total       used       free     shared    buffers     cached
Mem:        510532     160788     349744          0      15100     118060
-/+ buffers/cache:      27628     482904
Swap:      2048276          0    2048276

≫続きを読む

, , , ,

今日、生まれてはじめてワン切り...というか電話に出たので”切り”ではないが、を体験した。
知らない会社から電話で、話を聞くと身に覚えのない携帯出会い系サイトの使用料の滞納という話だった。
ほほー、こりゃおもしろいと思い、ちょっとツッコミを入れてみた。

私:「えーと、何て出会い系サイトですか?」
相手:「弊社は5,000社位のサイトの集金代行なので、サイトの名前までは...」

この時点で先方は終わっていると気づかないんだろうか?
サイトの名前がわからないのに、集金代行ができるわけがないだろうに。

最終的に私は一言、「まぁ、よくわかんないので、そういうところに登録しているのなら、メールも登録しているはずなので、詳細は携帯のメアドに送っておいてください」と言って電話を切ってしまった。

まぁ、当然のようにメールなんか届かないんだけど。(笑)
で、かかってきた電話番号をググってみると、おお、出てきた出てきた迷惑電話番号一覧に。
ということで、着信拒否に登録して本件は終了。

それはさておき、昨日、さくらのVPSの申し込みをして、ちまちまと設定を開始した。
で、今日もその続きを行う。

昨日はsshd関連の対応を行ったが、今日はもう少しセキュリティの強化。
iptablesの設定である。

ただ、それだけだとつまんないので、Webサーバの立ち上げまでなんとか進めることにする。

≫続きを読む

, , , ,

さくらのVPSに申し込みをした。
このVPSの設定をすれば、先日取得したドメインも使えるというものである。

とりあえず、VPSコントロールパネルにアクセスし、VPSを起動。
まずはどこのVPSでもやることは一緒のセキュリティ対策である。

まずは、VPSのリモートコンソールにあるVNCコンソールを使ってrootでloginする。
どうもVPSリモートコンソールは使いにくい。
本当はTeraTermなどのターミナルソフトでアクセスしたかったのだが、アクセスできなかった。
なので、VNCコンソールを使ったのである。

≫続きを読む

, ,