WebARENA Indigo Ubuntu 20.04 初期設定etc

Web・情報技術
これの続きから。

WebARENA Indigo上にインストールしたUbuntu20.04のセキュリティほか初期設定について。

Cent OSほか他のOSの場合は他のサイトを見ていただきたい。

ファイアウォールの設定

ファイアウォールといっても様々なレベルで存在しているが、ここでは、

  • WebARENA Indigoでのファイアウォールの設定
  • Ubuntuでufwを用いたファイアウォールの設定

について記述する。また、ファイアウォールの設定とともにSSHの設定を変更する

手順としては、

  1. 一旦今SSHのポートとして使用している22番と、ポート変更後に使用する番号のポート(1234とする)を開ける
  2. SSHのポートを変更する。
  3. デフォルトの22番を閉じる。

といったことになる。

WebARENA Indigo でのファイアウォール設定

これはWebARENA、つまりVPSのプロバイダーが提供しているレベルのファイアウォールである。

管理画面でファイアウォールを作って、インスタンスに割り当てる。

管理ページを開き、ネットワーク管理→ファイアウォールへ。

右上「ファイアウォールの作成」ボタンを押す。作成画面に遷移。

任意の名前を入力する。

インバウンドルールを作成する。「新規ルール」ボタンを押下。「Custom」を選択。

デフォでSSHで使用しているポートである22(なおこれは後で閉じる)と、これからSSHのポートとして使用したい番号のものを入力する(ここでは例として1234とする)。

IPアドレスは「0.0.0.0」にしておくとどこからでもアクセス可能。

ファイアウォールをインスタンスに割り当てる。更新ボタンを押下すれば割り当て完了。

これで、22番と1234番のポート以外へのアクセスは遮断された。

SSHのポート変更

$ sudo vim /etc/ssh/sshd_config

Vimか何かでsshd_configのファイルを開いて

#Port 22
Port 1234

ポートの設定を1234とする。:wqで閉じて、

設定を反映させるため、sshdを再起動する。

$ sudo systemctl restart sshd

この状態でターミナルで別タブを開いて、クライアント側から

$ ssh -p 1234 ubuntu@{サーバーのIPアドレス} -i {秘密鍵のパス}

として、接続できていればOK。

最後に、ファイアウォールの設定で22を外せば、設定完了。

ufwによるファイアウォール設定

これはVPSのインスタンスにインストールされているOS上の、アプリケーションレベルのファイアウォールである。

スーパーユーザで作業する。まずはインストール。

apt  install ufw

IPv6サポートを切る。

※2023年10月27日追記 この記事を書いた2021年9月17日当時、Webarena IndigoではIPv6対応インスタンスが作れなかったのだけど、今現在はIPv4/IPv6どっちも対応しているみたい。なのでIPv6に対応させるのであればサポート切っちゃダメだよ。

vim /etc/default/ufw

# Set to yes to apply rules to support IPv6 (no means only IPv6 on loopback
# accepted). You will need to 'disable' and then 'enable' the firewall for
# the changes to take affect.
#IPV6=yes
IPV6=no

デフォルトでアクセスを拒否するようにする。

ufw  default  deny

必要なポートを開放する。

ufw allow1234 #SSHのポート番号

ファイアウォールの設定は以上。

作業ユーザの作成

デフォルトユーザはubuntuだが、これを別の任意の名前に変更する。サーバーにSSH接続のうえ、

$ sudo adduser USERNAME

とする。

パスワードを2回タイプしろと言われるので、タイプする。

フルネームとか部屋番号とかいろいろ入力しろと言われるが、これは空欄でも良い。

sudoグループにさっき作ったユーザを足すには、

$ sudo gpasswd -a USERNAME sudo

としてやれば、さっき作ったユーザがsudo権限を持つようになる。

作業ユーザでSSHログインできるようにする

このままだとさっき作ったユーザ(USERNAME)から公開鍵にアクセスできないので、SSHログインもできない。

公開鍵を新たに作って、USERNAMEのホームディレクトリに配置するのもいいけど、面倒なのでubuntuのホームディレクトリのやつをコピーする。ubuntuのホームディレクトリから、

