Limitazione dei privilegi FTP su Windows Server

2

Attualmente ho un Windows 2012 Server che funziona come un server web che esegue IIS. Uso Filezilla per ospitare un server FTP per consentire ai client alcuni FTP di accedere ai propri siti Web.

Ho configurato l'account FTP con facilità e sono in grado di accedere alla cartella del loro sito web. Tuttavia, desidero davvero approfondirlo ulteriormente e renderlo effettivamente sicuro. Al momento non c'è nulla che li fermi caricando il file .exe ed eseguito sul sito web, per hackerare il mio server.

Come posso limitare i file che caricano solo ad alcune estensioni desiderate come PHP, JS e disabilitare la ridenominazione delle entità (per impedirgli di modificare l'estensione in .exe come esempio). Inoltre, ci sono altre misure di sicurezza che potrei prendere?

Per favore dimmi se ho perso qualche informazione. Si prega di non rispondere con commenti come "Se non ti fidi di loro, non dare l'accesso" in quanto questo è fuori tema

    
posta Jimmy Jane 17.02.2016 - 20:20
fonte

3 risposte

1

Per prima cosa - FTP è un protocollo deprecato secondo IETF. È stato deprecato a favore di protocolli sicuri come SFTP. Consiglio di utilizzare solo SFTP e di non utilizzare FTP, poiché i comandi FTP e i nomi utente / password vengono inviati in testo normale. Chiunque monitora la rete dell'utente (ad es. Un coffee shop wifi) potrebbe ottenere la password e accedere facilmente al proprio account.

Detto questo, il server FileZilla ha una funzione chiamata "Filtri nome file", ma non viene applicata al server e può essere utilizzata solo dal client. Quindi, non c'è modo nel server FileZilla secondo la documentazione che vedo fare questo. Detto questo, i file dannosi possono essere facilmente file javascript o semplicemente non avere estensioni o masquerade come estensione legittima come .html. Se un exploit viene eseguito per in qualche modo richiamare il codice in quei file (ad esempio, essendo eseguito tramite un altro eseguibile - come un bug nel server di filezilla, così apparentemente filezilla.exe sta eseguendo questo codice), non importa quale sia l'estensione del file era, come quel codice sarà eseguito. Pertanto, la mancanza di supporto del server per questo filtro non rappresenta una perdita per la sicurezza.

Quindi, limitare le estensioni dei nomi di file può fornire un minore aumento della sicurezza; ma non è sicuramente un toccasana né impedirebbe a un utente malintenzionato esperto di sfruttare il tuo sistema, quindi probabilmente il motivo per cui il supporto non è implementato nel server FileZilla. Invece, consideralo come una piccola parte di un programma completo di "best practice" per limitare l'accesso, incluso l'uso di protocolli sicuri come SFTP, sicurezza del server (ad es. Standard di protezione CIS), installazione di aggiornamenti regolari, protezione antivirus, firewall e / o rilevamento delle intrusioni, aggiornando regolarmente il server FileZilla, eccetera.

    
risposta data 17.02.2016 - 20:38
fonte
1

Prima di tutto, consiglio vivamente di bloccare FTP e consentire solo FTPS / FTPES (FTP su SSL / TLS implicito / esplicito). SFTP sarebbe anche meglio, più firewall friendly, intrinseca segretezza in avanti ... ma FileZilla Server non supporta SFTP.

Detto questo, consiglierei di utilizzare un software server che ti permetta di fare due cose essenziali:

  1. Impedisci la ridenominazione dei file
  2. Esegui il tuo script al verificarsi di determinati eventi (come il caricamento di file)

Guarda il seguente script, ad esempio:

var
  FirstBytes, PEBytes : string;
begin
  FirstBytes := FileReadAsHex(ObjectName, 0, 2);
  PEBytes := FileReadAsHex(ObjectName, 256, 4);
  if ((FirstBytes = '4D5A') and (PEBytes = '50450000')) then
  begin
    // It's an EXE, delete it!
    FileDelete(ObjectName);
  end;
end.

Lo script semplice di cui sopra può identificare un EXE di Windows leggendo due particolari posizioni a 2 byte nella sua intestazione. Se il tuo server FTP (S) può eseguire tale script ogni volta che viene caricato un file, il tuo server dovrebbe identificare tutti i file EXE, inclusi quelli caricati con un'estensione contraffatta , ed eliminarli immediatamente quando vengono caricati .

Sfortunatamente FileZilla Server non ha la capacità di eseguire automaticamente gli script al caricamento del file (o al verificarsi di eventi, in pratica non ha questa funzionalità) ma ci sono altri server che possono farlo. Disclaimer: sono l'autore di uno di questi server.

Riferimenti: link

    
risposta data 20.05.2016 - 18:37
fonte
1

IMHO stai gestendo il lato sbagliato del bastone. È un problema di sicurezza, quindi la prima domanda è "qual è la minaccia qui?" . Se ho capito bene, vuoi proteggere il tuo sistema da un caricamento offensivo.

Dovresti configurare diverse linee di difesa qui:

  • proteggere il protocollo di autenticazione per evitare che gli hacker possano abusare troppo facilmente degli account legittimi. Altre risposte spiegano che FTPS (FTP su SSL o TLS) è più sicuro perché le credenziali non vengono mai inviate in formato testo. IPSEC (over IPv6) è un'altra opzione equivalente su un punto di vista securit
  • cerca di limitare le possibilità sul lato server di accettare solo le estensioni conosciute. Beh, dovresti farlo se il tuo server lo ha permesso, ma sfortunatamente FileZilla non è molto ricco di funzionalità su quel punto. Forse potresti dare un'occhiata a ProFTPD che è molto più ricca ma richiede Cygwin. Ad ogni modo, i file PHP possono ferire un server perché sono eseguiti sotto l'account del server con tutti i privilegi del server - Ok l'interprete PHP può essere configurato per limitare i rischi, ma i difetti erano comuni in quella parte, quindi IMHO questa parte non è la più robusta
  • limitare le possibilità del server stesso. Non conosco specificamente IIS, ma le buone pratiche raccomandano che un server HTTP venga eseguito con un account non amministrativo dedicato. Quindi dovresti assicurarti che anche se il server dovesse eseguire comandi arbitrari, il danno dovrebbe essere limitato alla zona del server. Anche in questo caso, non utilizzo Windows per ospitare server HTTP, quindi non posso dire molto di più.

IMHO, le linee più importanti qui sono 1 e 3. 3 protegge il sistema host e 1 consente di sapere chi è responsabile di cosa. Insieme alle corrette procedure di backup e analisi dei log, dovrebbero essere più efficienti di 2.

Detto questo, il mio consiglio è che sarebbe molto più semplice costruire un server HTTP che consenta l'accesso FTPS o SFTP sotto sistemi Unix come Linux o xxxBSD. Qui troverai server molto più configurabili e probabilmente più riferimenti sul WEB (o qui ...) su come configurarli in modo sicuro. Ovviamente, se IIS è richiesto, questa non è più un'opzione, almeno per la parte HTTP.

    
risposta data 17.03.2017 - 10:15
fonte

Leggi altre domande sui tag