SSHで外部のネットワークからログインできるようにするで外部のネットワークからログインできる様にした。


外部からのログインを可能にするのは結構緊張する。

できる限りアクセスできる穴みたいなものを封じておきたい。


ポート番号を推測しにくいものにして、ファイヤウォールの設定もしたけど、総当り攻撃をされたらいつかはログインされてしまう。

サイバー攻撃が何と多いことか

SOY CMSで総当たり攻撃に対応してみた


更には、sshでログインする際に入力するパスワードは暗号化されず平文みたいなので、IPアドレスとアカウント情報が盗聴されるという危険性もある。

というわけで、ログインをする際はIDとパスワードによる認証ではなく、鍵認証形式にしてみた。


その時の設定をメモとして残す。

ちなみに操作しているパソコンはLinux Ubuntuです。


ちなみに、前回の記事でrootによるログインは禁止しています。




はじめにログイン許可するアカウントを作成する。

(今回作成するアカウントは仮でhogeにする)


端末からSSHでサーバにログインして、


#新規アカウントを作成
adduser hoge

#画面の指示に従い、諸々の設定を行う

#sudor設定を行う
sudo visudo

sudor設定は、rootの設定を真似て、rootの下に追加します。

(詳細は省略)


新しいアカウントを追加したので、

このアカウントのみ、鍵認証でログインさせる様にします。

(他のアカウントは諸々の事情があってログインを禁止します)


#ログアウト
exit

#鍵認証
ssh-keygen -t rsa

#下記が表示されたらエンター
Generating public/private rsa key pair.
Enter file in which to save the key (/home/saito/.ssh/id_rsa):   

#バズフレーズは適当に決める(あとで使います)
Enter passphrase (empty for no passphrase): 

#鍵認証 (ポートとIPアドレスは前記事の例を元に記載しています)
cd ~/.ssh
scp -P 71823 id_rsa.pub hoge@127.0.0.1:/home/hoge/id_rsa.pub

#sshでサーバにログイン
ssh -p 71823 hoge@127.0.0.1
mkdir .ssh
mv id_rsa.pub ~/.ssh
cd ~/.ssh

#ファイル名の変更
mv id_rsa.pub authorized_keys
sudo chmod 600 authorized_keys
exit

#再度ログインしてみる。バズフレーズを入力してログインできれば設定終了
ssh -p 71823 -i /home/hoge/.ssh/id_rsa hoge@127.0.0.1

これで鍵認証の設定は終了です。

※Windowsでは、id_rsaをPuTTYgenというアプリを利用

PuTTY Download Page


最後にパスワード認証によるログインを禁止して、パスワードの漏洩と総当り攻撃の回避の設定を行います。

確認のログインの状態のまま下記のコードを実行します。


#パスワードによるログインを封じる
sudo emacs /etc/ssh/sshd_config

sshd_configを開いたら、


#コメントアウトされている場合、コメントアウトを外し、yesをnoにする
PasswordAuthentication no

ファイルを保存して、

#設定ファイルの記述チェック 何も表示されなければOK
sudo sshd -t

#sshの設定を反映
sudo service ssh restart

サーバからログアウトして、

鍵認証していないアカウントではログイン拒否になり、

hogeさんではログインできることを確認します。


これで一安心です。


しかし、肝心の無線LANが暗号化されていなければ元も子もないので、LANの回線が認証キーなしで使用できていないかは十分確認しておく必要がある。