FTP: verschil tussen versies

Uit LinuxMintNL WiKi
Ga naar: navigatie, zoeken
(edit en ordenen)
 
(66 tussenliggende versies door 2 gebruikers niet weergegeven)
Regel 1: Regel 1:
'''File-sharing en synchronisatie''' met een FTP server in je thuisnetwerk.
+
'''File-sharing met een FTP server''' in je thuisnetwerk.
  
  
Voor een thuisnetwerk kan een ftp server een goede oplossing zijn om bestanden te delen en te synchroniseren.
+
Voor een thuisnetwerk kan een ftp server een goede oplossing zijn om bestanden te delen.
Met een redelijke computer en router kun je gemakkelijk de maximale snelheid uit je ethernet kabel halen en dan kom je op ruim 100-120 MB/sec bij de overdracht van bestanden. Veel sneller als dat zal het niet worden op een 1Gb netwerk.
+
Met redelijke computers en een router kun je gemakkelijk de maximale snelheid uit je ethernet kabel halen en dan kom je op ruim 115 MB/sec bij de overdracht van bestanden. Veel sneller als dat zal het niet worden op een 1Gb netwerk. Smartphones en tablets kunnen ook goed overweg met ftp.
  
 
Er komt wel het een en ander bij kijken om je thuisnetwerk op te zetten en de juiste software te installeren.
 
Er komt wel het een en ander bij kijken om je thuisnetwerk op te zetten en de juiste software te installeren.
Daar is al veel over geschreven en daarvoor staan aan het eind enkele links om je daarmee verder te helpen.
+
Daar is al veel over geschreven en daarom staan hier voornamelijk links om je daarmee verder te helpen.
In deze post worden vooral een aantal scripts en methoden beschreven waarmee je hele mappen met een ftp server kan synchroniseren.
 
  
 +
== Netwerk ==
 +
Om te beginnen kan het wenselijk zijn om je netwerk met een draadloze router uit te breiden omdat er steeds meer apparaten bijkomen. Voor het uitbreiden van je netwerk is een switch het meest aangewezen apparaat qua kostprijs en eenvoud, maar voor draadloze apparaten of om het bereik van je draadloze netwerk uit te breiden heb je toch wel een router nodig.
 +
