0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AlmaLinuxのSSHログイン、その他をほんの少しだけ最適化してみる

Last updated at Posted at 2025-03-04

はじめに

こんにちは、どうもamaebiです。
前回AlmaLinuxをインストールしてミニPCをサーバー化したので、SSHログインもセキュリティなどを考慮して最適化していきます。
前回のOSインストールブログも見ていただけますと幸いです。

やること

今回は以下の内容をやっていきます。

  • ターミナルソフトのログ設定、ショートカットキーの追加
  • 作業用ユーザーのsudoコマンドを使えるようにする
  • 作業用ユーザーの鍵作成、設定
  • SELinuxの永久無効化
    • ※本番環境等でのSELinuxの無効化はあまりおすすめしません
  • EPEL repositoryのインストール

ターミナルソフトのログ設定、ショートカットキーの追加

今回はRLoginを使用していきます。
詳細なインストール方法については省きますが、気になる方はこちらのサイトをご覧ください。

RLoginのexeファイルは、こちらのサイトにzip形式でダウンロードできます。

ここからRLoginのログ設定やコピー&ペーストのショートカットキー追加の手順を説明していきます。
必要に応じて設定を変更してください。

サーバーへのログイン確認

まずはじめに対象サーバーへログインできるかを確認していきます。
RLoginを起動し、新規(N) をクリックします。
A.png

以下の情報を入力後、OKをクリックします。

  • ホスト名(サーバーIPアドレス)
  • ログインユーザー名
  • ユーザー認証の方式によりパスワード or パスフレーズ
    ※パスワード認証による接続であるため、後ほど鍵認証に変更します。

B.png

そうすると、サーバーの接続情報がリスト形式で保存されるため、先ほど登録したものを選択してOKをクリックします。
C.png

認証情報が間違っていなければ、以下の画像のようにログインできます。
これでサーバーへのログイン確認は終了です。
D.png

ログ設定

次に操作ログを保存するための設定をしていきます。
サーバーにログアウト後、先ほど登録したものを選択し、編集(E) をクリックします。
E.png

左側のヒストリーをクリックします。
F.png

通信ログを年月日を付けて自動作成するのチェックボックスにチェックを入れ、参照(L) をクリックしてログの保存先のフォルダーを選択していきます。
G.png

通信ログの形式を選択後、OKをクリックしてサーバー一覧に戻ります。(自分はLINEを選択してます)
対象サーバーにログインして操作ログが保存されていれば完了です。
H.png

操作ログはこのような形で、日付ごとに記録されます。
N.png

コピー&ペーストのショートカットキー追加

最後にコピー&ペーストのショートカットキーを追加していきます。
再度サーバーにログアウト後、編集(E) をクリックします。
E.png

左側のキーボードをクリックします。
I.png

新規(N) をクリックします。
J.png

以下の情報を入力後、OKをクリックします。(コピーのショートカットキー)

  • Key Code
    • C
  • チェックボックス
    • Ctrl
  • Assign String
    • $EDIT_COPY

K.png

同様に以下の情報を入力後、OKをクリックします。(ペーストのショートカットキー)

  • Key Code
    • V
  • チェックボックス
    • Ctrl
  • Assign String
    • $EDIT_PASTE

L.png

余談
RLoginでは、Ctrl + zを押すことで実行中の処理をキャンセルすることができます。

すべてのショートカットキーの設定が完了後、OKをクリックしてサーバー一覧に戻ります。
対象サーバーにログインしてショートカットキーが正常に使えれば設定は完了です。

M.png

作業用ユーザーのsudoコマンドを使えるようにする

ここからサーバーの設定を行っていきます。
まずは、作業用ユーザーのsudoコマンドを使えるようにしていきます。
実際に作業用ユーザーにログインし、sudoコマンドを使用したところ以下のようなエラーが発生しました。

<作業用ユーザー名> is not in the sudoers file.  This incident will be reported.

このままでは少し不便ですので、以下のサイトを参考に設定していきます。

