公開日: 2012年8月9日 20:51:25
最終更新: 2012年8月9日 20:51:25

rssh ターミナルのログインを制限

SCP、SFTP 転送は許可したいけれどターミナルの操作はさせたくない、という要件があり rssh を試してみた。

SRPMからのリビルドとなるので、あらかじめ gcc や rpmbuild をインストールしておくこと。
※ OS インストール時に「開発ツール」を選択していればインストールされていると思います。

$ yum -y install rpm-build
$ cd /usr/local/src/
$ wget http://jaist.dl.sourceforge.net/project/rssh/rssh/2.3.3/rssh-2.3.3-1.src.rpm

# リビルドしてインストール
$ rpmbuild --rebuild rssh-2.3.3-1.src.rpm

$ rpm -ivh ~/rpmbuild/RPMS/i686/rssh-2.3.3-1.i686.rpm

/etc/shells に rssh を追加します。

vi /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/rssh

続いて rssh に許可する接続を設定します。

vi /etc/rssh.conf
allowscp    # scp を許可
allowsftp   # sftp を許可
#allowcvs
#allowrdist
allowrsync  # rsync を許可

これで rssh の設定が出来ました。
確認のため 「rssher」というユーザを追加してみます。

# シェルを rssh に設定
$ useradd rssher -s /usr/bin/rssh

# ログインパスワードを設定
$ passwd rssher
ユーザー rssher のパスワードを変更。
新しいパスワード:
新しいパスワードを再入力してください:
passwd: 全ての認証トークンが正しく更新できました。
$

rssher ユーザで SSHログインしようとすると。

$ ssh rssher@localhost
rssher@localhost's password:
Last login: Thu Aug  9 15:33:20 2012 from 192.168.*.*

This account is restricted by rssh.
Allowed commands: scp sftp rsync

If you believe this is in error, please contact your system administrator.

Connection to localhost closed.

ssh 接続が制限されていることがわかります。
sftp や scp は問題無く接続できます。

# sftp で localhost へログイン
$ sftp rssher@localhost
Connecting to localhost...
rssher@localhost's password:
sftp>
sftp> quit

# scp ファイル転送
$ scp /tmp/test rssher@localhost:~
rssher@localhost's password:
test                                                    100%    0     0.0KB/s   00:00