Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revize Předchozí verze
Následující verze
Předchozí verze
it:linux:proftpd [2016/02/07 19:09]
kourim
it:linux:proftpd [2016/02/08 22:49] (aktuální)
kourim [Přidání uživatele]
Řádek 1: Řádek 1:
 ===== FTP Server ===== ===== FTP Server =====
-Jak nainstalovat a nakonfigurovat ftp server, vybral jsem si ProFTPD.+Jak nainstalovat a nakonfigurovat ftp server ​s databází a hlídáním využívaného místa, vybral jsem si ProFTPD ​jako ftp server a postgresql jako databázi.
  
 ==== Instalace ==== ==== Instalace ====
Řádek 56: Řádek 56:
   PRIMARY KEY (id),   PRIMARY KEY (id),
   UNIQUE (userid)   UNIQUE (userid)
-);</​sxh>​nainstalujeme si ProFTPD<​sxh bash>​apt-get install proftpd-mod-pgsql</​sxh>​vytvoříme si uživatele a skupinu pro fungování ftp<sxh bash>​groupadd -g 2001 ftpgroup +);</​sxh>​nainstalujeme si ProFTPD ​jako standalone aplikaci<sxh bash>​apt-get install proftpd-mod-pgsql</​sxh>​vytvoříme si uživatele a skupinu pro fungování ftp<sxh bash>​groupadd -g 2001 ftpgroup 
-useradd -u 2001 -s /bin/false -d /bin/null -c "​proftpd user" -g ftpgroup ftpuser</​sxh>​nakonfigurejeme si ftp server, začneme souborem /​etc/​proftpd/​modules.conf,​ povolíme/​zakážeme následující moduly<​sxh></​sxh>​+useradd -u 2001 -s /bin/false -d /bin/null -c "​proftpd user" -g ftpgroup ftpuser</​sxh>​nakonfigurejeme si ftp server, začneme souborem /​etc/​proftpd/​modules.conf,​ povolíme/​zakážeme následující moduly<​sxh>​ 
 +LoadModule mod_sql.c 
 +LoadModule mod_sql_mysql.c 
 +LoadModule mod_quotatab_sql.c 
 +#LoadModule mod_tls_memcache.c</​sxh>​dále upravím /​etc/​proftpd/​proftpd.conf,​ kde zakomentujeme quoty a odkometujeme to, aby se nám proftpd připojovalo na databázi<​sxh>#<​IfModule mod_quotatab.c>​ 
 +#​QuotaEngine off 
 +#</​IfModule>​ 
 + 
 +
 +# Alternative authentication frameworks 
 +
 +#Include /​etc/​proftpd/​ldap.conf 
 +Include /​etc/​proftpd/​sql.conf</​sxh>​dále si v souboru /​etc/​proftpd/​sql.conf nastavíme připojení na databázi, soubor by měl obsahovat tyto informace<​sxh>​SQLBackend ​             pgsql 
 +SQLAuthTypes ​           Plaintext 
 +SQLAuthenticate ​        users groups 
 + 
 +SQLConnectInfo ​         ftpserver@localhost ftpuser heslo 
 +SQLUserInfo ​            ​ftpuser userid passwd uid gid homedir shell 
 +SQLGroupInfo ​           ftpgroup groupname gid members 
 + 
 +#​SQLLogFile ​            /​var/​log/​proftpd/​sql.log 
 +SQLMinId ​               99 
 +CreateHome ​             on 
 + 
 +# Update count every time user logs in 
 +SQLLog PASS updatecount 
 +SQLNamedQuery updatecount UPDATE "​count=count+1,​ accessed=now() WHERE userid='​%u'"​ ftpuser 
 + 
 +# Update modified everytime user uploads or deletes a file 
 +SQLLog ​ STOR,DELE modified 
 +SQLNamedQuery modified UPDATE "​modified=now() WHERE userid='​%u'"​ ftpuser 
 + 
 +# User quotas 
 +QuotaEngine on 
 +QuotaDirectoryTally on 
 +QuotaDisplayUnits Mb 
 +QuotaShowQuotas on 
 + 
 +SQLNamedQuery get-quota-limit SELECT "name, quota_type, per_session,​ limit_type, bytes_in_avail,​ bytes_out_avail,​ bytes_xfer_avail,​ files_in_avail,​ files_out_avail,​ files_xfer_avail FROM ftpquotalimits WHERE name = '​%{0}'​ AND quota_type = '​%{1}'"​ 
 + 
 +SQLNamedQuery get-quota-tally SELECT "name, quota_type, bytes_in_used,​ bytes_out_used,​ bytes_xfer_used,​ files_in_used,​ files_out_used,​ files_xfer_used FROM ftpquotatallies WHERE name = '​%{0}'​ AND quota_type = '​%{1}'"​ 
 + 
 +SQLNamedQuery update-quota-tally UPDATE "​bytes_in_used = bytes_in_used + %{0}, bytes_out_used = bytes_out_used + %{1}, bytes_xfer_used = bytes_xfer_used + %{2}, files_in_used = files_in_used + %{3}, files_out_used = files_out_used + %{4}, files_xfer_used = files_xfer_used + %{5} WHERE name = '​%{6}'​ AND quota_type = '​%{7}'"​ ftpquotatallies 
 + 
 +SQLNamedQuery insert-quota-tally INSERT "%{0}, %{1}, %{2}, %{3}, %{4}, %{5}, %{6}, %{7}" ftpquotatallies 
 + 
 +QuotaLimitTable sql:/​get-quota-limit 
 +QuotaTallyTable sql:/​get-quota-tally/​update-quota-tally/​insert-quota-tally 
 + 
 +RootLogin off 
 +RequireValidShell off</​sxh>​dále donutíme uživatele přihlašovat se pouze přes TLS, v configu /​etc/​proftpd/​tls.conf upravíme následující vlastnosti<​sxh>​TLSEngine ​                              on 
 +TLSLog ​                                 /​var/​log/​proftpd/​tls.log 
 +TLSProtocol ​                            ​SSLv23 
 + 
 +TLSRSACertificateFile ​                  /​etc/​dovecot/​dovecot.pem 
 +TLSRSACertificateKeyFile ​               /​etc/​dovecot/​private/​dovecot.pem 
 + 
 +TLSVerifyClient ​                        off 
 +TLSRequired ​                            on 
 +</​sxh>​ještě si vytvoříme adresářovou strukturu, kde budem mít všechny ftp účty <sxh bash>​mkdir /​home/​ftpuser 
 +chown ftpuser:​ftpgroup /​home/​ftpuser</​sxh>​a pak už jen restartujeme proftpd<​sxh bash>/​etc/​init.d/​proftpd restart</​sxh>​ 
 + 
 +==== Přidání uživatele ==== 
 +Přidání uživatele se sestává z vytvoření adresáře a pak následně z přidání záznamu do databáze. Začneme tedy adresářem<​sxh bash>​mkdir /​home/​ftpuser/​uzivatel 
 +chown ftpuser:​ftpgroup /​home/​ftpuser/​uzivatel</​sxh>​Poté přidáme uživatele do databáze<​sxh sql>​INSERT INTO ftpuser (userid, passwd, homedir) VALUES ('​uzivatel','​heslo','/​home/​ftpuser/​uzivatel'​);</​sxh>​pokud uživateli chceme ještě přidat quotu<​sxh sql>​INSERT INTO ftpquotalimits (name,​quota_type,​per_session,​limit_type,​bytes_in_avail,​bytes_out_avail,​bytes_xfer_avail,​files_in_avail,​files_out_avail,​files_xfer_avail) VALUES ('​uzivatel','​user','​false','​hard',​524288000,​0,​0,​0,​0,​0);</​sxh>​ 
 + 
  • it/linux/proftpd.1454868557.txt.gz
  • Poslední úprava: 2016/02/07 19:09
  • autor: kourim