Installera och konfigurera en FTP-server på Linux. Konfigurera och använda en FTP-server på Ubuntu Linux Installera vsftpd

Original: Hur man ställer in och använder FTP-server i Ubuntu Linux
Författare: Lubos Rendek
Publiceringsdatum: 28 januari 2013
Översättning: A. Krivoshey
Översättningsdatum: november 2013

1. Introduktion

Nästan varje användare som åtminstone ibland arbetar på Internet har stött på FTP. Den här guiden beskriver i detalj och steg för steg hur man installerar en FTP-server i Ubuntu Linux. Vi visar dig hur du installerar det i normalt och offlineläge, och hur du håller det säkert. Vi kommer att använda en lätt och effektiv FTP-server vsFTPd, designad för att fungera på högt belastade servrar.

2. Avtal

3. Vad är FTP

För dem som inte är bekanta med FTP, nedan är en kort beskrivning av dess funktioner. FTP står för File Transfer Protocol. Namnet antyder att detta protokoll används för att överföra filer eller kataloger från en värd till en annan över ett nätverk - antingen lokalt eller över Internet.
De viktigaste funktionerna i vsFTPd: inställningar för virtuella IP-adresser, virtuella användare, nätverks- eller offlineoperationer, ett brett utbud av användarinställningar, reglering av kanalbandbredd, inställning av IP-gränser, stöd för IPv6 och kryptering (med SSL).

4. Installera en FTP-server i Ubuntu

Som alltid med Ubuntu och system baserade på den, installeras en FTP-server med ett kommando. Öppna en terminal och ange:

$ sudo apt-get install vsftpd

Efter att ha utfört detta kommando kommer servern att installeras och köras.

Konfigurera vsftpd (2.3.5-1ubuntu2) ... vsftpd start/kör, process 1891

5. Normala och offline FTP-driftlägen

5.1. Offlineläge

Som standard körs vsftpd i fristående läge, där tjänsten som körs på servern använder sitt eget startskript, kallat en demon. I fallet med vsftpd är detta /etc/init.d/vsftpd. Denna autonoma demon tar kontroll över den när FTP-tjänsten startar. vsftpd-demonen ger administratören flera kommandon för att hantera vsftpd FTP-servern:

Start eller sluta- används för att starta eller stoppa ftp-servern.
status- displayer detaljerad information om aktuell status för din FTP-server.
omstart- Detta är ett alternativ till sekvensen att stoppa och starta servern. Om servern redan är stoppad kommer kommandot omstart att starta om den.
ladda om- Detta kommando låter dig starta om och tillämpa alla nya inställningar. Skillnaden från omstart är att nya inställningar tillämpas utan att stoppa servern.
För att starta, starta om och tillämpa nya inställningar, använd tjänsteverktyget:

$ sudo tjänst vsftpd start

Denna syntax används för att utföra alla kommandon.

5.2. Normalt läge

Ett annat sätt att köra vsftpd är i normalt läge, där xinetd-superservern är ansvarig för att köra tjänsten. För att starta vsftpd-servern i normalt läge måste du först installera xinetd-superservern:

$ sudo apt-get installera xinetd

Ovanstående kommando installerar och startar xinetd-superservern. Om du redan har det installerat behövs inte detta kommando. Skapa sedan en vsftpd-fil i katalogen /etc/xinetd.d/ med följande innehåll:

Service ftp ( disable = no socket_type = stream wait = ingen användare = rotserver = /usr/sbin/vsftpd per_source = 5 instanser = 200 no_access = 10.1.1.10 banner_fail = /etc/vsftpd.busy log_on_success_failure += PID inloggning HOST = VÄRD)

Samtidigt kan du ändra något av alternativen för att anpassa superservern enligt dina krav.
Alternativ värda att uppmärksamma:
server- gå in kommandorad"$vilken vsftpd" för att ta reda på den korrekta sökvägen.
ingen åtkomst- alla värdar med IP-adresser som anges i detta direktiv kommer att blockeras.
banner_fail- här kan du ange sökvägen till textfil, vars innehåll kommer att visas för alla blockerade IP-adresser.

Detta direktiv kommer att instruera FTP-servern att inte öppna några portar, vilket lämnar dem helt och hållet till xinetd-superservern. Innan du startar servern normalt, se till att vsftpd-demonen är inaktiverad:

$ sudo tjänst vsftpd stopp

Nu kan du starta FTP-servern i normalt läge med kommandot:

För att säkerställa att FTP-servern fungerar korrekt, testa och öppna port 21 med kommandot netstat:

$ netstat -ant | grep 21 tcp 0 0 0.0.0.0:21 0.0.0.0:* LYSSNA

6. Skapa din första FTP-anslutning

Oavsett om du startade FTP-servern i offline-läge eller i normalt läge, kan du skapa din första lokala FTP-anslutning. Som standard tillåter vsftpd offlineåtkomst, så när vi skapar vår första testanslutning kommer vi att använda anonym som användarnamn. För att göra detta, utfärda helt enkelt ftp-kommandot med localhost-argumentet:

$ftp localhost Ansluten till localhost. 220 (vsFTPd 2.3.5) Namn (localhost:root): anonym 331 Vänligen ange lösenordet. Lösenord: 230 Inloggning lyckad. Fjärrsystemtypen är UNIX. Använder binärt läge för att överföra filer. ftp> ftp> quit 221 Adjö.

En lyckad anslutning bekräftar att FTP-servern på det lokala systemet är korrekt konfigurerad. Men innan du går vidare till mer detaljerade inställningar måste du testa FTP-servern från flera fjärrvärdar.

7. Konfigurera en FTP-server

I det här avsnittet kommer vi att titta på några grundläggande exempel på vsftpd-konfigurationsalternativ.

Obs: När du gör några ändringar i dina FTP-serverinställningar, se till att använda kommandot omstart/reload för att aktivera dem.

7.1. Konfigurera användaråtkomst

vsftpd tillåter dig att endast lämna anonym åtkomst, eller tillåta användare som är registrerade i filen /etc/passwd eller i motsvarande lista att autentisera.

7.1.1. Anonym FTP-åtkomst

Som standard är vsftpd FTP-servern endast konfigurerad för anonym åtkomst. Om detta är vad du behöver kan du göra livet lättare för anonyma användare genom att inaktivera lösenordskravet. Det säkraste alternativet för en FTP-server är att inte tillåta användare att autentisera med ett lösenord med vanlig text. För att inaktivera kravet för anonyma användare att ange ett lösenord, ställ in no_anon_password-direktivet till "NO" i konfigurationsfilen /etc/vsftpd.conf:

No_anon_password=JA

7.1.2. Lokal användaråtkomst via FTP

Din server bör nu neka all åtkomst utom för den anonyma användaren. För att tillåta alla användare som anges i filen /etc/passwd att logga in, måste du ändra värdet på local_enable-direktivet i filen /etc/vsftpd.conf. Dess standardvärde är "NEJ".

Local_enable=JA

Nu kommer alla användare som anges i filen /etc/passwd att kunna logga in med sitt lösenord.

$ftp localhost Ansluten till localhost. 220 (vsFTPd 2.3.5) Namn (localhost:root): lubos 331 Vänligen ange lösenordet. Lösenord: 230 Inloggning lyckad. Fjärrsystemtypen är UNIX. Använder binärt läge för att överföra filer. ftp> sluta 221 Adjö.

7.1.3. Användaråtkomstlista

Låt oss först skapa en åtkomstlista som används av vsFTPd-servern. Vanligtvis kan du ställa in den i katalogen /etc/. Skapa en fil med ett anpassat namn och lista alla användare som du vill tillåta eller neka åtkomst till. Låt oss till exempel skapa en ny lista med en enda användare "lubos":

Echo lubos > /etc/vsftpd.userlist

Userlist_file=/etc/vsftpd.userlist userlist_enable=JA

Detta kommer att neka alla användare som är listade i filen /etc/vsftpd.userlist åtkomst till FTP-servern.

$ftp localhost Ansluten till localhost. 220 (vsFTPd 2.3.5) Namn (localhost:root): lubos 530 Tillstånd nekad. Inloggningen misslyckades. ftp>

För att tillåta åtkomst till alla användare som är listade i filen /etc/vsftpd.userlist, ställ in userlist_deny-direktivet till NO. Detta tillåter endast åtkomst till användare som är listade i /etc/vsftpd.userlist. Varje användarnamn i den här filen bör finnas på en separat rad.

7.2. Ändra portnummer

Som standard lyssnar vilken FTP-server som helst på standardport 21 för användarautentisering och port 20 för dataöverföring. vsFTPd är inget undantag. För att ändra standardlyssningsporten, använd listen_port-direktivet i filen /etc/vsftpd.conf. Till exempel, för att ändra porten till 2121, lägg helt enkelt till följande direktiv till din konfigurationsfil:

