2006/06/17
サーバに rssh を導入した。
これまで、外部からのアクセスを許可する場合は、FTPを開いていたのだが、セキュリティ的にもよくないので、SCP や SFTP でのアクセスに切り替えをしたいと思っていた。
しかし、ssh で接続すると、通信経路上のセキュリティは暗号化できるが、ホームディレクトリより上位のディレクトリにもアクセスできてしまうので、これもいいとは言えない。
そこで、chroot できる制限つきシェルを導入する事にした。
今回導入したのはrssh。
コンパイルとインストールはいたって簡単だった。
普通に configure して、コンパイル、インストールで終了。
sftp、scpでのアクセスのみに制限するのは簡単に設定でできたのだが、chroot する環境の設定は、少々難儀した。
rssh には、mkchroot.sh というスクリプトが付属していて、このスクリプトを実行すると、chroot の環境を自動的に作り出すはずなのだが、このスクリプトが中途半端なデキで、うまく動作しない。
何も設定せずに rssh の configure すると、/usr/local 配下にインストールされるように構築されるのだが、なぜか mkchroot.sh は、/usr 配下にインストールされている事を前提に作成されていて、このスクリプトをそのまま実行しても、うまく chroot の環境を作り出せない。
イマイチな感じ。
仕方がないので、スクリプトの中を調べてみる。
パスが問題になる部分は2箇所だけだったので、その部分を修正し、実行しようと思ったのだが…。
このスクリプトは、元のパスのまま、chroot 環境にコマンド群をコピーしようとする。
rssh の元のパスは /usr/local/bin/rssh なので、chroot 環境でも /usr/local/bin/rssh になってしまう。
元のプログラムは /usr/local/bin/rssh にあっても、chroot 環境では、/usr/bin/rssh にインストールしてほしいところだ。
イマイチな感じ。
これも、スクリプトを修正して、/usr 配下にインストールされる様に変更。
スクリプトを実行し、chroot 環境を作成。
しかし、まだ問題がある。
/etc/password も、chroot 環境の /etc 配下に丸ごとコピーされてしまう。
これはいただけない。
目的のアカウント1行だけを残して、他のアカウントをファイルから削除。
その他、rssh の設定を行い、いざ、WinSCP で接続。
chroot 環境にアクセス
無事、chroot 環境にアクセスできた。
ルータの設定からも、ポート21の設定を外し、完全に外部からの接続をシャットアウト。
よしよし。
■参考文献
| Linuxサーバ セキュリティ | | ネットワーク セキュリティ Hacks | | 入門SSH | |
投稿者 zunbe : 2006/06/17 10:42:57
トラックバック
|
〔http://blog.zunbe.com/mt/mt-tb.cgi/395〕
|
|