IPTABLES Connexion loopback

Fermé
champigland Messages postés 20 Date d'inscription dimanche 21 février 2010 Statut Membre Dernière intervention 20 mars 2013 - 19 mars 2013 à 15:06
cocoche95 Messages postés 1134 Date d'inscription jeudi 29 juillet 2004 Statut Contributeur Dernière intervention 27 novembre 2019 - 20 mars 2013 à 21:08
Bonjour à tous,

J'ai actuellement un serveur web en interne avec une IP de type 192.168.1.x, j'ai sur mon routeur ajouter les règles permettant le nat du port 80 pour qu'il soit bien accessible en externe. Cependant j'aimerais que l'on puisse accéder à mon serveur en interne avec son ip externe. (Ne me dites pas d'utiliser l'ip interne :))

Lorsque je tente d'accéder au serveur avec son ip externe depuis le réseau interne, pour le moment je reste bloqué sur le serveur web du routeur(Normal aucune redirection).

Si quelqu'un sait comment configurer iptables pour autoriser ça ..

4 réponses

mamiemando Messages postés 33268 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 septembre 2024 7 780
19 mars 2013 à 19:40
En fait je pense que la question est mal formulée. Dans l'idée un serveur web n'a pas une IP, à la rigueur tu as un serveur qui écoute sur un port (par exemple 80) et sur une interface réseau particulière (par exemple 127.0.0.1, 192.168.1.10, 0.0.0.0, etc.).

Cette adresse (appelée bind-address) indique sur quelle interface le trafic écoute du trafic
- 127.0.0.1 : trafic local à la machine (en IPv4, 127.0.0.1 désigne "soi-même")
- 192.168.1.10 : trafic venant (uniquement) de l'interface 192.168.1.10
- 11.22.33.44 : trafic venant (uniquement) de l'interface 11.22.33.44
- 0.0.0.0 : trafic venant de n'importe quelle interface réseau
Cette notion est indépendante du type de serveur (et donc ceci s'applique que l'on parle d'un serveur ssh, apache, mysql ou autre)

Si tu utilises apache2 et que tu n'es pas familier avec la configuration d'apache, je t'invite au préalable à lire ceci :
http://www.mistra.fr/tutoriel-linux-serveur-web-apache2.html

Sous apache l'adresse "0.0.0.0" est notée "*" ce qui donnerait pour configurer un virtual host accessible depuis n'importe quelle interface réseau un bloc du genre :

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www
    <Directory />
        # Accès autorisé si l'IP du client est autorisée (Allow)
        # ET pas rejetée (Deny)
        Order Deny,Allow
        
        # On limite l'accès à tout le monde
        Deny from all

        # On n'active aucune option.
        Options None 

        AllowOverride None
    </Directory>
    <Directory /var/www/>
        AllowOverride None
        
        # Accès autorisé si l'IP du client est autorisée (Allow)
        # OU pas rejetée (Deny)
        Order Allow,Deny
        Allow from all

        # Désactiver l'option permettant le parcours d'un répertoire
        Options -Indexes

        # Désactiver l'option permettant apache de suivre des liens
        # symboliques (qui pourrait permettre de quitter /var/www)
        Options -FollowSymLinks

        # Désactiver l'option permettant apache de faire des inclusions 
        # côté serveur
        Options -Includes

        # Désactiver l'option permettant à apache l'utilisation de
        # scripts CGI (si on n'utilise pas de script CGI !)
        Options -ExecCGI

        Options MultiViews
    </Directory>

    # Empêcher le téléchargement des fichiers dont le nom commence
    # par ".ht" (.htaccess ...)
    AccessFileName .httpdoverride
    <Files ~ "^\.ht">
        Order allow,deny
        Deny from all
        Satisfy All
    </Files>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>


Une fois le vhost configuré, vérifie qu'il est ajouté (a2ensite) et relance apache (service apache2 restart)

Bonne chance
0
champigland Messages postés 20 Date d'inscription dimanche 21 février 2010 Statut Membre Dernière intervention 20 mars 2013 1
20 mars 2013 à 13:53
Bonjour,

Tout d'abord, merci de ta réponse.

Mon serveur apache est bien configuré, il écoute bien sur toutes ses interfaces.

Le serveur apache n'est pas le firewall je tiens à préciser et le problème est bien lié au firewall avec ses règles de filtrage.

Je n'ai pas plus d'infos pour le moment, je suis toujours bloqué dessus.

Merci.
0
mamiemando Messages postés 33268 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 septembre 2024 7 780
20 mars 2013 à 19:31
Le serveur apache n'est pas le firewall je tiens à préciser et le problème est bien lié au firewall avec ses règles de filtrage.

Pas compris cette phrase, mais tu peux peut-être nous donner le résultat de netstat -ntlp et le contenu de tes iptables...

Bonne chance
0
cocoche95 Messages postés 1134 Date d'inscription jeudi 29 juillet 2004 Statut Contributeur Dernière intervention 27 novembre 2019 543
Modifié par cocoche95 le 20/03/2013 à 21:08
Salut,

Quand tu dis "Cependant j'aimerais que l'on puisse accéder à mon serveur en interne avec son ip externe." -> quel est l'intérêt, t'as pas du DNS ?

Sinon sur ton iptables entre la commande suivante : 'iptables -t nat -A PREROUTING -d ip_serv_ext -i eth_interne -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.1.x:80'

Voilà.
0