Listen_port=2121

Starta sedan om FTP-servern.

Detta gäller dock endast vsFPTd som körs i fristående läge. Om din FTP-server körs normalt med xinetd superserver och du vill ändra standardporten till 2121, titta i filen /etc/services FTP-linje och ersätt 21 med 2121, starta sedan om xinetd.

$ sudo tjänst xinetd omstart

Nu, som du kan se, lyssnar FTP-servern på port 2121:

$ netstat -ant | grep 2121 tcp 0 0 0.0.0.0:2121 0.0.0.0:* LYSSNA

7.3. Andra konfigurationsalternativ

vsFTPd-servern har många konfigurationsalternativ som låter dig finjustera den för att passa dina behov. Nedan är en lista över de viktigaste alternativen:

max_clients- detta alternativ ställer in det maximala antalet användare samtidigt som använder FTP-servern. 0 betyder obegränsat antal användare.
max_per_ip- ställer in det maximala antalet användare från en IP-adress.
download_enable- om dess värde är NEJ, kommer alla nedladdningsbegäranden att avvisas.

8. Slutsats

Idag har vsFTPd 125 konfigurationsalternativ. Detta gör den mycket flexibel att konfigurera och samtidigt enkel att använda och administrera. Oavsett om du vill använda den hemma, inom ett företagsnätverk eller på en fjärrserver, kan du vara säker på att vsFTPd helt uppfyller dina behov. Dessutom låter vsFTPd dig aktivera sftp, men vi kommer att diskutera denna fråga nästa gång.

F ile Töverföra P rotocol, d.v.s. FTP är ett filöverföringsprotokoll och är, som det fullständiga namnet antyder, avsett för överföring av filer mellan fjärrdatorer via nätverket. Trots att FTP-protokollet i sig inte är det mest avancerade idag på grund av att den överförda datan inte är krypterad, gör detta den inte obsolet. Dessutom är det fortfarande möjligt att tillämpa kryptografiskt skydd på FTP baserat på SSL-protokollet, vilket gör FTP till ett värdigt verktyg för att överföra filer.

Eftersom FTP fungerar enligt klient-server-interaktionsschemat, kan en skicklig och pålitlig implementering av protokollet (och faktiskt systemet i allmänhet) ge det tillförlitligt skydd, hög hastighet och, som ett resultat, popularitet, vilket kan vara observeras idag, eftersom de flesta stora projekt, såsom ftp.gnu.org, ftp.suse.com, ftp.redhat.com, ftp.gnome.org, etc., använder FTP för att distribuera programvara från sina servrar. Det bör noteras att FTP i större utsträckning har en sådan popularitet att tacka en av dess många implementeringar - vsFTPd. Detta är en FTP-server som stöder de modernaste dataskyddsteknikerna - SSL och IPv6; dess implementering kombinerar hög tillförlitlighet, stabilitet, drifthastighet och dataöverföring, såväl som flexibel konfiguration av servern och bred funktionalitet. Utvecklaren av vsFTPd är Chris Evans, en professionell forskare inom områdena dataskydd och informationssäkerhet. vsFTPd är standard FTP-servern i nästan alla Linux-system, eftersom den, som redan nämnts, förutom tillförlitlighet och hög hastighet, har stor funktionalitet, av vilka de viktigaste är:

  1. Arbeta med virtuella användare.
  2. Arbeta med virtuella IP-adresser.
  3. Konfigurera användare.
  4. Stöd
  5. SSL-kryptering för att skydda överförd data.
  6. Bandbreddskontroll.

Den här artikeln diskuterar installation och konfigurering av en FTP-server med vsFTPd som exempel, som för övrigt distribueras fritt programvara(programvara) öppen källkod. Officiell projektsida: https://security.appspot.com/vsftpd.html.

Installerar vsFTPd

Installera Vsftd i Debian-baserat Linux-distributioner tillåter kommandot:

$ sudo apt-get install vsftpd

Det kommer också att vara användbart att installera en enkel FTP-klient för att testa anslutningen och överföra filer:

$ apt-get install ftp

För distributioner baserade på RPM-paket, CentOS, RedHat:

$ mums installera vsftpd $yum installera ftp

Normalt efter installationen startar vsFTPd-demonen automatiskt, du kan verifiera detta med följande kommandon:

$ systemctl status vsftpd

$service vsftpd status

Starta, starta om och stoppa servern:

