Linux環境設定/sshのrootログイン禁止だがssh経由でroot権限で指定コマンドを実行する方法
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
#navi(../)
* sshでのrootログインを禁止しssh経由でのroot権限では指定...
本資料では、sshでrootによるログイン禁止環境で指定のコマン...
#contents
#htmlinsertpcsp(linux_ads_top.html,linux-sp.html)
* 関連記事 [#h8761fa6]
-[[sshdを複数ポートでリッスンさせる設定方法>Linux環境設定...
-[[sshの接続に時間がかかる場合の対処>Linux環境設定/sshの...
-[[sshの接続が切断されてしまう場合の対処>Linux環境設定/ss...
-[[sshによる不正アクセスを確認する>Linux環境設定/sshによ...
-[[特定ユーザのみSSHによるログインを可能にする>Linux環境...
-[[sshでのrootログインを禁止しssh経由でのroot権限では指定...
-[[Broken pipeでsshが切断される場合の対処>Linux環境設定/B...
-[[ssh-copy-idを使って、sshの公開鍵認証の鍵登録を簡単に行...
* sshのセキュアな運用 [#o7f96638]
sshはもっとも一般的なリモートシェルプログラムです。~
ネットワーク上にあるマシンにログインしたり、コマンドを遠...
通信経路は暗号化され、認証も公開鍵方式によって安全性が提...
しかし、セキュリティのための機能とセキュアに運用すること...
安全性の高い機能があっても運用に問題があればセキュアでは...
たとえば、セキュリティの観点において、ネットワーク上のマ...
(ログインを可能とする設定のままにすること)は問題がある...
特に認証鍵にパスワードを付与しない設定でのrootログインは、~
悪意の第三者が存在した場合などだけでなく、ケアレスミスの...
しかし、実際の運用においてはrootによる直接ログインは多用...
rootによる直接ログインは禁止したいが、~
運用上root権限での遠隔コマンド実行が必要である。~
そのようなケースは多いでしょう。
いったん一般ユーザでログインしてから''su''や''sudo''を利...
逆にその煩雑さがオペレーションミスを生むかも知れません。~
ルーティン処理をスクリプトなどで自動化したくともそれが邪...
限定した形でssh経由でのroot権限の利用を可能とするために、...
「自動コマンド実行機能専用の公開鍵作成」と、~
「root権限では自動コマンド実行機能のみ許可」という設定を...
* sshの自動コマンド実行機能 [#v6f75d2a]
''ssh''の機能として公開鍵に実行したいコマンドを指定するこ...
その設定を行った公開鍵を使うと、ログインや任意のコマンド...
ただ指定のコマンドだけが自動的に実行されて、すぐに接続が...
他のことは何もできません。~
そのコマンド実行専用の公開鍵となります。
この機能の利用手順は以下の通りです。
** 新しい公開鍵の作成 [#g1fbd7f2]
自動コマンド実行機能を利用したいマシン上の任意のユーザで...
(既存の公開鍵を使うこともできますが新しいものを作ったほ...
新しい公開鍵ファイル(ファイル名: ~/.ssh/command_only)...
''ssh-keygen''コマンドを実行します。~
これがコマンド自動実行機能専用の公開鍵ファイルになります。
% ssh-keygen -f ~/.ssh/command_only
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user01/.ssh/...
Your public key has been saved in /home/user01/.ssh/comm...
The key fingerprint is:
88:52:12:eb:cb:b4:f0:58:6a:de:15:5f:69:c7:a9:81 user01@u...
The key's randomart image is:
+--[ RSA 2048]----+
| . |
| o |
| o . |
| . o . .. o . |
|. = ...ES= + |
| O + o o + |
|o.= . . . |
|o . . |
| . . |
+-----------------+
%
** コマンド設定を公開鍵に追加する [#h7e06b55]
作成された公開鍵ファイル''~/.ssh/command_only.pub''をエデ...
ファイルの先頭に以下のような語句を追加します。
''command="実行したいコマンド名"''
例えば、''ls''コマンドを指定して設定すると、公開鍵ファイ...
command="ls -l" ssh-rsa AAAAB3NzaC1yc......
コマンドにはオプション引数も指定できますし、シェルスクリ...
CUIで非対話的なコマンドはほとんど利用可能だと思います。
** 公開鍵をコマンドを実行したい対象マシン・ユーザの''~/.s...
command句を追加した自動コマンド実行専用の公開鍵データを、~
対象のマシンのコマンドを実行させたいユーザの''~/.ssh/auth...
これは通常の公開鍵の登録手順とまったく同じです。
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAsXTxFq88NS6a+1s2IdOY...
command="ls -l" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDP...
今回は、対象マシン ''server'' のrootユーザの''/root/.ssh/...
二行目に追加しています。
(一行目は通常のログインや遠隔コマンド実行で使っていた公...
次項で『root権限では自動コマンド実行機能のみ許可』を設定...
自動コマンド実行用の鍵と両立可能です)
** 作成した鍵を使って対象マシンに接続する [#qf2ec43c]
作成した鍵を''ssh''の''-i''オプションで指定して、対象に接...
% ssh -i ~/.ssh/command_only root@server
-rwxr-xr-x 1 root root 24 8月 15 17:59 test.sh
-rw-r--r-- 1 root root 0 8月 15 17:57 test.txt
Connection to server closed.
%
指定したコマンド''ls -l''が実行され、対象マシンの''/root'...
なお、この自動コマンド実行機能は、rootに限らずどんなユー...
* rootでのログインを不可とし、コマンド実行だけを可能とす...
これまでの手順で自動コマンド実行専用の公開鍵の作成と登録...
次の手順で、rootでのログインを禁止し、自動コマンド実行機...
** sshdの設定変更 [#ga2bbc60]
対象マシンのroot権限で、sshdの設定ファイル''/etc/ssh/sshd...
設定句''PermitRootLogin''を、''forced-commands-only''に変...
変更前
# Authentication:
LoginGraceTime 120
PermitRootLogin yes
StrictModes yes
変更後
# Authentication:
LoginGraceTime 120
PermitRootLogin forced-commands-only
StrictModes yes
設定を変更後、sshdを再起動します。
root@server:~# service ssh restart
ssh stop/waiting
ssh start/running, process 31269
root@server:~#
** 通常ログインの禁止 [#qd1f9b85]
再起動後は、先程の自動コマンド実行接続はできますが、通常...
% ssh -i ~/.ssh/command_only root@server
合計 4
-rwxr-xr-x 1 root root 24 8月 15 17:59 test.sh
-rw-r--r-- 1 root root 0 8月 15 17:57 test.txt
Connection to server closed.
ubuntu[1]%
通常のログインを試みると、パスワードの入力を求められます...
% ssh root@server
root@server's password:
Permission denied, please try again.
root@server's password:
Permission denied, please try again.
root@server's password:
Permission denied (publickey,password).
以上、sshでのrootログインを禁止し、ssh経由でのroot権限で...
#htmlinsertpcsp(linux_ads_btm.html,linux-sp.html)
終了行:
#navi(../)
* sshでのrootログインを禁止しssh経由でのroot権限では指定...
本資料では、sshでrootによるログイン禁止環境で指定のコマン...
#contents
#htmlinsertpcsp(linux_ads_top.html,linux-sp.html)
* 関連記事 [#h8761fa6]
-[[sshdを複数ポートでリッスンさせる設定方法>Linux環境設定...
-[[sshの接続に時間がかかる場合の対処>Linux環境設定/sshの...
-[[sshの接続が切断されてしまう場合の対処>Linux環境設定/ss...
-[[sshによる不正アクセスを確認する>Linux環境設定/sshによ...
-[[特定ユーザのみSSHによるログインを可能にする>Linux環境...
-[[sshでのrootログインを禁止しssh経由でのroot権限では指定...
-[[Broken pipeでsshが切断される場合の対処>Linux環境設定/B...
-[[ssh-copy-idを使って、sshの公開鍵認証の鍵登録を簡単に行...
* sshのセキュアな運用 [#o7f96638]
sshはもっとも一般的なリモートシェルプログラムです。~
ネットワーク上にあるマシンにログインしたり、コマンドを遠...
通信経路は暗号化され、認証も公開鍵方式によって安全性が提...
しかし、セキュリティのための機能とセキュアに運用すること...
安全性の高い機能があっても運用に問題があればセキュアでは...
たとえば、セキュリティの観点において、ネットワーク上のマ...
(ログインを可能とする設定のままにすること)は問題がある...
特に認証鍵にパスワードを付与しない設定でのrootログインは、~
悪意の第三者が存在した場合などだけでなく、ケアレスミスの...
しかし、実際の運用においてはrootによる直接ログインは多用...
rootによる直接ログインは禁止したいが、~
運用上root権限での遠隔コマンド実行が必要である。~
そのようなケースは多いでしょう。
いったん一般ユーザでログインしてから''su''や''sudo''を利...
逆にその煩雑さがオペレーションミスを生むかも知れません。~
ルーティン処理をスクリプトなどで自動化したくともそれが邪...
限定した形でssh経由でのroot権限の利用を可能とするために、...
「自動コマンド実行機能専用の公開鍵作成」と、~
「root権限では自動コマンド実行機能のみ許可」という設定を...
* sshの自動コマンド実行機能 [#v6f75d2a]
''ssh''の機能として公開鍵に実行したいコマンドを指定するこ...
その設定を行った公開鍵を使うと、ログインや任意のコマンド...
ただ指定のコマンドだけが自動的に実行されて、すぐに接続が...
他のことは何もできません。~
そのコマンド実行専用の公開鍵となります。
この機能の利用手順は以下の通りです。
** 新しい公開鍵の作成 [#g1fbd7f2]
自動コマンド実行機能を利用したいマシン上の任意のユーザで...
(既存の公開鍵を使うこともできますが新しいものを作ったほ...
新しい公開鍵ファイル(ファイル名: ~/.ssh/command_only)...
''ssh-keygen''コマンドを実行します。~
これがコマンド自動実行機能専用の公開鍵ファイルになります。
% ssh-keygen -f ~/.ssh/command_only
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user01/.ssh/...
Your public key has been saved in /home/user01/.ssh/comm...
The key fingerprint is:
88:52:12:eb:cb:b4:f0:58:6a:de:15:5f:69:c7:a9:81 user01@u...
The key's randomart image is:
+--[ RSA 2048]----+
| . |
| o |
| o . |
| . o . .. o . |
|. = ...ES= + |
| O + o o + |
|o.= . . . |
|o . . |
| . . |
+-----------------+
%
** コマンド設定を公開鍵に追加する [#h7e06b55]
作成された公開鍵ファイル''~/.ssh/command_only.pub''をエデ...
ファイルの先頭に以下のような語句を追加します。
''command="実行したいコマンド名"''
例えば、''ls''コマンドを指定して設定すると、公開鍵ファイ...
command="ls -l" ssh-rsa AAAAB3NzaC1yc......
コマンドにはオプション引数も指定できますし、シェルスクリ...
CUIで非対話的なコマンドはほとんど利用可能だと思います。
** 公開鍵をコマンドを実行したい対象マシン・ユーザの''~/.s...
command句を追加した自動コマンド実行専用の公開鍵データを、~
対象のマシンのコマンドを実行させたいユーザの''~/.ssh/auth...
これは通常の公開鍵の登録手順とまったく同じです。
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAsXTxFq88NS6a+1s2IdOY...
command="ls -l" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDP...
今回は、対象マシン ''server'' のrootユーザの''/root/.ssh/...
二行目に追加しています。
(一行目は通常のログインや遠隔コマンド実行で使っていた公...
次項で『root権限では自動コマンド実行機能のみ許可』を設定...
自動コマンド実行用の鍵と両立可能です)
** 作成した鍵を使って対象マシンに接続する [#qf2ec43c]
作成した鍵を''ssh''の''-i''オプションで指定して、対象に接...
% ssh -i ~/.ssh/command_only root@server
-rwxr-xr-x 1 root root 24 8月 15 17:59 test.sh
-rw-r--r-- 1 root root 0 8月 15 17:57 test.txt
Connection to server closed.
%
指定したコマンド''ls -l''が実行され、対象マシンの''/root'...
なお、この自動コマンド実行機能は、rootに限らずどんなユー...
* rootでのログインを不可とし、コマンド実行だけを可能とす...
これまでの手順で自動コマンド実行専用の公開鍵の作成と登録...
次の手順で、rootでのログインを禁止し、自動コマンド実行機...
** sshdの設定変更 [#ga2bbc60]
対象マシンのroot権限で、sshdの設定ファイル''/etc/ssh/sshd...
設定句''PermitRootLogin''を、''forced-commands-only''に変...
変更前
# Authentication:
LoginGraceTime 120
PermitRootLogin yes
StrictModes yes
変更後
# Authentication:
LoginGraceTime 120
PermitRootLogin forced-commands-only
StrictModes yes
設定を変更後、sshdを再起動します。
root@server:~# service ssh restart
ssh stop/waiting
ssh start/running, process 31269
root@server:~#
** 通常ログインの禁止 [#qd1f9b85]
再起動後は、先程の自動コマンド実行接続はできますが、通常...
% ssh -i ~/.ssh/command_only root@server
合計 4
-rwxr-xr-x 1 root root 24 8月 15 17:59 test.sh
-rw-r--r-- 1 root root 0 8月 15 17:57 test.txt
Connection to server closed.
ubuntu[1]%
通常のログインを試みると、パスワードの入力を求められます...
% ssh root@server
root@server's password:
Permission denied, please try again.
root@server's password:
Permission denied, please try again.
root@server's password:
Permission denied (publickey,password).
以上、sshでのrootログインを禁止し、ssh経由でのroot権限で...
#htmlinsertpcsp(linux_ads_btm.html,linux-sp.html)
ページ名: