johanmeiring.sftp-server
SFTPサーバー
このAnsibleロールは、chrootされたSFTPアクセスのためにOpenSSHサーバーを設定します。このロールは、ユーザーのOpenSSHのカスタマイズを不要に変更しないように設計されています。必要な重要な部分だけを変更し、残りの設定はカスタム設定ブロックとして追加します(OpenSSHがconf.d/サポートを持たないため、この動作が必要です)。
必要条件
ansible.cfg
ファイルのssh_connection
セクションでscp_if_ssh
をtrue
に設定することをお勧めします。Ansibleはデフォルトでファイル転送にSFTPを使用するため、このロールを使用するとサーバーのSFTPからロックアウトされる可能性があります。SCPのフォールバックは引き続き機能します。設定例:
; ansible.cfg
...
[ssh_connection]
scp_if_ssh=True
それ以外は、Ansible自体のみが必要です。Ansible 2.0.2.0、2.2.2.0、および2.3.0.0でテストされています。Ubuntu 14.04および16.04で動作します。他のバージョンでは未テストです。RHELのサポートに関してはいくつかの作業が行われていますが、これは現在のところ元の作者によって公式にサポートされていません(さらなる貢献は歓迎されます)。
ロール変数
以下のロール変数が関連しています:
sftp_home_partition
: SFTPユーザーのホームディレクトリがあるパーティション。デフォルトは"/home"。sftp_group_name
: すべてのSFTPユーザーが属するUnixグループの名前。デフォルトは"sftpusers"。sftp_directories
: すべてのSFTPユーザーに自動的に作成される必要があるディレクトリのリスト。デフォルトは空のリスト(つまり"[]")。- 値は単純な文字列、または
name
と(オプションで)mode
のキー/値ペアを含む辞書であることができます。
- 値は単純な文字列、または
sftp_start_directory
:sftp_directories
の値の一部で、新しいSFTP接続の開始ディレクトリである必要があります。デフォルトは空の文字列。sftp_allow_passwords
: SFTPのパスワード認証を許可するかどうか。デフォルトはFalse。sftp_enable_selinux_support
: SELinuxサポートを明示的に有効にするかどうか。デフォルトはFalse。sftp_enable_logging
: ロギングを有効にする。認証ログは/var/log/sftp/auth.log
に書き込まれ、SFTPアクティビティログは/var/log/sftp/verbose.log
に書き込まれます。デフォルトはFalse。sftp_users
: 次の要素を含むマップ形式のユーザーリスト:name
: SFTPアクセスが必要なユーザーのUnix名。group
: オプションのユーザーのプライマリグループ。設定されている場合、それがユーザーのホーム権限に使用されます。そうでない場合、sftp_group_name
が使用されます。password
: ユーザーがログインするためのパスワードハッシュ - 例:openssl passwd -1 -salt salty passpass
。空のパスワードはpassword: ""
で設定できます。注意:空のパスワードが正常に機能するためには、sshd_config
でUsePAM yes
およびPermitEmptyPassword yes
を設定する必要があるようです。これらの変更は、このロールの範囲外で行う必要があります。shell
: ユーザーがシェルアクセスを持つべきかどうかを示すブール値(デフォルトはTrue
)。authorized
: SFTPユーザー用の有効な公開鍵を含むfiles/
内のファイルのオプションリスト。sftp_directories
: SFTPユーザーごとに個別に作成する必要があるディレクトリのリスト。デフォルトは空のリスト(つまり"[]")。append
: ユーザーグループ(もしあれば)にsftp_group_name
を追加するか、設定するかのブール値(デフォルトはFalse
)。mode
: ユーザーのホームディレクトリのモード(デフォルトは0750
)。skeleton
: オプションのホームスケルトンダイレクトリ(例:/dev/null)。デフォルトはシステムのデフォルト。home
: オプションのホームディレクトリ(例:/home/bob)。デフォルトはsftp_home_partition/name
。
sftp_nologin_shell
: "nologin"ユーザーシェル。(デフォルトは/sbin/nologin。)
注意:
sftp_nologin_shell
設定は、sftpユーザーのシェルがFalseに設定されている場合に、sftp_usersに割り当てられるシェルを定義します。(nologinシェルにより、ユーザーはSFTPのみを使用でき、他のログイン権限を持ちません。)この値はオペレーティングシステムのバージョンによって異なる場合があります。
例プレイブック
---
- name: test-playbook | sftp-serverロールのテスト
hosts: all
become: yes
become_user: root
vars:
- sftp_users:
- name: peter
password: "$1$salty$li5TXAa2G6oxHTDkqx3Dz/" # passpass
shell: False
sftp_directories:
- directory_only_for_peter1
- directory_only_for_peter2
- name: sally
password: ""
authorized: [sally.pub]
home: /var/tmp/sally
append: True
- sftp_directories:
- imports
- exports
- { name: public, mode: 755 }
- other
roles:
- sftp-server
ライセンス
このAnsibleロールはMITライセンスの下で配布されています。詳細についてはLICENSEファイルを参照してください。
寄付
寄付は大変歓迎されており、以下のアドレスに行うことができます:
- BTC: 1AWHJcUBha35FnuuWat9urRW2FNc4ftztv
- ETH: 0xAF1Aac4c40446F4C46e55614F14d9b32d712ECBc
インストール
ansible-galaxy install johanmeiring.sftp-server
ライセンス
mit
ダウンロード
120.6k
所有者