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

T-DSL Einwahl-Problem

Sollte es nach der Zwangstrennung bei einem DSL-Provider mit der Wiedereinwahl nicht richtig klappen und in /var/log/daemon etwas wie ‘Oops, RCR in Initial.’ erscheinen trage man in die /etc/ppp/ppp.conf ein:

disable ipv6cp

dann sollte das wieder reibungslos funktionieren.

Images mounten

Möchte man unter OpenBSD ein Image mounten vollziehe man folgendes:

# vnconfig svnd0 /pfad/zum/image
# mount_cd9660 /dev/svnd0 /mnt

und zum unmounten:

# umount /mnt
# vnconfig -u svnd0

Übriggebliebene ftp-proxy Prozesse beenden

So schön der ftp-proxy von OpenBSD auch funktioniert, es bleiben nach beendeter Übertragung immer ftp-proxy Prozesse idle übrig.
Ein beherztes,
ps ax | grep ftp-proxy | kill `awk ‘{ print $1 }’`
beendet alle überflüssigen Prozesse und macht Speicher frei.

Moment Herr Spammer, ich bin gleich soweit

OpenBSD to the rescue, unerwünschten SPAM zu vernichten, sie alle zu binden ins spamd sie zu knechten …
Um den SPAM jetzt endgültig zu killen, gibt es von OpenBSD so ein nettes Hilfsmittel namens spamd.
Ist in der default Installation schon mit dabei, muss nur noch aktiviert werden.
1. die /etc/spamd.conf ändern:
Zeile 26 anpassen,
von
:spamhaus:china:korea:
auf
:spews1:spews2:china:korea:
ändern.

2./usr/libexec/spamd-setup aufrufen, kurz warten, die zu blockenden IP Adressen werden jetzt heruntergeladen.

3. spamd in der rc.conf aktivieren, für händischen start,
/usr/libexec/spamd -p 8025 -c 200

4. Firewallregeln anpassen
nach den Interfaces eine Table einfügen,
table persist

eine rdr rule einfügen,
rdr on $ext_if inet proto tcp from to $ext_if port 25 -> 127.0.0.1 port 8025

5. testen
pfctl -t spamd -T add testrechner IP
vom Testrechner aus dann ein
telnet firewall_ip 25
und man bekommt ein schönes Banner zu sehen (bitte Geduld, pro Sekunde nur ein Buchstabe )
Escape character is ‘^]’.
220 my-baby.office.tanto.de ESMTP spamd IP-based SPAM blocker; Thu Jun 17 12:24:54 2004

6. Automatisches Update der spamd Table aktivieren, ist in der crontab schon eingetragen, muss nur noch auskommentiert werden
0 * * * * /usr/libexec/spamd-setup

7. Inhalt der spamd Table anzeigen lassen,
pfctl -t spamd -T show | more

8. Sich auf weniger SPAM freuen …

ssh port forwarding

Wenn man auf eine Maschine nur mit ssh zugreifen kann, dort aber auch den laufenden Webserver erreichen will, hilft die port-forwarding Option von openssh.
Dazu gebe man auf der Kommandozeile folgenden Befehl ein:
ssh -Llocalhost_port:localhost:remotehost_port remotehost
z.B.:
ssh -L12000:localhost:80 remotehost
ergibt beim Aufruf mit dem Browser
http://localhost:12000
die Anzeige der Webseite des Remotehosts.
Viel Spaß beim Port forwarden …