さくらVPS+ArchLinux環境整備メモ(1)
VPSの契約
さくらVPS(v3) 2GB(石狩リージョン)が初期費用0円キャンペーンやってたので申し込んだ。ただそれだけ。なんとなく使ってみたかった。ただそれだけ。
OSインストール(ArchLinux)
契約直後はCentOS 6がインストールされているが、使い慣れているArchLinuxをインストールしてみる。 ※僕はここのブログを参考にさせてもらいました →http://d.hatena.ne.jp/opamp_sando/20121103/1351924889
さくらWebサイトの会員メニュー→契約情報→[契約サーバ]のサーバ設定から OS再インストールを選択。 すると、OS再インストール用のアカウントが作られる。このアカウントは24時間だけ有効。 事前にダウンロードしておいた、ArchLinuxのisoイメージを、これらの情報を元に sftpでアップロード。
$ sftp [user]@[host]
$ [password]
$ sftp> lcd Downloads
$ sftp> lls archlinux*
archlinux-2012.10.02-dual.iso
$ sftp> cd iso
$ sftp> put archlinux-2012.10.02-dual.iso
アップロードが完了し、さっきのさくらVPS再インストールアカウントのページのisoイメージ 横の「更新」ボタンをクリックすると、アップロードしたisoイメージがマウントされる。 次へ進む。 すると、ローカルマシン上にTinyVNCが起動され、VNC画面経由でさくらVPSの OSインストールを進めることが出来るようになる。
まずはキーボード配列の設定
$ loadkeys us
ただし、ここで注意しておきたいことがある。 僕の環境(Mac OS X 10.7.4+英語配列キーボード+TinyVNC)だけなのかもしれないけど、 loadkeysでUS配列マップを指定しても、半角記号のマッピングが正常に行われず、 セットアップを進める上で”=”が入力できないという致命的な状態になる。
で、最終的に使ったのは
$ loadkeys jp106
これで、”=”はShift+NumPad / で入力でき、”:”はNumPad *で入力できるようになった。 根本的な解決法はよくわからない。
以降のセットアップの続きは、参考元のブログの方が細かく丁寧に書かれているので、 ここでは手順だけ。
$ ip addr add [IPアドレス]/23 dev eth0
$ ip route add default via [ゲートウェイ]
$ nano /etc/resolv.conf
以下を追加
nameserver=[DNS1]
nameserver=[DNS2]
$ ping -c 3 google.com
$ parted
$ > print
$ > quit
$ mkfs.ext4 /dev/sda1
$ mkfs.ext4 /dev/sda3
$ mkswap /dev/sda2
$ swapon /dev/sda2
$ mount /dev/sda3 /mnt
$ mkdir /mnt/boot
$ mount /dev/sda1 /mnt/boot
$ pacstrap /mnt base base-devel
$ arch-chroot /mnt pacman -S syslinux
$ genfstab -p /mnt >> /mnt/etc/fstab
$ arch-chroot /mnt
# nano /etc/hostname
以下を追加
[ホスト名]
# /etc/hosts
localhostを修正
127.0.0.1 localhost.localdomain [ホスト名]
# ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
# nano /etc/vconsole.conf
以下を追加
KEYMAP=us
# nano /etc/locale.gen
以下の先頭"#"を除き有効化
en_US.UTF-8 UTF-8
ja-JP.UTF-8 UTF-8
# nano /etc/rc.conf
以下のように記述
interface=eth0
address=[ホストIP]
netmask=[ネットマスク]
broadcast=[ブロードキャスト]
gateway=[ゲートウェイ]
# nano /etc/mkinitcpio.conf
以下を変更
MODULES=”virtio virtio_blk virtio_pci virtio_net”
# mkinitcpio -p linux
# pacman -S gptfdisk
# syslinux-install_update -iam
# sgdisk /dev/sda --attributes=1:set:2
# sgdisk /dev/sda --attributes=1:show
# dd gb=440 conv=notrunc count=1 if=/usr/lib/syslinux/gptmbr.bin of=/dev/sda
# passwd
rootのパスワードを設定
# useradd -m -g users -G wheel,storage,power -s /bin/bash [username]
# passwd [username]
# exit
$ umount /mnt/boot
$ umount /mnt
$ reboot
で、このままリブートしてもさくらVPS上にisoイメージファイルがマウントされっぱなしで、再度インストール画面になってしまうので、さくらVPSのリモートコンソール画面からサーバを停止し、再度起動させる。これでisoイメージのマウントが外れた状態でOSを起動できる。
OS初期設定
とりあえず、お約束ってことで、さっきuseraddで作ったユーザでログインしてから初期設定を進める。
$ su -
まずは、リポジトリからもろもろインストールを行いたいのだけど、インストールしたOSが64bit版なので、/etc/pacman.confを設定
リポジトリの対象に[multilib]、[multilib-test]というのがコメントアウトされているので、コメントを外す。これが64bit版向けアプリケーションのリポジトリ。 ちなみに、どこで見たのか忘れてしまったけど、64bit版の場合、[multilib-test]にしか無いものが多いらしく、念のために[multilib]と[multilib-test]両方使うようにします。
# nano /etc/pacman.conf
次に、リポジトリのミラーリストの設定。近い場所のコメントを外しましょう。 ※僕は日本国内のサーバで何故かたまにタイムアウトになってしまうので、一番下の方のUSサーバも念の為に残してます。近いから中国でも良いんだけど。
# nano /etc/pacman.d/mirrorlist
お待ちかね、パックマン。
# pacman -Syu
リポジトリを更新し、sudoをインストール。
# pacman -S sudo
sudoerファイルの編集
# visudo
rootから抜けて、sudoが使えることを確認
$ sudo pacman -Syu
いい加減TinyVNCを使いたくないので、SSH接続できるようにセットアップ。
$ sudo pacman -S openssh
セキュリティ対策
SSH関連とパスワード認証無効化
sshdを設定
# nano /etc/ssh/sshd_config
ほぼ全ての項目がコメントアウトされてるけど、変更が必要な部分だけコメントを外し設定を変えれば、それになり、コメントアウトされていればデフォルトが最初から書かれているものが設定される様子。 で、セキュリティ対策としては、ポート、プロトコルを変更し、パスワード認証を無効化。 ※↓変更した箇所だけ
Port [xxxxx]
Protocol 2 <- ここがコメントアウトされてると、プロトコル1,2両方つなげられる
PasswordAuthentication no
PermitEmptyPasswords no
SSH認証鍵の生成
# ssh-keygen
ちなみに、MacのターミナルやiPadの外付けキーボードからはUS配列でもきちんとキーマッピング合ってた。ただiPadの外付けキーボードはCtrlキーがry
とりあえずここまで。あとは ・rootログイン無効化 ・その他 clamav tripwire などなど。