$ systemctl start vsftpd $ systemctl start vsftpd $ systemctl stop vsftpd

För att aktivera vsftpd-demonen vid start, använd kommandot:

$ systemctl aktivera vsftpd

Detsamma gäller för servicekommandot.

Om vsFTPd används i serverdistributioner som ofta kör en brandvägg, såsom ufw, kan du också behöva tillåta användningen av portarna 20 och 21:

$ ufw tillåt 20/tcp $ ufw tillåt 21/tcp

Ställa in vsFTPd

Konfigurationsfilen för att ställa in vsFTPd är filen vsftpd.conf, som vanligtvis finns i etc/-katalogen. Du kan bekanta dig med hans besatta person med hjälp av kattkommandot:

$ cat /etc/vsftpd/vsftpd.conf

För säkerhets skull är det användbart att göra en säkerhetskopia av den innan du redigerar den ursprungliga inställningsfilen:

$ sudo cp /etc/vsftpd.conf vsftpd.conf.backup

FTP-servern vsFTPd erbjuder två huvudalternativ för att arbeta: med anonyma och auktoriserade användare. Det första alternativet anses vara "säkrare", men bara för att det praktiskt taget inte finns något behov av att konfigurera något för att säkerställa tillförlitligt skydd. Men med korrekt organisation av auktoriserad åtkomst, vilket innebär att du arbetar med FTP för lokala användare av systemet, kan du garantera säkerheten inte sämre än när du använder anonym åtkomst.

Konfigurera i anonymt åtkomstläge

Sättet vsFTPd fungerar i det här läget är att åtgärder med filer på fjärrservern utförs av en användare definierad som standard, till exempel en användare som heter " ftp" eller " anonym", medan e-post används som lösenord.

För att möjliggöra anonym åtkomst via FTP måste du definiera värdet "JA" för motsvarande direktiv i filen vsftpd.conf:

Anonymous_enable=JA

Nu kommer en specifik katalog (vanligtvis /srv/ftp) och en specifik användare - vanligtvis ftp - att användas för att hantera filer.

Du kan också definiera en annan plats för filer för anonym åtkomst via FTP, d.v.s. ändra hemkatalogen för ftp-användaren:

$ sudo mkdir /srv/share/ftp $ sudo usermod -d /srv/share/ftp ftp

Om du vill att anonyma användare även ska kunna ladda upp filer till en fjärrserver, tillåter detta direktiv dig att göra detta:

Anon_upload_enable=JA

Nu kan du kopiera filerna som behövs för anonym åtkomst till ftp-användarens hemmapp och starta om vsftpd-demonen:

$ systemctl starta om vsftpd

Vanligtvis räcker denna uppsättning inställningar för att organisera anonym FTP-åtkomst. För att kontrollera anslutningen kan du köra kommandot ftp address_host:

$ftp 127.0.0.1

$ftp localhost

som, om den körs framgångsrikt, kommer att producera något i stil med detta:

Konfigurering i läget för behörig åtkomst

Local_enable=JA

Write_enable=JA

Nu måste du starta om vsftpd för att aktivera ändringarna som gjorts:

$ systemctl starta om vsftpd

Begränsa användare till sina hemkataloger

För att definiera användare som endast får åtkomst till sin hemkatalog finns det direktiv:

Chroot_list_enable=JA chroot_list_file=/etc/vsftpd.chroot_list

Den första innebär att använda en lista med användare, den andra definierar en fil där varje rad listar användare med endast åtkomst till deras hemkataloger. Om du också anger direktivet:

Chroot_local_user=JA

som "låser" lokala användare i chroot() och de kommer inte att kunna höja sig över sina hemkataloger, då i detta fall kommer användarna i filen vsftpd.chroot_list inte att vara begränsade till sina hemkataloger, till skillnad från de som inte ingår i denna lista.

Vid distribution av FTP-åtkomst till användare kan ett fel uppstå som uppstår på grund av att den lokala användaren har skrivbehörighet till roten på hemkatalogen, vilket inte är tillåtet av säkerhetsskäl. Detta fel ser ut så här:

500 OOPS: vsftpd: vägrar köra med skrivbar rot inuti chroot()

Det bästa sättet att åtgärda det här felet är att ange en viss gemensam rotkatalog dit, när de är anslutna, alla användare kommer att gå och endast ha tillgång till sina hemunderkataloger, till exempel:

Local_root=/home

