Sida 1 av 1

Skall nu starta upp en ftp server vad bör jag tänka på ?

Postat: 27 maj 2009, 22:11
av Forcevision
Tjabba !

Nu äntligen fått igång och installerat ubuntu 8.04. Men nu undrar jag lite om vad jag skall tänka på när det gäller säkerhet ?

Servern skall agera som en ftp och backup server för ett litet mindre företag. Den står bakom en router med så klart en brandvägg. Datorn kommer att ha en port öppen för att komma åt ftp servern utifrån nätet men inte på port 21. Kommer att köra kryptering ssl på ftp servern också och ssh när man fjärrstyr servern. Varje användare på servern kommer att ha en egen privat mapp i home katalogen och även ha en delad mapp som alla har till gång till att både skriva och läsa ifrån. Vad bör rättigheterna på dessa mappar vara då för mesta möjliga säkerhet ?
Sedan gärna andra tips jag bör tänka på eller ändra från grund inställningarna för ännu säkrare server.

Tacksam för svar!

/Force

Re: Skall nu starta upp en ftp server vad bör jag tänka på ?

Postat: 28 maj 2009, 14:55
av erik_persson
Varför ftp??

Ftp är ett struligt protokoll att få genom branväggar även om det går, i bland lätt.
Varför inte köra bara sftp och scp om du ändå ska ha dessa tjänster igång?
(Det går att begränsa så att användarna enbart kan köra scp eller sftp - se rssh)

/erik

Re: Skall nu starta upp en ftp server vad bör jag tänka på ?

Postat: 28 maj 2009, 14:58
av Forcevision
Vad är sftp och scp ?

Re: Skall nu starta upp en ftp server vad bör jag tänka på ?

Postat: 28 maj 2009, 18:04
av erik_persson
I den gamla osäkra världen fanns ett antal program för att kunna göra olika saker. rsh (remote shell) fanns för att ansluta sig till en annan dator, rcp (remote copy) fanns för att kopiera filer mellan datorer ungefär som man gör med vanliga cp fast man angav också vilken dator man skulle kopiera till och från, och ftp fanns för att ansluta till en annan dator, lista filerna på den, överföra filer etc.

sftp och scp är "delar" av ssh och ersätter ftp och rcp.
sftp fungerar för användaren ungefär som ftp. scp kan man använda för att kopiera filer ungefär som med vanliga cp, scp nisse@dat.or.n:/home/nisse/filen .

Problemet med sftp och scp brukar oftast vara att man inte nödvändigtvis vill att de som har tillgång till dessa båda även ska kunna logga in via "vanliga" ssh, och vanliga ssh har inte något sätt att utesluta "vanlig" ssh-förbindelse från användare som har tillgång till sftp eller scp.
Därför finns ett program, rssh, som man sätter som shell för dessa användare och sedan konfigurerar man detta så att enbart scp och sftp tillåts.
rssh kan dessutom köras chroot vilket i praktiken kan öka säkerheten.

Det kan för övrigt vara något att tänka på även om du skulle välja att köra ftp (i varje fall om du inte kör en ftp-server med virtuella användare), dvs du ska bara tillåta de som måste kunna logga in att göra så. Förmodligen innebär det att de flesta ftp-användarna inte ska kunna logga in.
Vilka som tillåts logga in via ssh kan du bestämma i sshd_config, och beroende på ftp-server så *tror* jag att du även kan sätta skalet till /bin/false för de användare som inte ska kunna logga in. (Jag har dock för mig att åminstone vissa ftp-servrar tolkar detta som att användaren inte heller ska kunna logga in via ftp).
Jag rekommenderar båda sakerna i de fall det fungerar.


Edit: Det finns flera olika sftp-klienter, även för tex windows. Filezilla är en oos-klient, som dock fungerar långsamt "out-of-the-box" med sftp och som väl finns för linux, windows mm. Sedan finns tex winscp.

/erik

Re: Skall nu starta upp en ftp server vad bör jag tänka på ?

