Aktive og passive FTP / TFTP-tjenester belastes afbalancering og høj tilgængelighed

SENDT AF Zevenet | 16. august 2017

Oversigt

FTP or File Transfer Protocol er en applikationslagsprotokol, der er meget brugt til filoverførsel i et klientserver-arkitekturdesign, der er afhængig af TCP / IP-netværkslag. FTP er en kompleks og almindelig (ingen sikkerhedsbevidst) protokol, hvilke anvendte porte forhandles på applikationslag mellem klienten og serveren, så det er lidt svært at indlæse balance eller oprette firewallregler. Derudover kan FTP-server og klient opføre sig i aktive eller passive tilstande, hvilket kan beskrives nedenfor.

Nogle funktioner, der leverer FTP, er: 2 TCP-porte (20, 21 som standard) bruges til kontrolkommandoer og en anden til data-, godkendelsesmekanismer, ingen ciphering-support, ascii og binær overførsel, tilgængelige brede kommandoer (katalogoversigt, uploade filer, downloade filer osv.) og iboende TCP-modstandsdygtighed.

TFTP or Trivial FTP er en variation med et hurtigere filoverførende og enklere arkitekturdesign, der kun bruger en UDP-port (69 som standard), ingen godkendelsesmekanismer understøttelse eller kryptering, tre overføringsmåder til rådighed (netascii, octet og mail) og kun grundlæggende kommandoer som upload og download filer.

Både FTP og TFTP-tjenester kan belastes let afbalanceret med Zevenet Load Balancer. Fortsæt læsning for at vide, hvordan man opnår det.

FTP belastningsbalanceringsmiljø

Scenariet, som vi vil opnå i denne artikel, er vist i diagrammet nedenfor.

Enten er der en høj samtidighed af brugere, og det kræves at skalere tjenesten, eller det er en kritisk tjeneste, der skal være høj tilgængelig, en FTP-servicebelastningsafbalancering er nødvendig.

Aktiv FTP-tilstandskonfiguration

An aktiv FTP setup vil kræve at bruge portene 20 og 21 i serverne eller bagsiden. Billedet nedenfor viser, hvordan forbindelsen flyder, når en data skal overføres mellem en klient og en FTP-server.

active_ftp_client_server

I sekvensen vist ovenfor:
1. Klienten beder om serveren via porten 21 en kommando.
2. Serveren anerkender klienten.
3. server initierer dataforbindelsen ved hjælp af dataporten 20.
4. Klienten kvitterer overfor serveren, når den er færdig.

På dette tidspunkt skal vi indstille en belastningsafbalancering mellem både klient og server og tager os derefter af trafikstrømme, initialisering af forbindelser og portaftaler mellem klient og server.

Med Zevenet Load Balancer skal vi opnå denne form for konfiguration ved at skabe en LSLB-gårdsprofil L4xNAT med porte 20,21 og FTP protokol, som det er vist på billedet nedenfor, og indstil endelig backenderne (kræves ikke for at indstille porte).

zevenet_adc_lb_active_ftp_configuration

Klienterne skal oprette forbindelse til VIP-adressen på den nye FTP-bedrift.

Bemærk: Denne konfiguration er gem som skal bruges til både aktive og passive klient / server-tilstande.

Passiv FTP-tilstandskonfiguration

A passiv FTP opsætningen bruger kun porten 21 i serverne eller bagsiden. Billedet nedenfor viser, hvordan forbindelsen flyder, når en data skal overføres mellem en klient og en FTP-server.

passive_ftp_client_server

I sekvensen vist ovenfor:
1. Klienten beder om serveren via porten 21 en kommando.
2. Serveren anerkender klienten.
3. klient initiativer dataforbindelsen ved hjælp af en høj dataport til et applikationslag aftalt port på server side.
4. Serveren kvitterer over for klienten, når den er færdig.

På dette tidspunkt skal vi indstille en belastningsafbalancering mellem både klient og server og tager os derefter af trafikstrømme, initialisering af forbindelser og portaftaler mellem klient og server.

Med Zevenet Load Balancer skal vi opnå denne form for konfiguration ved at skabe en LSLB-gårdsprofil L4xNAT med porten 21 og FTP protokol, som det er vist på billedet nedenfor, og indstil endelig backenderne (kræves ikke for at indstille porte).

zevenet_adc_lb_passive_ftp_configuration

Klienterne skal oprette forbindelse til VIP-adressen på den nye FTP-bedrift.

TFTP-konfiguration

Trivial FTP protokoller anvendes hovedsageligt under PXE (Preboot eXecution Environment) miljøer, der er sammensat af en kombination af DHCP- og TFTP-tjenester, hvor tiere, hundredvis eller endda tusindvis af computere kan implementeres via netværket.

Hovedprotokoladfærden ville være:
1. Klienten beder om serveren via porten 69 en Read Request (RRQ) eller Write Request (WRQ) kommando, herunder filen og overføringsfunktionen.
2. Serveren anerkender klienten og meddeler den nye dataport, der skal bruges.
3. klient initiativer dataforbindelsen til et applikationslag aftalt port på server side.
4. Serveren anerkender klienten, når de seneste 512 bytes er tilbage.

