#author("2024-02-06T11:03:38+00:00","","") #author("2024-02-06T12:28:11+00:00","","") *sshd 設定 [#g787eecb] キモであるssh設定。しかしデフォルト設定だとまずいのである!なぜかというと、海外からrootアカウント奪取しようと苛烈な攻撃加えてくることがあるから。 **sshdをセキュリティ強くしよう [#s0ff57ca] 要求仕様は以下のとおり。 -ウェルノウンポート22を使用しない (5桁ポートならよし nmap でも見つかりにくいです) -rootのsshでのアクセスを禁止とする -パスワード認証をやめて公開鍵認証とする というわけで、設定する。設定例は Ubuntu と Arch を並列でかく。 -設定ファイルは /etc/ssh/sshd_config になるので、sudo vi で書き換えよう。 -以下は全部設定ファイルのシャープコメントアウトをどうにかする。 ***ウェルノウンポートを変える [#p348589d] -一例、省略すると22になってしまうので、例えば「12321」のような一見無関係なポートにする。 #Port 22 Port 12321 ***rootのsshアクセスを禁止する [#c12e5f7f] -Rootアクセスについては下記の設定が該当。yesだと普通にアクセスできてしまい第三者の侵入許したらアウトなのでnoにしておきたい。なお、prohibit-passwordの場合「パスワードは拒否公開鍵は許可」という状態なのでroot接続一括拒否のnoのほうが安全。 PermitRootLogin no #PermitRootLogin yes #PermitRootLogin prohibit-password ***公開鍵認証を強制する [#d92431c3] -パスワード認証を拒否 # PasswordAuthentication yes PasswordAuthentication no -ふるい資料には「ChallengeResponseAuthentication」という話もあるが、さいきんのUbuntuでは「KbdInteractiveAuthentication」になってて、既定値noのままなのでそのままでよい。 -公開鍵認証 yes のコメントアウトを解除する #PubkeyAuthentication yes PubkeyAuthentication yes ***以上でsshd_configをセーブ [#y6d870bc] ***鍵ファイルを生成 [#qe454415] -公開鍵、秘密鍵をつくる $ ssh-keygen -t ed25519 ---以下のファイルができるので、秘密鍵id_rsaはLinux各種クライアントの.ssh/以下にコピー、WindowsのPuTTYだったらid_rsaをppkファイルに変換したい。 公開鍵: ~/.ssh/id_ed25519.pub 秘密鍵: ~/.ssh/id_ed25519 + 古い環境向けなら ssh-keygen -t rsa -b 4096 でRSA 4096bit を生成し、、 公開鍵: ~/.ssh/id_rsa.pub 秘密鍵: ~/.ssh/id_rsa + ecdsa にするなら ssh-keygen -t ecdsa -b 521 でやるべきってことかなぁ。 -公開鍵をサーバーに登録する (お好みの方法でね) $ cat ~/.ssh/id_ed25519.pub | ssh hoge_user@hogehoge.hoge.com 'cat >> .ssh/authorized_keys' $ cat ~/.ssh/id_rsa.pub | ssh hoge_user@hogehoge.hoge.com 'cat >> .ssh/authorized_keys' ***sshd再起動 [#y4ffda9e] -bashプロンプトで... (Arch?) $ sudo systemctl restart sshd -bashプロンプトで...(Ubuntu?) $ sudo service restart ssh ***外部からのつなぎ方 [#pcf8b18f] -Linux同士の場合 秘密鍵を .ssh 配下においたとして、ポート 12321 / 秘密鍵 privateKey.data を使って接続する場合、下記のコマンドとなる。 $ ssh USERNAME@hostname -p 12321 -i ~/.ssh/privateKey.data