Regola del firewall HTTPS

5

Impostazione della regola del firewall per i siti Web HTTPS sul firewall filtro di pacchetti stateless di base

Questa sembra una domanda stupida, ma come faccio a impostare una regola del firewall per consentire HTTPS su un firewall filtro di pacchetti di base? Lo scopo è che voglio poter navigare su siti come link e caricare tutte le immagini ecc. Come posso impostare questa regola?

Ho impostato le regole in questo modo:

tuoPC- [highport] - > SSLserver: 443

src ip      any
dest ip     any
src port    any
dst port    443
inbound     block
outbound    allow

SSLServer: 443 - > YourPC- [highport]

src ip      any
dest ip     any
src port    443
dst port    any
inbound     allow
outbound    block

Il traffico in uscita sembra OK, ma sto facendo cadere pacchetti come questo (Questo esempio sta caricando una pagina di Twitter, il contenuto di akamai):

23.9.229.210:443 > XXX.XXX.XXX.XXX:62712, AS Seq=###, Ack=-### -Black List Defense
  • Come devo impostare la regola per consentire il caricamento di siti Web https? (non funziona a causa dell'ordine in cui le regole vengono lette dal firewall?)

Altri dettagli:

  • queste regole riguardano il filtro pacchetti incorporato nel mio router
  • questo non è un firewall di stato

Grazie mille

    
posta jubberq 07.05.2013 - 10:48
fonte

4 risposte

6

Supponendo che stai configurando il firewall per permetterti di accedere ai siti Web SSL, allora la configurazione del firewall dipende dal fatto che il firewall sia di stato o meno.

come @TerryChia dice che le porte sul tuo computer locale sono effimere quindi la connessione è

tuoPC- [highport] - > SSLserver: 443

e il percorso di ritorno è SSLServer: 443 - > YourPC- [highport]

Quindi, se il tuo firewall è estremamente vecchio stile, il modo per impostarlo sarebbe quello di consentire tutto il traffico da una porta di origine di 443 a tutte le porte alte sulla tua macchina.

Tuttavia quasi tutti i firewall in questi giorni sono stateful, il che significa che possono riconoscere quando un pacchetto fa parte di una connessione stabilita.

Quindi devi solo consentire al PC di connettersi a 443 in uscita e quindi per l'ingresso consenti tutto il traffico relativo alla connessione stabilita

es. per iptables

sudo iptables -A INPUT -m state --state ESTABLISHED, RELATED -j ACCEPT

    
risposta data 07.05.2013 - 13:55
fonte
2

Stai configurando questo firewall sul tuo server o sul tuo client? Le tue regole (solo in uscita, limitate dalla destinazione) suggeriscono le impostazioni del client [e sembrano corrette in BTW], ma domande e commenti suggeriscono le impostazioni del server.

So molto poco dei firewall, e qualche tempo fa ho chiesto a questa domanda su SF di risolvere un dubbio elementare . Dalle risposte che ho ricevuto, posso dire che il firewall del tuo server dovrebbe avere:

src ip (any)
src port (443)
inbound allow

Per impedire a chiunque di provare a connettersi ad esso tramite una porta diversa da 443 ( avviso: devi abilitare anche la porta SSH / etc, altrimenti sarai bloccato fuori dal tuo server ). Fai questo se la tua preoccupazione è con protezione del server . Le regole in uscita e di destinazione limiteranno le richieste dal tuo server a qualche altra parte saranno disponibili, quindi impostale in base alle tue esigenze.

Se la tua preoccupazione è con protezione del client , dovresti limitare la porta di destinazione (e, meglio ancora, l'ip) a 443 e non consentire le connessioni in entrata (supponendo che il tuo cliente sia non li aspettavo). Quindi il tuo firewall client dovrebbe avere:

dest ip (any [or your server's])
dstn port (443)
inbound block
outbound allow

Nota: anche in questa altra domanda, un firewall stateful permetterà a una macchina che ha ricevuto una richiesta di inviare una risposta allo stesso ip / port indipendentemente dalle impostazioni in uscita e viceversa, ecco perché la tua configurazione non ha bisogno di preoccuparsi delle porte effimere. Es .: il client invia un pacchetto al server (src: 55680, dest: 443), il firewall del client accetta (in uscita ok, dstn ok), il pacchetto viene inviato; la risposta arriva alla stessa porta 55680, ma il firewall lo lascia passare - la regola per bloccare in entrata non si applica qui, poiché è una risposta a una richiesta avviata nella macchina client .

Ecco perché, in modo intuitivo, utilizzi le regole in uscita per proteggere il client , anche se sei preoccupato per i pacchetti in entrata . Anche se blocchi i tutti pacchetti in entrata e hai ancora quelli che contano - le risposte alle tue richieste - arrivano normalmente.

    
risposta data 07.05.2013 - 13:53
fonte
1

Le porte arbitrarie che vedi nei tuoi log sono conosciute come Porte effimere .

Questa non è una situazione specifica per HTTPS. Qualsiasi comunicazione con un server coinvolgerà il tuo cliente utilizzando una porta temporanea per comunicare con una porta definita sul lato server.

Se si desidera limitare l'accesso ai server Web in ascolto sulla porta 443, è sufficiente dirigere il firewall per eliminare i pacchetti con una porta di origine 443. Perché si vorrebbe farlo è un mistero per me.

    
risposta data 07.05.2013 - 10:53
fonte
1

This seems like a stupid question, but how do I set up a firewall rule to allow HTTPS on a basic packet filter firewall?

Generalmente non ci sono domande stupide e questa è una domanda abbastanza legittima da porre, quindi non c'è bisogno di scusarsi. Lascia che provi a spiegarlo nel modo più semplice possibile, senza necessariamente sacrificare la chiarezza e la correttezza.

Nota: mentre chiedi una soluzione ti fornirò alcune informazioni sul motivo per cui potresti non voler fare ciò che stai tentando. Se comprendi pienamente le conseguenze della tua domanda e tutto ciò che comporta sospetto che la mia risposta potrebbe non essere quella che cerchi. Dovresti comunque capire perché la configurazione non è poi così bella, continua a leggere.

È già stato spiegato che ciò che vedi sono le cosiddette porte effimere. Questi vengono allocati dinamicamente dallo stack di rete nel sistema operativo. Perché il mio sistema operativo utilizza queste porte ad alto numero invece di 443, puoi chiedere?

Ci sono diversi motivi, permettimi di evidenziarne alcuni che potrebbero aiutarti a capire perché questo non è necessariamente un problema.

  1. Efficienza di navigazione (rete)
  2. Sicurezza (permessi)

Se dovessi far rispettare il tuo sistema operativo (e il software client) per usare solo la porta 443, ridurrai significativamente l'opportunità per il SO e il browser di utilizzare il parallelismo di rete, qualcosa che viene utilizzato per aumentare la velocità di caricamento della pagina . Vedete, ci sono una serie di limitazioni nel modo in cui HTTP funziona come un protocollo come una singola richiesta alla volta. L'utilizzo di più connessioni per scaricare contenuti è un modo per aiutare a superare questa limitazione; così come il pipeline HTTP.

La seconda ragione sopra menzionata riguarda la sicurezza. La maggior parte dei sistemi operativi considera privilegiate le porte inferiori a 1024 (0-1023). Per consentire a un'applicazione utente di collegare (utilizzare) una di queste porte, sono necessari ulteriori privilegi dall'applicazione (ad esempio l'esecuzione con privilegi amministrativi o l'utilizzo di una particolare funzionalità in Linux, vedere questo .).

Quello che hai identificato di solito non è considerato un problema (per HTTP) con i moderni sistemi operativi in quanto i rispettivi stack di rete sapranno quali pacchetti sono collegati a quali pacchetti.

Se sei ancora preoccupato e semplicemente non sei convinto da nessuna delle risposte fornite per la tua domanda, potresti provare a fare quanto segue. Indagare se il browser può essere limitato a un certo intervallo di porte effimere come 51000-51100. Quindi creare una regola per consentire l'utilizzo di queste porte come porta src in combinazione con dst-port 443.

Tuttavia, tieni presente che la limitazione del tuo sistema operativo e del software client a queste porte potrebbe avere conseguenze impreviste in quanto potrebbero esserci altre applicazioni che utilizzano queste porte effimere che hai appena assegnato.

TL; DR - Non preoccuparti delle porte effimere utilizzate durante la navigazione, fidati del fatto che il sistema operativo gestisca correttamente i pacchetti associati e correlati. Imponi dst-port e sii felice con quello. :-)

    
risposta data 07.05.2013 - 14:31
fonte

Leggi altre domande sui tag