Op WikiHow<ref>[https://www.wikihow.com/Cascade-Routers How to Cascade Routers]</ref> staat een heel goed artikel waarin stap voor stap wordt uitgelegd hoe je een router aan je netwerk moet toevoegen zodat de computers en mobiele apparatuur allemaal voor elkaar zichtbaar blijven.
 +
 +
De clou is dat je op de hulp router eerst de dhcp server uitschakelt en vervolgens niet de wan poort maar een lan poort gebruikt om naar de hoofd router te verbinden. Als je de dhcp server niet uitschakelt interfereert die met die van de hoofd router. Dan gaat je net op slot en kan je helemaal overnieuw beginnen.
  
== Eerst de links voor je netwerk en de software ==
+
== FTP server ==
 +
Er zijn verschillende ftp servers. In deze twee artikelen <ref>[https://itsfoss.com/set-ftp-server-linux/ How To Set Up Your FTP Server In Linux]</ref> <ref>[https://linuxconfig.org/how-to-setup-and-use-ftp-server-in-ubuntu-linux How to setup and use FTP Server in Ubuntu Linux]</ref> wordt de installatie besproken van '''vsFTP'''.
  
=== Netwerk ===
+
Je kunt de server overigens gewoon vanuit programmabeheer installeren. De service wordt na installatie automatisch gestart.<br />
Om te beginnen kan het wenselijk zijn om je netwerk met een draadloze router uit te breiden omdat er steeds meer apparaten bijkomen. Voor het uitbreiden van je netwerk is een switch het meest aangewezen apparaat qua kostprijs en eenvoud, maar voor draadloze apparaten of om het bereik van je draadloze netwerk uit te breiden heb je toch wel een router nodig.
+
Op mijn computer werkt de server in stand alone mode en dat gaat prima. Het is zeer eenvoudig.<br />
Op WikiHow staat een heel goed artikel hoe je een router aan je netwerk moet toevoegen zodat de computers en mobiele apparatuur allemaal voor elkaar zichtbaar blijven:
+
 
:'''How to Cascade Routers'''
+
De configuratie gegevens voor de server staan in '''/etc/vsftpd.conf'''. Je hebt root bevoegdheden nodig om dat bestand te kunnen wijzigen. Als je in je bestandsbeheerder naar die map navigeert moet je hem daarom als beheerder openen.<br />
De clou is dat je op de hulp router eerst de dhcp server uitschakelt en vervolgens niet de wan poort maar een lan poort gebruikt om naar de hoofd router te verbinden. Als je de dhcp server niet uitschakelt interfereert die met die van de hoofd router. Dan gaat je net op slot en kan je helemaal overnieuw beginnen.
+
Er is maar één waarde die je daarin hoeft te veranderen:
 +
<syntaxhighlight lang="bash">
 +
write_enable=YES
 +
</syntaxhighlight>
 +
Daarmee sta je toe dat users bestanden kunnen uploaden en verwijderen.
  
=== FTP server ===
+
Controleer voor de zekerheid of local users kunnen inloggen:
Er zijn verschillende ftp servers. In deze twee artikelen wordt de installatie besproken van vsFTP:  
+
<syntaxhighlight lang="bash">
:'''How To Set Up Your FTP Server In Linux'''
+
local_enable=YES
:'''How to setup and use FTP Server in Ubuntu Linux'''
+
</syntaxhighlight>
Op mijn computer werkt de server in stand alone mode en dat gaat prima.
 
  
=== Firewall ===
+
== Firewall ==
 
Met een server alleen ben je er nog niet want je moet er ook voor zorgen dat de clients toegang hebben tot de computer waarop de ftp server draait.
 
Met een server alleen ben je er nog niet want je moet er ook voor zorgen dat de clients toegang hebben tot de computer waarop de ftp server draait.
Dat betekent dat je de firewall moet aanpassen. Een heel handig hulpmiddel hiervoor is UFW.
+
Dat betekent dat je de firewall moet aanpassen. Een heel handig hulpmiddel hiervoor is '''UFW''' <ref>[https://www.digitalocean.com/community/tutorials/how-to-setup-a-firewall-with-ufw-on-an-ubuntu-and-debian-cloud-server How To Setup a Firewall with UFW on an Ubuntu and Debian Cloud Server]</ref> <br />
;'''How To Setup a Firewall with UFW on an Ubuntu and Debian Cloud Server'''
+
Voor ftp zou je de poorten 20 en 21 kunnen openzetten. In mijn eigen ervaring vind ik het beter werken om specifieke ip adressen toegang te geven tot de server. Dat betekent dan wel dat je statische ip adressen in je netwerk moet hebben. Die voer je handmatig in je apparaten in. Je gebruikt dus geen dhcp. De gateway is het adres van je router. In de router doe je IP&MAC binding voor extra veiligheid. Maak een tabel in een tekstdocument of spreadsheet met apparaat, mac adres, ip adres en locatie. Die kun je bijna 1 op 1 in je router zetten bij IP&MAC binding. Sommige laptops hebben kabel en wifi. Dan kunnen ze aparte mac adressen hebben voor kabel en wifi. Die moeten verschillende ip adressen hebben.<br />
Voor ftp zou je de poorten 20 en 21 kunnen openzetten. In mijn eigen ervaring vind ik het beter werken om specifieke ip adressen toegang te geven tot de server. Dat betekent dan wel dat je statische ip adressen in je netwerk moet hebben. Dat configureer ik allemaal in de router samen met IP&MAC binding voor extra veiligheid.
+
Met UFW is het heel eenvoudig om individuele ip adressen van de lokale apparatuur toegang te geven tot de server. Je kunt op de server een client met adres 192.168.1.183 toegang geven via de regel
Met UFW is het heel eenvoudig om individuele ip adressen van de lokale apparatuur toegang te geven tot de server. Je kunt op de server een cliëntFile-sharing en synchronisatie met een FTP server in je thuisnetwerk
+
<syntaxhighlight lang="bash">
 +
sudo ufw allow from 192.168.1.183
 +
</syntaxhighlight>
 +
Meer is het niet.
 +
 
 +
Je kunt het aantal pogingen beperken waarmee een ip-adres een nieuwe verbinding tot stand probeert te brengen. Als een ip-adres meer dan 10 keer in 30 seconden probeert te verbinden zullen alle volgende pogingen worden genegeerd. Dit doe je door de volgende regel toe te voegen aan de firewall:
 +
<syntaxhighlight lang="bash">
 +
sudo ufw limit ftp
 +
</syntaxhighlight>
 +
Dit verbetert de beveiliging van de server.
  
Voor een thuisnetwerk kan een ftp server een goede oplossing zijn om bestanden te delen en te synchroniseren.
+
Om te zien welke apparaten er op je LAN zijn aangesloten kun je de opdracht '''arp-scan'''<ref>[https://linux.die.net/man/1/arp-scan arp-scan]</ref> gebruiken. Voor het uitvoeren van die opdracht heb je root bevoegdheden nodig dus je moet de opdracht door sudo vooraf laten gaan en na enter je wachtwoord invoeren. De uitvoer ziet er dan ongeveer zo uit:
Met een redelijke computer en router kun je gemakkelijk de maximale snelheid uit je ethernet kabel halen en dan kom je op ruim 100-120 MB/sec bij de overdracht van bestanden. Veel sneller als dat zal het niet worden op een 1Gb netwerk.
+
<syntaxhighlight lang="bash">
 +
mogenblue@brutus ~ $ sudo arp-scan --localnet
 +
Interface: eno1, type: EN10MB, MAC: 24:3a:d5:0b:d7:d3, IPv4: 192.168.1.53
 +
Starting arp-scan 1.9.7 with 256 hosts (https://github.com/royhills/arp-scan)
 +
192.168.1.1    40:64:a7:fe:1b:b9 TP-LINK TECHNOLOGIES CO.,LTD.
 +
192.168.1.62 5c:dd:2b:7f:a4:e4 ASUSTek COMPUTER INC.
 +
192.168.1.63 5c:ab:d5:3b:c9:eb Motorola Mobility LLC
  
Er komt wel het een en ander bij kijken om je thuisnetwerk op te zetten en de juiste software te installeren.
+
3 packets received by filter, 0 packets dropped by kernel
Daar is al veel over geschreven en daarom geef ik hier alleen een paar links om je daarmee verder te helpen.
+
Ending arp-scan 1.9.7: 256 hosts scanned in 1.963 seconds (130.41 hosts/sec). 3 responded
In deze post zal ik me vooral concentreren op een aantal scripts en methoden waarmee je hele mappen met een ftp server kan synchroniseren.
+
</syntaxhighlight>
 +
 
 +
== FTP cliënt ==
 +
Als dat allemaal werkt kun je verbinding maken met de server met een ftp cliënt zoals het welbekende '''Filezilla'''. Je kunt de server ook gewoon vanuit je bestandsbeheerder benaderen <ref>[https://www.mycomputertips.co.uk/77 Access FTP server using the Nemo File Manager in Linux Mint]</ref>.
 +
Vanaf een smartphone of tablet vind ik '''CX Explorer''' een heel goede app om met de ftp server te verbinden.
 +
 
 +
Om verbindig te maken met de ftp server heb je drie gegevens nodig:
 +
# het ip-adres van de server
 +
# je username
 +
# het wachtwoord waarmee je inlogt
 +
 
 +
Dat is alles wat je nodig hebt voor handmatig verbinden en bladeren op je thuis server.<br />
 +
Via ftp is de gegevensoverdracht niet versleuteld, maar zolang je binnen je thuisnetwerk blijft maakt dat weinig uit. Als je een beveiligde verbinding wilt hebben kun je beter voor [[SSH]] kiezen.
 +
 
 +
Draadloze overdracht via wifi is standaard versleuteld via het wifi protocol. Voor mobiele apparaten kan het niet versleutelen een snelheidsvoordeel opleveren ten opzichte van [[SSH | sftp]] wat wel versleuteld is. Met wifi kom je met een enkele antenne in je apparaat doorgaans niet hoger dan 433 MHz op de 5GHz band. Dat vertaalt zich in ongeveer 40MB/s maar afhankelijk van de apparatuur, de afstand en het aantal tussenliggende muren kunnen de prestaties ook een stuk lager zijn. Met twee antenennes in je apparaat kom je maximaal tot 866 MHz. Een verhelderend artikel hierover is te vinden op hardware.info:
 +
[https://nl.hardware.info/artikel/8155/4/alles-over-wifi-klaar-voor-80211ax-onbereikbare-snelheden Onbereikbare snelheden]
 +
 
 +
== FTP cliënt scripting ==
 +
Voor het automatisch uploaden, downloaden of synchroniseren van hele mappen heb je een ander programma nodig. Daarvoor komt LFTP om de hoek kijken. Hiermee kun je scripts maken om met een ftp server te synchroniseren. <ref>[https://askubuntu.com/questions/758640/how-to-automatically-sync-the-contents-of-a-local-folder-with-the-contents-of-a How to automatically sync the contents of a local folder with the contents of a ftp folder?]</ref> <ref>[https://lftp.tech/ LFTP - sophisticated file transfer program]</ref>
 +
Met dit programma geef je aan je ftp netwerk een flinke powerboost.<br /><br />
 +
Deze programma's kunnen allemaal gewoon vanuit het programmabeheer worden geïnstalleerd. Daar heb je dus geen '''sudo apt-get''' meer voor nodig.
 +
 
 +
==Test online status FTP server==
 +
Om op een client te controleren of de ftp server online is kan de '''nmap'''<ref>[https://askubuntu.com/questions/925754/checking-ftp-server-online-from-bash-script Checking FTP server online from Bash script?]</ref><ref>[https://www.tecmint.com/nmap-command-examples/ 29 Practical Examples of Nmap Commands for Linux System/Network Administrators]</ref> opdracht worden gebruikt.
 +
 
 +
Als het ip-adres van de server bijvoorbeeld 192.168.1.073 is en de server is online dan ziet de uitvoer in een terminal er ongeveer zo uit:
 +
<syntaxhighlight lang="bash">
 +
mogenblue@Brutus ~ $ nmap 192.168.1.073 -p 21 --open --host-timeout 3
 +
Starting Nmap 7.80 ( https://nmap.org ) at 2021-04-20 10:19 CEST
 +
Nmap scan report for 192.168.1.073
 +
Host is up (0.00050s latency).
 +
 
 +
PORT  STATE SERVICE
 +
21/tcp open  ftp
 +
 
 +
Nmap done: 1 IP address (1 host up) scanned in 0.04 seconds
 +
</syntaxhighlight>
 +
 
 +
Als de server niet online is, of een willekeurig ander ip wordt gebruikt, ziet het er zo uit:
 +
<syntaxhighlight lang="bash">
 +
mogenblue@Brutus ~ $ nmap 192.168.1.078 -p 21 --open --host-timeout 3
 +
Starting Nmap 7.80 ( https://nmap.org ) at 2021-04-20 10:20 CEST
 +
Note: Host seems down. If it is really up, but blocking our ping probes, try -Pn
 +
Nmap done: 1 IP address (0 hosts up) scanned in 3.03 seconds
 +
</syntaxhighlight>
 +
 
 +
FTP werkt gewoonlijk op poort 21. Daarom wordt bij de '''-p''' optie deze waarde meegegeven. Daardoor wordt alleen op die poort gescand.<br />
 +
Door de optie '''--host-timeout''' zal de opdracht na 3 seconden stoppen met wachten op respons.
 +
 
 +
Met het volgende script kan de status in een terminal worden gecontroleerd. Het heet '''test-ftp-status-t.sh''' en dit staat er in:
 +
<syntaxhighlight lang="bash">
 +
#!/bin/bash
 +
 
 +
# vul hier het ip-adres van de ftp-server in
 +
Host='192.168.1.073'
 +
# ftp via port 21
 +
Port=21
 +
TimeOutSeconden=3
 +
 
 +
echo .
 +
echo .
 +
echo .
 +
echo .
 +
 
 +
nmap $Host -p $Port --open --host-timeout $TimeOutSeconden
 +
</syntaxhighlight>
 +
Je hoeft alleen het ip-adres van de ftp-server in te vullen.
 +
 
 +
Als alternatief kun je ook een script gebruiken wat een melding op het scherm geeft. Dit heet '''test-ftp-status-m.sh''':
 +
<syntaxhighlight lang="bash">
 +
#!/bin/bash
 +
 
 +
# vul hier het ip-adres van de ftp-server in
 +
Host='192.168.1.073'
 +
# ftp via port 21
 +
Port=21
 +
TimeOutSeconden=3
 +
Service='FTP'
 +
 
 +
echo .
 +
echo .
 +
echo .
 +
echo .
 +
 
 +
Status=$(nmap $Host -p $Port --open --host-timeout $TimeOutSeconden  | grep open)
 +
 
 +
echo .
 +
echo .
 +
if [[ -z $Status ]]
 +
then
 +
  StatusText="Server op ${Host} is niet online"
 +
else
 +
  StatusText="Server op ${Host} is online"
 +
fi
 +
 
 +
zenity --info --height=100 --width=400 --title="Status $Service server" --text="$StatusText"
 +
</syntaxhighlight>
 +
Je hoeft alleen het ip-adres van de ftp-server in te vullen.
 +
 
 +
Als de host online is zal de grep<ref>[https://www.cyberciti.biz/faq/howto-use-grep-command-in-linux-unix/#Pipes How To Use grep Command In Linux / UNIX With Practical Examples]</ref> opdracht het woord '''open''' vinden in de regel
 +
;21/tcp open  ftp
 +
en dat is de voorwaarde om de status online door te geven.
  
=== FTP cliënt ===
+
De zenity<ref>[https://help.gnome.org/users/zenity/3.24/index.html.en Zenity Manual]</ref> opdracht geeft vervolgens een melding op het scherm. Zenity is een opdracht met uitgebreide mogelijkheden voor input en weergave.
Als dat allemaal werkt kun je verbinding maken met de server met een ftp cliënt zoals het welbekende Filezilla. Je kunt de server ook gewoon vanuit je bestandsbeheerder benaderen.
 
:'''Access FTP server using the Nemo File Manager in Linux Mint'''
 
Vanaf een smartphone of tablet vind ik CX Explorer een heel goede app om met de ftp server te verbinden.
 
Dat is allemaal voor handmatig verbinden en bladeren op je thuis server.
 
  
=== FTP cliënt scripting ===
+
Bij het opslaan van deze scripts moet je bij de Eigenschappen onder de tab Rechten toestaan dat het bestand wordt uitgevoerd als programma.
Voor het automatisch uploaden, downloaden of synchroniseren van hele mappen heb je een ander programma nodig. Daarvoor komt LFTP om de hoek kijken. Hiermee kun je scripts maken om met een ftp server te synchroniseren.
 
:'''How to automatically sync the contents of a local folder with the contents of a ftp folder?'''
 
:'''LFTP - sophisticated file transfer program'''
 
Met dit programma geef je aan je ftp netwerk een flinke powerboost. Dit is het programma dat ik gebruik om een client te synchroniseren met de server.
 
  
Deze programma's kunnen allemaal gewoon vanuit het programmabeheer worden geïnstalleerd. Daar heb je dus geen sudo apt-get meer voor nodig. met adres 192.168.1.183 toegang geven via de regel
+
Beide scripts kunnen met een programmastarter op het buroblad worden geplaatst. Je kunt het icoon bijvoorbeeld veranderen in network-idle. Voor het eerste script met terminal uitvoer moet je bij het aanmaken van de starter aangeven dat de opdracht in een terminal wordt uitgevoerd. Bij die met een melding op het scherm juist niet.
sudo ufw allow from 192.168.1.183
 
Meer is het niet.
 
  
Deze programma's kunnen allemaal gewoon vanuit het programmabeheer worden geïnstalleerd. Daar heb je dus geen ''sudo apt-get'' meer voor nodig.
+
== Referenties ==
  
== Externe linken ==
+
[[Categorie:Internet]]
* [https://www.wikihow.com/Cascade-Routers How to Cascade Routers]
 
* [https://itsfoss.com/set-ftp-server-linux/ How To Set Up Your FTP Server In Linux]
 
* [https://linuxconfig.org/how-to-setup-and-use-ftp-server-in-ubuntu-linux How to setup and use FTP Server in Ubuntu Linux]
 
*  [https://www.digitalocean.com/community/tutorials/how-to-setup-a-firewall-with-ufw-on-an-ubuntu-and-debian-cloud-server How To Setup a Firewall with UFW on an Ubuntu and Debian Cloud Server]
 
* [https://www.mycomputertips.co.uk/77 Access FTP server using the Nemo File Manager in Linux Mint]
 
* [https://askubuntu.com/questions/758640/how-to-automatically-sync-the-contents-of-a-local-folder-with-the-contents-of-a How to automatically sync the contents of a local folder with the contents of a ftp folder?]
 
* [https://lftp.tech/ LFTP - sophisticated file transfer program]
 

Huidige versie van 16 mei 2022 om 17:17

File-sharing met een FTP server in je thuisnetwerk.


Voor een thuisnetwerk kan een ftp server een goede oplossing zijn om bestanden te delen. Met redelijke computers en een router kun je gemakkelijk de maximale snelheid uit je ethernet kabel halen en dan kom je op ruim 115 MB/sec bij de overdracht van bestanden. Veel sneller als dat zal het niet worden op een 1Gb netwerk. Smartphones en tablets kunnen ook goed overweg met ftp.

Er komt wel het een en ander bij kijken om je thuisnetwerk op te zetten en de juiste software te installeren. Daar is al veel over geschreven en daarom staan hier voornamelijk links om je daarmee verder te helpen.

Netwerk

Om te beginnen kan het wenselijk zijn om je netwerk met een draadloze router uit te breiden omdat er steeds meer apparaten bijkomen. Voor het uitbreiden van je netwerk is een switch het meest aangewezen apparaat qua kostprijs en eenvoud, maar voor draadloze apparaten of om het bereik van je draadloze netwerk uit te breiden heb je toch wel een router nodig. Op WikiHow[1] staat een heel goed artikel waarin stap voor stap wordt uitgelegd hoe je een router aan je netwerk moet toevoegen zodat de computers en mobiele apparatuur allemaal voor elkaar zichtbaar blijven.

De clou is dat je op de hulp router eerst de dhcp server uitschakelt en vervolgens niet de wan poort maar een lan poort gebruikt om naar de hoofd router te verbinden. Als je de dhcp server niet uitschakelt interfereert die met die van de hoofd router. Dan gaat je net op slot en kan je helemaal overnieuw beginnen.

FTP server

Er zijn verschillende ftp servers. In deze twee artikelen [2] [3] wordt de installatie besproken van vsFTP.

Je kunt de server overigens gewoon vanuit programmabeheer installeren. De service wordt na installatie automatisch gestart.
Op mijn computer werkt de server in stand alone mode en dat gaat prima. Het is zeer eenvoudig.

De configuratie gegevens voor de server staan in /etc/vsftpd.conf. Je hebt root bevoegdheden nodig om dat bestand te kunnen wijzigen. Als je in je bestandsbeheerder naar die map navigeert moet je hem daarom als beheerder openen.
Er is maar één waarde die je daarin hoeft te veranderen:

write_enable=YES

Daarmee sta je toe dat users bestanden kunnen uploaden en verwijderen.

Controleer voor de zekerheid of local users kunnen inloggen:

local_enable=YES

Firewall

Met een server alleen ben je er nog niet want je moet er ook voor zorgen dat de clients toegang hebben tot de computer waarop de ftp server draait. Dat betekent dat je de firewall moet aanpassen. Een heel handig hulpmiddel hiervoor is UFW [4]
Voor ftp zou je de poorten 20 en 21 kunnen openzetten. In mijn eigen ervaring vind ik het beter werken om specifieke ip adressen toegang te geven tot de server. Dat betekent dan wel dat je statische ip adressen in je netwerk moet hebben. Die voer je handmatig in je apparaten in. Je gebruikt dus geen dhcp. De gateway is het adres van je router. In de router doe je IP&MAC binding voor extra veiligheid. Maak een tabel in een tekstdocument of spreadsheet met apparaat, mac adres, ip adres en locatie. Die kun je bijna 1 op 1 in je router zetten bij IP&MAC binding. Sommige laptops hebben kabel en wifi. Dan kunnen ze aparte mac adressen hebben voor kabel en wifi. Die moeten verschillende ip adressen hebben.
Met UFW is het heel eenvoudig om individuele ip adressen van de lokale apparatuur toegang te geven tot de server. Je kunt op de server een client met adres 192.168.1.183 toegang geven via de regel

sudo ufw allow from 192.168.1.183

Meer is het niet.

Je kunt het aantal pogingen beperken waarmee een ip-adres een nieuwe verbinding tot stand probeert te brengen. Als een ip-adres meer dan 10 keer in 30 seconden probeert te verbinden zullen alle volgende pogingen worden genegeerd. Dit doe je door de volgende regel toe te voegen aan de firewall:

sudo ufw limit ftp

Dit verbetert de beveiliging van de server.

Om te zien welke apparaten er op je LAN zijn aangesloten kun je de opdracht arp-scan[5] gebruiken. Voor het uitvoeren van die opdracht heb je root bevoegdheden nodig dus je moet de opdracht door sudo vooraf laten gaan en na enter je wachtwoord invoeren. De uitvoer ziet er dan ongeveer zo uit:

mogenblue@brutus ~ $ sudo arp-scan --localnet
Interface: eno1, type: EN10MB, MAC: 24:3a:d5:0b:d7:d3, IPv4: 192.168.1.53
Starting arp-scan 1.9.7 with 256 hosts (https://github.com/royhills/arp-scan)
192.168.1.1     40:64:a7:fe:1b:b9	TP-LINK TECHNOLOGIES CO.,LTD.
192.168.1.62	5c:dd:2b:7f:a4:e4	ASUSTek COMPUTER INC.
192.168.1.63	5c:ab:d5:3b:c9:eb	Motorola Mobility LLC

3 packets received by filter, 0 packets dropped by kernel
Ending arp-scan 1.9.7: 256 hosts scanned in 1.963 seconds (130.41 hosts/sec). 3 responded

FTP cliënt

Als dat allemaal werkt kun je verbinding maken met de server met een ftp cliënt zoals het welbekende Filezilla. Je kunt de server ook gewoon vanuit je bestandsbeheerder benaderen [6]. Vanaf een smartphone of tablet vind ik CX Explorer een heel goede app om met de ftp server te verbinden.

Om verbindig te maken met de ftp server heb je drie gegevens nodig:

  1. het ip-adres van de server
  2. je username
  3. het wachtwoord waarmee je inlogt

Dat is alles wat je nodig hebt voor handmatig verbinden en bladeren op je thuis server.
Via ftp is de gegevensoverdracht niet versleuteld, maar zolang je binnen je thuisnetwerk blijft maakt dat weinig uit. Als je een beveiligde verbinding wilt hebben kun je beter voor SSH kiezen.

Draadloze overdracht via wifi is standaard versleuteld via het wifi protocol. Voor mobiele apparaten kan het niet versleutelen een snelheidsvoordeel opleveren ten opzichte van sftp wat wel versleuteld is. Met wifi kom je met een enkele antenne in je apparaat doorgaans niet hoger dan 433 MHz op de 5GHz band. Dat vertaalt zich in ongeveer 40MB/s maar afhankelijk van de apparatuur, de afstand en het aantal tussenliggende muren kunnen de prestaties ook een stuk lager zijn. Met twee antenennes in je apparaat kom je maximaal tot 866 MHz. Een verhelderend artikel hierover is te vinden op hardware.info: Onbereikbare snelheden

FTP cliënt scripting

Voor het automatisch uploaden, downloaden of synchroniseren van hele mappen heb je een ander programma nodig. Daarvoor komt LFTP om de hoek kijken. Hiermee kun je scripts maken om met een ftp server te synchroniseren. [7] [8] Met dit programma geef je aan je ftp netwerk een flinke powerboost.

Deze programma's kunnen allemaal gewoon vanuit het programmabeheer worden geïnstalleerd. Daar heb je dus geen sudo apt-get meer voor nodig.

Test online status FTP server

Om op een client te controleren of de ftp server online is kan de nmap[9][10] opdracht worden gebruikt.

Als het ip-adres van de server bijvoorbeeld 192.168.1.073 is en de server is online dan ziet de uitvoer in een terminal er ongeveer zo uit:

mogenblue@Brutus ~ $ nmap 192.168.1.073 -p 21 --open --host-timeout 3
Starting Nmap 7.80 ( https://nmap.org ) at 2021-04-20 10:19 CEST
Nmap scan report for 192.168.1.073
Host is up (0.00050s latency).

PORT   STATE SERVICE
21/tcp open  ftp

Nmap done: 1 IP address (1 host up) scanned in 0.04 seconds

Als de server niet online is, of een willekeurig ander ip wordt gebruikt, ziet het er zo uit:

mogenblue@Brutus ~ $ nmap 192.168.1.078 -p 21 --open --host-timeout 3
Starting Nmap 7.80 ( https://nmap.org ) at 2021-04-20 10:20 CEST
Note: Host seems down. If it is really up, but blocking our ping probes, try -Pn
Nmap done: 1 IP address (0 hosts up) scanned in 3.03 seconds

FTP werkt gewoonlijk op poort 21. Daarom wordt bij de -p optie deze waarde meegegeven. Daardoor wordt alleen op die poort gescand.
Door de optie --host-timeout zal de opdracht na 3 seconden stoppen met wachten op respons.

Met het volgende script kan de status in een terminal worden gecontroleerd. Het heet test-ftp-status-t.sh en dit staat er in:

#!/bin/bash

# vul hier het ip-adres van de ftp-server in
Host='192.168.1.073'
# ftp via port 21
Port=21
TimeOutSeconden=3

echo .
echo .
echo .
echo .

nmap $Host -p $Port --open --host-timeout $TimeOutSeconden

Je hoeft alleen het ip-adres van de ftp-server in te vullen.

Als alternatief kun je ook een script gebruiken wat een melding op het scherm geeft. Dit heet test-ftp-status-m.sh:

#!/bin/bash

# vul hier het ip-adres van de ftp-server in
Host='192.168.1.073'
# ftp via port 21
Port=21
TimeOutSeconden=3
Service='FTP'

echo .
echo .
echo .
echo .

Status=$(nmap $Host -p $Port --open --host-timeout $TimeOutSeconden  | grep open)

echo .
echo .
if [[ -z $Status ]]
then
  StatusText="Server op ${Host} is niet online"
else
  StatusText="Server op ${Host} is online"
fi

zenity --info --height=100 --width=400 --title="Status $Service server" --text="$StatusText"

Je hoeft alleen het ip-adres van de ftp-server in te vullen.

Als de host online is zal de grep[11] opdracht het woord open vinden in de regel

21/tcp open ftp

en dat is de voorwaarde om de status online door te geven.

De zenity[12] opdracht geeft vervolgens een melding op het scherm. Zenity is een opdracht met uitgebreide mogelijkheden voor input en weergave.

Bij het opslaan van deze scripts moet je bij de Eigenschappen onder de tab Rechten toestaan dat het bestand wordt uitgevoerd als programma.

Beide scripts kunnen met een programmastarter op het buroblad worden geplaatst. Je kunt het icoon bijvoorbeeld veranderen in network-idle. Voor het eerste script met terminal uitvoer moet je bij het aanmaken van de starter aangeven dat de opdracht in een terminal wordt uitgevoerd. Bij die met een melding op het scherm juist niet.

Referenties

  1. How to Cascade Routers
  2. How To Set Up Your FTP Server In Linux
  3. How to setup and use FTP Server in Ubuntu Linux
  4. How To Setup a Firewall with UFW on an Ubuntu and Debian Cloud Server
  5. arp-scan
  6. Access FTP server using the Nemo File Manager in Linux Mint
  7. How to automatically sync the contents of a local folder with the contents of a ftp folder?
  8. LFTP - sophisticated file transfer program
  9. Checking FTP server online from Bash script?
  10. 29 Practical Examples of Nmap Commands for Linux System/Network Administrators
  11. How To Use grep Command In Linux / UNIX With Practical Examples
  12. Zenity Manual