Apache mit mehrern Domains hinter einem FLI4L-Router

0. Vorbemerkung :
Dieses Howto richtet sich explizit nur an Leute, die wissen, was sie tun!

Das Lesen von weiteren Dokumentationen ist dringend notwendig.

Die vorgestellten conf-Dateien und Änderungen an den Skripten laufen bei dem Autor ohne Probleme. Auch unter anderen Voraussetzungen müssten sie mit den entsprechenden Anpassungen problemlos laufen. Dafür übernimmt der Autor aber keinerlei Garantie!

Die vorliegende Version vom November 2001 hat einige Vereinfachungen und Korrekturen erfahren.

Für weitere Anregungen und Verbesserungen ist der Autor immer sehr dankbar.

1. Ziel :

Du möchtest mehrere Domains auf deinem Server hinter einem FLI4L-Router hosten.

2. Voraussetzung:

Server : SuSE 7.2 mit Apache
Router : FLI4L 2.0.1 mit opt_dyndns
(In der jetzigen Version auch mit FLI4L 2.0.6 erprobt)

Ein Account bei dyndns.org

3. Annahmen :

Router : anton 192.168.1.89
Server : elsa 192.168.1.92
Client : ingo 192.168.1.94
Hauptdomain : roessler.dnsalias.net
zweite Domain : fis.dnsalias.net
dritte Domain : zweiwieden.dnsalias.net

Das FLI4L-Verzeichnis auf der Windowskiste liegt unter C:\fli4l

4. Vorgehen :

4.1 Apache

Zur Apache-Konfiguration wollte sich der Autor hier nicht groß auslassen, da diese selbst gut dokumentiert ist.

Damit der Apache auf verschiedene Domains reagieren kann, ist die Einrichtung sogenannter Virtueller Hosts (VH) notwendig.

Auszug aus der /etc/httpd/httpd.conf:

NameVirtualHost *

<VirtualHost *>
</VirtualHost>

# FIS-VH
<VirtualHost *>
ServerName www.fis.dnsalias.net
ServerAlias *.fis.dnsalias.net
ServerAdmin roessler@gmx.de
DocumentRoot /home/fis1/public_html
ErrorLog /home/fis1/public_html/log/error_log
TransferLog /home/fis1/public_html/log/access_log
ScriptAlias /cgi-bin/ /home/fis1/public_html/cgi
</VirtualHost>

# zweiwieden-VH
<VirtualHost *>
ServerName www.zweiwieden.dnsalias.net
ServerAlias *.zweiwieden.dnsalias.net
ServerAdmin roessler@gmx.de
DocumentRoot /home/zweiwieden/
ErrorLog /home/zweiwieden/log/error_log
TransferLog /home/zweiwieden/log/access_log
ScriptAlias /cgi-bin/ /home/zweiwieden/cgi
</VirtualHost>

Die Domain roessler.dnsalias.net wird im Hauptserver-Bereich definiert:

### Section 2: 'Main' server configuration

Port 80
User wwwrun
Group nogroup
ServerAdmin roessler@gmx.de
ServerName www.roessler.dnsalias.net

Die Dokumentation des Apache sei aber nochmals jedem ans Herz gelegt, der seine Suse-Standard-Installation verschlimmbessern will.

4.2 Dyndns

Bei www.dyndns.org kann man sich eigene Subdomain in ausreichenden Masse besorgen. Auch dort findet man Hilfe für alle Probleme, die entstehen könnten.

Für unser Problem ist es wichtig, dass bei allen Subdomains, die Du einrichten willst, das Häkchen bei "Enable Wildcard" gemacht wird.

4.3 FLI4L

Der Router muss natürlich auch angepasst werden.

4.3.1 Packetfilter

Natürlich muss der Port 80 in der C:\fli4l\config\base.txt freigeschaltet werden:

FIREWALL_DENY_PORT_6='54:79 DENY'
FIREWALL_DENY_PORT_7='81:109 DENY'

4.3.2 Portforwarding

