apham0001.pure_ftpd

Pure-FTPd

Rola Ansible, która instaluje Pure-FTPd na systemach Debian/Ubuntu.

Wymagania

Ta rola ma wymagania tylko wtedy, gdy włączona zostanie obsługa TLS i musisz wygenerować certyfikat.

  • Jeśli wartość pureftpd_tls_certificate_method to generate, openssl musi być zainstalowany na serwerze.
  • Jeśli wartość pureftpd_tls_certificate_method to certbot, certbot powinien być dostępny na zdalnym serwerze. Możesz użyć geerlingguy.certbot, aby go zainstalować.

Zmienne roli

Dostępne zmienne są wymienione poniżej, wraz z wartościami domyślnymi (zobacz defaults/main.yml):

  • pureftpd_packages:
    • pure-ftpd-common
    • pure-ftpd

Lista pakietów do zainstalowania za pomocą APT.

  • pureftpd_global_config_mode: standalone
  • pureftpd_global_config_virtualchroot: 'true'
  • pureftpd_global_config_uploadscript: ''
  • pureftpd_global_config_uploaduid: ''
  • pureftpd_global_config_uploadgid: ''

Właściwości do globalnej konfiguracji Pure-FTPd. Służą do generowania /etc/default/pure-ftpd-common. Możesz przeczytać więcej o tych opcjach w templates/pure-ftpd-common.j2.

  • pureftpd_fortune: ''

Wiadomość wyświetlana po zalogowaniu użytkownika.

  • pureftpd_mysql:
    • server: localhost
    • port: 3306
    • socket: /var/run/mysqld/mysqld.sock
    • username: dbuser
    • password: dbpass
    • database: dbname
    • crypt: crypt
    • query_get_pw: SELECT Password FROM users WHERE User="\L"
    • query_get_dir: SELECT Dir FROM users WHERE User="\L"
    • query_get_uid: SELECT Uid FROM users WHERE User="\L"
    • default_uid: 1000
    • query_get_gid: SELECT Gid FROM users WHERE User="\L"
    • default_gid: 1000
    • query_get_qta_fs: SELECT QuotaFiles FROM users WHERE User="\L"
    • query_get_qta_sz: SELECT QuotaSize FROM users WHERE User="\L"
    • query_get_ratio_ul: SELECT ULRatio FROM users WHERE User="\L"
    • query_get_ratio_dl: SELECT DLRatio FROM users WHERE User="\L"
    • query_get_bandwidth_ul: SELECT ULBandwidth FROM users WHERE User="\L"
    • query_get_bandwidth_dl: SELECT DLBandwidth FROM users WHERE User="\L"
    • force_tilde_expansion: true
    • transactions: true

Ta właściwość ustawia konfigurację potrzebną do przechowywania wirtualnych użytkowników na serwerze MySQL. Więcej informacji na temat tych konfiguracji można znaleźć w dokumentacji Pure-FTPd.

  • pureftpd_postgresql:
    • server: localhost
    • port: 5432
    • username: dbuser
    • password: dbpass
    • database: dbname
    • crypt: crypt
    • query_get_pw: SELECT "Password" FROM "users" WHERE "User"='\L'
    • query_get_dir: SELECT "Dir" FROM "users" WHERE "User"='\L'
    • query_get_uid: SELECT "Uid" FROM "users" WHERE "User"='\L'
    • default_uid: 1000
    • query_get_gid: SELECT "Gid" FROM "users" WHERE "User"='\L'
    • default_gid: 1000
    • query_get_qta_fs: SELECT "QuotaFiles" FROM "users" WHERE "User"='\L'
    • query_get_qta_sz: SELECT "QuotaSize" FROM "users" WHERE "User"='\L'
    • query_get_ratio_ul: SELECT "ULRatio" FROM "users" WHERE "User"='\L'
    • query_get_ratio_dl: SELECT "DLRatio" FROM "users" WHERE "User"='\L'
    • query_get_bandwidth_ul: SELECT "ULBandwidth" FROM "users" WHERE "User"='\L'
    • query_get_bandwidth_dl: SELECT "DLBandwidth" FROM "users" WHERE "User"='\L'

