Debian(sid) / Exim4

feelx

Grand Admiral Special
Mitglied seit
11.11.2001
Beiträge
4.870
Renomée
74
Standort
near Zurich
Hallo Community

Wollte Exim4 so konfigurieren, dass ich externe Mails nach dem Muster "[user]@[IP-ADRESSE]" [alternativ ein DynDNS-Host] empfangen kann.

Die Mail kommt beim MTA (Exim) an, wird aber zurückgewiesen - "reject RCPT <anubis@[ip-adresse]>: relay not permitted" - Genau so wenig funktioniert es mit dem 'root' als Empfänger.

Ich habe schon verschiedene Einstellungen probiert, aber offenbar nicht die richtige gefunden... :( Weiss ein Crack hier Rat ?

Eine zweite Frage - wo wird eigentlich geregelt, welcher lokale User-Account die Mails von root bekommt? Das musste man doch bei der Debian-Installation angeben.

Danke im Voraus!
 
;D MEGALOL ;D

Ich habe es hinbekommen.... aber die Sache war ziemlich kriminell - Zur Diskussion, was nun sicherer ist - Windows oder Linux, die hier stattfand, passt wohl das Argument: "Es kommt auf den Admin an" :) Will euch diese Story nicht vorenthalten:

Das Problem war, dass man nach einem direkten Eingriff in die Konfig von EXIM ein update-exim-conf durchführen sollte. Das wusste ich nicht und habe brav ein Scheunen-Tor nach dem anderen geöffnet...

Mit dem Resultat, dass zwar das Relaying funktioniert hat, aber gleichzeitig wurde ich Opfer von Chinesen-/Taiwanesen-Terror.

Gestern bemerkte ich eine ungewöhnlich hohe Anzahl von Exim-Prozessen und Verbindungen (netstat). Habe daraufhin einen Blick in den grafischen 'Net-Usage-Monitor' (ntop) geworfen und bin fast vom Stuhl gefallen. Es bestanden aberdutzende Verbindungen von/zu taiwanesischen und chinesischen Hosts.

Ein Blick in das exim4-log offenbarte Grauenhaftes :o :o :o - Seit 17.00 Uhr schwoll das Log auf 2,1MB an:
Eine einzige Sekunde als Auszug - dürfte das Ausmass verdeutlichen ;D

2005-03-16 21:37:28 1DBfGX-0002z7-2J => pink2872002@yahoo.com.tw R=dnslookup T=remote_smtp H=mx3.mail.tw.yahoo.com [202.43.200.11]
2005-03-16 21:37:28 1DBfGX-0002z7-2J -> terry-303@yahoo.com.tw R=dnslookup T=remote_smtp H=mx3.mail.tw.yahoo.com [202.43.200.11]
2005-03-16 21:37:28 1DBfGX-0002z7-2J -> tony641022@yahoo.com.tw R=dnslookup T=remote_smtp H=mx3.mail.tw.yahoo.com [202.43.200.11]
2005-03-16 21:37:28 1DBfGX-0002z7-2J -> viewsonic2628@yahoo.com.tw R=dnslookup T=remote_smtp H=mx3.mail.tw.yahoo.com [202.43.200.11]
2005-03-16 21:37:28 1DBfGX-0002z7-2J -> xxxxxjames2003kk@yahoo.com.tw R=dnslookup T=remote_smtp H=mx3.mail.tw.yahoo.com [202.43.200.11]
2005-03-16 21:37:28 1DBfGX-0002z7-2J -> vicky_770924@yahoo.com.tw R=dnslookup T=remote_smtp H=mx3.mail.tw.yahoo.com [202.43.200.11]
2005-03-16 21:37:28 1DBfGX-0002z7-2J -> ya710714@yahoo.com.tw R=dnslookup T=remote_smtp H=mx3.mail.tw.yahoo.com [202.43.200.11]
2005-03-16 21:37:28 1DBfGX-0002z7-2J -> starsky852@yahoo.com.tw R=dnslookup T=remote_smtp H=mx3.mail.tw.yahoo.com [202.43.200.11]
2005-03-16 21:37:28 1DBfGX-0002z7-2J -> smallmountainpig@yahoo.com.tw R=dnslookup T=remote_smtp H=mx3.mail.tw.yahoo.com [202.43.200.11]
2005-03-16 21:37:28 1DBfGX-0002z7-2J -> t830616@yahoo.com.tw R=dnslookup T=remote_smtp H=mx3.mail.tw.yahoo.com [202.43.200.11]
2005-03-16 21:37:28 1DBfGX-0002z7-2J -> sweetlovemoore@yahoo.com.tw R=dnslookup T=remote_smtp H=mx3.mail.tw.yahoo.com [202.43.200.11]
2005-03-16 21:37:28 1DBfGa-0002z9-AC => weibinhw@ms15.hinet.net R=dnslookup T=remote_smtp H=ms15a.hinet.net [168.95.5.15]
2005-03-16 21:37:28 1DBfGZ-0002z8-80 => xuan_xiao@yahoo.com.tw R=dnslookup T=remote_smtp H=mx3.mail.tw.yahoo.com [202.43.200.11]
2005-03-16 21:37:28 1DBfGZ-0002z8-80 -> yun802622@yahoo.com.tw R=dnslookup T=remote_smtp H=mx3.mail.tw.yahoo.com [202.43.200.11]
2005-03-16 21:37:28 1DBfGZ-0002z8-80 -> timberland1974@yahoo.com.tw R=dnslookup T=remote_smtp H=mx3.mail.tw.yahoo.com [202.43.200.11]
2005-03-16 21:37:28 1DBfGZ-0002z8-80 -> ycpn2001@yahoo.com.tw R=dnslookup T=remote_smtp H=mx3.mail.tw.yahoo.com [202.43.200.11]
2005-03-16 21:37:28 1DBfGZ-0002z8-80 -> titish_lovely@yahoo.com.tw R=dnslookup T=remote_smtp H=mx3.mail.tw.yahoo.com [202.43.200.11]
2005-03-16 21:37:28 1DBfGZ-0002z8-80 -> ycs6b02@yahoo.com.tw R=dnslookup T=remote_smtp H=mx3.mail.tw.yahoo.com [202.43.200.11]
2005-03-16 21:37:28 1DBfGZ-0002z8-80 -> weisue@yahoo.com.tw R=dnslookup T=remote_smtp H=mx3.mail.tw.yahoo.com [202.43.200.11]

Der Terror begann ca. um 17.00 Uhr gestern abend und kurz vor 22.00 Uhr habe ich Exim erstmal abgeschaltet...

Der Mailserver wurde also nach NUR 1.5 Tagen als ungesicht von den Chinesen entdeckt und als Spamschleuder missbraucht. Ich habe in diesen knapp 5 Stunden etwa 13.000 - 15.000 SPAM-Mails verschickt. (Waren übrigens HTML-Mails und wurden alle mit MS-Frontpage erstellt) *chatt*

Gut... gestern abend habe ich zuerst EXIM sauber deinstalliert und komplett neu eingerichtet, da ich die Aenderungen, die ich in den diversen Config-Files gemacht habe, nicht mehr reproduzieren wollte. Er lief dann auch wieder sauber und vorallem SICHER :) . Allerdings hatten die Chinesen nicht aufgegeben -

Im Exim-Log stand dann heute morgen allerdings beruhigenderweise:

2005-03-17 06:57:05 H=tp242143.dynamic.seeder.net (83.150.30.11) [202.129.242.143] F=<zvzaaxbvzxv@aisai.com.cn> rejected RCPT <zoam.bbs@bbs.badcow.com.tw>: relay not permitted
2005-03-17 06:57:05 H=tp242143.dynamic.seeder.net (83.150.30.11) [202.129.242.143] F=<zvzaaxbvzxv@aisai.com.cn> rejected RCPT <service.csa@justsports.net.tw>: relay not permitted
2005-03-17 06:57:06 H=tp242143.dynamic.seeder.net (83.150.30.11) [202.129.242.143] F=<zvzaaxbvzxv@aisai.com.cn> rejected RCPT <ttsai@ccsun.tajen.edu.tw>: relay not permitted
2005-03-17 06:57:06 H=tp242143.dynamic.seeder.net (83.150.30.11) [202.129.242.143] F=<zvzaaxbvzxv@aisai.com.cn> rejected RCPT <lllien@niu.edu.tw>: relay not permitted
2005-03-17 06:57:06 H=tp242143.dynamic.seeder.net (83.150.30.11) [202.129.242.143] F=<zvzaaxbvzxv@aisai.com.cn> rejected RCPT <gluckykemmy@iclubs.com.tw>: relay not permitted
2005-03-17 06:57:07 H=tp242143.dynamic.seeder.net (83.150.30.11) [202.129.242.143] F=<zvzaaxbvzxv@aisai.com.cn> rejected RCPT <evalin@cc.nctu.edu.tw>: relay not permitted
2005-03-17 06:57:07 H=tp242143.dynamic.seeder.net (83.150.30.11) [202.129.242.143] F=<zvzaaxbvzxv@aisai.com.cn> rejected RCPT <sunny650926@mail.hhups.tp.edu.tw>: relay not permitted
2005-03-17 06:57:07 H=tp242143.dynamic.seeder.net (83.150.30.11) [202.129.242.143] F=<zvzaaxbvzxv@aisai.com.cn> rejected RCPT <john-lee@xxx.com.tw>: relay not permitted

