[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: iptables



Pascal Hambourg a écrit :
François Cerbelle a écrit :
cerdo cyon a écrit :
Bonjour je cherche le moyen de forwarder tout ce qui arrive sur le port 80 vers le port 443 de mon serveur web
iptable -t nat -A PREROUTING  -p tcp -m tcp -d <IPSERVER> --dport 80 -j DNAT --to-port 443
DNAT n'a pas d'option --to-port. Plutôt REDIRECT, ou bien DNAT --to :443
Mais tu risque d'avoir des soucis avec la validation des certificats
ensuite, dans les navigateurs.
Pourquoi, puisque seul le port change et pas l'adresse ?


Oui, je me suis trompé dans ma syntaxe. J'aurais du relire le man et mes scripts avant de répondre.

Il y a le problème du HTTPS recu alors que du HTTP est attendu, et je supposais en effet que le serveur était différent (d'où le <IPSERVER>). Ce qui n'est apparemment pas le cas. Sinon, la résolution inverse de l'IP (celle visible pas le navigateur est celle de la machine iptable) donnera certainement un nom different de celui du véritable serveur (trouvé dans les certificats) et cela risque d'entraîner des plaintes des navigateur en indiquant qu'il y a peut être un homme-dans-le-milieu ;-)

Maintenant, je crois qu'une redirection Apache serait plus efficace, voici celles que je mets habituellement en place pour les services nécessitant une authentification :
<VirtualHost *:80>
        ServerAdmin webmaster@domaine.tld
        DocumentRoot /usr/share/squirrelmail
        ServerName webmail.domaine.tld
        ErrorLog /var/log/apache2/webmail.domaine.tld-error.log
        CustomLog /var/log/apache2/webmail.domaine.tld-access.log combined
        LogLevel warn
        ServerSignature Off
        <IfModule mod_rewrite.c>
                RewriteEngine On
                RewriteRule ^(.*) https://webmail.domaine.tld$1 [R]
        </IfModule>
</VirtualHost>
<VirtualHost *:443>
        ServerAdmin webmaster@domaine.tld
        DocumentRoot /usr/share/squirrelmail
        ServerName webmail.domaine.tld
        ErrorLog /var/log/apache2/webmail.domaine.tld-error.log
        CustomLog /var/log/apache2/webmail.domaine.tld-access.log combined
        LogLevel warn
        ServerSignature Off
        <IfModule mod_ssl.c>
                SSLEngine On
                SSLCertificateFile /etc/apache2/ssl/apache.pem
        </IfModule>
</VirtualHost>

(les deux lignes Rewrite de la premiere section)
L'avantage est que l'utilisateur va voir qu'il est redirigé, va (peut-etre) s'en souvenir, va (peut-etre) avec des signets plus à jour, va (peut-etre) comprendre que l'adresse qu'il tape n'est pas bonne... En tout cas, je ne lui cache pas son erreur pour qu'il puisse la prendre en compte.

Fanfan


Reply to: