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
ダウンロード
791
所有者
ICT Consultancy & Services – DevOps & Cloud Architects