Weiterhin muss in der C:\fli4l\config\base.txt portforwarding aktiviert werden und der Port 80 auf den Server verweisen.

OPT_PORTFW='yes' # install port forwarding tools/modules
PORTFW_N='1' # how many portforwardings to set up
PORTFW_1='80 192.168.1.92:80 tcp'

4.3.3 DNS

Zur Lösung des nun folgenden DNS-Problem gibt es drei Lösungen. Die kleine Lösung ist völlig ausreichend, gerade für User, die nicht soviel am orginal FLI4L ändern wollen.

4.3.3.1. Die kleine Lösung:

In der C:\fli4l\config\base.txt folgende Einträge machen - fertig!

#------------------------------------------------------------------------------
# Domain configuration:
#------------------------------------------------------------------------------
START_DNS='yes' # start dns server: yes or no
DNS_FORWARDERS='62.225.244.197 # DNS server
DNS_VERBOSE='no' # log queries in /usr/local/ens/ens.log
DOMAIN_NAME='roessler.dnsalias.net' # your domain name

DNS_FORBIDDEN_N='0'

HOSTS_N='17' # number of hosts in your domain
HOST_1='192.168.1.89 anton' # 1th host: ip and name
HOST_2='192.168.1.92 elsa www www.fis.dnsalias.net www.zweiwieden.dnsalias.net' # 2th host: ip and name
HOST_3='192.168.1.94 ingo' # 3th host: ip and name

4.3.3.2. Die schöne Lösung:

Folgende Variante beschert uns eine richtig schöne ens.conf.

Die Konfigurationsdatei des DNS-Servers ens auf dem Router unter /usr/local/ens/ens.conf muss folgendermassen geändert werden (bitte vorher ein Backup der orginalen ens.conf mit "cp ens.conf ens2.conf" machen und später die acls vergleichen!)

logfile /ens.log

SOA roessler.dnsalias.net anton.roessler.dnsalias.net root.roessler.dnsalias.net 2002041501 28800 7200 604800 86400
MX roessler.dnsalias.net elsa.roessler.dnsalias.net 10
NS roessler.dnsalias.net anton.roessler.dnsalias.net
ZONE roessler.dnsalias.net

127.0.0.1 localhost.roessler.dnsalias.net
192.168.1.89 anton.roessler.dnsalias.net fli4l.roessler.dnsalias.net
192.168.1.92 elsa.roessler.dnsalias.net www.roessler.dnsalias.net mail.roessler.dnsalias.net
192.168.1.94 ingo.roessler.dnsalias.net

PTR 1.0.0.127.in-addr.arpa localhost
PTR 89.1.168.192.in-addr.arpa anton.roessler.dnsalias.net
PTR 92.1.168.192.in-addr.arpa elsa.roessler.dnsalias.net
PTR 94.1.168.192.in-addr.arpa ingo.roessler.dnsalias.net

SOA zweiwieden.dnsalias.net anton.roessler.dnsalias.net root.roessler.dnsalias.net 2002041501 28800 7200 604800 86400
MX zweiwieden.dnsalias.net elsa.zweiwieden.dnsalias.net 10
ZONE zweiwieden.dnsalias.net
192.168.1.92 elsa.zweiwieden.dnsalias.net www.zweiwieden.dnsalias.net mail.zweiwieden.dnsalias.net

SOA fis.dnsalias.net anton.roessler.dnsalias.net root.roessler.dnsalias.net 2002041501 28800 7200 604800 86400
MX fis.dnsalias.net elsa.fis.dnsalias.net 10
ZONE fis.dnsalias.net
192.168.1.92 elsa.fis.dnsalias.net www.fis.dnsalias.net mail.fis.dnsalias.net

forwarder 62.225.244.197
forwarder 194.25.2.129
forwarder 194.25.2.130
forwarder 145.253.2.11
forwarder 66.37.218.207
forwarder 216.7.11.132
forwarder 64.71.191.27
forwarder 212.100.224.176
forwarder 66.37.218.208