Du kan också inaktivera kontrollen för att skriva till hemkatalogen för att lösa det här felet:

Allow_writeable_chroot=JA

Men ändå bör detta endast göras när det finns en klar förståelse för varför det behövs för en specifik situation.

Säkra data med SSL

För att kunna kryptera överförd data måste du konfigurera vsFTPd i FTPS-läge. Detta är samma dataöverföring via FTP, men organiserad ovanpå SSL-protokollet. Krypterar och verifierar data med certifikat och nycklar.

För att aktivera FTPS-läge måste du använda följande direktiv:

Ssl_enable=Ja

Som standard innehåller konfigurationsfilen vsftpd.conf också alternativ som definierar certifikat och nycklar, till exempel:

Rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

Detta certifikat och nyckel måste bytas ut. För att använda FTPS måste du använda ett certifikat och nyckel. Genereras (eller tas emot) för en specifik server eller dator.

Om du hittar ett fel, markera en text och klicka Ctrl+Enter.

Baserat på följande artiklar:

Nästan varje användare som arbetar på Internet har stött på FTP minst en gång. Här beskriver vi hur man installerar en FTP-server på en maskin och säkerställer dess säkerhet.

Vi kommer att använda en lätt och effektiv FTP-server vsFTPd, designad för att fungera på högt belastade servrar. Senare i den här artikeln kommer vi helt enkelt att prata om FTP-servern, vilket betyder vsFTPd.

1. Vad är FTP

FTP står för File Transfer Protocol – dataöverföringsprotokoll. Namnet antyder att detta protokoll används för att överföra filer eller kataloger från en värd till en annan över ett nätverk - antingen lokalt eller över Internet.

2. Installera en FTP-server i Ubuntu

För att installera vsftpd, öppna konsolen och kör kommandot:

sudo apt-get install vsftpd
Efter att ha utfört detta kommando kommer servern att installeras och köras.
Konfigurera vsftpd (2.3.5-1ubuntu2) ...

vsftpd start/kör, process 1891

3. Alternativ för att starta FTP-tjänsten

vsftpd kan startas på tre olika sätt. Det första sättet är att lansera via inetd. Den andra är genom xinetd, den tredje är att starta servern manuellt (offlineläge).
Som standard körs vsftpd i fristående läge, där tjänsten som körs på servern använder sitt eget startskript, kallat en demon. I fallet med vsftpd är detta /etc/init.d/vsftpd . Denna autonoma demon tar kontroll över den när FTP-tjänsten startar. vsftpd-demonen ger administratören flera kommandon för att hantera vsftpd FTP-servern:

start eller stop - används för att starta eller stoppa ftp-servern.
status - visar detaljerad information om aktuell status för din FTP-server.
omstart är ett alternativ till sekvensen av att stoppa och starta servern. Om servern redan är stoppad kommer kommandot omstart att starta om den.
ladda om - detta kommando låter dig ladda om och tillämpa alla nya inställningar. Skillnaden från omstart är att nya inställningar tillämpas utan att stoppa servern.
För att köra dessa kommandon, skriv:

sudo start/stop/status/restart/reload vsftpd

Men fristående läge är mindre flexibelt, inetd är gammalt, så Det rekommenderas att köra vsftp via xinetd. Den har sådana saker som förfrågningsloggning, åtkomstkontroll, bindning av en tjänst till ett specifikt nätverksgränssnitt, etc.

4. Starta FTP-tjänsten via xinetd

Installera xinetd-superservern:

sudo apt-get installera xinetd
Ovanstående kommando installerar och startar xinetd-superservern. Om du redan har det installerat behövs inte detta kommando. Skapa sedan en vsftpd-fil i katalogen /etc/xinetd.d/ med följande innehåll:

service ftp

Inaktivera = nej

Socket_type = ström

Vänta = nej

Användare = root

Server = /usr/sbin/vsftpd

Per_källa = 5

Förekomster = 200

Ingen_åtkomst = 10.1.1.10

Banner_fail = /etc/vsftpd.busy

Log_on_success += PID-VÄRD VARAKTIGHET

Log_on_failure += HOST

Samtidigt kan du ändra något av alternativen för att anpassa superservern enligt dina krav.
Alternativ värda att uppmärksamma:
server - ange "$ vilken vsftpd" på kommandoraden för att ta reda på rätt sökväg.
no_access - alla värdar med IP-adresser som anges i detta direktiv kommer att blockeras.
banner_fail - här kan du ange sökvägen till en textfil, vars innehåll kommer att visas för alla blockerade IP-adresser.

