ProFTP

ProFTP är en filserver som man även kan lägga grafik på genom GProFTP. Ftp-protokollet skickar "lösenord" i "klartext" så om du vill ha en säkrare överföring ska du installera Proftp med stöd för TLS (Transport Layer Security) enl. Daniel Jonssons ("logoz") artikel på http://www.slackware.se/ (Artiklar --> Program).
Bäst av allt är att du kan testa din server via $ ftp localhost, så att allt är OK innan du "aktiverar" den genom att öppna portarna i din brandvägg.


Proftp
Hemsida:       http://www.proftpd.org/
Documentation: http://www.proftpd.org/docs/
Nedladdning:   http://www.proftpd.org/ proftp-1.2.10.bz2
Slackpaket:    Finns i n-katalogen på CD 1, "current" hittar du här

GProftp
Hemsida:       http://mange.dynup.net/linux.html
Documentation: 
Nedladdning:   Hemsidan --> gproftpd-8.1.7.tar.gz Source (Magnus-swe)
Slackpaket:    Hemsidan --> gproftpd-8.1.7-i486-2.tgz Slackware (Sandman1)

Installation

Vet du att du bara ska dela med dig via "anonymous"-inloggning kan du välja "Slackpaketen", hur jag gör ser du här . Säkerhet kan vara "bra att ha nångång" så jag tar Daniels guide.

Skapar "nycklar".

Testar att jag har openssl...
root@haze:~# openssl
OpenSSL> version
OpenSSL 0.9.7e 25 Oct 2004
OpenSSL> quit

Först skapar jag katalogen /root/script
root@haze:~# mkdir /root/script

Jag använder pico som textredigerare och ställer mig i /root/script
root@haze:~# cd script/
root@haze:~/script# pico makecert.sh
..och skriver..
#!/bin/sh
echo "Skapar self-signed certificate och RSA Private Key"
echo "----------------------------------------------------------"

touch proftpd.pem
chmod 600 proftpd.pem
openssl req -new -x509 -nodes -days 365 -out proftpd.pem -keyout proftpd.pem

..gör körbar..
root@haze:~/script# chmod +x makecert.sh

..och "kör"..
root@haze:~/script# ./makecert.sh
Skapar self-signed certificate och RSA Private Key
----------------------------------------------------------
Generating a 1024 bit RSA private key
........++++++
.............++++++
writing new private key to 'proftpd.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:"."
string is too long, it needs to be less than  2 bytes long
Country Name (2 letter code) [AU]:.
State or Province Name (full name) [Some-State]:.
Locality Name (eg, city) []:.
Organization Name (eg, company) [Internet Widgits Pty Ltd]:.
Organizational Unit Name (eg, section) []:.
Common Name (eg, YOUR name) []:Hakan Nilsson
Email Address []:.
..skapar en fil "proftpd.pem", som jag flyttar till /usr/local/etc/..
root@haze:~/script# cp proftpd.pem /usr/local/etc/

Installerar

Jag packar upp i /usr/local
root@haze:~/script# cd /usr/local/
root@haze:/usr/local# tar xvfj /home/hakan/program/proftpd-1.2.10.tar.bz2

..flyttar..
root@haze:/usr/local# cd proftpd-1.2.10/

..då kör vi..
root@haze:/usr/local/proftpd-1.2.10# ./configure --with-modules=mod_tls
..bla..bla..

root@haze:/usr/local/proftpd-1.2.10# make
 
root@haze:/usr/local/proftpd-1.2.10# make install
..programmet lägger sig i /usr/local/sbin, och konfigurationsfilen i 
/usr/local/etc, skapar också katalogen /home/ftp (kontrollera det) 
som är förvalskatalog för "anonymous"-inloggning.

Konfiguration

Först av allt, ta en titt på /etc/ftpusers, den bestämmer vilka som INTE får logga in.


/usr/local/etc/proftp.conf

Det finns ett flertal exempel under /usr/local/proftpd-1.2.10/sample-configurations, den som finns som förval i /etc/local/etc/proftpd.conf är basic.conf.
Använder du den "rakt av" får "anonyma användare" ("anonymous") bara läsa inloggningskatalogen, d.v.s. /home/ftp.OBS! Jag fick lägga till under..

<Anonymous ~ftp>
"RequireValidShell off"
..för att det skulle fungera.