forward_max 10000
forward_entry_timeout 50
forward_next_timeout 5

ACL dns.allow 192.168.1.
ZONE 1.168.192.in-addr.arpa
ACL dns.allow 127.0.0.1
ACL dns.deny $
ACL dynamic.deny $

cache_max 10000

Die Einträge nach den PTR-Records aus der orginalen ens.conf sollten ohne Veränderung übernommen werden!

Nun die neue ens.conf dem DNS-Server ens schenken:

/bin/chown ens /usr/local/ens/ens.conf
/bin/chgrp ens /usr/local/ens/ens.conf

Den ens mit
ps | grep ens
(pid des ens merken)
kill -HUP <ENS-PID>
zum Neueinlesen der Konfiguration zwingen. Und mit
ping yahoo.de
die Funktion testen.

Falls das klappt, muss nun sichergestellt werden, dass die ens.conf beim nächsten Reboot erhalten bleibt.

Dazu sind folgende Änderungen notwendig:

Füge ein in C:\fli4l\opt\base.txt

dns ens files/usr/local/ens/ens.conf

Kopiere Deine neue ens.conf nach C:\fli4l\opt\files\usr\local\ens\ens.conf .

In C:\fli4l\opt\etc\opt\etc\rc.d\dns ist zusätzlich folgende Änderung zu machen:

...
/bin/chown -R ens /usr/local/ens
/bin/chgrp -R ens /usr/local/ens

# Eintrag-Start, wenn eigene ens.conf verwendet wird.
if [ -f /opt/files/usr/local/ens/ens.conf ]
then
mv /usr/local/ens/ens.conf /usr/local/ens/ens_org.conf
cp /opt/files/usr/local/ens/ens.conf /usr/local/ens/ens.conf
fi

4.3.3.3. Die gute Lösung:

Der Einsatz von BIND ist natürlich am schönsten und besten, würde dieses kleine HowTo aber erstmal sprengen.

4.3.4 dyndns

Im OPT_DYNDNS ist folgende Änderung nur notwendig, wenn "Enable Wildcard"(s.o.) noch nicht per Hand aktiviert wurde und der Einsatz von sendmail geplant ist :

Ändere bitte noch in C:\fli4l\opt\etc\dyndns.conf Folgendes:

#PROVIDER_DYNDNS_REQUEST_URL='/nic/update?system=dyndns&hostname=${DYNDNS_HOST}.${DYNDNS_DOMAIN}&wildcard=NOCHG&offline=NO&myip=\${MYIP}'
PROVIDER_DYNDNS_REQUEST_URL='/nic/update?system=dyndns&hostname=${DYNDNS_HOST}.${DYNDNS_DOMAIN}&wildcard=ON&mx=${DYNDNS_HOST}.${DYNDNS_DOMAIN}&backmx=YES&offline=NO&myip=\${MYIP}'

5. Ergebnis

Nun sind alle Domains/Virtuelle Host sowohl von Innen, wie von Aussen unter derselben Adresse im Browser verfügbar :

http://www.roessler.dnsalias.net
http://www.fis.dnsalias.net
http://www.zweiwieden.dnsalias.net

Viel Spass damit!

6. Todo

Sendmail wird noch ergänzt, deshalb der Hinweis auf die mx-records

7. Danksagung

Ganz herzlich möchte ich mich beim FLI4L-Team, der Maillingliste und insbesondere Frank Meyer für den FLI4L-Router und den damit verbundenen Support bedanken. Dank auch an Jens Fischer (soth@gmx.net), denn von ihm kam ein ganz entscheidener Tipp bezüglich der VH beim Apache.
Weitere Anregungen die einflossen, kamen von Michael Löffler (nimrod@n1mrod.de) und Christian Schubert (Parnassos@SAILHORSE.in-Berlin.de)

Dieses Howto soll ein wenig zurückgeben.

Ingo Rößler
http://www.roessler.dnsalias.net


Klicken Sie hier, um die Seite auszudrucken.

Klicken Sie hier, um die Seite auszudrucken.