$ sudo cp -r .ssh/ /home/USERNAME/
$ sudo chown -R USERNAME:USERNAME /home/USERNAME/.ssh/

これで、

$ ssh -p 1234 USERNAME@{サーバーのIPアドレス} -i {秘密鍵のパス}

とすることでログインできるようになった。

初期ユーザを削除する

初期ユーザ「ubuntu」を削除する。

$ sudo userdel -r ubuntu

すると、他のプロセスで使ってるからアカンとか言われる。

$ userdel: user ubuntu is currently used by process 137333

何のプロセスで使ってるのか一応みておく。

ps aux | grep ubuntu
root      138939  0.0  0.8  13796  8900 ?        Ss   07:19   0:00 sshd: ubuntu [priv]
ubuntu    139020  0.0  0.5  13928  5540 ?        S    07:19   0:00 sshd: ubuntu@pts/2
ubuntu    139021  0.0  0.5  10032  5064 pts/2    Ss+  07:19   0:00 -bash
root      137322  0.0  0.8  13796  8872 ?        Ss   06:38   0:00 sshd: ubuntu [priv]
ubuntu    137333  0.0  0.9  18588  9680 ?        Ss   06:38   0:00 /lib/systemd/systemd --user
ubuntu    137336  0.0  0.4 170216  4872 ?        S    06:38   0:00 (sd-pam)
ubuntu    137440  0.0  0.5  13928  5472 ?        S    06:38   0:00 sshd: ubuntu@pts/0
ubuntu    137441  0.0  0.5  10032  5136 pts/0    Ss+  06:38   0:00 -bash
...

問題なさそうなのでkillしちゃう。

sudo kill 137333

で、改めて、

$ sudo userdel -r ubuntu

これでOK。

userdel: ubuntu mail spool (/var/mail/ubuntu) not found

こんな反応が返ってくるが、これはディレクトリがありまへんでした、と言われてるだけなのでOK。

これでユーザubuntuが消え、ユーザUSERNAMEからのみログインできるようになった。

日本語環境のインストール

ロケールを確認。

$ locale
LANG=C.UTF-8
LANGUAGE=
LC_CTYPE="C.UTF-8"
LC_NUMERIC="C.UTF-8"
LC_TIME="C.UTF-8"
LC_COLLATE="C.UTF-8"
LC_MONETARY="C.UTF-8"
LC_MESSAGES="C.UTF-8"
LC_PAPER="C.UTF-8"
LC_NAME="C.UTF-8"
LC_ADDRESS="C.UTF-8"
LC_TELEPHONE="C.UTF-8"
LC_MEASUREMENT="C.UTF-8"
LC_IDENTIFICATION="C.UTF-8"
LC_ALL=

LANGUAGEが空欄なのでデフォルトの言語設定になっている。使用可能な言語を確認する。

$ locale -a
C
C.UTF-8
POSIX
en_US.utf8

日本語パッケージがないのでインストールする。呪文みたいにこれを入力。

$ sudo apt install language-pack-ja-base language-pack-ja ibus-mozc

で、インストールした言語を設定。

$ sudo localectl set-locale LANG=ja_JP.UTF-8

タイムゾーンをAsia/Tokyoに

デフォルトではタイムゾーンがUTCになっている。

$ date
2021年  9月 17日 金曜日 09:01:03 UTC

これを日本時間に変える。

sudo timedatectl set-timezone Asia/Tokyo
$ date
2021年  9月 17日 金曜日 18:04:17 JST

日本時間になった。

Moshの設定

不安定なネットワーク環境でもSSH接続っぽいことをしたい場合はMoshをインストールする。

$ sudo apt-get install mosh

サーバ側のポートを開く。デフォだと60000-61000のどれかを使う設定だが、たくさん開いておくと不用心な感じがするので60000-60010を開く設定にしてある。

注:プロトコルはUDP

クライアント側もよしなに設定。Macの場合はHomebrewでインストール。

$ brew install mobile-shell

なおかつ、.ssh/configに設定を書いておけば、sshコマンドを叩く代わりに

$ mosh {接続先}

みたいな感じでアクセスできるようになる。

続きはこれ:

タイトルとURLをコピーしました