voordat u begint …
Het is verrassend hoeveel webontwikkelaars nog steeds niet op de hoogte zijn van SFTP en de voordelen ten opzichte van FTP / FTPS. SFTP wordt geleverd met Linux Server voorgeïnstalleerd en werkt net als normale FTP, maar is veiliger en minder gedoe om op te zetten. Als uw FTP client SFTP ondersteunt, moet u het gebruiken!
- SFTP configureren voor een webserver document root
installeer vsftpd
laten we beginnen met het bijwerken van de pakketlijsten en het installeren van vsftpd op Ubuntu 18.04 / 18.10 / 19.04 / 19.10.,
hieronder hebben we twee commando ‘ s gescheiden door &&
. Het eerste commando zal de pakketlijsten bijwerken om er zeker van te zijn dat je de laatste versie en afhankelijkheden voor vsftpd krijgt. Het tweede commando zal dan vsftpd downloaden en installeren. Druk op y
en ENTER
wanneer gevraagd wordt door te gaan.
sudo apt update && sudo apt install vsftpd
eenmaal geïnstalleerd, controleer de status van vsftpd
sudo service vsftpd status
hierboven kunnen we zien dat onze FTP-server nu actief is.,
Firewall configureren
Als u dit nog niet hebt gedaan, wordt aanbevolen dat u de ufw
firewall voor Ubuntu inschakelt 18.04 / 18.10 / 19.04 / 19.10. Voordat u ufw
firewall inschakelt, moet u ervoor zorgen dat u een regel voor SSH toevoegt, anders kunt u buitengesloten worden van uw server als u op afstand verbonden bent. Als u geen firewall wilt instellen, ga dan naar stap 3.
sudo ufw allow OpenSSH
laten we poorten 20 en 21 openen voor FTP, en poorten 40000-50000 voor passieve FTP. We openen ook poort 990 voor TLS, die we later zullen opzetten.,
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 40000:50000/tcp
sudo ufw allow 990/tcp
activeer nu de firewall als deze nog niet aanwezig is. Druk op y
en ENTER
indien gewaarschuwd wordt voor het verstoren van de SSH-verbinding.
sudo ufw enable
om de status van de firewall te controleren, voer je uit:
sudo ufw status
als de firewall draait, zie je Status: active
en de firewallregels die we zojuist hebben toegevoegd.
maak FTP gebruiker
We zullen nu een nieuwe gebruiker maken die we zullen gebruiken om in te loggen op FTP., In dit voorbeeld zullen we een nieuwe gebruiker aanmaken met de naam ftpuser
.
sudo adduser ftpuser
Genereer een sterk wachtwoord en houd het veilig.
u kan ook gevraagd worden om een aantal contactgegevens in te voeren. U kunt gewoon op ENTER
drukken op elk van deze.
Als u alleen wilt dat ftpuser
via FTP inlogt, moet u hun SSH-toegang uitschakelen door hun gebruikersnaam op een zwarte lijst te zetten in het SSH-configuratiebestand. Ga anders naar stap 4.
Open de SSH-configuratie in nano.,
sudo nano /etc/ssh/sshd_config
voeg het volgende toe aan de onderkant van het bestand ter vervanging van ftpuser
met de gebruiker die u SSH en SFTP toegang wilt weigeren. U kunt hier meerdere gebruikers toevoegen, gescheiden door een enkele spatie. (Om in nano te plakken, drukt u op de rechter muisknop).
DenyUsers ftpuser
om bestand op te slaan en af te sluiten, drukt u op CTRL
+ X
, drukt u op Y
en drukt u vervolgens op ENTER
.
Herstart de SSH-service.,
sudo service sshd restart
mapmachtigingen
u moet nu beslissen waar deze nieuwe FTP-gebruiker bestanden mag bekijken en uploaden.
vsftpd gebruikt chroot jails om gebruikers te beperken tot hun persoonlijke mappen en vereist dat de persoonlijke map niet beschrijfbaar is. Om die reden moeten we een aantal mappen en machtigingen instellen.
Als u van plan bent dit FTP gebruikersaccount te gebruiken om bestanden naar een webserver te uploaden, ga dan verder met stap 4.1. Als je alleen maar wilt uploaden naar een persoonlijke map, ga dan naar stap 4.2.
4.1., Upload naar een webserver
in veel gevallen wilt u bestanden kunnen uploaden naar de hoofdmap van het document op de webserver.
Als u hier een vorige gids hebt gevolgd voor het instellen van meerdere domeinen, kan uw document root zich ergens bevinden als /var/www/test1.com/public_html
– in dat geval moet u de persoonlijke map instellen voor ftpuser
naar de map boven het document root: /var/www/test1.com
(vervang test1.com voor uw eigen domein).,
als u niet meerdere domeinen gebruikt, nemen we aan dat u de standaard document root /var/www/html
gebruikt voor zowel Apache als Nginx in Ubuntu 18.04 / 18.10 / 19.04 / 19.10. In dit scenario moeten we /var/www/
de home directory maken voor onze gebruiker ftpuser
.
laten we de map boven de hoofdmap van het document instellen als de persoonlijke map voor ftpuser
.
sudo usermod -d /var/www ftpuser
Hiermee kan onze FTP-gebruiker bestanden schrijven en wijzigen in de hoofdmap van het document.,
sudo chown ftpuser:ftpuser /var/www/html
ga nu naar stap 5 om vsftpd te configureren.
4.2 Upload naar een persoonlijke map
Als u in plaats daarvan wilt dat deze gebruiker bestanden uploadt naar de persoonlijke map, maak dan een nieuwe map met de naam ftp
in de persoonlijke map van de gebruiker en een andere binnen de naam files
. In dit voorbeeld hieronder wordt onze gebruiker ftpuser
genoemd.
sudo mkdir /home/ftpuser/ftp
Stel de eigendom van de ftp
map in op no nobody:nogroup
.,
sudo chown nobody:nogroup /home/ftpuser/ftp
stel rechten in voor de ftp
map met behulp van chmod
zodat het voor niemand beschrijfbaar is, anders zal vsftpd u niet toestaan om in te loggen. a-w
betekent a
= all/everyone -
= remove w
= schrijfrechten, dus verwijder schrijfrechten voor iedereen.
sudo chmod a-w /home/ftpuser/ftp
vervolgens maken we een nieuwe map aan binnen /ftp
waar de gebruiker bestanden kan bekijken en uploaden.,
sudo mkdir /home/ftpuser/ftp/files
wijs het eigendom van deze map toe aan onze nieuwe FTP-gebruiker anders zullen ze er niet naar kunnen schrijven.
sudo chown ftpuser:ftpuser /home/ftpuser/ftp/files
Configure vsftpd
Er zijn een paar wijzigingen die we moeten aanbrengen in het vsftpd configuratiebestand voordat u FTP op Ubuntu kunt gebruiken 18.04 / 18.10 / 19.04 / 19.10.
Maak een back-up voordat u het configuratiebestand bewerkt.
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
open nu het configuratiebestand in nano
editor.,
sudo nano /etc/vsftpd.conf
Dit is een vrij groot bestand, maar het is meestal gevuld met opmerkingen om je verder te helpen.
u moet het bestand omlaag gaan en ervoor zorgen dat de Instellingen overeenkomen met die hieronder. Opmerking: U kunt in nano
zoeken met CTRL
+
zoeken naar #write_enable=YES
en het commentaar verwijderen door het # – teken te verwijderen. Hierdoor kunnen FTP-gebruikers bestanden naar de server schrijven.
write_enable=YES
zoek naar #chroot_local_user=YES
en verwijder commentaar door het # – teken te verwijderen. Dit voorkomt dat FTP-gebruikers buiten hun eigen map kunnen browsen.
chroot_local_user=YES
zoek naar #local_umask=022
en verwijder het commentaar door het # – teken te verwijderen. Dit geeft geüploade bestanden en mappen de juiste rechten.
local_umask=022
We moeten nu enkele richtlijnen toevoegen die niet in het bestand bestaan.,
omdat Linux geen bestanden toont die beginnen met een punt, zullen bestanden als .htaccess
niet zichtbaar zijn in FTP. Dit kan een probleem zijn als u Apache wilt gebruiken en wilt werken met .htaccess
.
om vsftpd te dwingen om bestandsnamen te tonen die beginnen met een punt, plakt u het volgende onderaan het bestand. (Om in nano te plakken, druk je op de rechter muisknop)
force_dot_files=YES
ten slotte, laten we enkele poortbereiken toevoegen voor passieve FTP om er zeker van te zijn dat er voldoende verbindingen beschikbaar zijn. Plak het volgende onderaan het bestand., (Om in nano te plakken, druk je op de rechter muisknop)
pasv_min_port=40000pasv_max_port=50000
Als u stap 4.2 eerder hebt gevolgd en alleen wilt dat deze gebruiker bestanden uploadt naar de persoonlijke map, moeten we vsftpd vertellen dat de local_root
de /ftp
map is die we eerder hebben aangemaakt.
voeg deze twee regels niet toe als u wilt dat de gebruiker uploadt naar de root van het webdocument!
user_sub_token=$USERlocal_root=/home/$USER/ftp
We zijn klaar met vsftpd.conf voor het moment, maar zal terugkeren in latere stappen om beveiliging en SSL in te stellen.,
om bestand op te slaan en af te sluiten, drukt u op CTRL
+ X
, drukt u op Y
en drukt u vervolgens op ENTER
.
herstart vsftpd.
sudo systemctl restart vsftpd
Test FTP
We kunnen nu vsftpd testen om te zien of we in kunnen loggen als de gebruiker die we eerder aangemaakt hebben. Wij raden FileZilla aan, die werkt op Windows, Mac en Linux.
voer het IP-adres van uw server, uw FTP-gebruikersnaam en wachtwoord in dat u eerder hebt aangemaakt en klik op Quickconnect.,
hierboven kunnen we zien dat we succesvol verbonden zijn en de web root directory html
wordt weergegeven, hoewel dit op uw server anders kan zijn.
probeer mappen en bestanden te uploaden, maken en bewerken binnen de webmap om er zeker van te zijn dat de rechten correct werken.
u zult merken dat we een waarschuwing hebben in FileZilla ” Status: onveilige server, het ondersteunt geen FTP over TLS.”Het wordt ten zeerste aanbevolen dat u nu TLS zo configureert dat inloggegevens en verkeer worden versleuteld via de FTP-verbinding.,
als je problemen hebt met het inloggen op de FTP server, probeer dan het vsftpd log te controleren. Om de laatste 200 items te bekijken met tail
:
sudo tail /var/log/vsftpd.log -n 200
beveiligde FTP met TLS (optioneel)
is het belangrijk om een paar dingen in gedachten te houden bij het gebruik van FTP – het is standaard niet versleuteld, wat betekent dat uw referenties en bestanden die u verzendt kwetsbaar zijn voor onderschepping. Om dit aan te pakken moet je verbinding maken met vsftpd met behulp van FTPS (FTP over SSL/TLS).
laten we beginnen met het aanmaken van een nieuw certificaat met het openssl
Gereedschap.,
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
u wordt gevraagd om enkele details in te voeren, zoals land, enz. Je hoeft deze niet in te vullen. U kunt gewoon op ENTER
drukken voor standaardwaarden.
nu uw persoonlijke sleutel is aangemaakt, zijn er een paar wijzigingen die we moeten aanbrengen in het vsftpd configuratie bestand.
Open het configuratiebestand in nano
editor.
sudo nano /etc/vsftpd.conf
Zoek de volgende regel: (Opmerking: U kunt zoeken in nano
met CTRL
+ )
ssl_enable=NO
verander het in:
ssl_enable=YES
plak het volgende eronder.
Bestand Opslaan en afsluiten (druk op CTRL
+ X
, druk op Y
en druk vervolgens op ENTER
).
herstart vsftpd.
sudo systemctl restart vsftpd
TLS testen met FileZilla
We kunnen nu TLS testen. Wij raden FileZilla aan, die werkt op Windows, Mac en Linux.,
voer het IP-adres van uw server, uw FTP-gebruikersnaam en wachtwoord in dat u eerder hebt aangemaakt en klik op Quickconnect.
u kunt een onbekende certificaatwaarschuwing te zien krijgen. Klik op dit certificaat altijd vertrouwen in toekomstige sessies en klik op OK.
Als u verbonden bent via TLS, zal het u vertellen in het verbindingslogboek. U ziet ook een hangslot in de rechterbenedenhoek.
u bent klaar!,
Laat me weten of dit geholpen heeft. Volg me op Twitter, Facebook en YouTube, of 🍊 koop een smoothie voor me.
p. s. Ik verhoogde mijn AdSense-omzet met 68% met behulp van AI 🤖. Lees mijn ezoic beoordeling om uit te vinden hoe.
Geef een reactie