Linodeは海外のサービスなので、基本的にこの辺は海外仕様のままです。
んで、日本仕様に合わせて居たつもりだったんだけど、調べてみたら合っていなかったので対応することに、そのメモ。

■タイムゾーンを日本時間へ
cp -p /usr/share/zoneinfo/Japan /etc/localtime

こんだけで、その場でdateすれば値が変わっているのがわかる。

■文字コードを日本語へ
vi /etc/sysconfig/i18n

-LANG="en_US.UTF-8"
+LANG="ja_JP.UTF-8"

一旦ログアウトして、ログインし直せば変わってる。

こんだけー。
楽だー。
かなりの時間を費やしてcoreserverからlinodeへ切り替えてみた。

いろいろ躓いた。

ruby関係のライブラリの更新っぷりにビックリした。
rubygems複数バージョン混在出来るようになっててビックリした。
いや、前からなっていたかもだけど、あんな風になるのかと。

体感速度は少し遅くなったかも。
けど、そんなに感じないので、満足してる。
このエントリーが見えてるってことは、linode上のサイトが見えてるってことです。
(※2009/5/13現在)

愛するブリッターちゃんも引っ越しました。
http://brtr.longkey1.net/
ブリッターのbotも更新頻度を上げました。
※あ~vpsって素晴らしい!!

mysqlのユーザー権限とか、いろいろ考えさせられました。
ということで、また徐々に書いていきたいと思います。
ファイアウォール構築(iptables) - CentOSで自宅サーバー構築で紹介されているiptables.shの「各種サービスを公開する場合の設定」部分のみを変更したシェルを実行した。

#----------------------------------------------------------#
# 各種サービスを公開する場合の設定(ここから) #
#----------------------------------------------------------#

# 外部からのTCP22番ポート(SSH)へのアクセスを日本からのみ許可
# ※SSHサーバーを公開する場合のみ
iptables -A INPUT -p tcp --dport 22 -j ACCEPT_COUNTRY

# 外部からのTCP80番ポート(HTTP)へのアクセスを許可
# ※Webサーバーを公開する場合のみ
iptables -A INPUT -p tcp --dport 80 -j ACCEPT

# 外部からのTCP21番ポート(FTP)へのアクセスを日本からのみ許可
# ※FTPサーバーを公開する場合のみ
iptables -A INPUT -p tcp --dport 21 -j ACCEPT_COUNTRY

# 外部からのPASV用ポート(FTP-DATA)へのアクセスを日本からのみ許可
# ※FTPサーバーを公開する場合のみ
# ※PASV用ポート60000:60030は当サイトの設定例
iptables -A INPUT -p tcp --dport 60000:60030 -j ACCEPT_COUNTRY

#----------------------------------------------------------#
# 各種サービスを公開する場合の設定(ここまで) # #----------------------------------------------------------#


んでiptables_functionsも作成して
# ./iptables.sh

Flushing firewall rules: [ OK ]
Setting chains to policy ACCEPT: raw nat mangle filter [ OK ]
Unloading iptables modules: [ OK ]
Saving firewall rules to /etc/sysconfig/iptables: [ OK ]
Flushing firewall rules: [ OK ]
Setting chains to policy ACCEPT: raw nat mangle filter [ OK ]
Unloading iptables modules: [ OK ]
Applying iptables firewall rules: [ OK ] Loading additional iptables modules: ip_conntrack_netbios_n[FAILED]

はい、出ました、エラー。