Postat: 28 maj 2009, 21:33
av Forcevision
Okej det va avancerat låter det som ialla fall. Men en ssl krypterad inloggning till ftp servern fungerar inte det som en säker anslutning ?

Och ssh kör jag för att fjärrstyra servern via putty är detta inget bra allternativ ?

/Force

Re: Skall nu starta upp en ftp server vad bör jag tänka på ?

Postat: 29 maj 2009, 01:59
av erik_persson
Forcevision skrev:Okej det va avancerat låter det som ialla fall. Men en ssl krypterad inloggning till ftp servern fungerar inte det som en säker anslutning ?

Och ssh kör jag för att fjärrstyra servern via putty är detta inget bra allternativ ?

/Force
Jo, ftp över ssl/tls är säkert (säkerhetsmässigt så finns problemet med man in the middle-attacker (men det har du med sftp och scp också), om du inte har CA-signerade certifikat och den kostnaden misstänker jag att du inte vill ha).
Du måste dock se till att inte ftp-användarna kan logga in via ssh - du vill inte ha dem rotande i din server, och du måste också se till att inte tillåta vanlig ftp. Därtill kan, som sagt, brandväggar ställa till problem med ftp, speciellt om det finns brandväggar i båda ändar. Därtill behöver du generera certifikat - det slipper du med sftp/scp.

Uppriktigt sagt så tror jag det är enklare med sftp/scp och rssh, och då slipper du dessutom en tjänst på datorn.
Installera ssh och rssh. Läs infon om rssh - det räcker i princip med att i /etc/rssh.conf ha
allowscp
allowsftp
umask = 133

och ändra sedan skal för dem som bara ska kunna köra sftp och scp, eller sätt deras skal till /usr/bin/rssh när du skapare dem.
Ändra skal
chsh namn -s /usr/bin/rssh

Sätta skal när du skapar användaren
useradd -m -s /usr/bin/rssh nya_användaren

Sedan är det klart om du inte vill köra med chroot.

Du kan placera användarna i en chroot också, då lägger du tex till följande i /etc/rssh.conf
chrootpath = /home/chroot

Sedan måste du skapa en chroot, se tex
http://www.sdri.co.jp/rssh/CHROOT_en.html

Lite strul alltså, men det är nog inte en dum ide. Se till att inte någon av användarna har skrivrättigheter till någon av de filerna som finns i chroot (förutom sina egna filer då).
Se nedan för vilka filer som bör finns i chrooten, dvs som ligger under /home/chroot/. De kopieras dit från motsvarande vanlig plats. Det kan finnas invändningar på min lista, men de flesta av filerna måste finnas med.

Du måste då också skapa användarnas hemkataloger i chrooten, men det kan du göra när du skapar användarna, ex
useradd -m -b /home/chrooted/ -s /usr/bin/rssh nya_användaren
passwd nya_användaren

/erik

Filer i chroot:en
I ./etc/group och ./etc/passwd så finns enbart de som har sina hemkataloger under chrooten.
-----------------------
./usr/bin/scp
./usr/bin/rssh
./usr/bin/sftp
./usr/lib/libedit.so.2
./usr/lib/sftp-server
./usr/lib/openssh
./usr/lib/openssh/sftp-server
./usr/lib/libz.so.1.2.3
./usr/lib/libkrb5.so.3.2
./usr/lib/libkrb5support.so.0
./usr/lib/i686/cmov/libcrypto.so.0.9.8
./usr/lib/libgssapi_krb5.so.2.2
./usr/lib/libgssapi_krb5.so.2
./usr/lib/libz.so.1
./usr/lib/libkrb5.so.3
./usr/lib/rssh
./usr/lib/rssh/rssh_chroot_helper
./usr/lib/libk5crypto.so.3
./etc/ld.so.cache
./etc/nsswitch.conf
./etc/group
./etc/ld.so.conf.d
./etc/ld.so.conf.d/i486-linux-gnu.conf
./etc/ld.so.hwcappkgs
./etc/hosts
./etc/resolv.conf
./etc/passwd
./etc/ld.so.conf
./dev/null
./lib/ld-linux.so.2
./lib/tls/libcrypt-2.3.6.so
./lib/tls/libresolv.so.2
./lib/tls/libnsl-2.3.6.so
./lib/tls/libdl.so.2
./lib/tls/libutil-2.3.6.so
./lib/tls/libcrypt.so.1
./lib/tls/libresolv-2.3.6.so
./lib/tls/libc.so.6
./lib/tls/libutil.so.1
./lib/tls/libnsl.so.1
./lib/libnss_compat-2.3.6.so
./lib/libnss_files.so.2
./lib/libncurses.so.5
./lib/libnss_compat.so.2
./lib/libcom_err.so.2
./lib/libnss_files-2.3.6.so
--------------------------------------

