このサイトはアドセンスやアフィリエイト広告を利用しています

Conoha 開発

【初心者】Conoha VPSの設定やrootログイン禁止をLinuxのUbuntuでやってみた

初めてVPSをconohaで借りたので、セキュリティを試すためにやったことを紹介していきます。ちなみにブログはConoha Wingで使っています

今回はRoot権限でのログイン禁止を設定します

初期設定でのSSH接続する方法などは

なぜroot権限のログインの許可を禁止するのか

root権限って、簡単に言うと、一番偉いアカウントのユーザーネームがrootなので、rootを指定して、片っ端から総当たりでログインを試していくといつかログインできちゃうというセキュリティリスクがあります。だから、みんなが知ってるユーザーネームのrootでログインできなくしちゃうことがまずセキュリティ対策に繋がります。

新しいユーザーを作りRoot権限と同等程度の権限を設定する

ConohaのwebGUIで操作するのでログインして、サーバ>ネームタグで選択して、コンソールを選択してください

下の画面の真ん中にコンソールというのがあります

ubuntuに新しいユーザーを登録してsudo権限のグループに追加するLinuxコマンド

Linuxのubuntuではwheelグループがないので、代わりにsudoグループにユーザーを作成して追加します。今回はusagiというユーザーを作成します。

useradd -m usagi

色々なにか求められたら全部何もせずにenterでOK

次にパスワードを設定します。

passwd usagi

あとは新しいパスワードを2回入力するだけです。作成したら、下のコマンドで作ったユーザーが

id usagi

作成したユーザーにsudo権限を与える

gpasswd -a usagi sudo

とあとは

su usagi と入力して、作成したusernameに変更できるかどうか確認

ちなみにrootの場合はターミナルの点滅しているカーソルの前は# で 他のユーザーの場合は $ マークとなります

UbuntuのOSのアップデートとアップグレードもやる

下のコマンドをそれそれぞれ実行するとUbuntuのOSのアップグレードとアップデートができます

sudo apt update はすぐに終わりますが、
sudo apt upgrade は5分ぐらいかかります。途中で下のような表示が出たら

と表示されたらYを入力してEnter

下が表示されたら

cloud.cfg (Y/I/N/O/D/Z) は とりあえずデフォルトのNをエンター それ以外はクラウドの設定が変わっちゃうらしいのでやめとく

メニューが表示される

OKなのでそのままEnterをクリックすると下のメニューが出てくるので

特に変更がないのでEnterをクリックそれでOKになります

ホストの名前がわかりにくいので、conohavpsに変更しました

sudo vi /etc/hostname

iを押すと編集ができます、i一番上の行に現在のホストネームがあるので、それを消して、名前を好きなものに直して、ESCを押して:wqを押すと保存ができます

ホストネームを変更するとこのようにわかりやすくなります

そして一度再起動してもろもろの設定を反映しましょう

sudo reboot

このコマンドでサーバが再起動します

Conoha VPSのsshd_config fileを編集してセキュリティを高める

rootでのログインを禁止したり、パスワードでのログインをさせないなどを行っていきます

ここからは作成したユーザーで作業を敷きましょう su - 作成した名前 で変更できます

ファイルの編集方法の基本的な使い方

引き続き、ターミナルで設定を続けていきます

sudo vi /etc/ssh/sshd_config

これを入力すると テキストエディタが起動します。ちなみに、vi は Linuxでよく使われるテキストエディタです

iを押すと編集ができるようになります

保存して終わりたい場合はESCボタンを押して、:wq 読み込み専用の場合は :wq! と入力すると上書き保存ができます

編集が終わってviを閉じたら必ず

sudo systemctl restart sshd.serviceで更新してください

必要な場所だけ対応すると良いと思います

パスワードでのログインができることを確認

あとからパスワードのログインをできなくしますが、ここでは以下のように#が先頭についてなく、yes担っていることを確認しておく

PasswordAuthentication yes

必ず最後にシステムをリスタートしてください

ここまで設定をしてsshd_confing fileの設定を変更して保存したら、

sudo systemctl restart sshd.serviceで更新してください

これをやらないとうまくいかない!っということになります。

自分のパソコンで公開鍵と秘密鍵を作成してSSH接続の設定をする