いろいろ探したところ、こんな記述が。
Linode.com Forum :: CentOS 5.2 iptables module problem ("ip_conntrack_netbi

まあ、XenのLinodeで発生している模様。
原因は
「カーネルモジュールが無いから、ロードしようとしたらエラー」
っつうことなんかな。
ファイル共有(SambaやCIFS shares)を使わないなら、必要なくない?みたいなことも書いてある。
どうしてもやりたいなら、ソースからコンパイルしてってこと。

んで共有して使う気はさらさら無いので、あっさりロードするのをやめます。

# vi /etc/sysconfig/iptables-config

- IPTABLES_MODULES="ip_conntrack_netbios_ns" + IPTABLES_MODULES=""


これで再度実行。
# ./iptables.sh

Flushing firewall rules: [ OK ]
Setting chains to policy ACCEPT: raw nat mangle filter [ OK ]
Unloading iptables modules: [ OK ]
Saving firewall rules to /etc/sysconfig/iptables: [ OK ]
Flushing firewall rules: [ OK ]
Setting chains to policy ACCEPT: raw nat mangle filter [ OK ]
Unloading iptables modules: [ OK ] Applying iptables firewall rules: [ OK ]


とりあえずOKくさい。

これで少しはsshサービスへの不正アクセスも減るだろうけど、多いようならhaltさんから教えてもらったFail2banを試してみたいな。
これ、かなり良さそうだし。

とりあえず今日はここまで。
VMware使っていたからか、はたまたLinodeのコントロールパネルが、OSのインストール&起動までは余裕でした。

んで、試しにいきなりsshクライアントでアクセスしてみたら、rootで出来たよ・・・。
これは嫌だなあと思って、以下の設定してみた。

参考サイト
CentOS5初期設定 - CentOSで自宅サーバー構築

(1)一般ユーザの追加
(2)rootになれるユーザを限定
(3)yumの設定
(4)root宛メールの転送設定
(5)sshサーバの設定


(1)一般ユーザの追加
useradd hogehoge
passwd hogehoge


(2)rootになれるユーザを限定
usermod -G wheel hogehoge
vi /etc/pam.d/su
-#auth required pam_wheel.so use_uid +auth required pam_wheel.so use_uid 

usermodコマンド
【 usermod 】 ユーザーのアカウント情報を変更する:ITpro

(3)yumの設定
yum-updatesdを停止して、yum-cronにて更新する方が良いらしい。

※以下に示す理由によりyum-updatesdを停止しておく
・デフォルトで1時間ごとにアップデートチェックを行うようになっており、手動によるパッケージインストールと競合すると
インストールが失敗する
・大量にメモリを消費する(約10MB以上使用)

/etc/rc.d/init.d/yum-updatesd stop   # yum-updatesd停止
yum -y remove yum-updatesd # yum-updatesd削除
yum -y install yum-fastestmirror # fastestmirrorプラグインインストール
yum -y update # インストール済パッケージの一括アップデート yum -y install yum-cron # yum-cronインストール

はい、ここでエラー発生。
yum -y install yum-cron
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: centos.cogentcloud.com
* updates: linux.mirrors.es.net
* addons: centos.mirrors.redwire.net
* extras: mirror.hmc.edu
Setting up Install Process
Parsing package install arguments
No package yum-cron available. Nothing to do

パッケージが無いみたい。
Centos5.3になって、まだ間もないからか、パッケージ自体が古いからか?
いろいろ検索した結果、こうやりました。
cd /tmp
wget http://mirror.centos.org/centos/5.2/os/i386/CentOS/yum-cron-0.6-1.el5.centos.noarch.rpm
yum -y install yum-downloadonly rpm -ivh yum-cron-0.6-1.el5.centos.noarch.rpm

無事インストールできたみたいなので、続き。
/etc/rc.d/init.d/yum-cron start   # yum-updatesd停止
chkconfig yum-cron on             # パッケージ自動更新自動起動設定

(4)root宛メールの転送設定
sed -i '/^root:/d' /etc/aliases             # 旧root宛メール転送設定削除
echo "root: hoge@gmail.com" >> /etc/aliases # root宛メールを普段使用しているメールアドレス
# (例:hoge@gmail.com)宛に転送する
newaliases # 転送設定反映 echo test|mail root # テストメールをroot宛に送信する

sedコマンド
【 sed 】 文字列の置換,行の削除を行う:ITpro
newaliasesコマンド
Manpage of NEWALIASES

テストメールが転送先メールアドレス宛に届いていることを確認した!

(5)sshサーバの設定
WindowsからSSHサーバーへリモート接続(Poderosa鍵方式ログイン編) - CentOSで自宅サーバー構築
を参考に公開鍵と秘密鍵を作成。
ちなみにビット数はいくつでもよさげ(SSHサーバで設定されていれば、それに従うべし)
mkdir -p ~/.ssh                  # 公開鍵格納ディレクトリ作成
chmod 700 ~/.ssh # 公開鍵格納ディレクトリのパーミッションを変更
vi ~/.ssh/authorized_keys # 公開鍵をauthorized_keysに保存
<クライアント側で作成した公開鍵の中身を全てコピーして貼り付ける> chmod 600 ~/.ssh/authorized_keys # authorized_keysのパーミッションを変更

ここで一旦接続してみて確認してみる。
引き続きサーバ側の設定。
vi /etc/ssh/sshdconfig

-PasswordAuthentication yes
+PasswordAuthentication no
+PermitRootLogin no


起動しているデーモンもそれほど余分なもの無さそうだし、とりあえずこんなところで。
次はiptabelsか。
TripWireも入れたほうが良いのかしら。