使用しない仮想コンソールを停止する

使用しない仮想コンソールを停止する。

sudo vi /etc/inittab

# Note that on most Debian systems tty7 is used by the X Window System,
# so if you want to add more getty's go ahead but skip tty7 if you run X.
#
1:2345:respawn:/sbin/getty 38400 tty1
#2:23:respawn:/sbin/getty 38400 tty2
#3:23:respawn:/sbin/getty 38400 tty3
#4:23:respawn:/sbin/getty 38400 tty4
#5:23:respawn:/sbin/getty 38400 tty5
#6:23:respawn:/sbin/getty 38400 tty6

:wq

debian wheezy に nginx をインストールする

最新のパッケージをインストールするため、apt のソースリストに dotdeb を追加し、debian wheezy に nginx をインストールする。

sudo vi /etc/apt/sources.list
# dotdeb.org
deb http://packages.dotdeb.org wheezy all
deb-src http://packages.dotdeb.org wheezy all
:wq

認証用のカギを取得し、登録する。

su -
cd /tmp
wget http://www.dotdeb.org/dotdeb.gpg
cat dotdeb.gpg | apt-key add -
exit

nginx のインストール。

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install nginx

VMware Player 3.1.6 上の debian wheezy の IP を調べて Windows の hosts ファイルに追記する。hosts ファイルは C:\WINDOWS\system32\drivers\etc にある。Windows8 でメモ帳を使って編集する場合、管理者で実行する必要がある。

sudo ifconfig
192.168.1.12	ns9.dev

アクセスできれば OK 。

ntp のインストールと設定

時間あわせのために ntp をインストールし、設定する。

sudo apt-get install ntp
sudo vi /etc/ntp.conf

# You do need to talk to an NTP server or two (or three).
#server ntp.your-provider.example
server ntp.nict.jp iburst
server ntp.nict.jp iburst
server ntp.nict.jp iburst

:wq

sudo service ntp restart

ユーザー権限周りの設定

前回は ssh でルートログインを禁止したので、ユーザー権限周りの設定も済ませておく。セキュリティ上、su - よりも sudo の方が、ルートパスワードの入力をしない点で好ましい。そこで、sudo をインストールし、wheel グループにのみ sudo の利用を許可する。なお、debian のデフォルトでは wheel グループが存在しないので、グループも新規作成し、ユーザーを所属させる。

apt-get install sudo
groupadd wheel
usermod -G wheel hogehoge

検索すると wheel のグループID(gid)を 11 と指定している例がある。他方で Debian のマニュアルには以下のようにあり、プロジェクトやシステムという言葉の射程がわかりにくいものの、0-99 の gid 使わない方がいいようにも思える・・・。私は gid を指定せずにグループを作成した。

0-99:
Debian プロジェクトで共通に割り当てられ、すべての Debian システムで同じ目的のために使われるものです。これらの ID はすべての Debian システムの passwd と group に現れ、base-passwd 更新の際にこの範囲にある ID は自動的に追加されます。

静的に割り当てられた uid や gid が必要なパッケージはこの範囲の ID を使わなければなりません。当該パッケージのメンテナは ID を base-passwd のメンテナに割り当ててもらう必要があります。

Debian ポリシーマニュアル 9.2.2

グループが作成でき、ユーザーを所属させられたか、確認する。

cat /etc/group | grep wheel

デフォルトのエディタを nano から vi に変更した後、wheel グループにのみ sudo を許可する。

update-alternatives --config editor
2

visudo
#Allow members of group sudo to execute any command
#%sudo   ALL=(ALL:ALL)ALL
%wheel  ALL=(ALL:ALL)ALL
:wq
reboot

su - が使えるのも wheel グループのみにする。

sudo vi /etc/pam.d/su
auth	required	pam_wheel.so
:wq

wheel グループに所属させたユーザーのみが sudo 及び su - を使用できるようになった。冒頭に述べた理由から、出来る限り sudo を利用する。

debian wheezy への ssh サーバーのインストールと公開鍵認証の設定等

VPS の実際では SSH もインストール済みかもしれない。しかし、今回は最小構成でインストールしたため、SSH サーバーのインストールから始める。

apt-get install openssh-server

SSH サーバーが起動しているか確認する。

service ssh status

SSH サーバーの設定ファイルをバックアップする。その後、ポート番号を変更し、ルートでログインできないようにする。公開鍵認証を設定する準備もする。なお、今後は debian squeeze のインストール過程で作成した一般ユーザーでログインする。

cp /etc/ssh/sshd_config /etc/ssh/sshd_config.origin
vi /etc/ssh/sshd_config
Port 38761
PermitRootLogin no
AuthorizedKeysFile	%h/.ssh/authorized_keys
:wq
service ssh restart

今回はホスト OS にスペック的な余裕がないので、SSH クライアントは軽快な puttyjp を採用する。puttyjp の接続先 IP を調べる。

ifconfig

puttyjp から公開鍵認証を使いたいユーザでログインする。文字化けする場合は設定の変更の「変換」から文字コードを変更する。私の場合は UTF-8 で文字化けせずに表示できた。

公開鍵認証の設定をする。puttygen を起動し、公開鍵と秘密鍵を作成する。公開鍵をホスト OS とゲスト OS の共有フォルダにおき、公開鍵を登録する。

cp /mnt/hgfs/shared/local_key.pub ~
ssh-keygen -i -f ~/local_key.pub > ~/local_keygen.pub
mkdir $HOME/.ssh
cat ~/local_keygen.pub >> $HOME/.ssh/authorized_keys
chmod 600 $HOME/.ssh/authorized_keys
rm ~/local_key.pub ~/local_keygen.pub

公開鍵認証の設定には『@IT:鍵交換方式のsshでアクセスするには』が参考になった。

puttyjp の設定を変更して、公開鍵認証を利用したログインにする。ログインできたらパスワードを使ったログインを禁止する。

vi /etc/ssh/sshd_config
PasswordAuthentication no
:wq
service ssh restart