☆☆ 新着記事 ☆☆

2018年12月13日木曜日

* メモ: WebArena VPSのログイン鍵認証

WebArenaの鍵認証を使ってログインするユーザを、ルートから変更する試みです。
未解決中。 一通り設定を終えたら、戻ってきて更新します。



(作業内容)
1.SSHでログインする一般ユーザを作成する。


第一回では、鍵認証によりSSHでサーバーへ、'root'という権限でログインしました。
この'roo'は、サーバー管理者権限が付与されている為、各種のサーバー設定を変更できる、
大変重要なアカウントです。 

ログインしたアカウントが、そのまま管理者権限を持っているのは危険なので、ログインしたアカウントから、別の管理者アカウントに切り替えないかぎり、アカウント権限を使えなくするよう、新しいアカウントを追加します。

①ログインに使用する新しいアカウントを作成する。

以下のコマンドを実行するだけです。
・アカウント作成
# adduser (新しいアカウント名)
・新しいアカウントに対するパスワード設定
#passwd (新しいアカウント名)

[root@mk1ouin8 ~]# adduser (新しいアカウント名)
[root@mk1ouin8 ~]# passwd (新しいアカウント名)
Changing password for user (新しいアカウント名)
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

Apache(httpd)の再起動で、設定を有効にします。

[root@mk1ouin8 ~]# systemctl restart httpd


一度、ログアウトして、再びSSHで新しく追加したアカウントで接続できるか確認します。
Tera Termであれば、ユーザ名に、今まで ’root’ と記入していましたが、代わりに
新しく登録したユーザ名を記入してログインしてみてください。


なんと、ログインできません。

そこで、考察になります。

一般に、VPSサーバーなどのへのログイン認証は、サーバー管理者が自由に設定可能です。
ベーシックなパスワード認証の代わりに、鍵認証を管理者が自分で設定することも可能です。

自分で鍵認証を導入する場合の手順は、

 ① ローカル側で、秘密鍵、公開鍵のペアを作成。
 ② サーバー側への公開鍵の受け渡し。 
 ③ サーバー側での公開鍵の保存。

となります。

さて、現時点でWebArena のVPSでの設定状況を確認してみます。

一般に、公開鍵はルートディレクトリの.sshディレクトリに、authorized_keysというファイルとして保存されます。 開いてみると、単にランダムな文字列であるキーが、現在、保存されていることが分かります。(ここにあるのは、管理ポータルで作成された公開鍵)

以下で、公開鍵が保管されていることを確認。

[root@mk1ouin8 /]# find -name authorized_keys -type f
./root/.ssh/authorized_keys
[root@mk1ouin8 /]# cd ./root/.ssh/
[root@mk1ouin8 .ssh]# vi authorized_keys

ssh-rsa AAAAB3Nza ****公開鍵のテキスト情報文字列*****R0Cbw==

*vi とは、vimと言われるCUI上でのテキスト・ファイル・エディターを開始するコマンドです。
 使い方はいろいろありますが、上記で開いてしまった場合、カーソルの場所に拘らず、
 :q と入力してもらえれば、vimの編集モードからexitできます。

次に、ユーザー名でのパスワード認証を管理しているssh_config/sshd_configの内容を
確認します。

[root@mk1ouin8 .ssh]# cd /etc/ssh
[root@mk1ouin8 ssh]# ls -l
total 612
-rw-r--r--. 1 root root     581843 Aug  7  2017 moduli
-rw-r--r--. 1 root root       2276 Aug  7  2017 ssh_config
-rw-------. 1 root root       3917 May 23  2018 sshd_config
--以下、省略--

[root@mk1ouin8 ssh]# vi sshd_config

[root@mk1ouin8 ssh]# vi sshd_config
# $OpenBSD: sshd_config,v 1.100 2016/08/15 12:32:04 naddy Exp $
# This is the sshd server system-wide configuration file.  See
# sshd_config(5) for more information.
# This sshd was compiled with PATH=/usr/local/bin:/usr/bin
# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented.  Uncommented options override the
# default value.
# If you want to change the port on a SELinux system, you have to tell
# SELinux about this change.
# semanage port -a -t ssh_port_t -p tcp #PORTNUMBER
#
#Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::
#HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_dsa_key
"sshd_config" 139L, 3917C

すると、Port番号のセキュリティー設定は、SELinuxでコントロールされている旨の記載があります。
WebArenaの管理ポータルで設定したフィルタリングは、SELinuxに反映されているのでしょうか?


SELinux : Secured Enhanced Linux
米国国家安全省? (NSA :National Security Agency)ご指定のセキュリティーレベル強化版Linuxで
検索すると、色々と挙動をおかしくするので、無効にすることをお勧めされるサイトが沢山でてくる。

そういうものは、さっさと無効にしたのですが、WebArenaの管理コンソールが、SELinuxを直接設定するように設定されているとすると、うかつに無効にできません。

SELinuxの状態確認
[root@mk1ouin8 ~]# sestatus
SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   enforcing
Mode from config file:          enforcing
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Max kernel policy version:      28


なので、


この手順を試します。
https://qiita.com/QUENCH/items/818d719ceb746823c71c

*追加ユーザの確認
[root@mk1ouin8 ~]# cut -d: -f1 /etc/passwd
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
operator
games
ftp
nobody
avahi-autoipd
systemd-bus-proxy
systemd-network
dbus
polkitd
tss
postfix
sshd
chrony
saslauth
apache
vpsuser

[root@mk1ouin8 ~]# su vpsuser
[vpsuser@mk1ouin8 root]$

ハイフン「-」を付けると、環境変数を引き継がずに他のユーザーに切り替えることができます。「-」を付けない場合は、「USER」と「LOGNAME」以外のすべての環境変数が、切り替え後のユーザーにも引き継がれます。

作成したユーザの為に公開鍵を入れるディレクトリ、ファイルを作成
[root@mk1ouin8 /]# cd home/vpsuser
[root@mk1ouin8 vpsuser]# mkdir .ssh
[root@mk1ouin8 vpsuser]# chmod 0700 .ssh
[root@mk1ouin8 vpsuser]# touch .ssh/authorized_keys
[root@mk1ouin8 vpsuser]# chmod 0400 .ssh/authorized_keys
[root@mk1ouin8 vpsuser]# ls .ssh/authorized_keys -l
-r--------. 1 root root 0 Dec 13 20:24 .ssh/authorized_keys
[root@mk1ouin8 vpsuser]# chown -R vpsuser:vpsuser .ssh/authorized_keys
[root@mk1ouin8 vpsuser]# ls .ssh/authorized_keys -l
-r--------. 1 vpsuser vpsuser 0 Dec 13 20:24 .ssh/authorized_keys

公開鍵のコピー
作成したユーザーにも同じ鍵をコピーします。
[root@mk1ouin8 vpsuser]# cd /
[root@mk1ouin8 /]# cp /root/.ssh/authorized_keys /home/vpsuser/.ssh/authorized_keys
cp: overwrite ‘/home/vpsuser/.ssh/authorized_keys’? y
[root@mk1ouin8 /]# cat /home/vpsuser/.ssh/authorized_keys
ssh-rsa AAA ==公開鍵 テキスト Cbw==

さてさて、これでもアクセスできませんね。

0 件のコメント:

コメントを投稿