RockyLinux9.3で自宅サーバーを再構築V02・SSHでリモート管理

Linux (CentOS、Rocky、Ubuntu)

SSHは、前回centOS7を立ち上げた時の記事にも書いています。
SSHの設定については、こちらも参照してください。

RockyLinux9では、筆者インストール環境ですでに、「ssh」は動作していました。
したがって、メインのWindowsPCからは、ターミナルソフトを導入すれば
使い慣れた、Windows環境から管理できます。

Tera Term

Windowsマシンから、Linuxマシンへリモートアクセスするには、やはり定番の「Tera Term」ですね
現在の最新は、「Tera Term 5.0」でした。
exe版とzip版がありましたが、筆者はzip版をダウンロードしました。
zip版は、適当なフォルダへ解凍して、「ttermpro.exe」で起動できます。
ところが、以前の公式サイトが不調のようで、移転したようです

RLogin に乗り換え

TeraTermはずっと使わせていただいてますし、かなり歴史があるので安心だとは思うのですが
この機会に、別のターミナルソフトを使ってみようと思います。
いろいろ検索したところ、国産ターミナルソフトということもあり
「RLogin」を試してみようと思います。

ダウンロード

こちらから、使い方情報や、ダウンロードができます。
https://kmiya-culti.github.io/RLogin/

ダウンロードした「ZIP」ファイルを展開すると、「RLogin.exe」が一つだけの非常にシンプルです

初期設定とリモート接続

展開された「RLogin.exe」を起動すると、接続先の設定画面が表示されます。

「新規」ボタンで、詳細設定ダイアログが開きます。
・接続先の「ホスト名」か「IPアドレス」
・TCPポートは、標準「22」であれば「ssh」、ポート番号を変更してあれば、その番号
・ログインユーザー名
・パスワード欄は、plainであれば、「ログインパスワード」
 認証鍵方式の場合には、「SSH認証ーキー」で鍵を指定して鍵の「パスフレーズ」
・「ポスト・・・接続時に入力」にチェックを外すと、パスワード入力が省略できます。

これは~使いやすい!

まだ、使い始めたばかりですが、取説読まなくても、通常の使用はすぐにできました。
特に、接続先が一覧で管理でき、ターミナルの分割も横縦と自由度があります。

さらに、「SFTP」が便利です。

Windowsマシンとのデータ送受信は、TeraTermの「SCP」よりも、マウスのドラッグでできるのが非常に便利です。

鍵認証方式で運用

SSHの認証方式には、「パスワード認証方式」と「鍵認証方式」があります。
インストール直後は「パスワード認証方式」になっています。
こちらは、パスワードを知っている人はだれでも、アクセスできて便利です。
ただ、知られたくない人に知られてしまったら、アクセスされてしまいます。
「鍵認証方式」は、「秘密鍵」と「公開鍵」のペアの鍵を作成し、
アクセス側は「秘密鍵」を持っていないとアクセスできません。
LAN内での運用であれば、パスワードでも問題は少ないと思いますが、外部からもリモート接続したい場合やはり安全性の面で「鍵認証方式」で運用したいです。

鍵の暗号方式

公開鍵暗号方式は「RSA」「DSA」「ECDSA」「EdDSA」など、数種類あるようですが
「セキュリティを重視する場合はEdDSAを推奨。DSAやECDSAは使わないよに!」
という情報がありましたので、「EdDSA」方式を使用したいを思います。

SSH鍵の作成

SSH鍵は、「ssh-keygen」コマンドで作成しますが、オプションなしで作成すると
デフォルトでは「RSA方式」になります。
「EdDSA方式」で作成したい場合には、「-t」オプションに「ed25519」を指定します。
さらに、「-C」オプションで末尾にコメントを付加できますが、省略すると作成した環境が付加されます。
筆者は特にコメントは必要ないので、「-C “”」としました。

これで、ホームディレクトリの「.ssh」ディレクトリに、「公開鍵」と「秘密鍵」ができあがってます。

「id_ed25519」が秘密鍵、「id_ed25519.pub」が公開鍵
秘密鍵はクライアント側、公開鍵はサーバー側に保存します。
まず、
・サーバー側には、アクセス先ユーザーのホームディレクトリに「.ssh」ディレクトリを作成し
・アクセス権を「700」に設定。
・「drwx — —」で「700」に設定されています

