自宅のubuntuに外部からsshログインできるようにする

外から自宅のサーバーで学習を回したいような状況のために外部からSSHログインできるような設定を行ったのでその備忘録です。インフラに詳しい訳ではないので、問題があるかもしれません。

自宅ネットワーク環境

SSHの設定をする

sshdをインストールして、/etc/ssh/sshd_config に以下の設定をしました

  • PermitRootLogin no # rootユーザーでログインできないようにす
  • PasswordAuthentication no #パスワードでログインできないようにする
  • AllowUsers $my-user # ログイン可能なユーザーをホワイトリスト


portは22番のままにしておきました

接続したいマシンに固定のプライベートIPを割り振る

ルーターの設定画面からIPアドレスDHCPの設定を変更します

f:id:arzk:20180328000153p:plain

自分のルーターの場合は、上記のような設定画面で固定IPを入力すればできました。

ルーターのポート転送設定する

外部からの接続は拒否しているため、ポート転送を設定し外部から接続可能にします

f:id:arzk:20180328000446p:plain

10022ポートを先ほど固定したIPの22ポートに転送設定します

 

以上で、外部からssh接続が可能になりました。

 セキュリティ向上

流石に自宅のPCを外部からアクセス可能にするのはやや怖いので以下のような設定をしました

SSHログインを通知する

ログインがあった場合は、slackに通知するようにしました

 ~/.ssh/rc に curl でslackにPOSTするようなシェルを書きました

秘密鍵パスフレーズをつける

秘密鍵は会社のPCであったりに置いてあるので、間違ってどこかに流れても大丈夫なように秘密鍵にはパスフレーズを設定しました。いつもこんなの面倒なので不要だ!と思っていましたがいざセキュリティ被害が自分に及ぶと思うと万全を期したい気持ちになりました

DDNSを設定する

グローバルIPが固定されているわけではないのでDDNSを使うことにしました、と言いながらまだ何もやっておりません。

 

以上です