0 導入編
1 vpsであるwebarenaでインスタンスを作成する。
2 ubuntuのターミナルに暗号化した通信ssh(Secure Shell)でログインする。
3 ubuntuのターミナルから、wineをインストールする(mt4をインストールせず、仮想デスクトップだけを利用する方は飛ばしてください)
4 vncを使って、仮想デスクトップと接続する(パスワードのみで接続)。
5 秘密鍵を利用して、ポートフォア―ドを利用し、仮想デスクトップvncとセキュアに接続する。
6 ファイアーウォールの設定、ポート番号の変更をしてセキュリティを強化する
7 仮想デスクトップvncで、セキュアな接続においてクリップボードを使えるようにする(適切に設定しなければ使えません)
8 mt4をインストール
6 ファイアーウォールの設定、ポート番号の変更をしてセキュリティを強化する
(1)概要
なので、
1 まず、パスワードでログインできる5901ポートを外界から全面的にアクセス禁止にするよう、ファイアウォールでふさぎます。
2 また、ポート番号を変え、少なくとも、ロボットからのパスワードアタックを受けないようにします。
(2) ファイアウォール
以下では、ファイアウォールの簡易な設定ができる「ufw」を使います。以下のコマンドでインストールします。
(A)「ufw」の手順の概要
2 すべての設定が終わると、ファイアウォールの設定を有効にし、
3 ファイアウォールを立ち上げ、
4 設定を確認するという手順で動作させます。
・不用意にファイアウォールを設定すると、誰からもvpsにアクセスできなくなってしまいます。
・特に22番ポートを遮断すると,sshすら起動できないことになるので、別のポートを代わりに開けるようにします。
・Tera Termを閉じる前に、慎重にファイアウォールの設定等を全て済ませる必要があります。
・ファイアウォールを起動させると、sshがフリーズすることもありますので、22番ポートを閉じる場合には、先に後述のsshポートの変更を済ませておく必要があります。
(B)ファイアウォールの設定
以下のコマンドで、一旦、すべてのポートのアクセスを禁止する設定にします。
次に、アクセスする許容するポートを設定します。
これにより、5901以降のポートをすべてふさぎました。なお、最初にすべてのポートのアクセスを許容する設定にしたうえで、塞ぐポートを定めるという方法もありますが、開けるポートだけを設定したほうが、セキュリティ上穴がなく、好ましいのではないかと思います。
(C)ファイアウォールの設定を有効にする
以下のコマンドを入力します。
そうすると、以下の通り、sshの接続を切断するかもしれないとの警告が出て、yを入力、エンターキーを押します。
フリーズするなら、必要に応じて、sshを再起動してください。
フリーズの危険があるので、22番ポートのポート番号を変えるには、ファイアウォールの設定をする前にする必要があります。
(D)ファイアウォールの立ち上げ
上記(3)のコマンドだけでは、起動しない場合、
以下のコマンドで、ファイアウォールを立ち上げます。
(E)設定の確認
以下のコマンドで、ファイアウォールの設定を確認します。
(F)塞ぎたいポートが、塞がれていない場合の対応
上記(5)の確認で、ふさぎたいポートがふさがれていない場合には、以下のコマンドで、ポートを個別にふさぎます。
ここで、22は、塞ぎたいポート番号の例です。
(3) sshのポート番号の変更
sshの22番ポートを変更して、パスワードアタックを受けないようにします。たとえば、56789番ポートへ変更します。
「56789」は、ご自身で任意の数字に変えてください。
ここでは、56789番ポートを例にとります。ネットの説明では、56789番ポートを例にとった説明が多いように思いました。
(A)sshの設定を変更する
以下のコマンドで、sshd_configを編集します。
以下の通り、sshでの通信を受け付けるポート番号の設定を「22」から「56789」へ変更します。
その他、ついでに、sshd_configの設定を、
PasswordAuthentication no
X11Forwarding yes
とするのが好ましいです。
PermitRootLogin noは、管理者権限でのログインを不許可にして、管理者権限を乗っ取られないようにする、
PasswordAuthentication noは、パスワード認証を否定、
X11Forwarding yesは、クリップボードでのコピーペーストを許容する。
ただし、後述の記事「7 仮想デスクトップvncで、セキュアな接続においてクリップボードを使えるようにする」の通り、ポートフォア―ディングをした場合、それだけではコピーペーストは動きません。パスワードのみで接続する場合、X11Forwarding yesのみでコピーペーストが動くはずです。
その後、その設定を反映させるために、sshdを再起動します。
(B)ファイアウォールの設定変更
(a)56789ポートからのアクセスを許容
さらに、以下の通り、まず最初に、ファイアウォールの設定を上記の56789ポートからのアクセスを許容するようにします。
sudo ufw enable
sudo systemctl start ufw
以下のコマンドで、56789が解放されたことを確認!
22番ポートを塞ぐ設定より先に、これを確認しましょう。塞いでしまうと、sshの接続が切断され、どうにもならなくなってしまいます。
反映されていなければ、先ほどの「sudo systemctl start ufw」や「sudo ufw enable」のコマンドを打ちます。すいませんが、私は、この辺は、いまいちどのコマンドを打てば反映されるのかよくわかっていません。ネット上には詳しい説明がありますので、そちらで!
(b)22番ポートを塞ぐファイアウォールの設定
以下のコマンドで、22番ポートを塞ぐ設定をします。
以下のコマンドで、上記の設定を有効にし起動させます。ただし、不要なコマンドがあるかもしれません。
sudo systemctl start ufw
(c)Tera Termのssh接続の再起動
22番ポートをふさぐと、Tera Termのssh接続は、切断されるので、再起動します。
そのとき、上記のsshの「TCPポート(p)」には、上記のsshd_configで設定したポート番号56789を入力します。
後は、これまで通り、暗号キーでアクセスし、ポートフォア―ディングも可能となります。
念のため、「ufw status numbered」のコマンドにより、22番ポートがふさがっていることを確認してください。
(3)以上の効果
vpsの外界からは、ポート番号56789からのssh接続のみを受け付けるので、ロボットによる22番ポートアタックを防ぐことができ、
5901ポートから、パスワードアタックがされることを防ぐことができます。
また、ポートフォア―ディングにより、おうちのPCのローカルアドレスの1234ポートから、vpsの仮想デスクトップ画面へ、vncでセキュアに接続することができます。
(4)インスタンスの再構成
以上の手順では、実は、vncのパスワード設定の段階から、vncの5901ポートに対し、パスワードでアクセスできる、つまりパスワードアタックされていたかもしれない、セキュリティホールの時間が、できていました。
そこで、以上で動作できると自信を持ったら、インスタンスをいったんつぶし、本ページの処理をしてから、4、5の処理等をするとよいです。
いきなり本ページのファイアウォールの設定から始めると、接続ミスにより接続ができない要因が多すぎて、泥沼に入りかねません。