1
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?

ConohaVPSでAlmaLinux9.3を構築する。part2

Last updated at Posted at 2024-03-30

ConohaVPSでAlmaLinux9.3を構築する。part2です。

目次

1. パッケージのアップデート(おまじない)
2. ユーザの作成
3. 鍵作成
4. Conohaセキュリティグループの設定
5. SSHセキュリティの設定
6. SSH接続

0. 事前作業

Conohaのコンソールを立ち上げること。
rootでログインできること。

1. パッケージのアップデート(おまじない)

インストール済みのパッケージをすべて最新のバージョンにアップデートするコマンド

$ sudo dnf upgrade

2. ユーザの作成

今回は例として、greenというユーザを用いて説明します。
なので、greenという部分には自分が作成したい「任意のユーザ名」を入力してください。
新規ユーザを作成。

$ useradd green

新規ユーザのパスワードを設定する。
※入力中のパスワードは、ターミナルには表示されません。
2回問題なく入力できれば「passwd: all authentication tokens updated successfully.」が表示され、正しくパスワードが設定されます。

$ passwd green
Changing password for testuser.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

ユーザが正しく作成できているか確認する。

#ユーザ切り替え
$ su - green

#現在のユーザがgreenであることを確認する
$ whoami

#greenからログアウトする
$ exit

#現在のユーザがrootであることを確認する
$ whoami

3. 鍵作成

前知識として鍵を作成するパターンは2つある。

・サーバ側の秘密鍵をクライアント側に配布するパターン(この記事内では採用しません。)

クライアント側の作業者が多く、一人ずつ公開鍵を回収することが困難になる場合

・クライアント側で作成した公開鍵をサーバ側に転送するパターン(採用)

セキュリティ上、秘密鍵を配布していないのでこちらが安全。

ということで、鍵の準備を行う。

【サーバ側作業:AlmaLinux】

#新規ユーザに切り替える。su - <新規ユーザ>
$ su - green

#現在のディレクトリが「/home/green」であることを確認する。
$ pwd

#.sshディレクトを作成
$ mkdir .ssh

#.sshディレクトリに移動する
$ cd .ssh

#現在いるディレクトリが「/home/green/.ssh」であることを確認する。
$ pwd

#authorized_keys(公開鍵を登録する)ファイルを作成
$ touch authorized_keys

#.sshディレクトの権限を変更
$ chmod 700 /home/green/.ssh

#authorized_keysの権限を変更
$ chmod 600 /.ssh/authorized_keys

#ファイルの所有者とグループを同時に変更する
# -R はディレクトリ内のファイルも変更する
$ chown -R green:green /home/green/.ssh

【クライアント側作業:Windows】

今回クライアント側はwindows想定で鍵を作成していきます。
windows + R を押下後、「cmd」と入力してEnter
そうするとコマンドプロンプトが立ち上がるので、以下のコマンドを実行

$ ssh-keygen -t ed25519
Generating public/private ed25519 key pair.
Enter file in which to save the key (C:\Users\hoge/.ssh/id_ed25519):(入力せずにEnter)
Enter passphrase (empty for no passphrase):(入力せずにEnter)
Enter same passphrase again:(入力せずにEnter)
Your identification has been saved in C:\Users\hoge/.ssh/id_ed25519.(秘密鍵)
Your public key has been saved in C:\Users\hoge/.ssh/id_ed25519.pub.(公開鍵)
The key fingerprint is:
SHA256:xxxxxx/xxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxx hoge@DESKTOP
The key's randomart image is:
+--[ED25519 256]--+
|  ...+o=.        |
|   +oo+oo        |
| o .+xo o    o   |
| oooo oo.        |
| ..+.o. S .      |
| o*o.o.. o       |
|.++.*S+   oo     |
|.o=E.So      o   |
|SoSSSSS          |
+----[SHA256]-----+

コマンドを実行後、以下の部分に公開鍵が作成されるのでファイルを開く。
Your public key has been saved in C:\Users\hoge/.ssh/id_ed25519.pub.
「C:\Users\hoge/.ssh/id_ed25519.pub.」

ファイルを開くと、
ssh-ed25519 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx hoge@DESKTOP
と記載しているのでコピーする。

【サーバ側作業:AlmaLinux】

#ユーザ切り替え
$ su - green

#viエディタを開く
$ vi .ssh/authorized_keys

#[Shift+i]を押してINSERTモードに変更する。

#Conohaコンソールの「テキスト送信」を押下後、
#クライアント側(windows)で作成した公開鍵を貼り付けて送信する。

ssh-ed25519 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx hoge@DESKTOP

#[ESC]を押す。
#[:wq]←を入力。

#正しく入力できているか確認
$ cat .ssh/authorized_keys
ssh-ed25519 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx hoge@DESKTOP

ここまで終了したら一度、サーバを停止する。

#サーバ停止
shutdown

4. Conohaセキュリティグループの設定

SSHのポート番号に設定できる範囲は[1~65535]まで可能だが、ウェルノウンポートは避けるため、1~1023以外のポート番号を設定する。
※ウェルノウンポートとは、特定のサービスやプロトコルで既に予約されているポートのこと。

この記事では、SSHのポート番号は「23320」を設定する。
実際、この時点でセキュリティグループの標準に「IPv4v6-SSH」が追加されていれば接続は可能だが、
標準ポートは攻撃される恐れがあるため、基本避けるべき。
SSHの標準ポートは22番です。

