&tag(さくらのVPS, CentOS5);
*目次 [#f67f253e]
#contents
*参考情報 [#z8df055f]
-[[CentOS5]]
-[[さくらのVPS]]
-[[ssh]]
*基本情報 [#t6381175]
-エントリープラン。
-CentOS 5.5(64bit)版がインストールされていた(2011/12/05(月)現在)。
-初期状態の使用メモリ
#pre{{
[root@www12123u ~]# free
total used free shared buffers cached
Mem: 510540 164284 346256 0 21580 116556
-/+ buffers/cache: 26148 484392
Swap: 2048276 0 2048276
}}
*設定 [#h562f865]
**サーバー起動 [#y3a16241]
-コントロールパネルでサーバーを起動する。
**作業用ユーザー生成 [#m6f53f04]
-sshでrootでログイン。rootのパスワードを変更しておくと良い。
# passwd
-初期状態でCentOS 5.5なのでアップグレードする(現在のバージョンは/etc/redhat-releaseで確認できる)。
# yum upgrade
-作業用アカウントを作成。
# useradd tanaka
-作業用アカウントのパスワード設定。
# passwd tanaka
-sudoの設定。visudoを実行し最下行に追加。
#pre{{
tanaka ALL=(ALL) NOPASSWD:ALL
}}
**公開鍵認証用にsshを設定 [#x729add6]
***公開鍵の設定 [#e44fb3f9]
-/home/tanaka/.ssh/authorized_keysを準備する。
#pre{{
# su tanaka
$ cd /home/tanaka
$ mkdir .ssh
$ chmod 700 .ssh
$ vi .ssh/authorized_keys
$ (ターミナルなどから公開鍵をはりつける)
$ chmod 600 .ssh/authorized_keys
}}
***sshdの設定変更 [#rfc7434b]
-/etc/ssh/sshd_configを編集。Portも適当に変更しておいたほうがいい。
#pre{{
Port 10100
PermitRootLogin no
PasswordAuthentication no
UsePAM no
}}
***sshdを再起動し確認 [#md268d87]
-sshdを再起動する。失敗したときに備えて別にウィンドウでログインしておくこと(そのセッションはsshdを再起動しても維持される)。
# /etc/init.d/sshd restart
-クライアントから秘密鍵を指定してログインしてみる。ログインできれば成功。
-エラーになった場合、Poderosaよりputtyのほうがもう少し詳しく原因を表示してくれる。サーバーの/var/log/secureを確認してみる。
*iptablesの設定 [#i4abb680]
-[[CentOSをサーバーとして活用するための基本的な設定:http://tanaka.sakura.ad.jp/archives/001065.html]]を参考にする。ssh/httpはどこからでも許可にした。10100は変更したsshのポート。
-/etc/sysconfig/iptables
#pre{{
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 10100 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT
}}
-iptablesを反映させる
# /etc/init.d/iptables restart
-iptablesの設定を確認しておく
#pre{{
# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
RH-Firewall-1-INPUT all -- anywhere anywhere
Chain FORWARD (policy ACCEPT)
target prot opt source destination
RH-Firewall-1-INPUT all -- anywhere anywhere
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain RH-Firewall-1-INPUT (2 references)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT icmp -- anywhere anywhere icmp any
ACCEPT esp -- anywhere anywhere
ACCEPT ah -- anywhere anywhere
ACCEPT udp -- anywhere 224.0.0.251 udp dpt:mdns
ACCEPT udp -- anywhere anywhere udp dpt:ipp
ACCEPT tcp -- anywhere anywhere tcp dpt:ipp
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:http
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:10100
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
}}
*vim [#ief874e8]
-vimじゃなくvim-enhancedパッケージ。
yum install vim-enhanced
*MySQL [#zcd1fbdf]
-CentOS5.7でもMySQL5.0しか入っていないので、5.5系を使いたい場合は特別な処理が必要。
-[[CentOS 5.5にyumで MySQL 5.5をインストールする - hrendohの日記:http://d.hatena.ne.jp/hrendoh/20110630/1309418113]]より。remiリポジトリを追加し、enablerepoによりそのリポジトリを一時的に有効にしてmysql-serverをインストールする。
#pre{{
# rpm -ivh http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
# rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
# yum --enablerepo=remi,eplp install mysql-server
}}
-自動起動させる
# chkconfig mysqld on
-rootのパスワードを設定
# mysqladmin -uroot password
*Java [#c56a132a]
-Oracleからjdk-6u29-linux-i586-rpm.binをダウンロードしてインストール。
# sh jdk-6u29-linux-i586-rpm.bin
-必要ならば/usr/java/defaultをJAVA_HOMEに設定するなどしておく。
*Postfix [#tfb4ab4c]
**インストール [#y280832a]
-まずデフォルトでインストール済みのsendmailを削除しておく。
# yum remove sendmail
-インストールする。
# yum install postfix
**設定変更 [#q8aa4ee5]
-/etc/postfix/main.cfを編集する。以下独自ドメインexample.comを取得済みとした場合の設定。
-本登録しないと送信用SMTPポートは使えないので注意。iptablesにも穴をあけておかないとダメ。
-[[さくらのVPSをもう少しセットアップしてみる - @blog.justoneplanet.info:http://blog.justoneplanet.info/2010/10/24/%E3%81%95%E3%81%8F%E3%82%89%E3%81%AEvps%E3%82%92%E3%82%82%E3%81%86%E5%B0%91%E3%81%97%E3%82%BB%E3%83%83%E3%83%88%E3%82%A2%E3%83%83%E3%83%97%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B/]]が参考になる。
#pre{{
myhostname = mail.example.com
mydomain = example.com
inet_interface = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
home_mailbox = Maildir/
smtpd_banner = $myhostname ESMTP unknown
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions =
permit_mynetworks
permit_sasl_authenticated
reject_unauth_destination
message_size_limit = 10485760
}}
**起動設定 [#g7f4f21e]
***saslauthdの起動 [#ub60f977]
-外部からSMTP接続を許可するときに使われる認証用サーバーを起動する
#pre{{
# /etc/init.d/saslauthd start
# chkconfig saslauthd on
}}
**postfixの起動 [#qc9c2ea9]
-postfixデーモンを起動。
#pre{{
# /etc/init.d/postfix start
# chkconfig postfix on
}}
**テスト [#dd59fb29]
***送信テスト [#n1eb0039]
-送信テストはmail foo@bar.com などmailコマンドでメールを送れるかどうか確認。
***不正中継していないかどうかの確認 [#h4222a2a]
-[[Postfixのぺーじ−Postfixでのspam対策:http://www.postfix-jp.info/origdocs/antispam.html]]が参考になる。
**転送する [#y28d1fd2]
/etc/aliasesを編集し、正しく転送されればOK。編集後newaliasesを実行しないと反映されないかも。
*Dovecot [#m610ec7b]
**参考情報 [#ia15c4e4]
-[[HowTo/CRAM-MD5 - Dovecot Wiki:http://wiki.dovecot.org/HowTo/CRAM-MD5]]
**dovecot.confの設定 [#zb0e769a]
-/etc/dovecot.confを編集し、認証方法を変更する。
#pre{{
# SSLを有効化
ssl_disable = no
# Maildir形式を使う
mail_location = maildir:~/Maildir
# 認証方法をcram-md5に変更
auth default {
mechanisms = cram-md5
passdb passwd-file {
args = /etc/cram-md5.pwd
}
}
}}
**/etc/cram-md5.pwdを作成する [#h080bb00]
-空ファイルを作る。
#pre{{
# touch /etc/cram-md5.pwd
# chmod 0600 /etc/cram-md5.pwd
}}
-パスワード生成。
# /usr/sbin/dovecotpw
-生成されたパスワードとユーザ名を使ってcram-md5.pwdを編集。
#pre{{
username:passwordhash
}}
**dovecotを再起動 [#a0e41a1f]
-iptablesを使っている場合は、IMAP(=143)、IMAPS(=993)の穴を開けておく。
-dovecotを再起動。
#pre{{
# /etc/init.d/dovecot restart
}}
**クライアントから接続 [#ldd3d9df]
-Beckyから接続する場合、認証方式cram-md5(IMAPSにチェック)、詳細タブで証明書を検証しないにチェックして接続可能になる。
-証明書を自力で作れば警告はなくなる。
*RVM [#ia212e31]
**前準備 [#pc88d99f]
-証明書を更新しておく。
#pre{{
# cd /etc/pki/tls/certs/
# cp ca-bundle.crt ca-bundle.crt.bak
# curl http://curl.haxx.se/ca/cacert.pem -o ca-bundle.crt
}}
-RPMForgeを有効にし、gitをインストールしておく。
-必要なライブラリをインストールしておく。
# yum install zlib-devel openssl-devel readline-devel
**トラブルシューティング [#jf64008e]
***bundle installでエラー [#y9d46841]
-[[sqlite3のインストールとrailsアプリケーションの作成 - わしのすけ:http://d.hatena.ne.jp/URI/20120204/p1]]にあるのが原因?次のようなエラーが表示される。
#pre{{
Building native extensions. This could take a while...
ERROR: Error installing sqlite3:
ERROR: Failed to build gem native extension.
}}
-libsqlite3のバージョンが低すぎるせいらしい。最新版をソースからインストールするか、sqlite3を使ってないならGemfileから取り除いてもいいかも。