ProFTP
Sisukord
Paigaldus
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 # kasutaja lukustamine kodukausta 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_tls.c> TLSEngine on TLSLog /var/log/tls.log TLSProtocol SSLv3 TLSv1 TLSRSACertificateFile /etc/proftpd/proftpd.cert.pem TLSRSACertificateKeyFile /etc/proftpd/proftpd.key.pem TLSVerifyClient off TLSRequired off # ilma selleta filezilla ei toimi TLSOptions NoSessionReuseRequired </IfModule>
Sertifikaatide tekitamine
# openssl req -new -x509 -days 365 -nodes -out /etc/proftpd/proftpd.cert.pem -keyout \ /etc/proftpd/proftpd.key.pem
testimine
# openssl s_client -connect 127.0.0.1:21 -starttls ftp
FTPSi tekitamiseks eraldi pordile on samuti võimalus olemas
<IfModule mod_sftp.c> SFTPEngine on Port 2222 SFTPLog /var/log/proftpd/sftp.log # Configure both the RSA and DSA host keys, using the same host key # files that OpenSSH uses. SFTPHostKey /etc/ssh/ssh_host_rsa_key SFTPHostKey /etc/ssh/ssh_host_dsa_key SFTPAuthMethods keyboard-interactive # Enable compression SFTPCompression delayed </IfModule>
Ühendudes nüüd winscp'ga 2222 pordile peaks saama logida
https://www.digitalocean.com/community/tutorials/how-to-configure-proftpd-to-use-sftp-instead-of-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>
5Mb on maksimaalne failisuurus millest suuremaid 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 off
Mis lubab lisaks /etc/passwd failile ka muid pami autentimise katsetusi.
AuthPAM On AuthPAMConfig ftp AuthPAMAuthoritative Off PersistentPasswd Off
Failioperatsioonide logimine syslogi
Tavaliseks logimiseks piisab
TransferLog /var/log/proftpd/xferlog SystemLog /var/log/proftpd/proftpd.log
Soovides saata logi logiserverisse tuleb
LogFormat xfer "%h - %u %t\"%r\" %s %b" ExtendedLog syslog:notice ALL xfer TransferLog none
ja syslog-ng konfis hiljem
filter f_ftp { program("proftpd"); };
Rohkem juttu logimisest leiab tekstist Logi
Logi roteerimisel saab syslog-ng puhul anda deemonile nt järgmise signaali:
# /bin/kill -HUP `cat /var/run/proftpd/proftpd.pid
FTP virtuaalsed kasutajad
Kõige lihtsam lahendus on tekitada süsteemi kasutaja, kelle shelliks oleks seadistatud nologin ja proftpd.confi tuleks seadistada
RequireValidShell off
Näiteks FreeBSDs võiks kasutaja olla shelliga /usr/sbin/nologin ja seda kasutajat defineeriv rida master.passwd failis võiks välja näha järgmine
ove:$1$/G3e4x6$sdfYEaaYwmaasKtu2jJkV0:1015:45::0:0:jagamiseks:/home/ove:/usr/sbin/nologin