Re: Skall nu starta upp en ftp server vad bör jag tänka på ?

Postat: 29 maj 2009, 09:47
av Forcevision
Hmm... okej men vad menar du med skal ?

Sedan så chroot har jag på ftp servern också ju så dom kommer aldrig ifrån sin home katalog ju.

Och det kan inte ligga massa filer bland deras kataloger som dom vill skapa för det kommer att bli tusen frågor om vad det är för filer som ligger där och varför dom ligger där och det kännas som jag inte har tid med. Sedan om man kör sftp/scp kan man komma åt sina kataloger vart ivärlden du än är i då ?

Jag har inga ca-signerade utan skapade ett i ubuntu. Jepp men vanlig ftp kan dom inte köra utan dom måste köra via ssl inloggning. men skall kolla på sftp/scp men det låter lite överkurs. Sedan skall en av användarna kunna komma åt sitt konto via nätverket på linux server med hjälp av samba på servern.

Men berätta gärna hur du menar med skal för det vet jag inte vad det är ?

Re: Skall nu starta upp en ftp server vad bör jag tänka på ?

Postat: 29 maj 2009, 14:42
av erik_persson
Forcevision skrev:Hmm... okej men vad menar du med skal ?

Sedan så chroot har jag på ftp servern också ju så dom kommer aldrig ifrån sin home katalog ju.
Jo, men du vill inte att de ska kunna logga in med ssh. Om du ska köra både en ftp-server på datorn och en ssh-server på datorn och om du inte använder virtuella användare på ftp-servern så MÅSTE du förhindra de användare som du enbart vill ska kunna köra ftp från att logga in via ssh. Det gör du bäst genom att i sshd_config ange vilka som FÅR logga in.
Vad jag förstod skulle du alltså ha BÅDE ssh och ftp igång, den ena för att kunna administrera datorn utifrån och den andra för användarna av datorn, och ssh kan ju inte automatiskt förstå vilka användare som inte ska få logga in via ssh, alltså måste du ange det!!

SEDAN måste du naturligtvis OCKSÅ se till att användarna inte kan rota omkring i datorn med ftp, och ett sätt att minska risken för att de gör detta är att köra ftp i chroot.
Forcevision skrev:Hmm... okej men vad menar du med skal ?
Och det kan inte ligga massa filer bland deras kataloger som dom vill skapa för det kommer att bli tusen frågor om vad det är för filer som ligger där och varför dom ligger där och det kännas som jag inte har tid med. Sedan om man kör sftp/scp kan man komma åt sina kataloger vart ivärlden du än är i då ?
Skalet är det program som används för att kommunicera med operativsystemet för att tex starta program. Det finns kommandobaserade skal som sh, ksh, bash, tcsh, zsh mfl och det finns grafiska som kde, gnome mfl (även om dessa både innehåller mer än bara "skalfunktionalitet"). I dagligt tal avser man dock oftast med "skal" enbart cli-baserade sådana.

När du loggar in på en dator via tex ssh eller startar ett kommandoförnster så startas det skal som är angivet som ditt standardskal i /etc/passwd. Det skalet har också betydelse för hur och om ssh tillåter inloggning och samma sak gäller ofta även ftp. Om man sätter /bin/false som skal så tillåter inte ssh inloggning och inte heller åtminstone vissa ftp-servrar, men det är upp till konstruktören av ftp-server och ssh att bestämma detta. Kutym är dock att följa det som anses vara normalt beteende i unix-världen, dvs för ssh att starta det skal som anges i /etc/passwd när användaren loggar in och, för ssh och åtminstone vissa ftp-servrar, att inte tillåta inloggning om skalet är satt till /bin/false (och rimligen om detta finns).