Dennoch wurde es mir zu bunt und ich habe nun entsprechende IPtables angelegt, welche die Pakets zuerst einmal loggen (um die Funktion zu überprüfen) und dann natürlich auch droppen :

Mar 17 17:12:11 Cloud7 kernel: IN=eth0 OUT= MAC=00:48:54:13:06:0c:00:40:05:dc:cd:92:08:00 SRC=202.129.242.39 DST=192.168.0.101 LEN=48 TOS=0x00 PREC=0x00 TTL=110 ID=26288 DF PROTO=TCP SPT=1280 DPT=25 WINDOW=16384 RES=0x00 SYN URGP=0
Mar 17 17:12:14 Cloud7 kernel: IN=eth0 OUT= MAC=00:48:54:13:06:0c:00:40:05:dc:cd:92:08:00 SRC=202.129.242.39 DST=192.168.0.101 LEN=48 TOS=0x00 PREC=0x00 TTL=110 ID=26525 DF PROTO=TCP SPT=1280 DPT=25 WINDOW=16384 RES=0x00 SYN URGP=0
Mar 17 17:12:16 Cloud7 kernel: IN=eth0 OUT= MAC=00:48:54:13:06:0c:00:40:05:dc:cd:92:08:00 SRC=202.129.242.43 DST=192.168.0.101 LEN=48 TOS=0x00 PREC=0x00 TTL=110 ID=58210 DF PROTO=TCP SPT=4155 DPT=25 WINDOW=65340 RES=0x00 SYN URGP=0
Mar 17 17:12:19 Cloud7 kernel: IN=eth0 OUT= MAC=00:48:54:13:06:0c:00:40:05:dc:cd:92:08:00 SRC=202.129.242.43 DST=192.168.0.101 LEN=48 TOS=0x00 PREC=0x00 TTL=110 ID=59004 DF PROTO=TCP SPT=4155 DPT=25 WINDOW=65340 RES=0x00 SYN URGP=0
Mar 17 17:12:21 Cloud7 kernel: IN=eth0 OUT= MAC=00:48:54:13:06:0c:00:40:05:dc:cd:92:08:00 SRC=202.129.242.39 DST=192.168.0.101 LEN=48 TOS=0x00 PREC=0x00 TTL=110 ID=27047 DF PROTO=TCP SPT=1280 DPT=25 WINDOW=16384 RES=0x00 SYN URGP=0
Mar 17 17:12:25 Cloud7 kernel: IN=eth0 OUT= MAC=00:48:54:13:06:0c:00:40:05:dc:cd:92:08:00 SRC=202.129.242.43 DST=192.168.0.101 LEN=48 TOS=0x00 PREC=0x00 TTL=110 ID=60549 DF PROTO=TCP SPT=4155 DPT=25 WINDOW=65340 RES=0x00 SYN URGP=0

Und jetzt ist Ruhe im Kartong *chatt* !

Für mich war das natürlich sehr lehrreich, insbesondere sich mit exim-config und iptables rumzuschlagen zu müssen. Aber es ist doch auch erschreckend, dass die Chinesen es schaffen in weniger als 1.5 Tagen einen ungesicherten Mailserver aufzuspüren und diesen auch gleich für ihre Zwecke zu missbrauchen. 8-( 8-( Daher bleibt als echtes Fazit für mich, dass man sehr vorsichtig sein sollte - bei der Konfiguration und v.a., wenn man etwas konfiguriert, die Settings genau zu überprüfen. The Enemy is watching you 8-(

BTW: Um die exim-Konfig zu testen, existiert (zumindest bei Debian) das Tool exim_checkaccess, womit man die Funktionsweise des Servers mit einem 'simulierten Zugriff' überprüfen kann, ohne dass man mühsam mit telnet einen 'fake-Versand' simulieren muss :)

So.. jetzt dürft ihr mich auslachen :) *lol* *lol*
 
Zuletzt bearbeitet:
Das ist ja richig boese :)

Ich hab was nettes von Matt Dillon, was man leicht fuer deine Zwecke umschreiben koennte.
Es guckt sich in einer Logdatei illegale Zugriffe an, und zaehlt, wenn's zuviel werden, wird alles von dieser IP blockiert.

