Ubuntu Weekly Recipe

第322回 さくらのVPSでUbuntu 14.04 LTSを動かす

この記事を読むのに必要な時間:およそ 5 分

公開鍵の設置とSSHサーバーの設定変更

初期状態では,インストール時に作成したユーザーで,パスワードログインが可能になっています。インターネットにつながっているサーバーの場合,パスワードでSSHログインできてしまうのは好ましくありません。SSH公開鍵を登録し,パスワードログインを許可しない設定にしておきましょう。これは,OSをインストールしたら一番最初にやっておくべきです。

SSH公開鍵の登録には,第53回で紹介した「ssh-copy-id」を使うと便利です。またLaunchpadに公開鍵を登録しているのならば,ssh-import-idも便利です。たとえば筆者の公開鍵注6を登録したい場合,筆者のLaunchpadアカウントである「mizuno-as」を引数に指定します。

Launchpadに登録されている公開鍵をインポートする

$ ssh-import-id mizuno-as
2014-04-20 11:33:00,911 INFO Authorized key ['2048', 'ab:0c:91:14:ed:0b:f4:1d:fa:88:b5:d4:41:db:2a:d1', 'hajime.mizuno@gmail.com', '(RSA)']
2014-04-20 11:33:00,911 INFO [1] SSH keys [Authorized]

設置した鍵でログインができることを確認したら,SSHサーバーの設定を変更します。具体的には「PasswordAuthentication」「UsePAM」それぞれに「no」を指定し,SSHサーバーを再起動します。⁠PasswordAuthentication」はコメントアウトされたうえで「yes」と書かれているはずです注7)⁠コメントアウトを解除したうえで,⁠no」に書き換えてください。⁠UsePAM」「yes」になっていますので,単純に「no」とします。

/etc/ssh/sshd_configの設定変更

#PasswordAuthentication yes
↓
PasswordAuthentication no

UsePAM yes
↓
UsePAM no
注6)
https://launchpad.net/~mizuno-as/+sshkeys
注7)
SSHの設定ファイルにおいて,コメントアウトされている表記はデフォルト値です。

シリアルコンソールを設定する

さくらのVPSのコントロールパネルでは,Webブラウザからリモートコンソールを操作することができます。これはVPSのシリアルポートを経由してコンソールを取るという仕様のため,OS側でシリアルコンソールの設定をしておく必要があります。具体的には/etc/init/ttyS0.confというファイルを作成し,以下の設定を記述します。

Ubuntu WikiのSerial Console How Toも参考にしてください。

/etc/init/ttyS0.confの内容

# ttyS0 - getty
#
# This service maintains a getty on ttyS0 from the point the system is
# started until it is shut down again.

start on stopped rc or RUNLEVEL=[12345]
stop on runlevel [!12345]

respawn
exec /sbin/getty -L 115200 ttyS0 vt102

Upstartからgettyを開始

$ sudo start ttyS0

図13 シリアルコンソールからログイン

図13 シリアルコンソールからログイン

IPv6を設定する

さくらのVPSでは,IPv6のグローバルアドレスを1つもらえます。自宅の環境をIPv6化するには,まだまだ色々と面倒な手続や作業が必要ですが,VPSであれば気軽にIPv6を使い始めることができます。せっかくですので,IPv6アドレスを設定して,通信できるようにしておきましょう。

ネットワークの設定は,/etc/network/interfacesに記述されています。インストールが完了した状態で,以下のようにIPv4の設定がなされているはずです。

/etc/network/interfacesの内容

(……省略……)
# The primary network interface
auto eth0
iface eth0 inet static
        address (IPアドレス)
        netmask 255.255.254.0
        network (ネットワークアドレス)
        broadcast (ブロードキャストアドレス)
        gateway (ゲートウェイのIPアドレス)
        # dns-* options are implemented by the resolvconf package, if installed
        dns-nameservers 133.242.0.3

この下に,IPv6用の設定を追記します。VPSに割り当てられているIPv6アドレスは,コントロールパネルの「VPSホーム」より確認できます。

/etc/network/interfacesに追記

iface eth0 inet6 static
        address (IPv6アドレス)
        netmask 64
        gateway fe80::1
        accept_ra 0
        autoconf 0
        privext 0
        dns-nameservers 2401:2500::1

設定が完了したらネットワークを再起動してください。⁠ip addr」コマンドを実行し,IPv6のグローバルアドレスがNICに付与されていることを確認します。その後は「ping6」コマンドで,外部のIPv6サイトに対して疎通できているか,確認しておくと良いでしょう。

「ip addr」コマンドを実行

$ ip addr show eth0
(……省略……)
    inet6 (指定したIPv6アドレス)/64 scope global
       valid_lft forever preferred_lft forever

$ ping6 ipv6.google.com
PING ipv6.google.com(2404:6800:4004:808::1008) 56 data bytes
64 bytes from 2404:6800:4004:808::1008: icmp_seq=1 ttl=52 time=18.6 ms
(……省略……)

ファイアウォールを設定する

インターネットに直接接続されているサーバーですので,ファイアウォールをきちんと設定し,不正なアクセスから防御しておきましょう。一般的なLinuxでは,iptablesコマンドを使ってソフトウェアファイアウォールを設定します。しかしiptablesは設定を行うのに専門の知識が必要で,ユーザーフレンドリーなツールとは言えません。そこで,iptablesを簡単に設定するツールとして「ufw(Uncomplicated FireWall)⁠を使います。

このVPSではOpenSSHサーバーを起動しましたので,SSHの接続を許可し,それ以外のポートを遮断する設定を行いましょう。第76回を参考に,SSH(22番ポート)にLIMIT(接続頻度を制限する)の設定を行います。

SSHコネクションを張っている状態でufwを有効にしようとすると,続行して良いかの確認が表示されます。ufwはデフォルトですべての通信を遮断する設定になっているため,SSHを許可するルールを設定していない状態でufw有効にすると,サーバーに接続できなくなってしまうためです。さくらのVPSであればシリアルコンソールをWebから取ることができるため,失敗しても致命的な事態にはなりませんが,そうでないサーバーの場合は十分に注意してください。

ufwを有効にした状態で「ufw status」を実行すると,現在の状態が表示されます。22番ポートに対し,頻度を制限したアクセス許可が設定されていることがわかります。またご覧のとおり,⁠ufw limit ssh」コマンドを1回実行するだけで,IPv4とIPv6両方のルールが設定されます。

もしもWebサーバーやメールサーバーなどを立ち上げるのであれば,80/443や25/587など,必要なポートを適宜解放してください。

「ufw」コマンドを実行

$ sudo ufw limit ssh
Rules updated
Rules updated (v6)
$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
$ sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
22                         LIMIT       Anywhere
22 (v6)                    LIMIT       Anywhere (v6)

おわりに

この新しいVPSを使って,筆者は自分用のメールサーバーと,ownCloudTiny Tiny RSSをすでに動作さています注8)⁠お手軽なVPSと最新のUbuntuで,サーバーいじりを楽しんでみてはいかがでしょうか。

注8)
というより,筆者はさくらのVPS大阪リージョンに借りているUbuntu 12.04サーバーで既にこれらのサービスを動かしており,今回の構築は14.04リリースに合わせた石狩への引越し案件であったというのが真相です。

著者プロフィール

水野源(みずのはじめ)

Ubuntu Japanese Teamメンバー。理想のフリーデスクトップ環境を求めて東へ西へ……のはずが,気がついたら北の大地で就職していたインフラ寄りのエンジニア。最近レンズ沼にハマる。