Bloquer l'accès a une page web ou une ip depuis l'exterieur

Bonjour,

J’ai fait un pare feu iptables il n’y a pas longtemps et j’aimerais bloquer des accès.

J’ai un serveur avec une ip publique et résolution de nom, on peut accéder à une des pages web du serveur mais j’aimerais justement qu’on n’ai pas l’accès sur cette page depuis l’exterieur, mais accès que depuis notre vpn interne.

Par exemple : depuis chez moi je peux accéder à la page centreon du serveur, et je ne devrai pas.
Donc je souhaite bloquer juste cette page, on ne doit y accéder que part le vpn interne de l’entreprise.
Quelques chose du genre : $IPTABLES -A OUTPUT -p tcp --sport 80 -s X.X.X.X/centreon/
Où les X.X.X.X sont donc l’@IP publique ou le nom DNS peu importe.

Es ce possible avec iptables ?

Merci

A mon avis iptables n’est pas fait pour cela, mai bon sa reste a confirmer.
regarde du coter de apache ou d’un autre soft qui pourrait servir de filtre . :think:

oui, regarder du côté de la configuration du serveur web (pour Apache, directives Allow/Deny)

Merci pour vos réponses

Ah ok et bien je vasi regarder ce que je peux faire du coté de apache mais deja je ne trouve pas comment y accéder en interface web :confused: . Une idée ?
Car j’ai accès en ligne de commande sur un serveur linux mais il y a des centaines de fichiers ^^’

Merci

alors je te suggère un petit :
vi /etc/apache2/sites-available/vhosts

Tu trouves la ligne du virtualhost de ton centreon
<VirtualHost *:80>
ServerName centreon.tondomaine.com
DocumentRoot…
<Directory …>
Options …
Order deny,allow
Allow from 127.0.0.1

Après je t’avoue que je ne sais pas mettre une range d’ip (si par exemple tu veux que ton centreon soit accessible pour toutes les machines ayant une ip de ton domaine) sinon tu contournes ton problème.
Je m’explique : tu mets centreon accessible depuis internet (avec une redirection chez ton hebergeur du style centreon.tondomaine.com) et dans le fichier vhost tu mets un petit " Allow from IPInternetdelaconnexionauboulot".
Ce que j’ai fait pour mon intranet perso =p

Je confirme : iptables n’est pas fait pour faire du filtrage de couche applicative, car c’est bien de cela qu’il s’agit. Il ne s’occupe pas de quel URL est demandé par le client, mais seulement de la connexion TCP entre le client et le serveur. A régler dans la configuration du serveur web.

Bonjour,
Merci pour vos réponses,

Ducou au lieu de bloquer la page, je vais mettre du https au moins
J’ai suivi cette procédure :http://gtsup.fr/2012/08/10/connexion-securisee-https-sur-nagios-et-centreon/ et cela ne fonctionne pas, sa procédure n’est pas la bonne ? :confused:

Merci

J’ai essayé aussi ce lien : doc.ubuntu-fr.org/tutoriel/secur … 2_avec_ssl
et rien :frowning: ça ne fonctionne pas

Voici ma configuration :

/etc/apache2/sites-available/default

[code]#NameVirtualHost X.X.X.X:443
<VirtualHost *:443>

Redirect / https://X.X.fr/centreon/main.php

    Redirect / https://X.X.fr/
    ServerName X.X.fr/

    ServerAdmin webmaster@localhost

    DocumentRoot /var/www
    <Directory />
            Options FollowSymLinks
            AllowOverride None
    </Directory>
    <Directory /var/www/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride None
            Order allow,deny
            allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
            AllowOverride None
            Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
            Order allow,deny
            Allow from all
    </Directory>

    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

RewriteEngine on

RewriteCond %{HTTPS} off

RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R]

[/code]

/etc/apache2/sites-available/default-ssl :

[code]

#<VirtualHost *:443>
ServerAdmin webmaster@localhost

    DocumentRoot /var/www
    <Directory />
            Options FollowSymLinks
            AllowOverride None
    </Directory>
    <Directory /var/www/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride None
            Order allow,deny
            allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
            AllowOverride None
            Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
            Order allow,deny
            Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

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

    CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined

    #   SSL Engine Switch:
    #   Enable/Disable SSL for this virtual host.
    SSLEngine on

    #   A self-signed (snakeoil) certificate can be created by installing
    #   the ssl-cert package. See
    #   /usr/share/doc/apache2.2-common/README.Debian.gz for more info.
    #   If both key and certificate are stored in the same file, only the
    #   SSLCertificateFile directive is needed.

SSLCertificateFile /usr/local/nagios/certificat/private/ca.crt

SSLCertificateKeyFile /usr/local/nagios/certificat/private/ca.key

    SSLCertificateFile /etc/apache2/ssl/apache.pem

