tomcat

QuickTipp: Apache Tomcat 7 bestimmte IP Adressen erlauben oder sperren

Tomcat Logo

Auch im Tomcat ist es möglich einen Schutz auf Basis von IP Adressen für bestimmte Webseiten zu definieren. Im Apache funktioniert der IP Zugriffschutz via .htaccess Datei. Im Tomcat gibt es zwar keine .htaccess Dateien allerdings ist es über die  server.xml Konfigurationsdatei sehr einfach einen IP Adressen Schutz einzubauen

Tomcat Zugriff nur von localhost erlauben:

Die Einstellung RemoteAddrValve erlaubt die Verwendung von Regular Expressions (RegEx), wodurch es ziemlich einfach ist bestimmte IP Bereiche zu verwenden. Folgender Bereich wird zB. für den localhost auf IPv4 und IPv6 Basis angewendet. Bedeutet also dass nur die localhost IP Range 127.x.x.x und die IPv6 localhost IP 0:0:0:0:0:0:0:1 zugelassen sind. (Werte werden durch | (pipe) getrennt:

<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|0:0:0:0:0:0:0:1"/>

Tomcat Zugriff nur von bestimmten IP Adressen erlauben

Hier ist ein weiteres Beispiel damit die Verwendung der Regular Expressions (RegEx) verdeutlicht wird. Also werden jetzt zB:. nur IP Adressen aus dem Bereich 192.168.x.x und 10.x.x.x und die externe IP Adresse 8.8.8.8 zugelassen. Der Valve Wert dafür würde so aussehen:

<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="192\.186\.\d+\.\d+|10\.\d+\.\d+\.\d+|8.8.8.8"/>

Tomcat Zugriff von bestimmten IP Adressen sperren bzw. verweigern

Natürlich ist es auch möglich bestimmte IP Adressen oder Bereiche explizit zu sperren. Dazu wird nicht der Wert “allow” sondern “deny” verwendet. In folgendem Beispiel wird der Zugriff vom IP Bereich 10.10.x.x und der IP 8.8.8.8 auf unseren Host verweigert:

<Valve className="org.apache.catalina.valves.RemoteAddrValve"
deny="10\.10\.\d+\.\d+|8.8.8.8"/>

Den Valve Wert in die server.xml einbauen

Dazu wird die entsprechende Tomcat Konfigurationsdatei (server.xml) editiert und an der benötigten Stelle (Engine, Host, oder Context) der valve Eintrag hinzugefügt. An meinem Beispiel füge ich den Eintrag in der Hosts Konfiguration hinzu damit die Einstellung für den gesamten Hosteintrag vhost.domain.com gilt.

 <Host name="vhost.domain.com" appBase="webapps"
            unpackWARs="true" autoDeploy="true">
             <Context path=""
               docBase="/usr/local/tomcat/webapps/examples"
               debug="0" reloadable="true" />
             <Valve className="org.apache.catalina.valves.RemoteAddrValve"
               allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1"/>
      </Host>

Weitere Infos direkt in der Tomcat Documentation

Tags: , , , , , ,

Dienstag, November 13th, 2012 Linux, WebServer Keine Kommentare

QuickTipp: Tomcat 7 Directory Listing aktivieren

Tomcat LogoIm Apache Tomcat ist standardmäßig das Auflisten von Dateien in einem Verzeichnis (directory listing) deaktiviert. Wer das Feature jedoch benötigt kann es ganz einfach in der Serverkonfiguration aktivieren

Dazu wird die Datei /usr/local/tomcat/conf/web.xml (Verzeichnis kann natürlich je nach verwendetem Installationspfad abweichen) mit dem Lieblingseditor editiert und der “param-name” Wert für listings auf “true” gesetzt. In folgendem Beispiel Zeile 10:

vi /usr/local/tomcat/conf/web.xml
<servlet>
<pre>    <servlet-name>default</servlet-name>
    <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
    <init-param>
        <param-name>debug</param-name>
        <param-value>0</param-value>
    </init-param>
    <init-param>
        <param-name>listings</param-name>
        <param-value>true</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

Der Tomcat muss im Anschluss neu gestartet werden damit die Änderung greift:

/etc/init.d/tomcat stop
/etc/init.d/tomcat start

Link: Tomcat 7 default Servlet

Tags: , , , , ,

Montag, August 20th, 2012 WebServer Keine Kommentare

HowTo: Tomcat 7 Installation via mod_jk und Apache vHosts unter Debian

Tomcat Logo

Tomcat LogoDa der Apache Webserver wesentlich leistungsfähiger und flexibler als der integrierte Webserver des Tomcat ist, ist es sinnvoll diesen auch einzusetzen. Zusätzlich können wir auf die Apache Module zurückgreifen und das vHost Management verwenden. Die Lösung wird via dem Apache Modul mod_jk realisiert, welches sämtliche Webserveranforderungen über das AJP Protokoll an den Tomcat weiterleitet.

Vorbereitung

*) Apache Tomcat 7 Installation wie in diesem HowTo beschrieben

