Waar de VPN-bescherming ophoudt op weg naar een FTP-server
Een VPN dekt de route tot zijn gateway, niet het traject daarna. Onderscheid gewone FTP, FTPS en SFTP en verifieer daarna het datakanaal en de identiteit van de tegenpartij.
Een VPN beschermt een route, en een route heeft een einde. Wanneer de tunnel eindigt bij een bedrijfsgateway, gaat de bestandsoverdracht van daaruit verder onder de bescherming die het eigen protocol biedt. Dat onderscheid bepaalt of een overdracht van begin tot eind beschermd is of alleen tot de gateway. De indicator Connected zegt over geen van beide iets.
Twee plaatsingen, twee resterende routes
Neem een laptop die verbinding maakt met een bedrijfs-VPN en daarna een FTP-sessie opent naar een aparte interne server. De tunnel stopt bij de gateway, en het traject van de gateway naar die server ligt erbuiten.
Gewone FTP krijgt geen versleuteling omdat de pakketten via een tunnel zijn aangekomen. Op dat resterende traject reizen de opdrachten, de inloggegevens en de bestandsinhoud precies zoals het protocol het bepaalt, dus in klare tekst. Of dat ertoe doet hangt af van de topologie en van wat het traject nog meer beschermt, en het adres privé noemen beantwoordt de vraag niet. Dezelfde redenering geldt omgekeerd wanneer de server in een cloudnetwerk staat dat de gateway via nog een sprong bereikt.
Zet het VPN-eindpunt en de FTP-dienst op één machine, en er is geen volgend traject om je zorgen over te maken. Dat is een andere plaatsing, geen bewijs dat de processen, bestanden en inloggegevens van de host veilig zijn.
Gewone FTP, FTPS en SFTP zijn drie beslissingen
Gewone FTP versleutelt niets, ook het wachtwoord niet. FTPS voegt TLS toe aan FTP, zodat het besturingskanaal en, wanneer dat wordt onderhandeld, het datakanaal beschermd zijn. SFTP is een ander protocol dat binnen SSH wordt gedragen, en het is geen andere spelling van FTPS.
De server moet die keuze ondersteunen, want een client kan geen luisteraar verzinnen die er niet is. SFTP kiezen maakt van een dienst met alleen FTP geen SSH-eindpunt, en een bladwijzer hernoemen of een poort wijzigen bewijst niets over wat is onderhandeld. Bevestig het protocol zowel aan de serverkant als aan de clientkant. Een slot in een bestandsbeheerder is een bewering over de sessie, niet over de luisteraar erachter.
| Protocol | Usual port | What it protects | Identity check |
|---|---|---|---|
| FTP | 21 | Nothing on the wire | None beyond the login |
| FTPS | 21 or 990 | Control channel, data channel when required | TLS server certificate |
| SFTP | 22 | The whole session inside SSH | SSH host key |
Lees de laatste kolom wanneer de overdracht ertoe doet, want daar duikt een onverwachte identiteitswijziging op.
De dataverbinding is een tweede verbinding
FTP opent een besturingsverbinding en daarna aparte dataverbindingen voor lijsten en overdrachten. Een beschermde login zegt niets over die latere verbindingen, tenzij de uitrol ook voor die verbindingen bescherming eist.
Bij FTPS vraagt de client via een specifiek commando om een beschermd datakanaal, en een serverbeleid kan het onversleutelde alternatief weigeren. Controleer dat het beleid dat eist in plaats van aan te nemen dat de standaardinstelling van de client volstaat. Passieve modus voegt een tweede complicatie toe, omdat de server een adres en poort voor de dataverbinding aankondigt. Een firewall of NAT-apparaat dat die aankondiging herschrijft of blokkeert, levert een sessie op die zich authenticeert en vervolgens bij de eerste lijst blijft hangen.
curl -vk ftps://files.corp.example/ --user alice --ftp-ssl-control
openssl s_client -connect files.corp.example:21 -starttls ftp
ss -tnp | grep -E ':21|:990'
Het tweede commando toont wat de server op het besturingskanaal presenteert voordat een bestand wordt aangeraakt. Het derde toont of er ooit een dataverbinding tot stand kwam, wat het verschil is tussen een authenticatiefout en een fout in passieve modus.
Identiteitscontroles overleven de tunnel
Een FTPS-client valideert de identiteit van een TLS-server, en een SFTP-client valideert een SSH-hostsleutel. Beide controles horen bij het bestandsoverdrachtprotocol, en geen ervan wordt door de VPN uitgevoerd.
Die scheiding is belangrijk wanneer iets in het midden de sessie wil inspecteren. TLS uitschakelen zodat een netwerkapparaat de opdrachten kan lezen, verandert het beschermingsmodel in plaats van het te voltooien, en hetzelfde geldt voor het accepteren van een onverklaarde hostsleutel omdat de tunnel omhoogkwam. Behoud de bedoelde vertrouwensconfiguratie en haal het juiste materiaal bij de operator. Een tunnel die authenticeert zegt niets over de server aan het verre uiteinde.
Materiaal voor persoonlijke sleutel en certificaat voor deze protocollen is weer een derde geheim, los van de VPN-inloggegevens.
Noteer wat je werkelijk hebt geverifieerd
Kies een onschadelijk bestand dat je mag verplaatsen, en noteer vier feiten over de poging: welk protocol liep, welke identiteit van de tegenpartij is gecontroleerd, welke route was bedoeld, en of de overdracht is afgerond.
lftp -u alice -e "set ftp:ssl-protect-data true; ls; bye" ftps://files.corp.example
sftp -v [email protected]
Een mapoverzicht, een tunnellogin en een voltooide overdracht zijn drie afzonderlijke waarnemingen, en alleen de laatste zegt dat de route voor bestanden werkt. Als het ontwerp voor vertrouwelijkheid op de resterende sprong alleen op de VPN vertrouwt, schrijf dat dan op als de beslissing die het is. Een acceptatienota die de sprong en de vertrouwensaanname noemt, is meer waard dan een schermafbeelding van een verbonden client.