Detta direktiv kommer att instruera FTP-servern att inte öppna några portar, vilket lämnar dem helt och hållet till xinetd-superservern. Innan du startar servern normalt, se till att vsftpd-demonen är inaktiverad:
sudo service vsftpd stopp

Nu kan du starta FTP-servern med kommandot:
sudo tjänst xinetd omstart

För att säkerställa att FTP-servern fungerar korrekt, testa och öppna port 21 med kommandot netstat:
$ netstat -ant | grep 21 tcp 0 0 0.0.0.0:21 0.0.0.0:* LYSSNA

5. Konfigurera en FTP-server

Att ställa in vsftpd görs genom att göra ändringar i konfigurationsfilen /etc/vsftpd.conf.

Obs: När du gör några ändringar i dina FTP-serverinställningar, se till att använda kommandot omstart/reload för att aktivera dem.

5.1 Ställa in användaråtkomst

vsftpd låter dig ge antingen anonym åtkomst till användare från filen /etc/passwd eller från din egen lista.

Anonym åtkomst

Obs: Att öppna anonym åtkomst är farligt, och anonym åtkomst utan lösenord är ännu farligare. Det är en dålig idé. Bättre att inte göra detta, bara läs det för referens.

För att ge anonym åtkomst, ställ in anonymous_enable-direktivet till YES i konfigurationsfilen:

anonymous_enable=JA

För åtkomst utan lösenord, ange dessutom:

no_anon_password=JA

Nu kan du komma åt FTP-servern genom den anonyma användaren. För att göra detta, skriv helt enkelt in ftp-kommandot med argumentet localhost eller ip-adressen till din server:

$ftp localhost Ansluten till localhost. 220 (vsFTPd 2.3.5) Namn (localhost:root): anonym 331 Vänligen ange lösenordet. Lösenord: 230 Inloggning lyckad. Fjärrsystemtypen är UNIX. Använder binärt läge för att överföra filer. ftp> ftp> quit 221 Adjö.

Lokal användaråtkomst

För att tillåta alla användare som anges i filen /etc/passwd att logga in, måste du ändra värdet på local_enable-direktivet i filen /etc/vsftpd.conf.
local_enable=JA
Nu kommer alla användare som anges i filen /etc/passwd att kunna logga in med sitt lösenord.

Användaråtkomstlista

Låt oss först skapa en åtkomstlista som används av vsFTPd-servern. Vanligtvis kan du ställa in den i katalogen /etc/. Skapa en fil med ett anpassat namn och lista alla användare som du vill tillåta eller neka åtkomst till. Låt oss till exempel skapa en ny lista med en enda användares "root":
echo root > /etc/vsftpd.userlist
Därefter kommer vi att definiera en ny lista över användare i konfigurationsfilen /etc/vsftpd.conf och aktivera direktivet userlist_enable:
userlist_file=/etc/vsftpd.userlistuserlist_enable=JA Detta kommer att neka alla användare listade i /etc/vsftpd.userlist åtkomst till FTP-servern.

$ ftp localhostAnsluten till localhost.220 (vsFTPd 2.3.5)Namn (localhost:root): lubos530 Permission denied.Login failed.ftp> För att tillåta åtkomst till alla användare som är listade i filen /etc/vsftpd.userlist, ställ in userlist_deny-direktivet till "NEJ". Genom att göra detta ger du bara åtkomst till de användare som är listade i /etc/vsftpd.userlist. Varje användarnamn i den här filen bör finnas på en separat rad.

5.2 Övriga inställningar

Idag har vsFTPd 125 konfigurationsalternativ. Detta gör den mycket flexibel att konfigurera och samtidigt enkel att använda och administrera. Oavsett om du vill använda den hemma, inom ett företagsnätverk eller på en fjärrserver, kan du vara säker på att vsFTPd helt uppfyller dina behov.

I den här artikeln kommer vi att titta på att installera och konfigurera vsftpd FTP-servern på en webbserver som körs operativ system Ubuntu Server 18.04.

FTP (File Transfer Protocol) är ett protokoll för överföring av filer över ett nätverk. Standardportar: 21/TCP för kommandon, 20/TCP för data. Portar för passiv anslutning konfigureras ytterligare i konfigurationsfilen.

Installation

Låt oss först uppdatera programpaketets index:

sudo apt uppdatering

Nu installerar vi själva FTP-servern:

