Rozdíly
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
| 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> | ||
| + | |||