*) Apache Webserver Installation (mod_jk kann auch in bestehende Installationen integriert werden)

aptitude install apache2

Installation und Konfiguration des mod_jk Apache Moduls

Das mod_jk Apache Modul kann bequem über das Debian Repository installiert werden:

aptitude install libapache2-mod-jk

Debian installiert dabei bereits die entsprechende Beispielkonfiguration mit, welche wir für unsere Zwecke editieren. Wenn die Tomcat Installation noch bei der Standardinstallation belassen wurde, müssen nur die ersten beiden Werte angepasst werden.

vi /etc/libapache2-mod-jk/workers.properties
workers.tomcat_home=/usr/local/tomcat
workers.java_home=/usr/lib/jvm/java-7-oracle
ps=/
worker.list=ajp13_worker
worker.ajp13_worker.port=8009
worker.ajp13_worker.host=localhost
worker.ajp13_worker.type=ajp13
worker.ajp13_worker.lbfactor=1

In folgendem Schritt erstellen wir die Apache Modul Konfigurationsdatei für mod_jk mit folgenden Werten (Nur bei Debian 6 Squeeze notwendig) Wheezy erstellt die Konfiguration bereits in der Datei /etc/apache2/mods-enabled/jk.conf:

vi /etc/apache2/conf.d/mod-jk.conf
JkWorkersFile /etc/libapache2-mod-jk/workers.properties
JkLogFile /var/log/apache2/mod_jk.log
JkLogLevel error
JkShmFile /var/log/apache2/jk-runtime-status

› Continue reading

Tags: , , , , , , , ,

Dienstag, Juni 12th, 2012 Linux, WebServer 12 Kommentare

HowTo: Tomcat 7 StandAlone unter Debian Squeeze und Wheezy installieren

Tomcat Logo

Da der Apache Tomcat 7 noch nicht in den Standardrepositories und auch nicht in den Backports von Debian enthalten ist, zeige ich in diesem Tutorial wie man den Tomcat 7 als Standalone Variante ganz einfach unter Debian Squeeze und Wheezy installiert. Ergänzend dazu folgt noch ein Tutorial zur Einbindung in den Apache Webserver via mod_jk

Vorbereitung

Damit der Tomcat unter Debian läuft benötigen wir Java. Wie die Installation funktioniert ist hier beschrieben:
*) Java 6 Installation
*) Java 7 Installation

Tomcat 7 downloaden und entpacken

Die aktuellste Apache Tomcat Version (bei meinem Stand: 7.0.42) von der Herstellerwebseite downloaden und entpacken. Ich verwende wie immer das Verzeichnis /usr/src

cd /usr/src
wget http://www.eu.apache.org/dist/tomcat/tomcat-7/v7.0.42/bin/apache-tomcat-7.0.42.tar.gz
tar -xzvf apache-tomcat-7.0.42.tar.gz