usermodコマンドを使用して、sudoが使用できるセカンダリグループに追加していきます。
しかし、以下の設定ファイルが変更するため、事前のバックアップが必要になってきます。

  • /etc/group : グループ情報
  • /etc/gshadow : グループパスワード情報

その他にも、以下の設定ファイルが変更してしまう可能性があります。
(今回はグループのみ変更したため、以下の設定ファイルのバックアップは行っておりません)

  • /etc/passwd : ユーザー情報
  • /etc/shadow : ユーザーパスワード情報

まずは設定ファイルを確認していきます。

#  ls -la /etc | grep -i -e group -e gshadow

対象の設定ファイルが存在していることを確認したら、設定ファイルのバックアップを作成していきます。

# mkdir -v /etc/.backup
# ls -la /etc | grep .backup
# cp -ipv /etc/group /etc/.backup/group.`date +%Y%m%d`
# cp -ipv /etc/gshadow /etc/.backup/gshadow.`date +%Y%m%d`
# ls -la /etc/.backup | grep -i -e group -e gshadow

設定ファイルのバックアップが完了したら、/etc/sudoersからsudo権限が付与されたグループ名を探していきます。

# cat /etc/sudoers
=== 一部省略 ===
## Allows people in group wheel to run all commands
%wheel  ALL=(ALL)       ALL
=== 一部省略 ===

wheelグループに追加すればsudoコマンドを使用できるため、作業用ユーザーのアカウント情報を書き換えます。

# usermod -G wheel <作業用ユーザー名>

グループに追加されたか設定ファイルの差分をチェックしていきます。

# diff -U0 /etc/.backup/group.<対象ファイルの日付> /etc/group
# diff -U0 /etc/.backup/gshadow.<対象ファイルの日付> /etc/gshadow

実際にsudoコマンドが使えるか確認していきます。

# reboot
~~~ 再起動後、もう一度ログイン ~~~
$ sudo su -
[sudo] password for xxxx: 
Last login: xxx xxx  x xx:xx:xx JST 2025 on pts/0
# 

sudoコマンドが使用できたため、こちらの設定は完了です。

作業用ユーザーの鍵作成、設定

次は鍵認証によるログインができるように設定していきます。

まずはじめに、鍵を配置するディレクトリを作成します。

$ ls -la /home/<作業用ユーザー名> | grep .ssh
$ mkdir -v /home/<作業用ユーザー名>/.ssh
$ ls -la /home/<作業用ユーザー名> | grep .ssh

先ほど作成したディレクトリに鍵を作成していきます。

$ cd /home/<作業用ユーザー名>/.ssh/
$ ssh-keygen -b 4096 -t rsa
$ ls -la

以下のファイル名で鍵が生成されるため、秘密鍵の内容はローカルファイルに保存しておいてください。

  • id_rsa : 秘密鍵
  • id_rsa.pub : 公開鍵

作成した公開鍵を利用できるように、設定していきます。

$ cat /home/<作業用ユーザー名>/.ssh/id_rsa.pub >> /home/<作業用ユーザー名>/.ssh/authorized_keys
$ ls -la /home/<作業用ユーザー名>/.ssh
$ chmod 600 /home/<作業用ユーザー名>/.ssh/authorized_keys
$ ls -la /home/<作業用ユーザー名>/.ssh

登録した公開鍵を使用してログインするように、設定ファイル(/etc/ssh/sshd_config)を書き換えていきます。

sshd_configのバックアップ
# ls -la /etc/ssh
# mkdir -v /etc/ssh/.backup
# ls -la /etc/ssh
# cp -ipv /etc/ssh/sshd_config /etc/ssh/.backup/sshd_config.`date +%Y%m%d`
# ls -la /etc/ssh/.backup/
sshd_configの書き換え
# vi /etc/ssh/sshd_config
差分確認
# diff -U0 /etc/ssh/.backup/sshd_config.<対象ファイルの日付> /etc/ssh/sshd_config
--- /etc/ssh/.backup/sshd_config.<対象ファイルの日付>       2024-10-03 06:22:19.000000000 +0900
+++ /etc/ssh/sshd_config        2025-xx-xx xx:xx:xx.xxxxxxxxx +0900
@@ -40 +40 @@
-#PermitRootLogin prohibit-password
+PermitRootLogin no
@@ -45 +45 @@
-#PubkeyAuthentication yes
+PubkeyAuthentication yes
@@ -65 +65 @@
-#PasswordAuthentication yes
+PasswordAuthentication no
#

