技術メモ

GMOクラウドVPS構築記 ③セキュリティの設定 その1

本記事の中には広告が含まれています。

前回までの記事で、VPSへssh接続できるようになりました。しかし、その状態ではセキュリティ的にちょっと問題があります。今回は、最低限のセキュリティ設定を行い、できるだけ安全にVPSを使用できるようにする手順を紹介します。

注意事項

コマンドに関して、rootユーザで実行しているコマンドの先頭にはなにも文字列を付加していません。一般ユーザで実行しているコマンドに関しては、先頭に「$」を表示しています。このページで言うと「番外編:作成ユーザのログインシェル」でのみ、一般ユーザのコマンドが存在します。

ファイルの修正前には基本的にバックアップのコマンドを入れています。何か失敗したときに、すぐに元の状態に戻すことができますので、ぜひバックアップをとってからファイルを修正するような習慣をつけましょう。

一般ユーザの作成

次の工程で、rootによるログインを無効化するため、先に一般ユーザを作成しておきます。自分の名前なんかで作ってもいいと思います。

[bash title="※rootユーザ"]useradd user01 -d /home/user01 -m
passwd user01[/bash]

ここで、作成したuser01のパスワードを聞かれますので、自分の好きなパスワードを設定してください。

新しいUNIXパスワードを入力してください:(入力)
新しいUNIX パスワードを再入力してください:(入力)

passwd: password updated successfully

以上のようなメッセージが出力されれば、ユーザの作成は完了です。

sshdの設定

まずは、sshdの設定を行います。

sshdの設定では、主に以下の3点について設定します。

  1. sshのポート番号を変更
  2. rootログインの無効化
  3. X11フォワードの無効化

sshdの設定変更は、/etc/ssh/sshd_configファイルの修正により行います。

[bash title="①バックアップ"]cd /etc/ssh/
cp -p sshd_config sshd_config.20130803[/bash]

※バックアップファイル名は適宜変更してください。

[bash title="②sshd_configファイルの修正"]vi sshd_config[/bash]

■sshのポート番号を変更
5行目あたりにsshに使用するポート番号についての記述があります。

[text title="変更前"]Port 22[/text]

上記の『22』という数字を、適当な数字に変更してください。いわゆるWELL KNOWNポートは使用できませんので、1024~65535の範囲ですね。例としては以下のような感じです。

[text title="変更後"]Port 10358[/text]

■rootログインの無効化
続いて、rootログインの無効化に関する記述は28行目あたりです。以下のような記述があります。

[text title="sshd_config:変更前"]PermitRootLogin yes[/text]

これに関しては以下のように拒否する設定に変更しましょう。

[text title="sshd_config:変更後"]PermitRootLogin no[/text]

■X11フォワードの無効化
最後に、X11フォワードの無効化については65行目あたり。

[text title="sshd_config:変更前"]X11Forwarding yes
X11DisplayOffset 10[/text]

以下のような感じで修正しておきましょう。

[text title="sshd_config変更後"]X11Forwarding no
#X11DisplayOffset 10[/text]

以上の修正が終わったらsshd_configを保存し、sshサービスを再起動させましょう。

[bash title="sshサービス再起動"]service ssh reload[/bash]

rootになれるグループを限定する

特定のグループでのみrootになれるよう設定します。今回そのグループを「wheel」としています。

①まずは、wheelグループを作成し、作成したユーザと、rootユーザをwheelグループに追加します。

[bash title="wheelグループの作成"]groupadd -g 999 wheel[/bash]

[bash title="作成ユーザをwheelグループに追加"]usermod -G wheel user01[/bash]

[bash title="rootユーザもwheelグループへ追加"]usermod -G wheel root[/bash]

②続いて、PAMの設定に移ります。suファイルを修正します。

[bash]cd /etc/pam.d/
cp su su.20130803
vi su[/bash]

15行目あたりを修正します。コメントを解除するのみです。

[text title="su:変更前"]# auth       required   pam_wheel.so[/text]

[text title="su:変更後"]auth       required   pam_wheel.so[/text]

Ubuntuを最新にアップデート

Ubuntuを最新にアップデートするには以下の2つのコマンドを実行します。

[bash]apt-get update
apt-get upgrade[/bash]

upgradeの際、継続するかどうか入力を求められるので、以下のように「y」と入力し、Enterキーを押してください。

Do you want to continue [Y/n]? y

日本語対応

以下のようにコマンドを実行していきましょう。

[bash]apt-get -y install language-pack-ja
dpkg-reconfigure locales
update-locale LANG=ja_JP.UTF-8[/bash]

不要なサービス停止

サービス制御ユーティリティ「sysv-sc-conf」を導入し、不要なサービスをOFFにしていきましょう。