サイドバーから「セキュリティ」→「セキュリティグループ」を押す。
「+セキュリティグループ」を押す。
スクリーンショット (30).png

以下のように設定する。
説明には、自分がわかるように内容を記載しておけばOK
スクリーンショット (31).png

サイドバーから「サーバ」→「(自分のサーバネームタグ)」を押す。
「ネットワーク情報」を押す。
先ほど追加したセキュリティグループ(IPv4v6-SSH_(変更))を追加する。
同時に、標準の「IPv4v6-SSH」を削除する。
保存を押す。

スクリーンショット (32).png

5. SSHセキュリティの設定

サーバを起動し、Conohaコンソールを開く。
rootでログインする。

【sshd_configの設定】

sshの設定は「/etc/ssh/sshd_config」で行っているため、修正していく。

#rootに変更
$ su -
Password:(任意のパスワードです。入力中の文字は表示されません)

#rootであることを確認
$ whoami
/root

#ルートディレクトリに移動
$ cd ..

#現在のディレクトリがルートディレクトリであることを確認する。
$ pwd
/

#sshディレクトリに移動する。
$ cd /etc/ssh

#sshd_config設定ファイルのバックアップを取る。
$ cp sshd_config sshd_config.bak

#sshd_configを修正する。
$ vi sshd_config

#コメントアウトを外す。
#ポート番号の変更
#Port 22
Port 23320

#コメントアウトを外す。
#rootログインを拒否
#PermitRootLogin prohibit-password
PermitRootLogin no

#コメントアウトを外す。
#公開鍵認証を許可する。
#PubkeyAuthentication no
PubkeyAuthentication yes

#コメントアウトを外す。
#パスワード認証を拒否する。
#PasswordAuthentication yes
PasswordAuthentication no

#[ESC]を押す。
#[:wq]を入力後、Enter

sshサービスを再起動する。

#sshサービスの再起動
$ systemctl restart sshd

【SELinuxの設定】

#SELinuxの動作モードを確認
$ getenforce

Disabledの場合、SELinuxが無効状態となっているため起動する。

#SELinuxを有効にする。

#現在のディレクトリがrootホームディレクトリであることを確認する。
$ cd
/root

#現在のディレクトリがルートディレクトリであることを確認する。
$ cd ..
/

#ルートディレクトリからselinuxの設定ファイルがあるディレクトリへ移動する。
$ /etc/selinux/

#config設定ファイルのバックアップを取る。
$ cp config config.bak

#viモードで修正する。
$ vi config

SELINUX=disabled(変更前)
SELINUX=enforcing(変更後)

#[ESC]を押す。
#[:wq]を入力後、Enter

semanageコマンドでポートを許可する。

#SELinuxで許可するSSHポートを確認
$ semanage port -l | grep ssh
ssh_port_t                     tcp      22

#23320を許可する
$ semanage port -a -t ssh_port_t -p tcp 23320

#23320が追加されていればOK
$ semanage port -l | grep ssh
ssh_port_t                     tcp      23320,22

【Firewallの設定】

#Firewallの起動状態を確認
$ systemctl status firewalld
Active: active (running) 

#Firewallが無効化(stop)の場合
$ systemctl start firewalld

#Firewallの設定を確認
$ firewall-cmd --list-all
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources: 
  services: cockpit dhcpv6-client ssh
  ports: 
  protocols: 
  forward: yes
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

#Firewallの設定を確認
$ firewall-cmd --add-port=23320/tcp --permanent --zone=public
success

#Firewallの設定をリロード
$ firewall-cmd --reload

#Firewallの設定をもう一度確認し、portに23320が追加されていることを確認する。
$ firewall-cmd --list-all
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources: 
  services: cockpit dhcpv6-client ssh
  ports: 23320/tcp
  protocols: 
  forward: yes
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

ここまでの設定が完了すれば、サーバ側の設定は終了。

6. SSH接続

最後にSSH接続をする。

【クライアント側作業:Windows】

【秘密鍵の場所】
以下のコマンドを入力時に記載されていたディレクト場所
ssh-keygen -t ed25519
Your identification has been saved in C:\Users\hoge/.ssh/id_ed25519.(秘密鍵)
→C:\Users\hoge/.ssh/id_ed25519(秘密鍵があるパス)

【ConohaIPアドレス】
以下参照
赤枠で塗り潰している部分がサーバのIPアドレスです。
スクリーンショット (33).png

コマンドプロンプトを立ち上げて以下のコマンドを実行する。

#ssh [作成したユーザ名]@[サーバのIPアドレス] -p [ポート番号]
$ ssh green@XXX.XXX.XXXX.XXX -p 23320
The authenticity of host '[XXX.XXX.XXXX.XXX]:23320 ([XXX.XXX.XXXX.XXX]:23320)' can't be established.
ECDSA key fingerprint is SHA256:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes(←yesを入力)
Warning: Permanently added '[XXX.XXX.XXXX.XXX]:23320' (ECDSA) to the list of known hosts.
Last login: Sun Mar 31 04:08:47 2024 from XXX.XXX.XXXX.XXX
[green@xxxxx ~]$

ssh接続できれば完了です。

正直、コマンドプロンプトでSSH接続をして使用する人はあまりいないような気がする。
TeraTermとか使用できればいいかも。
(気が向いたら修正してのせる)

1
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
1
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?