もりねずみーのやつ

インターネット上でしか生きられません

さくら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

で、MaciPadに鍵送って(゚д゚)ウマー

ちなみに、MacのターミナルやiPadの外付けキーボードからはUS配列でもきちんとキーマッピング合ってた。ただiPadの外付けキーボードはCtrlキーがry

とりあえずここまで。あとは ・rootログイン無効化 ・その他  clamav  tripwire などなど。