nephosolutions.sftp_server

SFTPサーバー

Ansible Role ソフトウェアライセンス ビルド状況

このAnsibleロールは、chrootされたSFTPアクセスのためにOpenSSHサーバーを設定します。このロールは、ユーザーのOpenSSHのカスタマイズを不要に変更しないように設計されています。必要な重要な部分だけを変更し、他の設定はカスタム設定ブロックの形式で追加します(OpenSSHがconf.d/サポートを持っていないため、この動作が必要です)。

要件

ansible.cfgファイルのssh_connectionセクションでscp_if_sshtrueに設定することをお勧めします。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_configUsePAM yesPermitEmptyPassword 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
プロジェクトについて

Setup chrooted SFTP service on top of OpenSSH

インストール
ansible-galaxy install nephosolutions.sftp_server
ライセンス
mit
ダウンロード
714
所有者
ICT Consultancy & Services – DevOps & Cloud Architects