はじめに

Linuxサーバーを管理する際、ユーザーに完全なシェルアクセスを許可せずにファイル転送のための制限付きアクセスを提供することは一般的なセキュリティの懸念です。これを実現するための2つのツールがrsshscponlyです。これらの制限付きシェルは、ユーザーがコマンドの実行を防ぎながら、SCP、SFTP、およびrsyncを介して特定のファイル転送操作を実行できるようにします。

このガイドでは、Linuxシステム上でのrsshscponlyのインストールとセットアップについて説明します。

rsshのインストール

rsshをインストールする

ほとんどのLinuxディストリビューションは、パッケージリポジトリにrsshを提供しています。以下のコマンドを使用してインストールできます。

Debian/Ubuntuの場合:

sudo apt update && sudo apt install rssh -y

CentOS/RHELの場合:

sudo yum install rssh -y

Arch Linuxの場合:

sudo pacman -S rssh

rsshを設定する

インストールが完了したら、設定ファイルを編集してrsshを構成します:

sudo nano /etc/rssh.conf

SCP、SFTP、またはrsyncを許可するために必要なオプションのコメントを外します。例:

allowscp
allowsftp
allowrsync

ファイルを保存して終了します。

rsshを使用したユーザーのセットアップ

特定のユーザーに対してrsshをシェルとして割り当てるには、次のコマンドを実行します:

sudo usermod -s /usr/bin/rssh username

これで、ユーザーはSCP、SFTP、またはrsyncを介して許可された操作のみを実行できるようになります。

scponlyのインストール

scponlyをインストールする

Debianベースのシステムの場合:

sudo apt update && sudo apt install scponly -y

CentOS/RHELの場合:

sudo yum install scponly -y

Arch Linuxの場合:

sudo pacman -S scponly

ユーザーのためのscponlyのセットアップ

ユーザーをscponlyに制限するには、そのシェルを変更します:

sudo usermod -s /usr/bin/scponly username

ユーザーが適切に制限されていることを確認するために、次のコマンドでテストします:

ssh username@server

シェルアクセスを拒否し、SCP/SFTPファイル転送を許可する必要があります。

テストと検証

セットアップを確認するために、次の方法でファイル転送を試みます:

SCPの場合:

scp file.txt username@server:/home/username/

SFTPの場合:

sftp username@server

正しく設定されていれば、ユーザーはファイルを転送できるが、コマンドを実行することはできません。

結論

rsshscponlyを使用することで、管理者はユーザーのファイル転送アクセスを制限することによりセキュリティを強化できます。これにより、必要なファイル交換操作を許可しながら、不正なシェルアクセスを防ぐことができます。セキュリティポリシーに合わせて定期的に設定を更新することを忘れないでください。