[bash]apt-get -y install sysv-rc-conf
sysv-rc-conf dns-clean off
sysv-rc-conf grub-common off
sysv-rc-conf ondemand off
sysv-rc-conf pppd-dns off
sysv-rc-conf rsync off[/bash]

不要なコンソールを無効にする

仮想コンソールはtty1だけ残して、後は無効化しておきましょう。tty2~tty6に関して設定ファイルを修正します。

[bash]cd /etc/init
cp -p tty2.conf tty2.conf.20130803
cp -p tty3.conf tty3.conf.20130803
cp -p tty4.conf tty4.conf.20130803
cp -p tty5.conf tty5.conf.20130803
cp -p tty6.conf tty6.conf.20130803
vi tty2.conf
vi tty3.conf
vi tty4.conf
vi tty5.conf
vi tty6.conf[/bash]

tty2.conf~tty4.confは修正内容が同じで、tty5とtty6も修正内容が同じでしたので、それぞれまとめて修正内容を記載します。また、修正内容はコメントアウトするだけですので、修正後の内容を以下に記載します。

tty2.conf~tty4.confは6行目あたりからが修正対象です。

[text title="tty2.conf~tty4.conf:変更後"]#start on runlevel [23] and (
# not-container or
# container CONTAINER=lxc or
# container CONTAINER=lxc-libvirt)[/text]

tty5.confおよびtty6.confの修正箇所も6行目あたりです。

[text title="tty5.confおよびtty6.conf:変更後"]#start on runlevel [23] and not-container[/text]

番外編:作成ユーザのログインシェルを変更する

私の場合、作成したユーザのログインシェルがbashではなかったので、bashに変更しておきました。(bashは非常に扱いやすいので・・・。)

[bash]su - user01
$ chsh -s /bin/bash[/bash]

これで、次回ログインから、シェルがbashになっているはずです。
長くなりましたので、セキュリティの設定編については2回に分けます。あと残っているのはiptablesによるパケットフィルタリングの設定です。外部からの接続は必要最低限しか許可しないよう設定をいれます。

そういうわけで、次回はセキュリティの設定 その2として、iptablesの設定について書きたいと思います。

この記事もおすすめ!

Mi Smart Band 6レビュー|全画面化でさらにディスプレイが大きく。SpO2も測れてワークアウトも30種類に大幅アップ! 1

Mi Smart Band 6グローバル版をレビュー!ディスプレイが全画面化し通知がさらに見やすくなりました。SpO2チェック機能やワークアウトの種類も前作から約3倍の30種類に増加するなど大幅アップデートしていますよ。

Mi Band 5パッケージ 2

こんにちは、Mi BandシリーズをMi Band 3の時代から愛用しているしすにし(@sysnishi)です。 つい先日リーズナブルで生活を快適・便利にするスマートウォッチ「Mi Band』の新シリ ...

OnePlus 7T|トリプルレンズ、30W超急速充電対応背面デザインも一新された2019年ベストバイスマホ! 3

  2019年9月26日にOnePlusシリーズのニューモデル『OnePlus 7T』が発表されました。 OnePlus 7TはOnePlus 7からカメラやバッテリー周りなど順当に進化を遂 ...

Xiaomi Mi Note 10|異次元の108MPカメラ搭載・全キャリア対応のおすすめスマホ! 4

今回は日本進出と合わせAmazonでも販売を開始したコスパ最強スマホ『Mi Note 10』をご紹介します。 CPUパワーを必要とするゲームを使わない方でスマホをお探しの方はぜひ候補に入れてほしいです ...

OnePlus 7|コスパ最強を維持しつつ高性能カメラ・UFS3.0高速ストレージなどOnePlus 6Tから着実に進化したスマホ! 5

OnePlusから新たにOnePlus 7シリーズが発表されました。 本シリーズではじめてOnePlus 7(無印)とOnePlus 7 Proの2種類のモデルが出ています。 コスパ維持のOnePlu ...

Xiaomi Mi Mix 3 6

お手頃価格で素晴らしい性能のスマホを提供するXiaomiから新型スマホ『Mi Mix 3』が発表されました。 前作の「Xiaomi Mi Mix 2」に引き続き、かなりの高コスパでとても魅力的な製品と ...

Oneplus 6T レビュー|コスパ最強で爆速顔認証・高品質カメラ搭載のサクサクスマホ【ドコモDSDS対応】 7

長らく使用していたスマホ「ZenFone 3」から乗り換え候補の厳選を重ね、ついに新スマホへ乗り換えました。 乗り換え先はOPPO傘下のスマートフォンメーカーOnePlusの「OnePlus 6T」。 ...

-技術メモ