nephosolutions.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: テストプレイブック | 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 nephosolutions.sftp_server
ライセンス
mit
ダウンロード
714
所有者
ICT Consultancy & Services – DevOps & Cloud Architects