さくらのVPSを借りてUbuntuをインストールしたよ + 初期設定をするスクリプトを書いた
何かを試そうとしたら今まではVMwarePlayerにUbuntuServerをインストールして、ってことをやってたのですが面倒になってきたので、さくらのVPSを借りました。(借りた数日後に上位プラン発表なんて…… まあ、サービス作るわけじゃないからいいけど)
何をするにも速くていい感じ。カスタムOSのインストールも楽だし、もっと早く借りればよかったかも。
何かを試すときは必ずインストール直後の状態にするのですが、そのあと共通の設定もいろいろするわけで、コマンドを手で打つのも面倒ですし、スクリプトを書いたのでした。スナップショットが撮れたりしたらいいんだけどなー……
https://bitbucket.org/sasaplus1/scripts/ - Sakura-VPS-Ubuntu-Init.sh
以下はこのスクリプトのメモです。
# ssh key pairs settings COMMENT= PASSPHRASE= KEY_FILENAME=sakura_vps_id_rsa # ssh port number SSH_PORT=10022
上の方は生成する(公開/秘密)鍵の設定。(サーバで鍵を生成するってどうなんだろう……)
KEY_FILENAMEを空にすると鍵を生成しません。
下の方はsshのポート番号。SSH_PORTを空にするとsshdの設定とiptablesの設定をしません。
if [ "$KEY_FILENAME" ]; then ssh-keygen -t rsa -C "$COMMENT" -N "$PASSPHRASE" -f $KEY_FILENAME SSH_DIR=$HOME/.ssh if [ ! -d $SSH_DIR ]; then mkdir $SSH_DIR fi cat $KEY_FILENAME.pub >> $SSH_DIR/authorized_keys2 fi
鍵を生成している部分。$HOME/.sshディレクトリを作って、authorized_keys2に生成した公開鍵を登録します。
if [ "$SSH_PORT" ]; then SSHD_CONFIG=/etc/ssh/sshd_config sudo sed -i.bak "s/^\(Port\).*/\1 $SSH_PORT/" $SSHD_CONFIG sudo sed -i 's/^\(PermitRootLogin\).*/\1 no/' $SSHD_CONFIG sudo sed -i 's/^#\(PasswordAuthentication\).*/\1 no/' $SSHD_CONFIG sudo ufw default reject incoming sudo ufw default allow outgoing sudo ufw limit $SSH_PORT/tcp sudo ufw allow http/tcp sudo ufw allow https/tcp sudo ufw enable fi
sshdの設定とiptables(ufw)の設定をしている部分。
sshdの設定は
- ポート番号変更
- rootでのログインを禁止
- パスワード認証を禁止
- 外から来るものはデフォルトでConnection Refusedを返す
- 中から出ていくものは許可する(トロイの木馬にかかったら危ないかも)
- sshは回数制限付きで解放(scpするとき困ることがあるかも?)
- http解放
- https解放
最後に有効化しています。sshで接続してる場合は
Command may disrupt existing ssh connections. Proceed with operation (y|n)?
とか聞かれるけどyにしても切れなかったし、大丈夫なのかな。多分。
(sshは国内からのみアクセスできるようにした方がいいんだろうけど、どうやるんだろう?)
参考:
さくらのVPSでファイアーウォールが何も設定されていないのに驚愕したが ufw で解決 - babie, you're my home
ハレとケガレのweblog pid0.org支店: さくらのVPS Ubuntu 10.04 ファイヤーウォールの設定
sudo apt-get update sudo apt-get upgrade -y sudo apt-get install -y build-essential sudo apt-get install -y git-core sudo apt-get install -y mercurial sudo apt-get install -y ntp sudo apt-get install -y sysv-rc-conf
パッケージのアップグレードをしたりとかその他いろいろ入れたりとか。
if [ `which sysv-rc-conf` ]; then sudo sysv-rc-conf dns-clean off sudo sysv-rc-conf pppd-dns off sudo sysv-rc-conf rsync off fi
必要の無さそうなサービスを止めます。上から順に、
です。正直、rsync以外は何なのかわかりません……
NTP_CONF=/etc/ntp.conf sudo sed -i.bak 's/^\(server.*\)/#\1/' $NTP_CONF sudo sed -i ' $a \ server ntp.ring.gr.jp\ server ntp1.jst.mfeed.ad.jp\ server ntp2.jst.mfeed.ad.jp\ server ntp3.jst.mfeed.ad.jp\ server ntp.nict.jp ' $NTP_CONF
ntpサーバをいくつか設定します。
参考:NTP/推奨公開サーバ - wiki@nothing
sudo sed -i.bak ' 1a \ nameserver 8.8.8.8\ nameserver 8.8.4.4 ' /etc/resolv.conf
Google Public DNSを追加します。aptとかHTTP GETが速くなるらしいです。
特に遅いと思ったことはないので、もしかしたらDebianだけなのかも。
参考:さくらの VPS で名前解決が遅い - #生存戦略 、それは - subtech
sudo sed -i.bak 's#^\(ACTIVE_CONSOLES\).*#\1="/dev/tty[1-2]"#' /etc/default/console-setup for i in `seq 3 6`; do sudo sed -i.bak 's/^/#/' /etc/init/tty${i}.conf done
ttyを6つから2つに減らします。メモリが削減されるとか。
参考:http://smilelogic.jp/makoto/?p=3060