変更箇所の詳細は以下の通りです。

※もし以下の設定項目がない場合は追加で設定してください。

AuthorizedKeysFile     .ssh/authorized_keys

その後、sshdを再起動します。

# systemctl restart sshd
# systemctl status sshd

実際に設定できたか確認していきます。
一度ログアウトして、Server Select画面からもう一度OKを押してログインしていきます。
C.png

パスワード認証の拒否設定が有効になっていることが確認できました。
P.png

続いて秘密鍵を使ってログインできるか確認していきます。
Server Select画面から編集をクリックします。
E.png

SSH認証鍵をクリックします。
O.png

先ほどコピーした秘密鍵を指定してOKを押します。
Q.png

秘密鍵を指定できたら、OKを押します。
R.png

先ほどと同様にOKを押して、サーバーにログインしていきます。
C.png

無事、鍵を用いてのログインが出来ました。
S.png

SELinuxの永久無効化

SELinuxを無効にすると、セキュリティ上のリスクが大幅に増加します。無効にする場合は、その影響を十分に理解した上で、慎重に判断してください。

続いてSELinuxを永久に無効化していきます。
SELinuxの概要について、以下のサイトをご覧ください。

まずは、現在のSELinuxの状態を確認していきます。

  • Enforcing : 有効 (ログ記録 + アクセス拒否)
  • Permissive : 有効 (ログ記録 + アクセス許可)
  • Disabled : 無効
# getenforce
Enforcing
#

SELinuxが有効になっているため、無効化していきます。
setenforceコマンドを利用してもよいのですが、状態を一時的にしか変更できません。
ですので、/etc/selinux/configファイルを直接書き換えます。

configのバックアップ
# ls -la /etc/selinux/
# mkdir -v /etc/selinux/.backup
# ls -la /etc/selinux
# cp -ipv /etc/selinux/config /etc/selinux/.backup/config.`date +%Y%m%d`
# ls -la /etc/selinux/.backup/
configの書き換え
# vi /etc/selinux/config
差分確認
# diff -U0 /etc/selinux/.backup/config.<対象ファイルの日付> /etc/selinux/config 
--- /etc/selinux/.backup/config.<対象ファイルの日付>        2025-xx-xx xx:xx:xx.xxxxxxxxx +0900
+++ /etc/selinux/config 2025-xx-xx xx:xx:xx.xxxxxxxxx +0900
@@ -22 +22 @@
-SELINUX=enforcing
+SELINUX=disabled
# 

その後、再起動をかけます。

# reboot

再度ログイン後、SELinuxの状態を確認します。

# getenforce 
Disabled
# 

SELinuxが無効になっていることを確認しました。

EPEL repositoryのインストール

最後にEPEL repositoryのインストールも行っていきます。
EPEL repositoryは様々な場面で利用されることが多く、非常に便利です。

EPEL repositoryの概要については、以下のサイトをご覧ください。

早速、EPEL repository(/etc/yum.repos.d/epel.repoなど)が存在しているか確認します。

# ls -la /etc/yum.repos.d/ | grep epel

EPEL repositoryが存在しなかったため、EPEL repositoryをインストールしていきます。

# dnf update ←※アップデート不要なパッケージが存在する場合は個別に対応してください。
# dnf install epel-release

実際にインストールできたか確認します。

# ls -la /etc/yum.repos.d/ | grep epel

EPEL repositoryが無事インストールされていることが確認できました。
以上でSSHログイン、その他の最適化設定は完了です。

最後に

今回は軽くですが、SSHログインの最適化設定を行いました。
この他にも、少し改良できる点があれば、少しずつしていこうかなと考えております。

参考資料

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?