10.3. Kryptering med SafeTP

SafeTP findes desværre ikke som RPM til Linux, så vi må igang på den hårde måde. Hvis du vil vide mere om SafeTP, så kig på deres hjemmeside http://safetp.cs.berkeley.edu/.

Før vi begynder at installere, skal du have hentet kildekoden. Udfyld den formular, du finder her. Husk at ændre NO nederst på siden til YES. Når du har sendt formularen får du en e-mail med en URL, hvor du kan hente din kopi af kildekoden. Hent den og læg den i /root/.

Pak den ud med:

[root@gnuskole /root]# tar --use-compress-program=gunzip -xvf /root/sftpd.tar.gz -C /root

Hvis det lykkedes, skulle der gerne være oprettet et katalog ved navn /root/sftpd-1.46/, der indeholder kildekoden. Så langt så godt.

For at kompilere SafeTP, skal du udover kildekoden bruge GNUs matematiske bibliotek gmp. Det findes heldigvis som RPM. Det findes fx på RedHat 6.2 cdrommen. Du kan også hente det på Sunsite. Stil dig i det katalog, hvor pakken ligger og kør:

[root@gnuskole /root]# rpm -Uvh gmp-2.0.2-13.i386.rpm

Du skal også lige lave et symbolsk link, så SafeTP kan finde gmp:

[root@gnuskole /root]# ln -s /usr/local/lib/libgmp.a  /root/sftpd-1.46

Den gmp-pakke der følger med RedHat 7.0 virker af en eller anden grund ikke. Derfor må vi lave dette bibliotek selv. Hent kildekoden på http://www.swox.com/gmp/. Pak den ud med:

[root@gnuskole /root]# tar --use-compress-program=gunzip -xvf /root/gmp-3.1.1.tar.gz -C /root
[root@gnuskole /root]# cd /root/gmp-3.1.1/

og kør:

[root@gnuskole gmp-3.1.1]# ./configure; make 

Det var det.

Så skal du have oprettet en bruger, som SafeTP skal køre som. Denne bruger skal have et hjemmekatalog, men bør ikke kunne logge ind. Kør:

[root@gnuskole /root]# useradd -s /bin/false safetp

Nu er det lige før det går løs! Vi skal lige have indstillet nogle miljøvariabler og fyret en del kommandoer af - Do as you are told!

[root@gnuskole /root]#  cd /root/sftpd-1.46 
[root@gnuskole sftpd-1.46]# export PLATFORM=linux
[root@gnuskole sftpd-1.46]#  PATH=$PATH:.
[root@gnuskole sftpd-1.46]#  export PATH 
[root@gnuskole sftpd-1.46]#  configure
[root@gnuskole sftpd-1.46]#  make

Nu bliver programmerne lavet.

[root@gnuskole sftpd-1.46]#  make check

Så kører der en masse tekst over skærmen, og du skal komme med noget input.

Type some characters; you should see each character echoed once as you type it (q to stop):

Bare tæsk en masse bogstaver og tal ind. Jo mere du taster, jo sikrere bliver din server. Slut med at skrive q.

Type something and press Enter; it won't be echoed (yet):

Så skal du til tasterne igen - tryk enter, når du ikke gider mere. Så logger du ind første gang, for at se om det virker.

User name (Enter = root)? Skriv dit normale brugernavn
331 Password required for Nørd.
Password:
sftpc>
sftpc> exit
sc/basictests succeeded!
SafeTP appears to be built correctly!

Det var jo dejligt!Nu er programmet bygget, og du har afprøvet, at det virker. Så skal det installeres. Selve installationen styres af en fil, der hedder: /root/sftpd-1.46/sc/install.pl. Du kan kigge den igennem før du installerer, men hvis du har fulgt mine anvisninger skulle der ikke være noget du behøver at ændre. Du installerer SafeTP med disse kommandoer:

[root@gnuskole sftpd-1.46]# cd /root/sftpd-1.46/sc/
[root@gnuskole sc]# ./install.pl
--------------------------------------------------
-- The SafeTP install has finished!  Excellent! --
--------------------------------------------------
(If you need to re-run this install script, remove the file /root/sftpd-1.46/sc/safetp_install_state.)
Executing './install.pl -u', in conjunction with 'uninstall.cmds'
(the latter was created just now), will un-install SafeTP.

OBS. Installationsscriptet til SafeTP virker ikke korrekt med Xinetd, kun inetd. Det virker altså ikke umiddelbart med RedHat 7.0. Der er dog en beskrivelse af hvad der skal gøres på: http://safetp.cs.berkeley.edu/patches/redhat7.txt Ifølge det skal du åbne /etc/services og kontrollere, at disse 2 linier findes (uden noget bagefter):

ftp             21/tcp
raw-ftp        351/tcp

Oprette en fil /etc/xinetd.d/safetp med følgende indhold:

service ftp
{
socket_type             = stream
protocol                = tcp
wait                    = no
user                    = safetp
server                  = /home/safetp/sftpd
server_args             = -f351 -s -y/home/safetp
only_from               = 0.0.0.0
disable                 = no
}

Du skal ændre i /etc/xinetd.d/proftpd, så der står:

service raw-ftp

Når alt dette er gjort starter du din krypterede FTP-service ved at køre:

[root@gnuskole /root]# /etc/rc.d/init.d/inet restart