Linux User und Gruppe für Tomcat anlegen

In folgenden Schritten legen wir einen eigenen Linux User (tomcat) + zugehöriger Gruppe (tomcat) für unseren Tomcat Server an. Das Home Verzeichnis des Users wird dabei auf das Installationsverzeichnis unseres Tomcat gesetzt. Ich verwende /usr/local/tomcat, kann aber auch auf ein anderes Verzeichnis geändert werden. Zusätzlich geben wir den User in die Gruppe www-data welche vom Apache verwendet wird.

groupadd tomcat
useradd -g tomcat -d /usr/local/tomcat tomcat
usermod -G www-data tomcat

› Continue reading

Tags: , , , , , , , ,

Donnerstag, Mai 31st, 2012 Linux, WebServer 10 Kommentare

Tomcat 6 mit MOD_JK (Apache Tomcat Connector) unter Windows in IIS Integrieren

Tomcat Logo

Um den Tomcat Webserver unter Windows in den IIS zu integrieren, bedarf es einiger manueller Konfigurationsarbeit, welche ich in diesem HowTo genauer beschreiben möchte

Damit Microsofts IIS (Internet Information Services) mit dem Tomcat spricht und den Inhalt der Tomcat Instanz ausliefern kann,  gibt es das “Apache Tomcat Connector” Plugin (Beim Apache Webserver auch als mod_JK bezeichnet). Das Plugin implementiert dem IIS das notwendige AJP (Apache JServ Protocol).

Ich persönlich bin eigentlich eher abgeneigt gegen Windows bzw. Windows Web Servern, da ich in der Linux Welt zuhause bin. Wenn es dennoch sein muss und die Anforderung zur Integration des Tomcats in den IIS besteht, muss man über seinen Schatten springen und eine entsprechende Lösung implementieren. Der Guide beschränkt sich hierbei auf den IIS6 unter Windows Server 2003

Voraussetzungen:

  • Eine installierte Tomcat Instanz: egal ob auf dem selben Server und ob Windows oder Linux
  • Der AJP 1.3 Connector muss in der server.xml des Tomcats aktiviert sein (StandardPort ist 8009)
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
  • Der AJP 1.3 Connector Port (8009) muss von dem entsprechenden Windows Server erreichbar sein

Download der IIS Erweiterung:

Der “Apache Tomcat Connector” kann direkt von der Homepage der Apache Software Foundation heruntergeladen werden. Ich verwende hier die aktuelle stable Version “jk-1.2.30″ für 32bit. Die benötigte Datei trägt den Namen isapi_redirect-1.2.30.dll. Direktlink. Bei einem 64bit System ist unbedingt die 64bit Version zu empfehlen, da sonst der ISAPI Filter nicht geladen wird.

Die Datei kann natürlich in ein beliebiges Verzeichnis gelegt werden. Ich habe aber gerne alle Komponenten beisammen und lege sie daher in mein tomcat/bin Verzeichnis: (D:\apache-tomcat-6.0.26\bin)

Registry Keys und Konfigurationsfiles erstellen

Unter Windows ist es leider notwendig bestimmte Registry Keys und Konfigurationsdateien manuell zu erstellen und anzupassen. Für Schreibfaule habe ich ein Paket mit den Registry Keys und den Configfiles zusammengestellt welches ihr hier downloaden könnt. Ihr müsst diese dann lediglich noch für eure Bedürfnisse anpassen. Wer die Keys manuell erstellen will, der kann hier weiterlesen:

› Continue reading

Tags: , , , , , , ,

Mittwoch, März 24th, 2010 Windows 1 Kommentar
Hosting-Lösungen (VPS, Dedicated Server, Webspace und Colocation) von Contabo

Subscribe to our mailing list

* indicates required Email Adresse *
Werbung schalten

*=Affiliatelink

Blogverzeichnis - Blog Verzeichnis bloggerei.de