sudo apt installera vsftpd

inställningar

Öppna konfigurationsfilen för redigering:

sudo nano /etc/vsftpd.conf

Om kommentarer utelämnas, bör dess innehåll vara som följer:

lyssna=JA
local_enable=JA
chroot_local_user=JA
check_shell=NEJ
write_enable=JA
xferlog_enable=JA
chown_uploads=JA
chown_username=ingen
anonymous_enable=NEJ
pasv_enable=JA
pasv_min_port=60000
pasv_max_port=60100

Konfigurationsfil

Starta om FTP-servern:

sudo service vsftpd omstart

Skapa en FTP-användare:

sudo adduser ftpuser

Vi skapar en katalog för att montera webbplatskatalogen till vår användares hemkatalog:

sudo mkdir /home/ftpuser/site

Vi monterar:

sudo mount --bind /var/www /home/ftpuser/site

Montering av kataloger

Nu kommer /home/ftpuser/site att visa filer som finns i /var/www. Observera att monteringen kvarstår tills servern startas om. Efter omstarten måste kommandot upprepas.

sudo chown www-data:ftpuser /var/www/ -R
sudo hitta /var/www -type d -exec chmod 775 () \;
sudo hitta /var/www -typ f -exec chmod 664 () \;

För att användaren ska kunna ansluta via FTP måste du aktivera ett skrivförbud i roten av hemkatalogen:

sudo chmod a-w /home/ftpuser/

Nu måste vi konfigurera brandväggen för anslutningen:

sudo ufw tillåter in 20/tcp

sudo ufw tillåter in 21/tcp

sudo ufw tillåter i 60000:60100/tcp

Kontrollera reglerna:

sudo ufw status

Regelkontroll

Allt. Låt oss försöka ansluta via FTP.

FTP-anslutning

Som du kan se fungerar anslutningen. Den monterade katalogen innehåller filerna från vår testsida.

Slutsatser

Installationen av FTP-servern på webbservern är klar. Nu kan du ladda upp webbplatsfiler till servern och göra säkerhetskopior. Om du har några frågor om detta ämne, skriv i kommentarerna.

File Transfer Protocol (FTP) är ett TCP-protokoll för nedladdning av filer mellan datorer. Tidigare har det också använts för uppladdning men som den metoden gör inte använda kryptering, användaruppgifter samt data överförs i det klara och är lätt att fånga upp. Så om du letar här efter ett sätt att ladda upp och ladda ner filer säkert, se avsnittet om OpenSSH i fjärradministration istället.

FTP fungerar på en klient/servermodell. Serverkomponenten kallas en FTP-demon. Den lyssnar kontinuerligt efter FTP-förfrågningar från fjärrklienter. När en förfrågan tas emot hanterar den inloggningen och upprättar anslutningen. Under sessionens varaktighet utför den något av kommandon som skickas av FTP-klienten.

Åtkomst till en FTP-server kan hanteras på två sätt:

I anonymt läge kan fjärrklienter komma åt FTP-servern genom att använda standardanvändarkontot som kallas "anonym" eller "ftp" och skicka en e-postadress som lösenord. I Autentiserat läge måste en användare ha ett konto och ett lösenord. Det senare valet är mycket osäkert och bör inte användas utom under speciella omständigheter. Om du vill överföra filer säkert, se SFTP i avsnittet om OpenSSH-Server. Användaråtkomst till FTP-serverns kataloger och filer är beroende av de behörigheter som definierats för kontot som används vid inloggning. Som en allmän regel kommer FTP-demonen att dölja rotkatalogen för FTP-servern och ändra den till FTP-hemkatalogen. Detta döljer resten av filsystemet från fjärrsessioner.

vsftpd - FTP-serverinstallation

vsftpd är en FTP-demon tillgänglig i Ubuntu. Det är lätt att installera, ställa in och underhålla. För att installera vsftpd kan du köra följande kommando:

sudo apt installera vsftpd

Anonym FTP-konfiguration

Som standard är vsftpd inte konfigurerad för att tillåta anonym nedladdning. Om du vill aktivera anonym nedladdning redigera /etc/vsftpd.conf genom att ändra:

anonymous_enable=Ja

Under installationen skapas en ftp-användare med hemkatalogen /srv/ftp . Detta är standard-FTP-katalogen.

Om du vill ändra denna plats, till till exempel /srv/files/ftp, skapa helt enkelt en katalog på en annan plats och ändra ftp-användarens hemkatalog:

