自宅のubuntuに外部からsshログインできるようにする
外から自宅のサーバーで学習を回したいような状況のために外部からSSHログインできるような設定を行ったのでその備忘録です。インフラに詳しい訳ではないので、問題があるかもしれません。
自宅ネットワーク環境
SSHの設定をする
sshdをインストールして、/etc/ssh/sshd_config に以下の設定をしました
- PermitRootLogin no # rootユーザーでログインできないようにす
- PasswordAuthentication no #パスワードでログインできないようにする
- AllowUsers $my-user # ログイン可能なユーザーをホワイトリスト
portは22番のままにしておきました
接続したいマシンに固定のプライベートIPを割り振る
ルーターの設定画面からIPアドレス、DHCPの設定を変更します
自分のルーターの場合は、上記のような設定画面で固定IPを入力すればできました。
ルーターのポート転送設定する
外部からの接続は拒否しているため、ポート転送を設定し外部から接続可能にします
10022ポートを先ほど固定したIPの22ポートに転送設定します
以上で、外部からssh接続が可能になりました。
セキュリティ向上
流石に自宅のPCを外部からアクセス可能にするのはやや怖いので以下のような設定をしました
SSHログインを通知する
ログインがあった場合は、slackに通知するようにしました
~/.ssh/rc に curl でslackにPOSTするようなシェルを書きました
秘密鍵にパスフレーズをつける
秘密鍵は会社のPCであったりに置いてあるので、間違ってどこかに流れても大丈夫なように秘密鍵にはパスフレーズを設定しました。いつもこんなの面倒なので不要だ!と思っていましたがいざセキュリティ被害が自分に及ぶと思うと万全を期したい気持ちになりました
DDNSを設定する
グローバルIPが固定されているわけではないのでDDNSを使うことにしました、と言いながらまだ何もやっておりません。
以上です