Server OS変更
最初に
このblogのあるサーバは海外にあるLinode.comで借りています。
ついこの間Ubuntu9.10が公開され、ローカルのVMにもインストールしてたけど、Linodeの方でも早速にUbuntu9.10に対応開始。
CentOSを利用していたのだけど、作りたいものの関係でUbuntuを使いたい&ローカルのVMのサーバもUbuntuなので、いっそのこと統一した方が良いって事で、丁度いい機会ってことでサーバの切り替えをした。
そう思い立ったのが2009/11/24 AM2:00
その記録。適宜説明はしょりまくってますが、これは実際には昨日2009/11/24の話です。
バックアップ
まずサーバのデータバックアップ。
・メールスプール
・ウェブページ(実質blogとp2しかないけどw)
・DBデータ
・ログデータ
・設定ファイル(postfix,dovecot,mysql,apache)
・SSL証明書
を順番にtarでパックしつつローカルにコピー
OSインストール
linodeはVPSでコントロールパネルからOSのDeployが出来るので、HD消去 >>Deployと実行
これはOSイメージのコピーくらいの時間で5分くらいで完了(たしかそのくらい)
ちなみに、インストールされるものは最小限のものしか入ってないので、適宜インストールが必要。taskselを使ったインストールもできませぬ。
サーバ初期設定
サーバはrootでしか入れない設定なので、webのコントロールパネルのLISHの情報を見て、sshでrootで入って設定。
まずはユーザ追加(プライマリグループはusers)
# adduser --gid 100 username
adminグループが無かったので作成
# addgroup --gid 109 admin
adminグループを作成したユーザに追加
# gpasswd -a username admin
ユーザ追加が確認できたら、visudoで追加したユーザでsudoが使えるように以下を追加
%admin ALL=(ALL) ALL
追加したユーザにスイッチして実際にsudoできるかどうか確認
# su - username
$ sudo apt-get update && sudo apt-get upgrade
確認できたら実際にterminalから入って以後は追加したユーザで設定
基本設定
host名が入ってないので、ホスト名を設定
$ sudo vi /etc/hostname
次にtimezoneがutcなのでjstに
$ sudo dpkg --configure tzdata
DHCPでIPアドレスを取得する設定になっているので、固定にする
(IP情報はwebコントロールパネルで確認できる)
$ sudo vi /etc/network/interfaces
セキュリティ設定
ポリシー
iptablesで必要なportだけ通す。sshについてはtcpdで接続制限をかけると共に、公開鍵のみで行う。sshのポートは変更しない。
まずはfirewallの設定とtcp wrapperの設定ということで、ufwとtcpdをインストール。
$ sudo apt-get install tcpd ufw
ufwの最小限の設定。
$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
$ sudo ufw default deny
$ sudo ufw allow ssh
$ sudo ufw logging low
tcpdの設定/etc/hosts.allowと/etc/hosts.denyに以下のように設定。
/etc/hosts.allow
sshd: .xxxx.yyy.ne.jp
/etc/hosts.deny
sshd: ALL
そして次はMTA(postfix+mysql)の設定
必要なもののインストール。
$ sudo apt-get install postfix postfix-mysql dovecot-postfix dovecot-imapd mysql-server mysql-client
インストール途中でどんなメールサーバ?と聞かれるので internet site を選択し
て、ホスト名を入力
mysqlのrootのパスワードも聞かれるので、passwordを設定。
設定ファイルなどはCentOS時代のを流用。
この辺は時間があったら別で再掲します。
Centosとの違いとして注意点は、chroot がデフォルトONになってたので、それをOffに。(これに気づくのに時間かかったのは内緒だ)
dovecotのバージョンが上がっていて、オプションが増えていたので、追加
設定後は、ufwでportを空ける。
$ sudo ufw allow 25
$ sudo ufw allow 587
$ sudo ufw allow 993
次にapache2+php5
$ sudo apt-get install apache2 php5
phpmyadminを入れようとして失敗して、universeコンポーネントが含まれていない事に気づいたので。
$ sudo vi /etc/apt/source.list
以下を追加
## universe repositories
deb http://us.archive.ubuntu.com/ubuntu/ karmic universe
deb-src http://us.archive.ubuntu.com/ubuntu/ karmic universe
deb http://us.archive.ubuntu.com/ubuntu/ karmic-updates universe
deb-src http://us.archive.ubuntu.com/ubuntu/ karmic-updates universe
追加した後に
$ sudo apt-get update
$ sudo apt-get install phpmyadmin
設定が終わったら、各portをufwで空けていく。
$ sudo ufw allow 80
$ sudo ufw allow 443
timelimit
これで/etc/apache2/site-availableに使ってるサブドメイン単位で設定ファイルを書いて、バックアップからデータを戻して、表示確認まで出来たってことで、timelimitで朝になりましたorz
簡単には確認できていたので、mailさえ確実に届くなら後でいいやってことで。
所用を片付けて、夜。
このblogで各記事へのリンクが404になってる事に気づくorz
apacheのrewriteがデフォルトでoffになってる事に気づいて。慌てて以下のコマンドを設
定。
$ sudo a2enmod rewrite
$ sudo service apache2 restart
ということで、16時間くらいトップしか表示されていなかったようです。orz
そしてまだおかしい所が多々あるかもしれませんorz