Dina "användare" (som du gör med #adduser) har samma rättigheter vid inloggning i sin hemkatalog som vanligt. Vill du begränsa rätigheterna till hemkatalogen så måste du avkommentera..
"DefaultRoot ~".


"Standalone" server startar du, som "root", med # proftpd och stoppar med # ftpshut titta i $ man ftpshut så ser du vilka "växlar" du kan använda.

Då provar jag från "localhost"..

hakan@haze:~$ ftp localhost
Connected to localhost.
220 ProFTPD 1.2.10 Server (ProFTPD Default Installation) [127.0.0.1]
Name (localhost:hakan): anonymous
331 Anonymous login ok, send your complete email address as your password.
Password:-->Vad som helst som ser ut som en e-post adress, ex.v. blaj@blaj.se
230 Anonymous access granted, restrictions apply.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> help   -->ger dig alla kommandon
ftp> quit   -->avslutar

Min proftpd.conf

Mina användare ska ha lösenord och sin hemkatalog i /home/ftp/"användare" samt ha "läsa/skriva"-rättigheter bara där.
Till /home/ftp bara "läsa"-rättigheter, således inga "anonymous".
Jag har utgått från "basic.conf"

Gröna värden = mina värden
# Håkan "hemmagjorda" proftpd.conf, du måste ha en user/group "nobody".
# Jag använder inetd för att starta/stoppa så jag måste avkommentera
# FTP i /etc/inetd.conf

ServerName			""
#ServerType			standalone
ServerType			inetd
DefaultServer			on

# Port 21 is the standard FTP port.
Port				21

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

# To prevent DoS attacks, set the maximum number of child processes
# to 30.  If you need to allow more than 30 concurrent connections
# at once, simply increase this value.  Note that this ONLY works
# in standalone mode, in inetd mode you should use an inetd server
# that allows you to limit maximum number of processes per service
# (such as xinetd).
MaxInstances			30

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

# To cause every FTP user to be "jailed" (chrooted) into their home
# directory, uncomment this line.
DefaultRoot /home/ftp

#Meddelande före login
DisplayConnect /usr/local/etc/forelogin.msg

#Meddelande efter godkänd login
AccessGrantMsg "Välkommen %u."

#här finns loggarna
SystemLog			/var/log/proftpd.log
TransferLog			/var/log/xferlog

# Fråga inte om godkänt "shell"
RequireValidShell		off 


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


# Bar use of SITE CHMOD by default
<Limit SITE_CHMOD>
  DenyAll
</Limit>

# Här kommer det som behövs för säkrare inloggning

TLSEngine on
TLSLog /var/log/proftpd/tls.log
TLSProtocol TLSv1

# Are clients required to use FTP over TLS when talking to this server?
TLSRequired on

# Server's certificate
TLSRSACertificateFile /usr/local/etc/proftpd.pem
TLSRSACertificateKeyFile /usr/local/etc/proftpd.pem

# Authenticate clients that want to use FTP over TLS?
TLSVerifyClient off

Nu använder jag adduser för att lägga till "christer". OBS! Hemkatalogen ska sättas till /home/ftp/christer i övrigt som vanligt.
Då provar jag..först startar jag filservern..
root@haze:/# /etc/rc.d/rc.inetd start
Starting Internet super-server daemon: /usr/sbin/inetd
..sedan..

hakan@haze:~$ ftp localhost
Connected to localhost.
220-Välkommen till Håkans filserver.
220 ProFTPD 1.2.10 Server () [127.0.0.1]
Name (localhost:hakan): christer
550 SSL/TLS required on the control channel
Login failed.
He.he..måste ha en ftp-klient som kan TSL..nu kan
jag antingen ta hem källkoden för ftp och "konfa" med
stöd för TSL enl..
"i've also verified that access works with the standard netkit ftp with the 
ssl/tls patches applied.  check and see if you have ftp-ssl, or if 
/usr/bin/ftp is linked to libssl."
..eller..
#swaret --install lftp
..som har det som "default"..
..då provar vi..
hakan@haze:~$ lftp localhost
lftp localhost:~> user christer [lösenord]
lftp christer@localhost:~> ls
drwxr-xr-x   2 christer users        4096 Jan 31 20:34 bilder
lftp christer@localhost:~> help-->ger dig alla kommandon
lftp christer@localhost:/> quit-->avslutar

Nu stänger jag servern..
root@haze:/# /etc/rc.d/rc.inetd stop

Vill du att servern ska starta automatiskt måste du se till att avsnittet om "Start the inetd server" är avkommenterat i /etc/rc.d/rc.inet2 samt "Start networking daemons" avkommenterat i /etc/rc.d/rc.M


Prova på "riktigt"
OBS!
Min internetleverantör (Chello) har tydligen "spärrat" portarna 20,21 och 80 så jag fick sätta port 8080 istället.

# Port 21 is the standard FTP port.
Port				8080

Jag måste alltså öppna porten 8080 i stället för portarna 20 och 21 i min brandvägg

Sonen Christer fick agera "testpilot" med sitt Windows XP och inget av dom FTP-program han hade klarade TSL (men tog jag bort "TSL" så fungerade det utmärkt).
Daniels förslag FlashFXP kostar en slant "US$25." men det är ju inget fel att betala för ett bra program, dessutom kan du prova det i 30-dagar innan du bestämmer dig.
Jag har inte hittat något "gratis" Windowsprogram som klarar TSL ännu (det verkar som om man vill ha den biten blir det att "slanta upp" :-)), men vet ni något så hör av er.

1/3-06: Stort tack till "Hedin" på slack-forumet! 
"Läst lite om hur du har gjort med proftpd och såg att du inte hittade någon gratis ftp client till windows,
tänkte tipsa om http://www.coreftp.com/ som jag har provat och funkar till TSL".

GProFTP

Beroenden
proftpd >= 1.2.8
gtk >= 2.0
glib >= 2.0
atk >= 1.0
pango >= 1.0
Xft2 -->hittar jag inte, men det fungerar ändå. :-)
gdk
freetype2


Installation

Packar upp i /usr/local..
root@haze:/usr/local# tar xvfz /home/hakan/program/gproftpd-8.1.7.tar.gz

..flyttar
root@haze:/usr/local# cd gproftpd-8.1.7

..och konfigurerar till /usr/local (jag har proftp där)
# ./configure --prefix=/usr/local --sysconfdir=/usr/local/etc --localstatedir=/var --sbindir=/usr/local/sbin

..bygger..
# make

..och installerar.
# make install
Programmet lägger sig i /usr/local/sbin

Om du har gjort som jag så kopiera /usr/local/etc/proftpd.conf "nånstans" för gproftpd kommer inte att acceptera den så den kommer att skrivas över.
Då provar vi #gproftpd
bild
Svara "YES" så gör den en egen..


bild
..som du kan konfigurera så det passar.

Personlig åsikt

Som ni säkert förstått vid det här laget..jag gillar grafik..men beträffande proftp tycker jag det var "mindre svårt" (För mig finns inga "lätta" program ;-) ) att lära sig "text"-versionen.

Valid XHTML 1.0!