公開鍵は、作成した「id_ed25519.pub」をサーバーホームディレクトリの「.ssh」に保存します。
転送した「id_ed25519.pub」を「authorized_keys」に内容を追記します。
・ホームディレクトリの「.ssh」へ移動
・「id_ed25519.pub」を「authorized_keys」へ追記。
・アクセス権を「600」に設定
・公開鍵「id_ed25519.pub」は削除

これで、クライアント側に秘密鍵を保管し、アクセス時に指定する事で
鍵の使用してのアクセスが可能になりました。

リモートからのROOTログイン拒否

設定は、「/etc/ssh/sshd_config」ファイルの”PermitRootLogin”で行います。
RHEL8では、デフォルトでは「yes」になっていたので、rootでもパスワード認証でログインできたみたいですが、RHEL9で見直され、”prohibit-password”になり鍵認証の制限になったようです。
ただ、鍵認証であれば、rootユーザーでも許可されています。
少しは安全になったようですが、いっそのこと、rootログインは拒否設定にしたいと思います。
「PermitRootLogin」は”no”に設定します。
「sshd_config」のバックアップをとり、編集します。

鍵認証以外ではログイン拒否

さらに、パスワード認証ではログインを拒否する設定にします。
同様に、「/etc/ssh/sshd_config」ファイルの”PasswordAuthentication”で設定します、
デフォルトでは”yes”になっているので”no”

sshdサービスを再起動すると、設定が反映されます。

いままで、「SSH認証鍵」を設定しなくても、パスワードでログインできたのが
拒否されるようになりました。

鍵なしてログインしようとすると、このように拒否されるようになります。

sshのポート番号変更

「ssh」のポート番号は「22番」が標準なので、このポートを開けておくと、確実にアタックは増えてきます。
なるべくリスク回避したいので、ポート番号を変更したいと思います。
いくつにするか?・・・ネットの情報でもいろいろ出てきました。
ただ、ユーザポート(登録済みポート)1024–49151番との情報もあったので
49152~を使用したいと思いますので、「52222番」にしようと思います。
ポート番号も、「 /etc/ssh/sshd_config 」を編集します。
#Port 22 の行を探し、先頭の「#」を外して、任意の番号を設定します。

ただ、「ssh」は「firewalld」の対象サービスで、デフォルトの「22番」で設定されています。
デフォルトの設定ファイルは「 /usr/lib/firewalld/services/ ssh.xml 」に保存されているので、
そのファイルを「 /etc/firewalld/services /」にコピーして編集します。

コピーした「/etc/firewalld/services/ssh.xml」の「port=”22″」を希望の番号に編集し
「sshd」を「firewall」を再起動します。

これで、ローカルのWindowsマシンから、設定したポートを使用してログインできれば、OKです。
外部 のPC (インターネット側)からアクセスするには、入口のドアを開けておく必要があります。
通常は、ネット接続サービスのルータとかゲートウェイとか呼ばれている機器の設定で指定ポート番号とサーバーのIPアドレスを紐づけします。
詳細は、利用プロバイダのルータ設定をご確認ください。
筆者の場合は「ポートフォワーディング」の項目で設定できました。

グローバルな自分のアドレス

外部から自宅内のサーバーへアクセスする場合、自宅のインターネット上のグローバルIPアドレスを知る必要があります
調べる方法は、検索サイトで検索すればすぐにヒットしますが、たとえば自宅内のPCで下記サイトへアクセスすればすぐにわかります
https://www.cman.jp/network/support/go_access.cgi
たとえばここで表示されたIPアドレスが、グローバルな自分のアドレスです。
外部から「RLogin」などのターミナルソフトで、このアドレスと設定したポート番号を指定し
鍵やパスフレーズが正常であれば、自宅へ外部からアクセスできます。
ただし、自分への入り口がこのグローバルに直接接続でなく、その下のLANの一部だった場合には、
入口のグローバルに接続されているルータに自分の入口へ通してもらう設定が必要になります。

これで、使い慣れてるPCでサーバー管理できます。

RockyLinux9.3で自宅サーバーを再構築・記事一覧

コメント

タイトルとURLをコピーしました