sudo mkdir /srv/filer/ftp sudo usermod -d /srv/files/ftp ftp

Efter att ha gjort ändringen starta om vsftpd:

Slutligen, kopiera alla filer och kataloger som du vill göra tillgängliga via anonym FTP till /srv/files/ftp , eller /srv/ftp om du vill använda standard.

Användarverifierad FTP-konfiguration

Som standard är vsftpd konfigurerad för att autentisera systemanvändare och låta dem ladda ner filer. Om du vill att användare ska kunna ladda upp filer, redigera /etc/vsftpd.conf:

write_enable=JA

Starta nu om vsftpd:

sudo systemctl starta om vsftpd.service

Nu när systemanvändare loggar in på FTP kommer de att börja i sina hemkataloger där de kan ladda ner, ladda upp, skapa kataloger, etc.

På samma sätt får anonyma användare som standard inte ladda upp filer till FTP-servern. För att ändra den här inställningen bör du avkommentera följande rad och starta om vsftpd :

anon_upload_enable=JA

Att aktivera anonym FTP-uppladdning kan vara en extrem säkerhetsrisk. Det är bäst att inte aktivera anonym uppladdning på servrar som nås direkt från Internet.

Konfigurationsfilen består av många konfigurationsparametrar. Informationen om varje parameter finns tillgänglig i konfigurationsfilen. Alternativt kan du hänvisa till man-sidan, man 5 vsftpd.conf för detaljer om varje parameter.

Säkra FTP

Det finns alternativ i /etc/vsftpd.conf för att göra vsftpd säkrare. Användare kan till exempel begränsas till sina hemkataloger genom att avkommentera:

chroot_local_user=JA

Du kan också begränsa en specifik lista över användare till bara deras hemkataloger:

chroot_list_enable=JA chroot_list_file=/etc/vsftpd.chroot_list

Efter att ha avkommenterat ovanstående alternativ, skapa en /etc/vsftpd.chroot_list som innehåller en lista över användare en per rad. Starta sedan om vsftpd:

sudo systemctl starta om vsftpd.service

Dessutom är filen /etc/ftpusers en lista över användare som inte är tillåten FTP-åtkomst. Standardlistan inkluderar root, demon, ingen, etc. För att inaktivera FTP-åtkomst för ytterligare användare lägg till dem i listan.

FTP kan också krypteras med FTPS. Till skillnad från SFTP är FTPS FTP över Secure Socket Layer (SSL). SFTP är en FTP-liknande session över en krypterad SSH-anslutning. En stor skillnad är att användare av SFTP måste ha ett skalkonto på systemet istället för ett nologinskal. Att förse alla användare med ett skal kanske inte är idealiskt för vissa miljöer, till exempel ett delat webbhotell. Det är dock möjligt att begränsa sådana konton till endast SFTP och inaktivera skalinteraktion. Se avsnittet om OpenSSH-Server för mer.

För att konfigurera FTPS, redigera /etc/vsftpd.conf och lägg till längst ned:

Lägg också märke till certifikatet och nyckelrelaterade alternativ:

rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

Som standard är dessa alternativ inställda på certifikatet och nyckeln som tillhandahålls av ssl-cert-paketet. I en produktionsmiljö bör dessa ersättas med ett certifikat och nyckel genererade för den specifika värden. För mer information om certifikat, se Certifikat.

Starta nu om vsftpd , och icke-anonyma användare kommer att tvingas använda FTPS:

sudo systemctl starta om vsftpd.service

För att tillåta användare med ett skal av /usr/sbin/nologin åtkomst till FTP, men har ingen skalåtkomst, redigera /etc/shells och lägg till nologinskalet:

# /etc/shells: giltiga inloggningsskal /bin/csh /bin/sh /usr/bin/es /usr/bin/ksh /bin/ksh /usr/bin/rc /usr/bin/tcsh /bin/tcsh / usr/bin/esh /bin/dash /bin/bash /bin/rbash /usr/bin/screen /usr/sbin/nologin

Detta är nödvändigt eftersom vsftpd som standard använder PAM för autentisering, och konfigurationsfilen /etc/pam.d/vsftpd innehåller:

auth krävs pam_shells.so

PAM-modulen för skal begränsar åtkomsten till skal listade i filen /etc/shells.

De flesta populära FTP-klienter kan konfigureras för att ansluta med FTPS. lftp kommandorads FTP-klient har möjlighet att också använda FTPS.


Topp