ProFTP

Allikas: Kuutõrvaja
Redaktsioon seisuga 16. jaanuar 2013, kell 14:38 kasutajalt Jj (arutelu | kaastöö)

Proftpd teeb mugavaks tema modulaarne ehitus mis võimaldab koostada üsna keerukaid ftp teenuseid.

ProFTPD Version: 1.3.3g (maint)
  Scoreboard Version: 01040003
  Built: Mon Jan 14 2013 16:56:07 EET

Loaded modules:
  mod_lang/0.9
  mod_ctrls/0.9.4
  mod_cap/1.0
  mod_wrap/1.2.4
  mod_tls_shmcache/0.1
  mod_tls/2.4.2
  mod_ctrls_admin/0.9.6
  mod_clamav.c
  mod_facl/0.4
  mod_auth_pam/1.1
  mod_facts/0.1
  mod_delay/0.6
  mod_site.c
  mod_log.c
  mod_ls.c
  mod_auth.c
  mod_auth_unix.c
  mod_xfer.c
  mod_core.c

Seadistus mis autentib pami abil süsteemsete kasutajate vastu oleks

ServerName          "ftp.zoo.tartu.ee"
ServerType          standalone
DefaultServer       on
RequireValidShell   off
AuthPAM             on
AuthPAMConfig       ftp
Port				21

PassivePorts 49152 65535

#punktiga failidele
ListOptions "-a"

# Umask 022 is a good standard umask to prevent new dirs and files
# from being group and world writable.
Umask				022

MaxInstances			30

# Set the user and group under which the server will run.
User				ftp
Group				ftp

DebugLevel	5
DefaultRoot	~

# Autendi esmalt systeemitabelitest
AuthOrder	mod_auth_unix.c

# Normally, we want files to be overwriteable.
<Directory />
  AllowOverwrite		on
</Directory>

Passiivsete ühenduste lubamiseks tuleb näiteks pf.conf lisada

pass in on $ext_if proto tcp from any to any port > 49151 keep state label "passive ftp"

Mysqlist autentimiseks tuleb lisada AuthOrder reale lisada mod_auth_unix.c kõrvale mod_sql.c

AuthOrder	mod_sql.c mod_auth_unix.c

Ja seadistada mysqliga suhtlemise kasutaja ning parool

# MySQL conf
SQLAuthTypes	Crypt
SQLAuthenticate	users
SQLConnectInfo	andmebaas@db.zoo.tartu.ee kasutaja parool
SQLDefaultUID	20000
SQLDefaultGID	20000
SQLMinUserUID	20000
SQLMinUserGID	20000
SQLUserInfo	users username passwd uid gid ftpdir homedir

Viimase reaga on defineeritud kasutajaid sisaldava tabeli struktuur.

TLS/SSL toe lisamiseks. ftpes:// ftp käib üle 21 pordi kasutades tlsi.

 <IfModule mod_dso.c>
   LoadModule mod_tls.c
 </IfModule>
 <IfModule mod_tls.c>
   TLSEngine on
   TLSLog /var/ftpd/tls.log
   # Support both SSLv3 and TLSv1
   TLSProtocol SSLv3 TLSv1
   # Are clients required to use FTP over TLS when talking to this server?
   TLSRequired off
   # Server's certificate
   TLSRSACertificateFile /etc/ftpd/server.cert.pem
   TLSRSACertificateKeyFile /etc/ftpd/server.key.pem
   # CA the server trusts
   TLSCACertificateFile /etc/ftpd/root.cert.pem
   # Authenticate clients that want to use FTP over TLS?
   TLSVerifyClient off
   # Allow SSL/TLS renegotiations when the client requests them, but
   # do not force the renegotations.  Some clients do not support
   # SSL/TLS renegotiations; when mod_tls forces a renegotiation, these
   # clients will close the data connection, or there will be a timeout
   # on an idle data connection.
   TLSRenegotiate none
 </IfModule>

testimine

# openssl s_client -connect 127.0.0.1:21 -starttls ftp

Proftp failide kontroll läbi ClamAv viirusetõrje.

Mõned vastikud viirused kipuvad kasutajate arvutitest ftp paroole varastama ja laevad neid kasutades veebilehtedele üles nakatunud koodijuppe. Seega oleks mõistlik suuremas veebimajutusserveris kontrollida üleslaetavaid faile enne viirutsetõrjega.

Paigalda Clamav op-süsteemi töövahenditega. Paigalda samamoodi Proftp server koos mod_clamav toega

clamd.conf tuleb teha järgnevad muudatused, ehk tuleb lahti kommenteerida rida kus öeldakse, et ta töötaks deemonina ja kuulaks 3310 porti

# TCP port address.
# Default: no
TCPSocket 3310

proftpd.conf tuleks lisada <global></blobal> markerite vahele lõpuossa järgnev blokk

<IfModule mod_clamav.c>
   ClamAV on
   ClamServer localhost
   ClamPort 3310
   ClamMaxSize 5 Mb
</IfModule>

5 Mb tähendab mis on maksimaalne failisuurus millest üle enam faile ei kontrollita.

Mõlemad teenused restartida.

Testimiseks võib üritada ühte Eicar signatuuri sisaldavat faili üles laadida http://www.eicar.org/anti_virus_test_file.htm

# ftp zoo.tartu.ee
Connected to zoo.tartu.ee.
220 ProFTPD 1.3.3c Server (zoo.tartu.ee) [::ffff:192.168.1.22]
Name (zoo.tartu.ee:ants): ants
331 Password required for ants
Password:
230 User ants logged in
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> put test
local: test remote: test
200 PORT command successful
150 Opening BINARY mode data connection for test
550 Virus Detected and Removed: Eicar-Test-Signature
71 bytes sent in 0.00 secs (745.5 kB/s)

Autentimisel passwds möödaminek

Kasutades nt http://kuutorvaja.eenet.ee/wiki/Sshd_mysql süsteemiga seotud mysqli võib tekkida olukord, et kuigi andmebaasis olevad kasutajad on seotud süsteemiga ei taha proftp kuuldagi neilt autentimisest. Aitab:

PersistentPasswd to off

Mis lubab lisaks /etc/passwd failile ka muid pami autentimise katsetusi.

AuthPAM                         On
AuthPAMConfig                   ftp
AuthPAMAuthoritative            Off
PersistentPasswd                Off