以前はFreeBSDでjailを使ってユーザを閉じ込めていたのを、debianでもやってみることにしました
chroot環境を作るスクリプトがあるからすごく楽です
利用するパッケージは rssh
手順は次のとおり
==================================================
1、パッケージのインストール
# aptitude update
# aptitude install rssh
※ chroot jailを使うため、SUIDをrootに設定する
# vi /etc/rssh.conf
※ sftpの有効化とchrootの設定を実施
# cat /etc/rssh.conf
..snip..
allowsftp
..snip..
chrootpath = /data/guest
..snip..
2、chroot環境を準備してくれるスクリプトを利用して前準備を実施
# cp /usr/share/doc/rssh/examples/mkchroot.sh.gz .
# gzip -d mkchroot.sh.gz
# bash mkchroot.sh /data/guest
3、sftpのみを受け入れるユーザを追加して、ログインシェルを rssh に設定する
# useradd --home /data/guest/home --shell /usr/bin/rssh sftpuser
# cat /etc/passwd
..snip..
sftpuser:x:9999:999::/data/guest/home:/usr/bin/rssh
..snip..
==================================================
なぜsftpなのかというと次のような理由から
・ftpと違い漢字等で禁止文字がない
・ftpよりはパスワードが漏れにくい
でもサーバの漢字コードにEUCを使っていると
クライアント(windows)とサーバの漢字コードで整合性がとれなくなります
というわけで sftp クライアントアプリを次のようにします
1、
Filezillaをインストール
2、
Filezilla ファイル名 EUC<->SJIS 変換パッチをダウンロードし、
filezilla_eucsjis.exeのようにファイル名を変更した後、
先ほどのFilezillaインストール先にコピー
3、日本語ファイルを送受信する場合は先ほどのfilezilla_eucsjis.exeを使用する
ファイル名の文字コードをうまく変換してくれる sftpクライアントが出ればいいのに~