Conohavpsで公開鍵関係を保存するフォルダを作成

そしてConohavpsで公開鍵関係を保存するフォルダを作成したりパーミッションを付与したりします

まずは自分のユーザー名のフォルダに移動します。なければ作成してください

$ cd /home/usagi
$ mkdir .ssh
$ chmod 700 .ssh
$ sudo touch authorized_keys
$ chmod 600 authorized_keys

Tera Term を開いた画面で新しい接続というウィンドウが出てくるのでxを押して閉じる

設定のSSH鍵生成をクリック

以下設定で作成しますが、お好みでどうぞ
生成をクリック
公開鍵の保存をクリック
秘密鍵の保存をクリック

公開鍵は.pubの拡張子がある方だと覚えておきましょう

今度はTera Termで作ったユーザーとパスワードでログインしましょう

上で作った公開鍵の.pubファイルを自分のPCに保存した.sshフォルダからメモ帳などで開いて

echo ssh-rsaの最初から最後までの公開キーの長い文字列を入れてください >>~/.ssh/authorized_keys

別のメモ帳か何かで新しいテキストを開いて、前後に echo>>~/.ssh/authorized_keys をsshのキー情報の前後にスペースを開けていれると楽です

それを、conohaVPSのターミナルに貼り付ける (teratermではないです )Shift+Ctrl+Vで貼り付けできます。貼り付けたらエンターで実行

ここまでできたら一度Tera Termでログインできるか試してみてください

ユーザー名は作成したユーザー名 ここページで作ったのはusagi

パスフレーズを入れずに下の秘密鍵を選択 .pubがついていない方のファイルを選択

これで問題なく作成したユーザーでSSHKEYを使ってログインできたと思います

そしてこのままログイン状態で手順を進めていきます

Ubuntuのファイアーウォールの設定とポートの確認

今度はUbuntuのポートの設定とファイアーウォールの設定を確認します。作成したアカウントで以下のコマンドをconohaVPSのターミナルに打ちます

sudo vi /etc/ssh/sshd_config

Rootユーザーでのログインをできないようにする

PermitRootLogin yes という項目を
PermitRootLogin no に変更

これで、SSH接続しようとするとrootユーザーが拒否されアクセスできなくなります。

SSH接続の公開鍵認証を許可する

もしも、以下の項目の頭に#がついていたら#を消す

#PubkeyAuthentication yes

PubkeyAuthentication yes

パスワードでのログインをできないようにする

SSH KEYを使ってログインしたい、そしてパスワードでのログインは拒否したいので、以下の設定を変えます。これを変更しないと、わざわざめんどくさい手続でSSH KEYを使っているだけになります

PasswordAuthentication yes
PasswordAuthentication no

ポートの番号を変更する

ポートが22だと攻撃されるらしいのでここも変更します

#Port 22
Port 10022

sudo ufw status verbose

すると22番のポートを使っているのがわかりますね

22番は使いたくないので、療法削除します

$ sudo ufw delete 1 を2回繰り返すと両方消えます

上の方の記事で設定した新しいポートを追加する 例だと10022

以下を入力すると自動的に

sudo ufw allow 10022/tcp

下のような表示が出ます

拒否設定もしておきます

sudo ufw default deny

デフォルトの受信ポリシーが「拒否」に変更されました (それに応じてルールを必ず更新してください)という意味です

これでsshの設定を更新

sudo systemctl restart sshd.service

ConohaVPSのセキュリティグループの設定

今のままだとConohaVPSのセキュリティでポートが閉じているので、通信できるポートの設定をconoha側でもやらなければいけません

セキュリティの中のセキュリティブループをクリック

左上のセキュリティグループのボタンをクリック

わかりやすい名前のセキュリティグループを作成

左下の+を押すと追加できて、右側のゴミ箱で削除、レンチマークで編集できます

今回は10022でつくったのでそれをIPv6とIPv4を作成

次はサーバに戻ってネームタグをクリック

ネットワーク情報を開く

下に行くとセキュリティグループというのがあるので、鉛筆ボタンをおして先程作ったセキュリティグループを選択して変更

これですべて完了お疲れ様でした

-Conoha, 開発
-