Apache als Reverse Proxy für Exchange 6.5

Soll das Webinterface des Exchange Servers auch aus dem Internet verfügbar sein ist es möglicherweise keine so gute Idee das direkt erreichbar zu machen sondern eher den Indianer mit einer weiteren Authentifizierung vorzuschalten.Und das geht unter OpenBSD 3.8 mit dem chrooted Apache so:
Die Konfiguration für den virtuellen Host schaut so aus:

VirtualHost *:443
ServerName host.extern.dom
DocumentRoot “/var/www/htdocs”
SSLEngine on
SSLCertificateFile /var/www/certs/cert.cert
SSLCertificateKeyFile /var/www/certs/cert.key
ProxyRequests Off
Directory proxy:*
Order deny,allow
Deny from all
AuthName “WebMail”
AuthType Basic
AuthUserFile /var/www/etc/user
require valid-user
Satisfy any
/Directory
ProxyPass /exchange https://host.extern.dom/exchange/
ProxyPassReverse /exchange https://host.extern.dom/exchange/
ProxyPass /exchweb/ https://host.extern.dom/exchweb/
ProxyPassReverse /exchweb/ https://host.extern.dom/exchweb/
ProxyPass /public https://host.extern.dom/public/
ProxyPassReverse /public https://host.extern.dom/public/
ProxyPass /iisadmpwd https://host.extern.dom/iisadmpwd/
ProxyPassReverse /iisadmpwd https://host.extern.dom/iisadmpwd/
NoCache *
/VirtualHost
Zu beachten sind jedoch folgende Punkte:

– es muss im www-root/etc eine hosts Datei existieren, welche die interne ip auf den externen Namen auflöst:

xxx.xxx.xxx.xxx host.extern.dom

– in der Apacheconfig muss das modul libproxy.so aktiviert sein und dieses ist nach /var/www/usr/lib/apache/modules/libproxy.so kopiert werden.

Der Indianer muss wissen, dass er auch auf den https port lauscht, am Ende der Config einfach folgendes einfügen:

Listen 443
Listen 80

und der Parameter für KeepAlive sollte auf Off stehen.

TFTP-Server

Benötigt man unter OpenBSD einen TFTP-Server entferne man aus der /etc/inetd.conf das # vor

tftp dgram udp wait root /usr/libexec/tftpd tftpd -s /tftpboot

ein beherztes

kill -HUP `cat /var/run/inetd.pid `

startet diesen dann. Die Files gehören in /tftpboot.

Installation von xbase

Benötigt man Pakete aus den Ports, welche ein installiertes xbase voraussetzen kann man das so nachinstallieren:

# wget /Pfad/zum/xbase39.tgz
# cd /
# tar -xvpzf /Pfad/zum/xbase39.tgz

Nun muss man dem System noch die Bibliotheken bekannt geben:

# ldconfig -m /usr/X11R6/lib

udma modi im openbsd kernel einstellen

Moderne ATA Festplatten können mittlerweile bis UDMA7 betrieben werden, aber nur wenn auch ein 80 Adriges IDE Kabel angeschlossen ist.
Wird aber nur ein 40 adriges Kabel verwendet, so liest der OpenBSD Kernel die SMART Tabelle der hdd aus und nimmt die Geschwindigkeit welche die Tabelle angibt und PENG -> mit 40 Adern geht es nun mal nicht schneller als UDMA2.

Lösung:
den Kernel ohne neukompilieren anpassen.
Man gebe bei laufendem System folgenden Befehl an:
config -e -o bsd.new /bsd
und landet auf dem
ukc> prompt
Hier nun ein
ukc> change wd

und es wird gefragt,
36 wd* at wdc0|wdc1|wdc*|wdc*|pciide* channel -1 flags 0×0
change [n]
wir geben y ein,
es erscheint,
channel [-1] ?
mit enter bestätigen,
es erscheint,
flags [0] ?
hier geben wir nun 0×0a00 ein, was UDMA2 ergibt. Mit enter bestätigen und danach quit eingeben und das ganze wird in das vorhin angegebene bsd.new file geschrieben. Dieses file noch schnell nach / kopiert und beim booten ein:
boot bsd.new
abgeschickt und schon kann der Kernel nur noch UDMA2

greylisting mailserver mit openbsd einrichten

spamd auf openbsd kann als erste Verteidigungslinie sehr effektiv sein …
… und ist auch ziemlich einfach einzurichten.
Das greylisting funktioniert nach folggendem Prinzip:
Ein normaler Spammer versucht nur einmal seine Mail loszuwerden und bleibt folglich am spamd hängen. Ein echter mailserver versucht aber mehrmals seine Mails zuzustellen bevor er aufgibt. Die Versuche merkt sich spamd in einer Datenbank, und wenn nach einer Zeit länger als 25 Minuten versucht wird die Mail zuzustellen nimmt er sie auch an.

Die /etc/pf.conf benötigt folgende Einträge:
table persist
table persist

rdr pass on $ext_if inet proto tcp from to $ext_if port 25 -> 127.0.0.1 port 8025
rdr pass on $ext_if inet proto tcp from ! to any port smtp -> 127.0.0.1 port 8025

Sollen auch dial-up IP’s versenden dürfen, ist es notwendig einen 2. smtp Port aussen auf der Firewall auf den Mailserver Port umzuleiten, z.B.

rdr pass on $ext_if proto tcp from any to $ext_if port 30025 -> $mailserver port 25

Nun muss nur in der Mailclient Software der smtp port auf 30025 eingestellt werden.
Damit der spamd im greylisting Mode beim starten ausgeführt wird noch folgende Änderung in der /etc/rc.conf:

spamd_flags=”“ # for normal use: “” and see spamd-setup(8)
spamd_grey=YES # use spamd greylisting if YES

Und schon haben wir den spammern ein weiteres Hindernis in den Weg gestellt