SSLCertificateKeyFile /usr/local/nagios/certificat/private/ca.key

    #   Server Certificate Chain:
    #   Point SSLCertificateChainFile at a file containing the
    #   concatenation of PEM encoded CA certificates which form the
    #   certificate chain for the server certificate. Alternatively
    #   the referenced file can be the same as SSLCertificateFile
    #   when the CA certificates are directly appended to the server
    #   certificate for convinience.
    #SSLCertificateChainFile /etc/apache2/ssl.crt/server-ca.crt

    #   Certificate Authority (CA):
    #   Set the CA certificate verification path where to find CA
    #   certificates for client authentication or alternatively one
    #   huge file containing all of them (file must be PEM encoded)
    #   Note: Inside SSLCACertificatePath you need hash symlinks
    #         to point to the certificate files. Use the provided
    #         Makefile to update the hash symlinks after changes.
    #SSLCARevocationPath /etc/apache2/ssl.crl/
    #SSLCARevocationFile /etc/apache2/ssl.crl/ca-bundle.crl

    #   Client Authentication (Type):
    #   Client certificate verification type and depth.  Types are
    #   none, optional, require and optional_no_ca.  Depth is a
    #   number which specifies how deeply to verify the certificate
    #   issuer chain before deciding the certificate is not valid.
    #SSLVerifyClient require
    #SSLVerifyDepth  10
    #   Access Control:
    #   With SSLRequire you can do per-directory access control based
    #   on arbitrary complex boolean expressions containing server
    #   variable checks and other lookup directives.  The syntax is a
    #   mixture between C and Perl.  See the mod_ssl documentation
    #   for more details.
    #<Location />
    #SSLRequire (    %{SSL_CIPHER} !~ m/^(EXP|NULL)/ \
    #            and %{SSL_CLIENT_S_DN_O} eq "Snake Oil, Ltd." \
    #            and %{SSL_CLIENT_S_DN_OU} in {"Staff", "CA", "Dev"} \
    #            and %{TIME_WDAY} >= 1 and %{TIME_WDAY} <= 5 \
    #            and %{TIME_HOUR} >= 8 and %{TIME_HOUR} <= 20       ) \
    #           or %{REMOTE_ADDR} =~ m/^192\.76\.162\.[0-9]+$/
    #</Location>

    #   SSL Engine Options:
    #   Set various options for the SSL engine.
    #   o FakeBasicAuth:
    #     Translate the client X.509 into a Basic Authorisation.  This means that
    #     the standard Auth/DBMAuth methods can be used for access control.  The
    #     user name is the `one line' version of the client's X.509 certificate.
    #     Note that no password is obtained from the user. Every entry in the user
    #     file needs this password: `xxj31ZMTZzkVA'.
    #   o ExportCertData:
    #     This exports two additional environment variables: SSL_CLIENT_CERT and
    #     SSL_SERVER_CERT. These contain the PEM-encoded certificates of the
    #     server (always existing) and the client (only existing when client
    #     authentication is used). This can be used to import the certificates
    #     into CGI scripts.
    #   o StdEnvVars:
    #     This exports the standard SSL/TLS related `SSL_*' environment variables.
    #     Per default this exportation is switched off for performance reasons,
    #     because the extraction step is an expensive operation and is usually
    #     useless for serving static content. So one usually enables the
    #     exportation for CGI and SSI requests only.
    #   o StrictRequire:
    #     This denies access when "SSLRequireSSL" or "SSLRequire" applied even
    #     under a "Satisfy any" situation, i.e. when it applies access is denied
    #     and no other module can change it.
    #   o OptRenegotiate:
    #     This enables optimized SSL connection renegotiation handling when SSL
    #     directives are used in per-directory context.
    SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire

<FilesMatch “.(cgi|shtml|phtml|php)$”>

SSLOptions +StdEnvVars

<Directory /usr/lib/cgi-bin>

SSLOptions +StdEnvVars

    #   SSL Protocol Adjustments:
    #   The safe and default but still SSL/TLS standard compliant shutdown
    #   approach is that mod_ssl sends the close notify alert but doesn't wait for
    #   the close notify alert from client. When you need a different shutdown
    #   approach you can use one of the following variables:
    #   o ssl-unclean-shutdown:
    #     This forces an unclean shutdown when the connection is closed, i.e. no
    #     SSL close notify alert is send or allowed to received.  This violates
    #     the SSL/TLS standard but is needed for some brain-dead browsers. Use
    #     this when you receive I/O errors because of the standard approach where
    #     mod_ssl sends the close notify alert.
    #   o ssl-accurate-shutdown:
    #     This forces an accurate shutdown when the connection is closed, i.e. a
    #     SSL close notify alert is send and mod_ssl waits for the close notify
    #     alert of the client. This is 100% SSL/TLS standard compliant, but in
    #     practice often causes hanging connections with brain-dead browsers. Use
    #     this only for browsers where you know that their SSL implementation
    #     works correctly.
    #   Notice: Most problems of broken clients are also related to the HTTP
    #   keep-alive facility, so you usually additionally want to disable
    #   keep-alive for those clients, too. Use variable "nokeepalive" for this.
    #   Similarly, one has to force some clients to use HTTP/1.0 to workaround
    #   their broken HTTP/1.1 implementation. Use variables "downgrade-1.0" and
    #   "force-response-1.0" for this.

