Newsgroup: it.comp.reti.locali
Titolo: Http -> Https, iptables o apache?

Vorrei forzare le connessioni che arrivano al server web alla porta 80
(http) sulla 443 (https). Ho provato a mettere una regola di redirect sul
firewall iptables:
iptables -t nat -A PREROUTING -p tcp -d $ServerWeb --dport 80 -j REDIRECT
--to-port 443
Cosě la porta dei pacchetti viene effettivamente cambiata, ma il browser
che tenta di accedere non apre la pagina, probabilmente perchč
nell'indirizzo rimane http e non https. E' possibile cambiare qualcosa a
livello di firewall/nat per far funzionare il redirect?
Altrimenti per spostare tutte le connessioni sulla 443 devo usare i moduli
di Apache (qui ho la versione 1.33, in un altro server la 2)?
Grazie, in rete non ho trovato un howto.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 di Apache (qui ho la versione 1.33, in un altro server la 2)?
Un redirect o una regola di rewrite.
-- 
Skull & Bones (ER6n Silver)
Neo:  I know Sendmail!
Morpheus:  Show me.

 Un redirect o una regola di rewrite.
Mi vado a documentare, grazie per l'indicazione.


> perchè nell'indirizzo rimane http e non https.
esatto il che significa che il browser che sta usando una
NORMALE connessione viene reindirizzato su SSL senza
saperlo.. ed ovviamente la faccenda non funge; invece di
usare un regola in iptables io utilizzerei una redirect HTML
in pratica basterebbe creare una pagina "index" vuota (per
il webserver HTTP) che contenga un "META redirect" verso
"https://....." in questo modo le richieste indirizzate alla 80
verrebbero correttamente reindirizzate alla 443 e CON l'uso
di SSL; ovviamente l'index fornito su SSL sarà diverso, in
caso contrario.. andrà tutto in loop :D
ciao

 Mi vado a documentare, grazie per l'indicazione.
Beh .. c'č poco da documentarsi :D
<html>
<head>
<title>redirecting</title>
<meta http-equiv="refresh"
content="3;url=
https://www.miosito.com/main.html
">
</head>
<body>
<br><br>
<center>
Redirecting to the <A href="
https://www.miosito.com/main.html
">secure
site</A>
</center>
<br><br>
</body>
</html>
quando sopra, salvato come "index.html" nella root del sito
effettua un redirect HTTPS alla pagina "main.html" sul sito
stesso facendo esattamente quello che ti serve :D
ciao

 ...
L'ideale sarebbe fare un collecamente senza indicare nè il dominio nè
l'ip, qualcosa del tipo 
https://localhost/main.html
naturalmente localhost non funziona, ma un collegamento "locale" sarebbe
migliore poichè non sono sicur che il domionio o l'ip del server
rimarranno tali in futuro.
Poi naturamente le pagine "sicure" sotto https saranno su un virtualhost
non accessibile tramite porta 80 altrimenti basta mettere http al posto di
https per evitare l'SSL!


 l'ip, qualcosa del tipo 
Una cosa tipo
 RewriteEngine on
 RewriteCond %{HTTPS} !^on$ [NC]
 RewriteRule . https://%{HTTP_HOST}%{REQUEST_URI}
Probabilmente fa al caso tuo...
Un consiglio: leggiti la documentazione di mod_rewrite.


  RewriteRule . https://%{HTTP_HOST}%{REQUEST_URI}
uffah .. lo so che cosě funziona.. mi chiedevo solo perchč
complicarsi la vita quando un semplice pezzo di HTML
avrebbe comunque risolto la faccenda.. vabbč .. :-D

 https per evitare l'SSL!
Uhmmmm.. TUTTA stà faccenda mi puzza di "security through obscurity"
da qualche centinaio di Km di distanza; mi sa che stai sbagliando approccio
ti consiglierei di rivedere il tutto, magari facendoti consigliare da
qualcuno;
non pretendo che tu posti la *vera* domanda qui (anche se sarebbe una
buona cosa) però per lo meno, non cercare di mettere in piedi dei trucchi
del kaiser dato che per esperienza nel 99% dei casi NON servono a NULLA
ciao

 del kaiser dato che per esperienza nel 99% dei casi NON servono a NULLA
La situazione "reale" è questa: sto mettendo in piedi una rete virtuale
sulla quale saranno effettuati dei test di sicurezza (attacchi e relativa
analisi log per trovare contromisure), quindi vorrei abilitare alcuni
servizi e tra questi la connessione tramite https. Nello stesso tempo
vorrei tenere anche la normale porta 80 aperta. Così ho pensato che l'home
page del server che risponde alla porta 80 potrebbe fare un redirect verso
la 443. Ma in pratica penso funzioni così anche in tutti i siti che
utilizzano https, normalmente l'utente digita http non https, quindi da
qualche parte deve essere indirizzato verso l'altra porta.
Il fatto che gli indirizzi ip potranno cambiare è legato alla
"portabilità" della rete virtuale.
Niente di segreto ;-)
Ciao


 Ciao
ok; quindi il problema è la "portabilità" beh, le soluzioni sono diverse; si
va
dall'uso di un "rewrite" in apache all'utilizzo di script "server side"
(php, js ecc.)
in quest'ultimo caso la pagina "index" accessibile sulla 80 sarebbe (es.)
una
pagina "php" che genererebbe "al volo" il redirect usando il nome host
opportuno.. et voilà :)