Det ligger inte en massa filer i deras hemkataloger!
De har en hemkatalog, tex /home/chroot/nisse, och under denna ligger deras filer.
Sedan ligger de filer som behövs för chroot under /home/chroot/etc, home/chroot/lib etc. Det skiljer inte ett dugg från att köra en ftp-server chrootat bortsett vilka filer som ligger i de andra katalogerna och möjligen var dessa ligger etc.
Syftet med chroot är att ändra den upplevda fillsystemsrooten för den person och de program som kör under chrooten. Finns inte filer tillgängliga som behövs för program som körs under chrooten när det körs chrootat, så kan helt enkelt inte programmet köras.
Det skiljer inte något mellan ftp eller sftp mer än vad gäller vilka program och bibliotek som måste vara tillgängliga.
Forcevision skrev: Jag har inga ca-signerade utan skapade ett i ubuntu. Jepp men vanlig ftp kan dom inte köra utan dom måste köra via ssl inloggning. men skall kolla på sftp/scp men det låter lite överkurs. Sedan skall en av användarna kunna komma åt sitt konto via nätverket på linux server med hjälp av samba på servern.

Men berätta gärna hur du menar med skal för det vet jag inte vad det är ?
Se ovan.
Jag kan garantera dig att ssh, sftp och scp är enklare än ftp. Dessutom slipper du en server-programvara med de risker som det kan innebära att ha en sådan.

/erik

Re: Skall nu starta upp en ftp server vad bör jag tänka på ?

Postat: 30 maj 2009, 08:47
av Forcevision
Finns det ngra guider på ssh, sftp och scp som man kan läsa för att starta upp detta och se hur det fungerar ?

Om man nu skall ta bort som man inte kan köra ssh på ftp servern skriver man så här i vsftpd.conf då : ssh_enable=NO

Re: Skall nu starta upp en ftp server vad bör jag tänka på ?

Postat: 30 maj 2009, 13:13
av erik_persson
Forcevision skrev:Finns det ngra guider på ssh, sftp och scp som man kan läsa för att starta upp detta och se hur det fungerar ?

Om man nu skall ta bort som man inte kan köra ssh på ftp servern skriver man så här i vsftpd.conf då : ssh_enable=NO
ssh, sftp och scp är igång som standard i ubuntu när du installerat ssh. Du behöver inte göra något alls för att få igång dem.

Sedan en liten förklaring.
"ftp-servern" är ett program, liksom "ssh-servern". vsftpd.conf styr inställningarna för ftp-servern vsftpd och inte för ssh-servern.
Inställningarna för ssh-servern styrs av inställningarna i filen "/etc/ssh/sshd_config"

Både ftp-servern och ssh-servern använder som standard de användare som finns på systemet som helhet. Om du har både en ssh-server och en ftp-server installerade på datorn, och det finns en användare, ex "nisse", i systemet så kan nisse köra ftp (om ftp-servern tillåter annat ej anonym ftp) och ssh.

Du kan inte göra någon som helst inställning i vsftpd.conf för att förhindra ssh för vanliga systemanvändare.

/erik

Edit: felaktig sökväg ändrad.

Re: Skall nu starta upp en ftp server vad bör jag tänka på ?

Postat: 01 jun 2009, 14:38
av Forcevision
Okej.

En annan fråga bara sådär.
Skall fjärrstyra servern nu via ssh och jag använder mig av putty i windows men när jag skrivit in ip numret så kommer det fram att jag skall godkänna certifikatet. Sedan log in as står det och då skriver jag in användarnamnet trycker enter så tar det ca 10 sek så kommer detta felmedelande fram:

Disconnected: No supported authentication methods available.

Vad är felet ?