2009-04-03 4 views
16

Ich habe Anwendung gehostet Apache UNIX, und ich erlaube Benutzern den Zugriff auf die Anwendung URL von Citrix-Umgebung (von Citrix-Maschine).Erlauben Anfrage nur von bestimmten IP

Derzeit ist es jedoch möglich, von allen angeschlossenen Maschinen auf die URL zuzugreifen. Ich möchte die Einschränkung, dass es nur von Citrix-Maschine zugegriffen werden sollte, setzen. Wenn jemand darauf zugreifen muss, benötigt er Zugriff auf die Citrix-Maschine.

Ich habe versucht, mit unter:

<Directory /APP> 

    Order Deny,Allow 

    Deny from all 

    Allow from 160.120.25.65 

    Allow from 127 

</Directory> 

es nicht funktioniert hat. Irgendein Vorschlag?

Wenige Antworten mit iptables Lösung, jedoch diese auf Solaris geladen (es hat keine integrierte Firewall zu OS als Linux).

+4

ich kam es nützlich zu finden, obwohl ich zustimmen es ist off-topic. – icedwater

Antwort

36

Dies sollte das tun, was Sie brauchen:

<Directory /APP> 

    Order Allow,Deny 

    Allow from 160.120.25.65 
    Allow from 127.0.0.0/8 

</Directory> 

die mod_authz_host Dokumentation für Details.

-2

Ich würde wahrscheinlich eine Iptables-Regel dafür verwenden. Ich bin mir nicht sicher, was das Beispiel ist, das du gepostet hast, aber du solltest in der Lage sein, fast jede Firewall so zu konfigurieren, dass sie so funktioniert, wie du es willst.

+0

Das ist Teil einer Apache-Konfigurationsdatei. –

+0

iptables funktioniert nicht/schlecht, wenn Sie SNI verwenden. – Izzy

2

Welche Version von Apache verwenden Sie? Die IP-erlaubenden Mechanismen sind, AFAIK, von mod_authz_host, das in 2.2 eingeführt wurde (gut, 2.1 technisch). Wenn Sie 2.2 haben, stellen Sie sicher, dass es nicht kompiliert wurde mit mod_authz_host deaktiviert.

Im Allgemeinen können Sie eine einfachere und robustere Lösung finden, ist die iptables oder andere Firewalling in den anderen Antworten vorgeschlagen.

-1

Ich würde Iptables für diesen Zweck vorschlagen. Legen Sie in den iptables eine Regel fest: Wenn der Zielport die Portnummer Ihres Apache-Rechners ist und die Quell-IP die IP-Adresse des CRITIX-Rechners ist, sollte der Linux-Rechner dieses Paket fallen lassen. Dieser Weg würde Ihr Problem lösen, vorausgesetzt, es gibt keine anderen Anwendungen auf dem Apache Ihrer Maschine, die für alle ips geöffnet sein sollten. Ein Beispiel für die Perspektive Regel könnte sein: -

iptables -I INPUT 1 -s 160.120.25.65 -d <port_of_apache_on_your_machine> -j DROP 

Dieses Ihr Problem lösen sollte, sobald Sie durch seinen richtigen Wert ersetzen

+0

Anwendung gehostet unter UNIX. Kann ich das in der httpd.conf Datei hinzufügen? – Mutant

+0

Sie müssen dies in der .bashrc-Datei des Benutzers, der den Rechner bootet, hinzufügen oder diese als Standardregeln der iptables hinzufügen. Dies wird nicht in der Datei httpd.conf hinzugefügt. –