さくらの VPS の FreeBSD 設定 02

SSHVPS に接続できるように設定する。

インストール直後の SSH の設定について

FreeBSD ではインストール直後は SSH のパスワード認証が不可になっている。また、root でのログインも不可になっている。
そのため、いきなり SSH を使って、root でログインしようとしても接続できない。

# less /etc/ssh/sshd_config

PermitRootLogin no
PasswordAuthentication no
# 仮に上記2行がコメントアウトしていても、
# コメント行の設定は、SSH の初期設定のため、
# コメントを外して、設定を明示的に変更する必要がある。

SSH でログインするための前準備

インストール時に登録した一般ユーザーの所属グループを確認する。

# id username
uid=1002(littlebuddha) gid=1001(general) groups=1001(general)

もしくは

% groups littlebuddha
webadmins

ここで表示される「groups=」の括弧内に表示される「(general)」が所属グループになる。グループ名に「wheel」が含まれていない場合、登録したユーザーを「wheel」に所属させる。

# pw usermod -n littlebuddha -G wheel
# id littlebuddha
uid=1002(littlebuddha) gid=1001(webadmins) groups=1001(webadmins),0(wheel)
# groups littlebuddha
webadmins wheel

sudo をインストールする

ここまで設定できたら、次は「sudo」をインストールする。sudo は「su」コマンドを使わずに、root 権限の操作ができるようになる。また、sudo は su と異なり、操作ログが残る。

# whereis sudo
/usr/ports/security/sudo
# cd /usr/ports/security/sudo
# make install clean

インストールが成功すれば、下記のディレクトリにコマンドが保存されている。

# which which sudo
/usr/local/bin/sudo

sudo の設定を修正する。sudo のコマンドを「wheel」グループに所属するユーザーが実行できるようにする。「su」コマンドとこは異なり、「sudo」は操作のログが残る。(sudo 操作ログの場所は通常「/var/log/auth.log」になる)

# visudo

# コメントを削除して wheel グループが sudo を使えるようにする
# %wheel ALL=(ALL) ALL
%wheel ALL=(ALL) ALL

ここまでできたら、次は SSH の設定を行う。

SSH の最初の設定

本来ならば、鍵認証の設定まで行いたいが、ここではパスワード認証までの設定プラスアルファを行う。

# cp /etc/ssh/sshd_config /etc/ssh/sshd_config.orig
# vi /etc/ssh/sshd_config

"
# ポート番号 22 からポート番号を別の番号にする
# ポート番号は任意でいいが、10000番以上を指定する
# Port 22
Port 16192

# プロトコルの version 2 を指定する
# version 1 はセキュリティ上好ましくないため、利用しない
Protocol 2

# root でのログインは不許可のまま。
# 一般ユーザーが root 権限での操作ができるようにするため
# sudo のインストールを先に行っておいた理由はそのため。
PermitRootLogin no

# PAM でのパスワード管理は、初心者にはわかりづらいので利用しない
# SSH のログインを鍵認証にする場合も、この設定は「no」にする
# UsePAM yes
UsePAM no

とりあえず、ここまで設定できたら、変更点を有効にするため、sshd を再起動させる。

# /etc/rc.d/sshd restart
Stopping sshd.
Starting sshd.

再起動が完了したら、SSH でのログインを一般ユーザーで試してみる。そして、root でのログインを拒否されるか確認をする。
上記の設定で、ポート番号を変更している場合は、下記のようにオプションを指定する。

% ssh -l username -p 16192 www.example.com
  • -l でユーザー名を指定
  • -p でポート番号を指定

これで、ポート番号を変更していても、ログインができるようになる。