Home
Packages
Forums
Wiki
GitLab
Security
AUR
Download
コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
目次
コミュニティに貢献
最近の出来事
おまかせ表示
特別ページ
交流
ヘルプ
貢献
最近の更新
最近の議論
新しいページ
統計
リクエスト
ArchWiki
検索
検索
表示
アカウント作成
ログイン
個人用ツール
アカウント作成
ログイン
SFTP chrootのソースを表示
ページ
議論
日本語
閲覧
ソースを閲覧
履歴を表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
ソースを閲覧
履歴を表示
全般
リンク元
関連ページの更新状況
ページ情報
表示
サイドバーに移動
非表示
←
SFTP chroot
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
[[Category:File Transfer Protocol]] [[Category:Secure Shell]] [[en:SFTP chroot]] [[OpenSSH]] 4.9 以上には sftp 用の chroot が含まれていますが、通常のインストールに多少の調整が必要です。 == インストール == [[OpenSSH]] を[[インストール]]して設定してください。起動したら、デフォルトで SFTP が使えるようになります。 ''sftp'' や [[SSHFS]] でファイルにアクセスしてください。大抵の [[アプリケーション一覧#FTP|FTP クライアント]]が使えます。 === 代替 === ==== Secure copy protocol (SCP) ==== {{Pkg|openssh}} をインストールするとファイルを転送するための ''scp'' コマンドが使えるようになります。SCP は SFTP よりも高速に動作します [https://superuser.com/questions/134901/whats-the-difference-between-scp-and-sftp]。 代替シェルとして {{Aur|rssh}} あるいは {{Pkg|scponly}} をインストールしてください。 ===== Scponly ===== {{Pkg|scponly}} を[[インストール]]してください。 既存のユーザーのシェルを scponly に設定: # usermod -s /usr/bin/scponly ''username'' 詳しくは [https://github.com/scponly/scponly/wiki Scponly Wiki] を参照。 ===== chroot 監獄の追加 ===== パッケージには chroot を作成するためのスクリプトが付属しています。使用するには: # /usr/share/doc/scponly/setup_chroot.sh * 質問に答えてください。 * {{ic|/path/to/chroot}} の所有者が {{ic|root:root}} で他者のパーミッションが {{ic|r-x}} であることを確認してください。 * ユーザーのシェルを {{ic|/usr/bin/scponlyc}} に変更してください。 * sftp-server は libnss_files などの libnss モジュールを必要とします。chroot の {{ic|/lib}} パスにコピーしてください。 ==設定== ===ファイルシステムの設定=== 共有したい[[ファイルシステム]]をディレクトリにバインドマウントします。以下の例では {{ic|root}} [[ユーザー]]によって所有されている[[パーミッション]]が {{ic|755}} の {{ic|/mnt/data/share}} を使います: # chown root:root /mnt/data/share # chmod 755 /mnt/data/share # mkdir -p /srv/ssh/jail # mount -o bind /mnt/data/share /srv/ssh/jail エントリを [[fstab]] に追加して再起動してもバインドマウントされるようにしてください: /mnt/data/share /srv/ssh/jail none bind 0 0 {{Note|Readers may select a file access scheme on their own. For example, optionally create a subdirectory for an incoming (writable) space and/or a read-only space. This need not be done directly under {{ic|/srv/ssh/jail}} - it can be accomplished on the live partition which will be mounted via a bind mount as well.}} === 非特権ユーザーの作成 === {{Note|必ずしもグループを作成する必要はありません。{{ic|Match Group}} の代わりに {{ic|Match User}} を使うことができます。}} まず {{ic|sftponly}} [[グループ]]を作成してください: # groupadd sftponly そして[[ユーザー]]を作成 (`sftponly` をメイングループにします): # useradd -g sftponly -d ''/srv/ssh/jail'' ''username'' {{ic|account is locked}} エラーを防ぐために (複雑な) パスワードを設定: # passwd ''username'' [[シェル]]からのログインアクセスを拒否: # usermod -s /sbin/nologin ''username'' === OpenSSH の設定 === {{Note|グループを使用しない場合 {{ic|Match Group}} の代わりに {{ic|Match User}} を使ってください。}} {{hc|/etc/ssh/sshd_config|<nowiki> Match Group sftponly ChrootDirectory %h ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no PasswordAuthentication no </nowiki>}} {{ic|sshd.service}} を[[再起動]]すると変更が適用されます。 ==== authorized_keys のパスの修正 ==== {{Tip|{{ic|(pre)auth}} エラーが発生する場合、クライアントとサーバーで OpenSSH の[[SSH_鍵#トラブルシューティング|デバッグモード]]を使ってください。}} ''AuthorizedKeysFile'' のパスがデフォルトのままだと [[SSH 鍵]]の認証は失敗します。修正するには、{{ic|/etc/openssh/sshd_config}} の ''AuthorizedKeysFile'' に root が所有しているディレクトリを追加してください (例: {{ic|/etc/ssh/authorized_keys}}): {{hc|/etc/ssh/sshd_config| AuthorizedKeysFile ''/etc/ssh/authorized_keys/%u'' .ssh/authorized_keys PermitRootLogin no PasswordAuthentication no PermitEmptyPasswords no Subsystem sftp /usr/lib/ssh/sftp-server }} ''authorized_keys'' フォルダを作成し、クライアントで[[SSH_鍵#鍵の場所とパスフレーズを選択|SSH 鍵]]を生成して、鍵の中身をサーバーの {{ic|/etc/ssh/authorized_keys}} に[[SSH_鍵#伝統的な方法|コピー]]して[[SSH_鍵#トラブルシューティング|適切なパーミッションを設定]]してください: # mkdir /etc/ssh/authorized_keys # chown root:root /etc/ssh/authorized_keys # chmod 755 /etc/ssh/authorized_keys # echo 'ssh-rsa <key> <username@host>' >> ''/etc/ssh/authorized_keys/username'' # chmod 644 /etc/ssh/authorized_keys/''username'' 設定できたら {{ic|sshd.service}} を[[再起動]]してください。 ==Tips and tricks== === 書き込み権限 === chroot ユーザーのバインドパスは完全に {{ic|root}} によって所有される必要がありますが、中のファイルやディレクトリはその限りではありません。以下の例では ''backup'' ユーザーでホームディレクトリとして (''root'' によって所有される) {{ic|/root/backups}} を使用します: # mkdir /root/backups/share # chown backup:sftponly /root/backups/share # chmod 775 /root/backups/share # touch /root/backups/share/file # chmod 664 /root/backups/share/file === ログ出力 === ユーザーは {{ic|/dev/log}} にアクセスできなくなります。ユーザーで接続してファイルのダウンロードを開始してプロセスに対して {{ic|strace}} を実行することで確認できます。 ==== サブディレクトリの作成 ==== {{ic|ChrootDirectory}} に {{ic|dev}} サブディレクトリを作成してください。例: # mkdir /usr/local/chroot/user/dev # chmod 755 /usr/local/chroot/user/dev {{ic|syslog-ng}} は {{ic|/usr/local/chroot/theuser/dev/log}} デバイスを作成します。 ==== Syslog-ng の設定 ==== {{ic|/etc/syslog-ng/syslog-ng.conf}} に新しいソースを追加して設定を記述してください。例えば、以下を: {{bc|<nowiki>source src { unix-dgram("/dev/log"); internal(); file("/proc/kmsg"); };</nowiki> }} 以下のように変更: {{bc|<nowiki>source src { unix-dgram("/dev/log"); internal(); file("/proc/kmsg"); unix-dgram("/usr/local/chroot/theuser/dev/log"); };</nowiki> }} そして以下を追加: {{bc|<nowiki>#sftp configuration destination sftp { file("/var/log/sftp.log"); }; filter f_sftp { program("internal-sftp"); }; log { source(src); filter(f_sftp); destination(sftp); };</nowiki> }} SSH のメッセージも同じようにログに残したい場合 ([[syslog-ng#ログを別のファイルに移動]]を参照): {{bc|<nowiki>#sshd configuration destination ssh { file("/var/log/ssh.log"); }; filter f_ssh { program("sshd"); }; log { source(src); filter(f_ssh); destination(ssh); };</nowiki> }} ==== OpenSSH の設定 ==== {{ic|/etc/ssh/sshd_config}} を編集して {{ic|internal-sftp}} を全て {{ic|internal-sftp -f AUTH -l VERBOSE}} に置き換えてください。 ==== サービスの再起動 ==== {{ic|syslog-ng}} と {{ic|sshd}} サービスを[[再起動]]してください。 {{ic|/usr/local/chroot/theuser/dev/log}} should now exist. == 参照 == *[http://www.minstrel.org.uk/papers/sftp/ http://www.minstrel.org.uk/papers/sftp/builtin/] *[http://www.openbsd.org/cgi-bin/man.cgi?query=sshd_config http://www.openbsd.org/cgi-bin/man.cgi?query=sshd_config]
このページで使用されているテンプレート:
テンプレート:AUR
(
ソースを閲覧
)
テンプレート:Aur
(
ソースを閲覧
)
テンプレート:Bc
(
ソースを閲覧
)
テンプレート:Hc
(
ソースを閲覧
)
テンプレート:Ic
(
ソースを閲覧
)
テンプレート:META Box
(
ソースを閲覧
)
テンプレート:META Box Blue
(
ソースを閲覧
)
テンプレート:META Box Green
(
ソースを閲覧
)
テンプレート:Note
(
ソースを閲覧
)
テンプレート:Pkg
(
ソースを閲覧
)
テンプレート:Tip
(
ソースを閲覧
)
SFTP chroot
に戻る。
検索
検索
SFTP chrootのソースを表示
話題を追加