さくらVPSを導入したときにやったこと一覧を。
ハマったら
SSHやアクセス制限してると自分がログインできなくなることがしょっちゅうあるので(自分だけかも)。
https://secure.sakura.ad.jp/vpscontrol/
ここから直ログインして設定し直す。
OS入れ替え
上記コントロールパネルでUbuntuに入れ替え。
パッケージマネージャ
aptitude
コマンドでパッケージを操作する。
パッケージリスト更新
aptitude update
副作用は無いので気軽にやる。
インストールされているパッケージのアップグレード
aptitude full-upgrade
パッケージを最新版にする。たぶん大丈夫だけど、不具合が起きる可能性はある。
パッケージの検索
aptitude search キーワード
インストールされているパッケージ一覧
dpkg -l
aptitudeではできない?
特定のパッケージ情報
aptitude show パッケージ名
SSH設定
ログ
/var/log/auth.log
tail -f /var/log/auth.log
などとやって監視する。不正ログインがたくさん来るのでRSAアクセスやdenyhostsなどで対処するとよい。
RSAアクセス
公開鍵アクセス(だっけ?)パスワードログインよりずっと安全。
鍵作成
ユーザーのhome(cd
で来るところ)で鍵を作る。
ssh-keygen -t rsa
cd .ssh
mv id_rsa.pub authorized_keys
一緒に出来るid_rsaはSFTPなどで自分のパソコンに持ってくる。
設定
/etc/ssh/sshd_configを編集
PermitRootLogin no
PasswordAuthentication no
UsePAM no
ルートログイン禁止、パスワードログイン禁止、PAM?
sshd再起動
service ssh restart
denyhostsによるアクセス拒否
RSA鍵はめんどくさい。安全度は落ちるが、denyhostsを使うと不正ログインを拒否できる。
インストール
sudo aptitude install denyhosts
設定
/etc/denyhosts.conf
に設定する。
PURGE_DENY = 4w
PURGE_THRESHOLD = 2
DENY_THRESHOLD_INVALID = 3
DENY_THRESHOLD_VALID = 3
DENY_THRESHOLD_ROOT = 1
HOSTNAME_LOOKUP=NO
ADMIN_EMAIL =
/etc/hosts.deny
に拒否ホストが自動で追加される。自分自身のIPが追加されてしまった場合は直ログインして消す。
自動ログイン
ターミナルから自動ログインしたい。
TereTermの場合
TeraTerm
以下のようなマクロを書く。
; sakura login
connect 'xxx.xxx.xxx.xxx /ssh /2 /auth=password /user=[user] /passwd=[pw]’
setsync 1
wait '~$’
sendln 'sudo su -‘
wait 'password for’
sendln ‘[pw]'
xxx.xxx.xxx.xxxはIPアドレス
[user]はユーザー名
[pw]はパスワード
拡張子を.ttlにしてTera Term Macro実行ファイルに関連付けておくとよい。
Macの標準ターミナルの場合
対話式にコマンドを実行できるexpectコマンドを使う。
# !/usr/bin/expect
set timeout 10
spawn ssh -l [user] xxx.xxx.xxx.xxx
expect "password:"
send "[pw]\n"
expect ":~$"
send "sudo su -\n"
expect "[user]:"
send "[pw]\n"
interact
xxx.xxx.xxx.xxxはIPアドレス
[user]はユーザー名
[pw]はパスワード
どちらもパスワード直書きのいきなりrootにsuしてセキュリティ的にはザルなので気をつけて。
LAMP
ApacheとPHPとMySQLを導入。
インストール
aptitude install apache2 php5 mysql-server php5-mysql phpmyadmin
ドキュメントルート
/var/www
MultiViewsを切る
/etc/apache2/conf.d/site-available
で-MultiViews
を追加。
これをやらないと拡張子無しのファイルに勝手に拡張子をつけるのでいろいろ面倒。
phpmyadminの安全性を高める
phpmyadminフォルダを推測されにくい名前にリネームしておくとよい。
リネームしたら/etc/apache2/conf.d/phpmyadmin.conf
のaliasも同じ名前に変更しておく。
MySQL
設定ファイルは/etc/mysql/my.cnf
default-character-set=utf8
skip-character-set-client-handshake
php.ini
/etc/php5/apache2/php.ini
Apache
ログ /var/log/apache2/access.log
エラーログ /var/log/apache2/error.log