Ta właściwość ustawia konfigurację potrzebną do przechowywania wirtualnych użytkowników na serwerze PostgreSQL. Więcej informacji na temat tych konfiguracji można znaleźć w dokumentacji Pure-FTPd.

  • pureftpd_ldap:
    • ldaps: True
    • tls: True
    • server: ldap.example.com
    • port: 389
    • bind_dn: cn=Manager,dc=example,dc=com
    • version: 3
    • bind_password: bindpass
    • base_dn: cn=Users,dc=example,dc=com
    • filter: '&(objectClass=posixAccount)(uid=\L)'
    • home_dir: homeDirectory
    • default_uid: 1000
    • force_default_uid: True
    • default_gid: 1000
    • force_default_gid: True

Ta właściwość ustawia konfigurację potrzebną do przechowywania wirtualnych użytkowników na serwerze LDAP. Więcej informacji na temat tych konfiguracji można znaleźć w dokumentacji Pure-FTPd.

  • pureftpd_config:
    • AllowAnonymousFXP: 'no'
    • AllowUserFXP: 'no'
    • AltLog: 'clf:/var/log/pure-ftpd/transfer.log'
    • AnonymousBandwidth: '8'
    • AnonymousCanCreateDirs: 'no'
    • AnonymousCantUpload: 'yes'
    • AnonymousOnly: 'no'
    • AnonymousRatio: '1 10'
    • AntiWarez: 'yes'
    • AutoRename: 'no'
    • Bind: '127.0.0.1,21'
    • BrokenClientsCompatibility: 'no'
    • CallUploadScript: 'yes'
    • ChrootEveryone: 'yes'
    • ClientCharset: 'UTF-8'
    • CreateHomeDir: 'yes'
    • CustomerProof: 'yes'
    • Daemonize: 'yes'
    • DisplayDotFiles: 'yes'
    • DontResolve: 'yes'
    • ExtAuth: /var/run/ftpd.sock
    • ForcePassiveIP: '192.168.0.1'
    • FortunesFile: '/etc/pure-ftpd/cookie'
    • FSCharset: 'utf8'
    • IPV4Only: 'yes'
    • IPV6Only: 'yes'
    • KeepAllFiles: 'yes'
    • LDAPConfigFile: /etc/pureftpd-ldap.conf
    • LimitRecursion: '10000 8'
    • LogPID: 'yes'
    • MaxClientsNumber: '10'
    • MaxClientsPerIP: "{{ ansible_processor_cores }}"
    • MaxDiskUsage: '80'
    • MaxIdleTime: '15'
    • MaxLoad: '4'
    • MinUID: '1000'
    • MySQLConfigFile: /etc/pure-ftpd/mysql.conf
    • NoAnonymous: 'yes'
    • NoChmod: 'yes'
    • NoRename: 'yes'
    • NoTruncate: 'yes'
    • PAMAuthentication: 'no'
    • PassivePortRange: '30000 50000'
    • PerUserLimits: '3 20'
    • PGSQLConfigFile: /etc/pureftpd-pgsql.conf
    • PIDFile: '/var/run/pure-ftpd.pid'
    • ProhibitDotFilesRead: 'yes'
    • ProhibitDotFilesWrite: 'yes'
    • PureDB: /etc/pure-ftpd/pureftpd.pdb
    • Quota: '1000 10'
    • SyslogFacility: 'ftp'
    • TLS: '0'
    • TLSCipherSuite: 'ALL:!aNULL:!SSLv3'
    • TrustedIP: '10.1.1.1'
    • Umask: '113 002'
    • UnixAuthentication: 'no'
    • UserBandwidth: '8'
    • UserRatio: '1 10'
    • VerboseLog: 'no'

Lista opcji konfiguracyjnych dla Pure-FTPd. Więcej informacji na temat tych konfiguracji można znaleźć w dokumentacji Pure-FTPd.

Opcja TLS ma cztery możliwe wartości (od 0 do 3), które oznaczają:

  • 0: wsparcie dla SSL/TLS jest wyłączone.
  • 1: klienci mogą łączyć się tradycyjnie lub przez warstwę SSL/TLS.
  • 2: sesje wprost są odrzucane, akceptowane są tylko klienci zgodni z SSL/TLS.
  • 3: sesje wprost są odrzucane, akceptowane są tylko klienci zgodni z SSL/TLS. Sesje z danymi wprost są również odrzucane, więc wymusza się prywatne połączenia danych.