BrowserMatch “MSIE [2-6]” \

nokeepalive ssl-unclean-shutdown \

downgrade-1.0 force-response-1.0

    # MSIE 7 and newer should be able to use keepalive

BrowserMatch “MSIE [17-9]” ssl-unclean-shutdown

[/code]

Et /etc/apache2/ports.conf :

[code]# If you just change the port or add more ports here, you will likely also

have to change the VirtualHost statement in

/etc/apache2/sites-enabled/000-default

This is also true if you have upgraded from before 2.2.9-3 (i.e. from

Debian etch). See /usr/share/doc/apache2.2-common/NEWS.Debian.gz and

README.Debian.gz

#NameVirtualHost *:80
#Listen 80

# If you add NameVirtualHost *:443 here, you will also have to change # the VirtualHost statement in /etc/apache2/sites-available/default-ssl # to # Server Name Indication for SSL named virtual hosts is currently not # supported by MSIE on Windows XP. NameVirtualHost *:443 Listen 443 Listen 443 [/code]

Donc bien sur tout ce qu’il y a en commenté n’est peut etre pas bon, car j’ai vu une quinzaine de configuration différente pour le https sur apache … donc pas super u_u"

Donc avez vous une idée de comment configurer apache pour qu’il renvoi une page en https ???
Car moi aucune configuration ne fonctionne, je n’ai pas d’erreur mais cela ne fonctionne pas quand meme ^^’’

voir ici, c’est la source :wink:

wiki.apache.org/httpd/RedirectSSL

Et pourquoi pas une page ouvrable avec un MDP ?
Seuls ceux qui ont ce MDP y auraient accès.
Moi, c’est ainsi que je pratique.

Heu oui pourquoi pas mais une page avec mot de passe en http qui n’est donc pas crypté, le mot de passe circule en clair sur le réseau. C’est exactement ce que je ne veux pas.

J’ai bien fait ce qu’il y a dans ton lien aussi Agentsteel, rien à faire, quand je me connecte en https, ça mouline, ça mouline mais rien :frowning:

Une question tout de meme, à quoi sert la ligne “DocumentRoot” ? car moi j’ai /var/www
Et sur mon serveur dans /var/www j’ai que index.html qui correspond donc à la page par defaut de apache : “It’s Work …”

C’est peut etre ça qui bloque ?

Merci

Salut,
Au plus simple:

.htaccess avec liste ip autorisées, le reste interdit.
Pour le mot de passe il suffit de forcer https avec un mod-rewrite.

à mon avis faut revoir la config Apache, faire au plus simple et séparer les virtualhosts http de ceux en https (la config par défaut sous Debian en gros)

donc ton fichier sites-available/default ne devrait contenir que des virtualhosts sur le port 80, ainsi que les directives de redirection vers HTTPS (cf. lien du wiki apache)

et le fichier sites-available/default-ssl, ne contenir que les vhosts en 443 (https donc)

Merci pour vos réponses

Oui et bien c’est déjà ce que j’ai sur mon serveur.

Les fichiers de commandes que j’ai mis sur le forum un peu plus haut c’est ce que moi j’ai fait. Mais qui ne fonctionne pas. En fait ce que j’aimerais faire c’est des connexions utilisateurs https seulement.

Mais cela ne fonctionne pas

J’ai aussi testé le mod_rewrite et toujours rien :frowning:

Vous avez besoin que je vous envoi quelques chose pour pouvoir m’aider je pense ?
Je ne comprend pas pourquoi cela ne fonctionne pas, ça n’a pas l’air compliqué

Merci

Déjà j’ai pensé à modifier ceci peut etre non ?
=> à la place de DocumentRoot /var/www il faudrai pas que je mette /usr/local/centreon/www
???

J’ai essayé cela ne fait rien mais peut etre qu’il y a une autre manip à faire en meme temps ?

le mieux c’est de (re)lire la doc

httpd.apache.org/docs/2.2/fr/vhosts/

Bonjour,

En fait c’est réglé, un gros soucis de ma part, il y a une box branchée sur ce serveur qui n’acceptai pas le https :confused: , donc tout fonctionne maintenant.

Merci pour votre aide.

POST RESOLU