http://tom.ruegen-grafik.de/files/ssh_lockout/sshlockout_iptables.c
Wenn du willst schreib ich's dir auf dein Exim um.

EDIT: s/Kartong/Karton/
 
Zuletzt bearbeitet:
Original geschrieben von Tom24
Das ist ja richig boese :)

Ich hab was nettes von Matt Dillon, was man leicht fuer deine Zwecke umschreiben koennte.
Es guckt sich in einer Logdatei illegale Zugriffe an, und zaehlt, wenn's zuviel werden, wird alles von dieser IP blockiert.

http://tom.ruegen-grafik.de/files/ssh_lockout/sshlockout_iptables.c
Wenn du willst schreib ich's dir auf dein Exim um.

EDIT: s/Kartong/Karton/

EDIT2: so fertig:
http://tom.ruegen-grafik.de/files/ssh_lockout/eximlockout/eximlockout_iptables.c
Binary gcc-3.4:
http://tom.ruegen-grafik.de/files/ssh_lockout/eximlockout/eximlockout_iptables.bz2

DAS IST JA GENIAL! Vielen herzlichen Dank.. werde das morgen gleich implementieren. Echt ne super Aktion!!!

Zum Kartong: Dabei bleibe ich aber in Anspielung auf den chinesisch/taiwanesischen Mailterror :) Wobei man das auch Tellol nennen könnte *chatt*

Danke nochmals für das Lockout ;) Super!!
_______________________________
Edit: könntest du nochmals die Quelle für das Source-File überprüfen - bekomme da leider ein 404, aber würde gerne nen Blick reinwerfen...
_______________________________
Edit2: ah.. hab grad gesehen - du bist noch am überarbeiten !! DANKE :)
 
Momment noch, moechte noch einige Fehler aus dem Script entfernen. Funktioniert nicht so wie es soll.
EDIT: Hier ist noch 'ne Sache die stoert, wird wohl noch bis morgen dauern.

@Kartong *chatt**lol*
 
Zuletzt bearbeitet:
Kein Problem! THX
 
So, nach langem rumlesen, und aergern hab ich's hinbekommen *chatt*
Es ist ziemlich haesslich, also bitte niemand den Quellcode lesen, aber das Logformat von Exim hat mich dazu gezwungen. *ausred*

Hier hab ich mal ein Ergebniss mit deinen Logs (18KiB);)
http://tom.ruegen-grafik.de/files/feelx.txt

Quellcode 2KiB:
http://tom.ruegen-grafik.de/files/ssh_lockout/eximlockout/eximlockout_iptables.c

binary gcc-3.4 shared 13KiB:
http://tom.ruegen-grafik.de/files/ssh_lockout/eximlockout/eximlockout_iptables

bzip2 binary gcc-3.4 static 208KiB:
http://tom.ruegen-grafik.de/files/ssh_lockout/eximlockout/eximlockout_iptables_static.bz2

Du fuehrst das Programm am besten per Hand, oder Cron aus. Ich denke es gehoert nach /usr/local/sbin/.
Also: /usr/local/sbin/eximlockout_iptables < /path/to/exim/logfile

VORSICHT: Das Programm ignoriert danach jeglichen Traffic der von dem Host kam, welcher dich missbrauchen wollte. Es waere auch ganz praktisch die IP-tables Tabelle, ab und an zu flushen, damit die IPs nicht bis in alle Ewigkeit ignoriert werden, und den logrotate Zyklus zu erhoehen, damit nicht immer alte Eintraege bearbeitet werden.

EDIT: Hab ein paar unnuetze Abfragen rausgenommen, und ein paar nuetzliche hinzugfuegt.
EDIT2: Hab die Leistung von 17.5 Sekunden Bearbeitungszeit von feelx' Log, auf 0.5 Sekunden verbessert. ;)
EDIT3: GCC Optimierung -O3 hat 0.1 Sekunden gebracht. *chatt*
EDIT4: abuse_counter eingefuegt, erst wenn eine IP 5 mal illegal zu relayen versucht, wird sie ausgeschlossen.
 
Zuletzt bearbeitet:
Hi

@Tom24: Vielen Dank nochmals! Funktioniert alles wunderbar - Falls es noch jemand einsetzen will, sollte man sich vorher einfach die Position von 'iptables' raussuchen und ggf. neu kompilieren, bzw. einen symlink anlegen, falls iptables wie bei Debian NICHT in /usr/sbin/ liegt (sondern in /sbin/).

Greetings
 
Zurück
Oben Unten