Więcej informacji można znaleźć w dokumentacji Pure-FTPd.

  • pureftpd_auth_puredb: 10
  • pureftpd_auth_mysql: 0
  • pureftpd_auth_postgresql: 0
  • pureftpd_auth_ldap: 0
  • pureftpd_auth_pam: 80
  • pureftpd_auth_unix: 90

Te właściwości ustalają priorytet różnych metod uwierzytelniania. Tylko te z wartością większą niż 0 będą włączone.

  • pureftpd_system_users:
    • name: user1 password: <szyfrowane hasło> homedir: /var/ftp/user1

Lista użytkowników, którzy powinni być obecni w systemie. Hasło użytkownika systemowego powinno być zaszyfrowane. Zobacz dokumentację Ansible o tym, jak generować szyfrowane hasła.

  • pureftpd_system_deleted_users:
    • name: user2

Lista użytkowników, którzy nie powinni być obecni w systemie. To jest przydatne do usuwania starych kont FTP z systemu.

  • pureftpd_virtual_users_user: ftp
  • pureftpd_virtual_users_group: ftp

Jeśli serwer Pure-FTPd będzie korzystał z użytkowników wirtualnych, potrzebny jest co najmniej jeden użytkownik systemowy oraz odpowiadająca mu grupa.

  • pureftpd_virtual_users_gid: ''
  • pureftpd_virtual_users_uid: ''

Te właściwości wymuszają UID i GID dla nich. Nie są domyślnie zdefiniowane.

  • pureftpd_virtual_users:
    • name: vuser1 password: p4ssW0rd homedir: /var/ftp/vuser1 uid: 2000 gid: 2000 quota_files: 2000 quota_size: 500 bandwidth_ul: 5 bandwidth_dl: 5 ratio_ul: 10 ratio_dl: 1

Lista użytkowników wirtualnych, którzy mają być utworzeni przy użyciu PureDB jako metoda przechowywania. name, password i homedir są obowiązkowe.

  • pureftpd_virtual_deleted_users:
    • name: vuser2

Lista użytkowników, którzy nie powinni być obecni w bazie danych PureDB. To jest przydatne do usuwania starych kont FTP.

  • pureftpd_virtual_users_import: false

Przy włączonej tej właściwości, rola zaimportuje użytkowników systemowych jako użytkowników wirtualnych.

Należy zauważyć, że tylko konta, które mają dostęp do powłoki, będą importowane. Konta z ustawioną powłoką na nologin muszą być dodane ręcznie.

  • pureftpd_tls_certificate_method: ''

Ta właściwość ma trzy ważne wartości:

  • certbot: Ta opcja użyje certbot do żądania certyfikatu Let's Encrypt.

  • generate: Ta opcja użyje openssl do stworzenia certyfikatu selfsigned.

  • upload: Ta opcja załaduje istniejący certyfikat.

  • pureftpd_tls_certificate_certbot:

Podczas korzystania z certbot, ten słownik ustawia ścieżkę dla komendy certbot oraz kilka opcji potrzebnych do żądania certyfikatu. Należy ustawić FQDN dla certyfikatu oraz email dla konta Let's Encrypt. Możesz zmienić rozmiar klucza certyfikatu oraz port, na którym certbot będzie czekać na wyzwanie Let's Encrypt.

  • pureftpd_tls_certificate_openssl:
    • size: 4096
    • days: 365
    • fqdn: ftp.example.com
    • country: ''
    • state: ''
    • locality: ''
    • organization: ''
    • unit: ''

Podczas korzystania z generate, ten słownik ustawia opcje dla komendy openssl.

  • pureftpd_tls_certificate_file: ''
  • pureftpd_tls_certificate_content: ''

Podczas korzystania z upload, te opcje ustalają plik do załadowania lub zawartość pliku certyfikatu, który ma być utworzony na serwerze.

Zależności

Brak.

Przykład playbooka

- hosts: webservers
  roles:
     - apham0001.pure-ftpd

Licencja

GPLv2

Informacje o autorze

Ta rola została stworzona w 2017 roku przez gcoop Cooperativa de Software Libre.

Zainstaluj
ansible-galaxy install apham0001.pure_ftpd
Licencja
gpl-2.0
Pobrania
1.2k
Właściciel