I et miljø, hvor TFTP-tjenesten skal skaleres, er konfigurationen med Zevenet 5 meget let. Det er nødvendigt at oprette en LSLB-gårdsprofil L4xNAT med porten 69 og TFTP protokol, som det er vist på billedet nedenfor, og indstil endelig backenderne (kræves ikke for at indstille porte).

zevenet_adc_lb_tftp_configuration

Klienterne skal oprette forbindelse til VIP-adressen på den nye TFTP-gård.

Sikker FTP

For at løse den forbedrede sikkerhed for FTP-protokollen, skal SSH File Transfer Protocol eller bedre kendt som SFTP var designet til at give et sikkerhedslag. I dette scenario skal FTP-serverne konfigureres som SFTP, og belastningsbalanceringen af ​​dem ville være lige så nemt som at oprette en LSLB med L4xNAT-profil gård over standardporten 22 og protokol TCP som det er vist på skærmbilledet nedenfor. Endelig skal du blot tilføje dine SFTP-tjenestebagend.

zevenet_adc_lb_secure_ftp_sftp_configuration

Klienterne skal oprette forbindelse til VIP-adressen på den nye TCP-gård, der tjener en SFTP-tjeneste.

Avanceret sundhedskontrol

FTP sundhedskontrol

Zevenet apparater omfatter allerede check_ftp sundhedskontrol for FTP-tjenester, så vi kan teste sundhedskontrollen med en opbakning:

root@zevenet:/usr/local/zenloadbalancer/app/libexec# ./check_ftp -H ftp.debian.org
FTP OK - 0.262 second response time on ftp.debian.org port 21 [220 ftp.debian.org FTP server]|time=0.262090s;;;0.000000;10.000000 

På den anden side får vi en output med en down backend:

root@zevenet:/usr/local/zenloadbalancer/app/libexec# ./check_ftp -H ftp.debian.org
CRITICAL - Socket timeout after 10 seconds

Så kommandoen for gårdsbevægelsen til at konfigurere i FTP-gården ville være:

check_ftp -H HOST

På fanen Services skal du sikre, at Farm Guard er konfigureret som vist nedenfor. En timeout på 60 sekunder ville være nok til at sikre en korrekt udførelse af en backend.

zevenet_active_passive_ftp_farm_guardian_advanced_health_check_config

TFTP sundhedskontrol

Hvis check_tftp avanceret kontrol findes ikke allerede i Zevenet-apparatet, vi kan oprette et let sundhedstjekkscript som beskrevet nedenfor for vores TFTP-tjenester.

For det første skal du oprette en dummy-fil i din TFTP-backend-mappe, for eksempel tftp_zevenet_check.txt, og tilføj noget indhold, for eksempel “OK”.

Derefter skal du installere tftp-klienten i din Zevenet-apparat ved at udføre følgende kommando:

apt-get install tftp

Og så skal du oprette en ny scriptfil i Zevenet Health Check Standard Directory, for eksempel /usr/local/zenloadbalancer/app/libexec/check_mytftp.sh med følgende script kode:

#!/bin/bash
###
### Check TFTP services
### Copyright 2017-now Zevenet SL
###
### $1 : Host to be checked
CRITICAL=1
OK=0
RESULT=$(echo get tftp_zevenet_check.txt | tftp $1 2>&1 | head -n 1)

echo "TFTP health check status for $1 is $RESULT"

if [ "`echo $RESULT | grep Received`" != "" ]; then
        exit $OK
else
        exit $CRITICAL
fi

Derefter tildele udførelsesrettigheder med kommandoen:

root@zevenet:/# chmod 755 /usr/local/zenloadbalancer/app/libexec/check_mytftp.sh

Hvis vi forsøger at udføre scriptet, får vi en vellykket besked, når backend er oppe og godt konfigureret:

root@zevenet:/usr/local/zenloadbalancer/app/libexec# ./tftp_check.sh 192.168.101.250
TFTP health check status for 192.168.101.250 is tftp> Received 4 bytes in 0.0 seconds

eller en fejl, når bagsiden er nede:

root@zevenet:/usr/local/zenloadbalancer/app/libexec# ./tftp_check.sh 192.168.101.250
TFTP health check status for 192.168.101.254 is tftp> Transfer timed out.

Endelig konfigurere sundhedskontrollen i TFTP-gården, herunder i kommandoen HOST-token.

check_mytftp.sh HOST

På fanen Services skal du sikre, at Farm Guard er konfigureret som vist nedenfor. En timeout på 60 sekunder ville være nok til at sikre en korrekt udførelse af en backend.

zevenet_tftp_farm_guardian_advanced_health_check_config

SFTP sundhedskontrol

Da der allerede er adgang til sundhedskontrollen check_ssh, vi kan bruge det direkte. Så kommandoen for gårdsbevægelsen til at konfigurere i SFTP-gården ville være som følger:

check_ssh HOST

Derefter ville konfigurationen blive vist, som den er vist i følgende skærmbillede.

zevenet_ssh_sftp_farm_guardian_advanced_health_check_config

Nyd din høje tilgængelige og skalerbare filoverførsel!

Del på:

Dokumentation i henhold til GNU Free Documentation License.

Var denne artikel til hjælp?

Relaterede artikler