ConohaにVPSを設置して、SSHログイン、ポート番号変更、rootログイン禁止までを30分で!

  • 142
    いいね
  • 2
    コメント

出来るだけシンプルにまとめてみました。root用のSSH Key不要です。

最初に決めておくこと

項目 説明
rootパスワード 好きなものを rootユーザー用のログインパスワード
作業用ユーザー名 newuser rootで常にログインするのは危険なので作業用ユーザーを作成します
作業用ユーザーパスワード 好きなものを 作業用ユーザーのログインパスワード
SSH鍵を保存するファイル名 conoha ssh-keygenコマンドに渡すファイル名です
SSH鍵のパスフレーズ 好きなものを SSH鍵を使うためのパスワードです
SSHサービスを動かすポート番号 10022 デフォルトの22で動かし続けるのは危険なので適当なポート番号に変更します。
WELL NONEやREGISTEREDポートを避けた49152~65535辺りがおすすめらしいです。

この6項目を先に決めてどこかにメモってからはじめるとスムーズに作業を進めることができます。(以下、メモ用のリスト)

  • rootパスワード
  • 作業用ユーザー名
  • 作業用ユーザーパスワード
  • SSH鍵を保存するファイル名
  • SSH鍵のパスフレーズ
  • SSHサービスを動かすポート番号

サーバー追加

デフォルトの900円プラン

  • OSはCentOS 7.1(x64)
  • SSH Key は「使用しない」

conoha-01.png

IPアドレスを確認

IPアドレスが分からないとログイン出来ないので先に調べておきます。

conoha-02.png

パスワード認証でrootにログイン

さきほど確認したIPアドレスでログインします。xxx.yyy.zzz.aaaだったらroot@xxx.yyy.zzz.aaaです。

/etc/ssh/sshd_configの初期設定がPermitEmptyPasswords yesになっているのでパスワード認証でログインできます。

2017-01-29 追記

@s_of_p さんから指摘がありました。Ubuntu 16.04 64bitではPermitEmptyPasswords noかつ PasswordAuthentication noとなっているそうです。
この辺りは選択したOSの種類などによって初期設定に微妙に違いがあると思います。(CentOS 7.1でもすでにnoになっているかも、その場合はブラウザ経由など別の方法でSSH鍵を置きましょう)

$ ssh root@xxx.yyy.zzz.aaa -p 22
root@xxx.yyy.zzz.aaa's password: # パスワード入力

# ログイン成功!
[root@1xxx.yyy.zzz.aaa ~]# 

ユーザー作成

newuserという名前で作るものとします。

# ユーザー作成
$ adduser newuser

# パスワード設定
$ passwd newuser

# wheelグループに追加
$ gpasswd -a newuser wheel

# 作成したnewuserでログインできるか確認
$ su newuser

作成したユーザーからsudoやsuが出来ることを確認

初期設定ですでにwheelグループに特権が付いているはずです。

$ sudo echo "aaa"
[sudo] password for newuser: 
aaa

$ su      # rootになる
パスワード: # rootのパスワードを入力

$ su newuser # newuserに戻る

SSHログインを許可

$ sudo vi /etc/ssh/sshd_config 

以下の3つの設定を変更してください(設定箇所は離れているかも)。viの使い方はこちら

RSAAuthentication yes

PubkeyAuthentication yes

AuthorizedKeysFile      .ssh/authorized_keys
$ sudo service sshd restart

SSH鍵を作成

ホスト側で鍵を作成

# ~/.ssh を作成
$ cd ~/
$ mkdir .ssh
$ chmod 700 .ssh

# 鍵を作成
$ cd ~/.ssh
$ ssh-keygen -t rsa -b 2048
Enter file in which to save the key: conoha # ファイル名はconoha(好きなもので)
Enter passphrase:                           # パスフレーズを設定
Enter same passphrase again:                # パスフレーズをもう一度

# AuthorizedKeysFileで設定したファイル名に名前変更
$ mv conoha.pub authorized_keys
$ chmod 600 authorized_keys

ローカルPCに秘密鍵をコピー

$ cat conoha
$ cd ~/.ssh
$ vi conoha //先ほどcat conohaでコピーした内容をペーストして保存してください
$ chmod 600 conoha
~/.ssh/ssh_config
#ConoHa
Host conoha
  HostName xxx.yyy.zzz.aaa
  User newuser
  Port 22
  IdentityFile ~/.ssh/conoha

作ったユーザーでSSHリモートログインできるかテスト

ローカルPCからコマンド入力

~/.ssh/ssh_config
$ ssh conoha

もっと安全に

rootからのログインを禁止

PermitRootLogin no 
$ sudo service sshd restart

パスワードによるログインを禁止

PasswordAuthentication no
$ sudo service sshd restart

これでrootからのリモートログインが不可能になります。

$ ssh root@xxx.yyy.zzz.aaa -p 22
Received disconnect from xxx.yyy.zzz.aaa

SSHのポート番号を変更

sshdだけでなくiptablesにも設定変更が必要なので注意。CentOS7はデフォルトでiptablesサービスが入っていないのでまずインストール

$ sudo yum install iptables-services

sudo vi /etc/sysconfig/iptables を編集。

/etc/sysconfig/iptables
--A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
+-A INPUT -m state --state NEW -m tcp -p tcp --dport 10022 -j ACCEPT

iptablesサービスを再起動します。

$ sudo service iptables restart

sudo vi /etc/ssh/sshd_config を編集。

Port 10022
$ sudo service sshd restart

ローカルPCに戻ってssh_configを編集します。

~/.ssh/ssh_config
#ConoHa
Host conoha
  HostName xxx.yyy.zzz.aaa
  User newuser
+  Port 10022
-  Port 22
  IdentityFile ~/.ssh/conoha

これで10022ポートを使ってSSHログイン出来るようになりました。

$ ssh conoha

# 22番ポートのログインは不可能に
$ ssh newuser@xxx.yyy.zzz.aaa -p 22
ssh: connect to host xxx.yyy.zzz.aaa port 22: Connection refused

再起動(sudo reboot)したときのために自動起動も設定しておきましょう。(ルーティングにiptablsを使うことを選んだのでfirewalldを停止する必要があることに注意です)

$ sudo systemctl stop firewalld.service
$ sudo systemctl mask firewalld.service
$ sudo systemctl enable iptables.service

まとめ

次はDockerなど必要なアプリケーションを入れていきましょう。おかしな部分がありましたら突っ込みなどいただけると幸いです。

参考文献