|
Bartels Electronics DevelopmentWe can assist you in developing sophisticated electronics, especially when it comes to "non-standard" and technically challenging projects. Virtually nothing is impossible...
The following picture shows a NOA and Meteosat Uplink RF section developed by us for a well known manufacturer of hydrometric measurement equipment. Our job was to design the RF and DSP circuits and PCB as well as the software development for the DSP including the necessary filter and modulation signal data handling routines:
This picture gives you a view into the inside of our new WLAN antenna splitter device which combines an Ultra Low Noise Amplifier in the receive path with the capability to combine ultra high gain receiver antennas with medium gain transmitter antennas to significantly extend the distance between both stations while the complete system still complies to the ETSI/RegTP EIRP limit of 100mW:
The following picture displays an internet hardware router board, the board makes use of high speed CAM and multi queue FIFOs and is part of a new familiy of internet routers:
This PCB is a video/FAX converter which accepts a standard CCIR analog video signal and converts it according to the T.4 and T.30 as well as V.27 and V.29 standards to a FAX picture. All the necessary conversion and modulation signal processing is implemented within the DSP using software written in C developed by us. The FPGA manages the frame grabbing process and the control of the SDRAM:
The following picture gives a far view of the wheel house electronics of the prototype of a transponder based TPMS measurement system within the 2.45GHz band. Under contract we developed the mixed mode ASIC as well as the PCB schematic and layout including the integrated antenna. The central unit which includes the DSP and most parts of the software were designed by Bartels, too:
Finally, a look into our electronics laboratory, the mobile comms. development and manufacturing:
Sorry, the following information is currently only available in German.
Die Grundidee von SMTPFILTER besteht darin, nicht eine Mail aufgrund von einzelnen Schlüsselwörtern oder Phrasen zu kategorisieren sondern für bestimmte Eigenschaften der Mail Punkte zu vergeben. Diese Punkte können mit beliebiger Mathematik zu einem Endergebnis kombiniert werden und lösen dann eine oder mehrere Aktionen aus. Um als zentraler Server zur Verfügung zu stehen, werden mehrere unterschiedliche Konfigurationen gleichzeitig verwaltet, die automatisch auf Basis der Domain des Empfängers selektiert werden. Da auch die Versender von SPAM Mails um die Schlüsselwortsuchmaschinen wissen, werden Schlüsselwörter häufig verstümmelt, absichtlich falsch geschrieben oder kunstvoll auseinandergezerrt. Dagegen wird durch zwei unabhängige Methoden vorgegangen: zum einen können verschiedene Wortschreibweisen in Listen zusammengefasst werden, innerhalb der Regeln wird nur noch die Liste erwähnt. Zum anderen wird eine spezielle Worterkennungs- und Vergleichsengine verwendet, die speziell auf Wildcards und auf verstümmelte Worte optimiert ist. Da Massenemails typischerweise an viele Anwender gesendet werden, wird aus jeder Mail eine Kette von Kennzahlen errechnet und diese in einer Liste vorgehalten. Jede Mail wird nun mit jeder Mail aus dieser Liste über die Kennzahlen verglichen und bei hoher Ähnlichkeit eine Ähnlichkeits- und Wiederholungszahl errechnet und in einer Variablen zur Verfügung gestellt, die innerhalb der Regeldatei ausgewertet werden kann. Auf diese Weise kann eine immer gleiche Mailflut mit geringen Abweichungen (SPAM Versender setzen z.B. den Namen des Mailaccounts in den Betreff oder die Anrede ein) erkannt und blockiert werden. Da SPAM Versender meist den gleichen Internetprovider nutzen, wird eine Statistik geführt, wie viel SPAM aus dem gleichen Providernetz stammt und daraus eine Kennzahl errechnet. Je höher die Kennzahl, desto wahrscheinlicher, dass weiterer E-Mail Verkehr vom gleichen Provider wieder SPAM ist. Diese Kennzahl steht dem Regelsystem zur Verfügung und kann dort ausgewertet werden. Weitere Features:
Der Filter arbeitet rein als SMTP Filter und gibt den Eingangsdatenstrom transparent an den einzustellenden Empfänger durch. Dabei kann zusätzlich ein Frontend eingesetzt werden, wenn spezielle Features am Frontend benötigt werden, die SMTPFILTER nicht bietet. SMTPFilter kann nur SMTP Protokoll ausgeben, so dass das Backend zwingend ist. Sendmail ist dabei nicht in irgend einer Art bevorzugt, da nur das SMTP Protokoll gefiltert wird, es kann auch ein beliebiger anderer SMTP Handler als Front- oder Backend eingesetzt werden.
Hier wird beschrieben, welche Aktionen zur Verfügung stehen. Die Aktionen können beliebig kombiniert werden. Welche Kombination für welche Punktestände definiert werden, wird in der Sektion für die Regeldatei beschrieben
Zusätzlich wird in jedem Mailheader das Attribut X-SPAMPOINTS: <Punkte> eingeführt. Es besteht also die Möglichkeit, alle Mails mit TTRANSFER zu versehen und im Mailclient entsprechend zu filtern. Weitere Aktionen werden durch die Goodbadlist direkt ausgeführt, bevor die Mail überhaupt gescannt wird und die Aktion wird entsprechend dem Befehl TTRANSFER oder TTRASH ausgeführt.
Die Worterkennung teilt die Zeichen in folgende Bereiche auf:
Die tatsächlichen Zeichen werden so zusammengefasst, dass Groß/Kleinschreibung ignoriert wird und dass nicht durch besondere Zeichen, die visuelle zusammengehörig sind, Wörter nicht erkannt werden (z.b. á und a). Solange Wörter nur durch eventuelle Worttrenner (z.b. Leerzeichen oder -) getrennt werden, werden alle Kombinationen, die sich aus dem Wort ergeben können getestet, soweit die einzelnen Segmente nicht mehr als 2 zusammenhängende Zeichen haben. Es wird also bei t e s t sowohl te als auch test als auch es und die restlichen möglichen Kombinationen erkannt. Trifft der Scanner auf ein Wildcard (z.b. ? oder $), so wird dieses durch jeden möglichen Buchstaben erkannt: t$st wird dabei also zu test tost trst tmst t1st usw. Der Wortscanner liefert die Eingabe für den Satzscanner, wie er bei der Regeldatei beschrieben ist. Außerdem werden spezielle Zeichenverwandtschaften erkannt. (z.b. 0 zu o oder i zu e) Dabei wird die Trefferwahrscheinlichkeit für das Wort reduziert, was zu einer Minderung des Regelwertes führt.
Das Programm kann mit folgenden Parametern gestartet werden:
In der Konfigurationsdatei werden zunächst einige generelle Angaben gemacht, anschließend können in mehreren Sektionen verschiedene Maildomains konfiguriert werden. Schlüsselworte, die mit einem $ versehen sind (bitte nicht mit $ eingeben), sind nur in der globalen Sektion zugelassen. Schlüsselworte, die mit & versehen sind, sind innerhalb einer Sektion oder im globalen Abschnitt zugelassen, alle anderen sind nur innerhalb einer Sektion zugelassen. Sektionen werden mit [sektion1] eingeleitet, Kommentare mit einem # (Leerzeichen und Tabulatoren sind erlaubt). Alle anderen Zeilen müssen als <Schlüsselwort> ’=’ <Wert> angegeben werden. Schlüsselworte, die von einem * gefolgt werden, können mehrfach angegeben werden. Wird die Konfiguration geändert, so kann man den smtpfilter Stammprozess ein SIGHUP senden, damit dieser die neue Konfiguration einliest, der Prozess muss nicht neu gestartet werden.
Abhängig von der Domain des Empfängers wird die entsprechende Sektion ausgewählt, die sowohl die Regeln als auch die Goodbadlist bestimmt
Das Reporting besteht darin, dass jeder Mailuser einmal pro Tag einen Report zugesandt bekommt, der ihn darüber Informiert, welche Mails gefiltert wurden. Wird in der Regeldatei die Aktion TREPORT mit angegeben, so wird die entsprechende Mail in den Report mit aufgenommen. Wurden keine Mails mit TREPORT angetroffen, so wird auch kein Report versendet. Das Schlüsselwort REPORTTIME gibt die Tageszeit in Sekunden an, zu der der Report versandt werden soll. Dies könnte z.B. 1 Stunde vor Arbeitsende passieren, damit der Benutzer noch auf falsch gescannte Mails reagieren kann.
Dieses Feature ist nicht zwingend, wird kein BGP Server angegeben, so wird auch keine BGP Verbindung aufgebaut. Da viele Spammails von den immer gleichen ISP’s versendet werden, wird mittels der IP Adresse der ISP identifiziert und eine Statistik geführt, wie viel SPAM von diesem Provider ausging. Über das BGP Protokoll werden einzelne Netznummern IP Adressbereichen zugeordnet. Um die notwendige Verbindung aufbauen zu können, sind folgende Parameter nötig:
Wenn der Filter als Frontend eingesetzt wird, kann es wünschenswert sein, dass sich die Benutzer authentifizieren, bevor sie Mails versenden können. Dazu werden von SMTPFILTER die Authentifzierungsmechanismen PLAIN und LOGIN unterstützt. Folgende Konfigurationsparameter sind möglich:
Wenn sich SPAM Versender eindeutig identifizieren lassen, so können Gegenmaßnahmen ergriffen werden, die es dem Versender erschweren, seinen Maildurchsatz zu erreichen. Dabei werden nach Zufallsprinzip 2 unterschiedliche Maßnahmen ergriffen:
Da mit Sicherheit jeder Benutzer auch Mails bekommt, die zwar verdächtigen Inhalt haben, aber durchaus erwünscht sind, können über die Goodbadlist einzelne Sender gezielt freigeschalten oder gesperrt werden. Damit hierzu nicht der Administrator bemüht werden muss, wird eine Mail unter folgenden Umständen als Goodbadlist Kommando betrachtet:
Es sind folgende Kommandos möglich:
Dabei kann auch die Domain mail.com komplett abgelehnt werden, der Benutzer user@mail.com jedoch freigeschaltet werden. Ist die Absenderadresse in der Sektion des Benutzers auch als Admin eingetragen, so kann der Sender auch globale Einträge hinzufügen, die für alle Benutzer dieser Liste gelten. Auf diese Weise kann die Chefsekretärein die wichtigsten Geschäftskontakte generell von der Filterung ausnehmen. Globale Einträge werden dadurch identifiziert, dass die Betreffzeile mit zwei Doppelpunkten beginnt. Aus :-- yahoo.com wird dann ::-- yahoo.com Wenn die Nachricht erfolgreich verarbeitet wurde, erhält der Sender nicht die Originalnachricht wieder, sondern eine Nachricht mit dem gesendeten Befehl und der Meldung „message command accepted“ oder „message command rejected“. Der Reset für eine ASN Statistik kann nur als Admin ausgeführt werden.
Jede Mail wird Wort- und Phrasenweise einer statistischen Bewertung unterzogen. Dabei wird ein Hash Algorithmus verwendet, was den Datenbestand einerseits anonymisiert und andererseits eine hohe Geschwindigkeit sicherstellt. Dabei wird die Anzahl gezählt, wie häufig der, aus dem Wort / der Phrase berechnete Wert, in guten und in schlechten Mails vorkommt und daraus eine Wahrscheinlichkeit errechnet. Damit die Statistik sinnvolle Ergebnisse erzielen kann, müssen entsprechend gute und schlechte Mails gelernt werden. Dies kann einerseits über das AUTOLEARNHASH Schlüsselwort erfolgen oder direkt vom User durchgeführt werden. Damit eine Mail als gut / schlecht gelernt wird muss sie von einem authentifzierten Benutzer an einen der Pseudoaccounts mit dem Namen good oder bad gesendet werden. Alternativ kann auch im Header der Email das Attribut X-LEARNGOOD oder X-LEARNBAD spezifiziert werden. Der Benutzer muss aber in jedem Fall authentifizert sein. Als Ausgabe können die Variablen statisticquality und statisticresult ausgewertet werden. Solange nicht in jeder Hashtabelle mindestens 100 Mails gelernt wurden, wird die Qualität immer mit 0 ausgegeben.
Das Gerüst von Regeldateien sieht wie folgt aus: %%ACTIONS … %%CONSTVARS … %%VARS … %%RULES … %% Die einzelnen Sektionen sind in den Unterpunkten beschrieben. Jede dieser Sektionen muss angegeben werden, auch wenn sie leer bleibt. Alle Schlüsselwörter sind nicht von Groß/Kleinschreibung abhängig.
Unter diesem Punkt werden einzelnen Punktebereichen die auszuführenden Aktionen zugewiesen. Der Bereich, der als erster eingelesen wird, ist der Standardbereich, wenn sonst kein passender Bereich gefunden wird. Jede Zeile hat folgendes Format: <unterer Punktestand> - <oberer Punktestand> Aktion1 .. Aktion n Beispiel: 0 – 150 TTRANSFER 150 – 200 TTRANSFER TWARN 200 – 400 TTRASH TREPORT 400 – 100000 TNOTHING Wenn sich mehrere Bereich überlappen, so wird der erste passende genutzt. Da mehrere Regeldateien in einer Konfiguration angegeben werden können, muss nur in einer dieser Dateien die Sektion ACTIONS gefüllt sein.
In dieser Sektion können Variablen deklariert und initialisiert werden. Es stehen dazu folgende Datentypen zur Verfügung:
Jede Zeile besteht aus dem Datentyp, dem Variablennamen und einer Initialisierung (die Initialisierung ist in dieser Sektion Pflicht). Die einzelnen Listenelemente werden einfach in Anführungszeichen hintereinander geschrieben und können dabei noch durch Komma getrennt werden. Werden mehrere Wörter von Leerzeichen getrennt in Anführungszeichen geschrieben, so gilt das als eine Wortphrase. Dazu später mehr unter der Sektion RULES
In dieser Sektion können wie auch die Sektion CONSTVARS Variablen deklariert und initialisiert werden. Wenn die Variablen nicht initialisiert werden, sind sie im wesentlichen Wertlos. Des Sektion ist für Erweiterungen gedacht, wenn Funktionen Referenzparameter übergeben werden. Folgende Variablen sind implizit deklariert und vor dem Scan passend initialisiert:
Jeder Regelkopf besteht mindestens aus dem Schlüsselwort rule, dem Namen der Regel und einem Doppelpunkt. Jede Regel ist implizit mit ihrem Namen als ein Integer deklariert und kann daher in mathematischen Ausdrücken verwendet werden. Hier ein paar Beispiele für die Einleitung einer Regel:
Es gibt mehrere Arten von Regeln: CONTAINS, MATCH, IN und mathematische Regeln, die im Folgenden genauer erläutert sind.
Für mathematische Regeln stehen folgende Operatoren zur Verfügung:
Für mathematische Regeln gilt die Punktzahl der Regel als Obergrenze, ansonsten entspricht das Ergebnis der Operation. Übersteigt die Punktzahl die Obergrenze, so wird diese Obergrenze zugewiesen. Die Ergebnisse von Vergleichen sind immer 0 oder 32000, was anschließend auf das Maximum der Regel reduziert wird. Ist der Regel eine negative Punktzahl zugeordnet und der Absolutbetrag des Ergebnisses liegt darüber, so wird der negative Betrag zugeordnet.
CONTAINS Regeln bestehen aus einer Variablenliste, die zu durchsuchen ist, dem Schlüsselwort CONTAINS und anschließend einer Wortphrase. Es gelten folgende Regeln:
Das Schlüsselwort CONTAINS ist in den folgenden Beispielen mit CT abgekürzt ist. Es wird angenommen, dass in der CONSTVAR Sektion folgende Variablen deklariert wurden: STRING var1 = “Fisch“ LIST var2 = “Fahrrad” “Auto” LIST var3 = “Fahrrad” “Lenkrad” “rotes Auto” Beispiele:
Bei IN Regeln wird ein String in einer Liste gesucht, es können aber beliebige Kombinationen aus Strings und Listen verwendet werden. Die Regel trifft zu, sobald ein Element aus der ersten Variable in der zweiten Variable auftritt. Der Vergleich ist dabei nicht Groß/Kleinschreibungsabhängig. Die Syntax lautet: <var1> IN <var2> Beispiel: realrcpt IN torcpt Prüft, ob mindestens ein Empfänger in der TO Liste auftaucht.
Mittels MATCH können reguläre Ausdrücke verarbeitet werden. Die Syntax lautet: <var> MATCH <regulärer Ausdruck> Der reguläre Ausdruck muss dabei in Anführungszeichen oder Hochkommata stehen. Beispiel: sender MATCH ".*[0-9]{2,}.*@" Erkennt, ob mindestens 2 Ziffern hintereinander im Namen des Senders enthalten sind.
Für jede Variable kann auch ein Funktionsaufruf stehen, der auf Basis anderer Variablen einen Wert ermittelt. Beispiel: stringinmap(„X-MSMail-Priority“, headerlist) CONTAINS „high“ Ruft die Funktion stringinmap auf, welche nach dem Text „X-MSMail-Priority“ in der headerlist sucht und den zugewiesenen Wert ermittelt. Enthält dieser Wert das Wort high, so wurde die E-Mail mit hoher Priorität versendet. Folgende Funktionen stehen zur Verfügung:
Ziel: Mailaccounts, die auf einer offiziellen Webseite stehen, werden häufig in Spam mit einbezogen. Da dort möglichst keine Mail verloren gehen sollen, soll die Toleranzschwelle aber erweitert sein. Hier wird gezeigt, wie man bestimmte Regeln für spezielle Accounts umgewichten kann. # Diese Regel erhält 50 Punkte, wenn ein officieller Account der Empfänger ist rule officialaccount 50 : realrcpt contains („info“, „pr“, „sales“) # Diese Regel erhält 1 Punkt, wenn besonders unerwünschte Regeln getroffen wurden. rule officialdenyrules 1 : sexwords + unsubcribe # diese Regel emmitiert –50 Punkte für offizielle Accounts oder +50, wenn auf dem # offiziellen Account spezielle Regeln getroffen wurden rule EMIT officialemit 200: officialdenyrules * 100 * officialaccount / 50 – officialaccount Ziel: Sobald eine Mail das dritte mal eintrifft, sollen schnell wachsend viele Strafpunkte vergeben werden, ansonsten soll die Ähnlichkeit ignoriert werden. # Diese Regel erhält 1 Punkt, wenn der Cachewert auf 15 oder mehr steht rule repetitivehelper 1: cachevalue > 14 # Diese Regel wird erst aktiv, wenn repetitivehelper gesetzt ist, und liefert für die # ersten 2 übereinstimmungen keine Strafpunkte, ab der dritten werden ca. 40 Punkte # pro Regel übergeben rule EMIT repetitive 300: repetitivehelper * (cachevalue - 8) * 10 Ziel: einige Regeln sollen zusammen nicht über eine bestimmte Punktzahl aufsummieren können, da sie zu wenig aussagekräftig sind. # Diese Regel prüft, ob aus dem ASN früher viel Spam kam rule asnspam 110: asnspamcount * 2 # Diese Regel prüft, ob viele HTML Farben vorhanden sind rule htmlcolored 100: htmlfontcolorcount * 20 # Diese Regel stellt sicher, dass asnspam und htmlcolored # zusammen nicht alleine die Mail als spam qualifizieren rule emit non_content_rules 140: asnspamcount + htmlcolored
Sorry, the following information is currently only available in German. DSL ist heute als das in Europa am meisten genutzte Breitband-Internetprodukt nicht mehr wegzudenken. Für ein Massenprodukt stellt sich technisch die Aufgabe, den Endkunden zu seinem Internet Serviceprovider (ISP) zu verbinden. Diese Verbindung erfolgt kundenseitig über das Protokoll PPPOE und providerseitig über eine L2TP Zuführung. L2TP steht dabei für "Layer 2 Tunneling Protocol": Die Einwahlzugänge der Kunden werden über ein preiswertes Konzentratornetz gebündelt und dann gemeinsam in einem "Tunnel" innerhalb einer normalen IP Verbindung übergeben. Während kundenseitig PPPOE-taugliche Geräte vielfältig verfügbar sind, stellt die flexible Handhabung großer Mengen an DSL-Einwahlen auf Providerseite eine erhebliche Herausforderung da. Bisher bedurfte es zur Bedienung eines L2TP Tunnels teurer spezialisierter Router-Lösungen, während Lösungen mit Universalrechnern mit der Vielzahl der Einwahlen überfordert waren. Deshalb hat DSL zu Unrecht den Ruf, dass nur größere Provider es realisieren können und dass es als Massenprodukt relativ starr und unflexibel sei.
Sorry, the following information is currently only available in German. Mit Bartels DSLKernel steht jetzt ein Software-Produkt zur Verfügung, dass auf Standard Servern mit PC Architektur folgende Leistungsdaten bieten kann, beispielhaft für ein Dual Opteron 2 GHz PCI-X System:
Dabei stehen folgende Features zur Verfügung:
Hierzu unterstützt Bartels DSLKernel alle Anforderungen an ein professionelles L2TP:
Die Bartels DSLKernel Software ist auf extrem hohen Durchsatz ausgelegt und realisiert aus diesem Grund ein eigenständiges IP-Routing auf einem ansonsten standardisierten Server-PC mit Einzel- oder Mehrfach-CPU. Dieses IP-Routing arbeitet mit dem Routing des Betriebssystems zusammen, übernimmt jedoch das Paket-Forwarding und kann auch aus anderen Quellen (BGP4 Option) gespeist werden. Die für L2TP ganz wesentliche PPP-Funktionalität wird ebenfalls von einer eigens für diesen Zweck entwickelten Software übernommen und umgeht so die üblichen Beschränkungen der Standard-PPP Lösung, wie sie üblicherweise unter BSD/Linux-basierenden Betriebssystemen Verwendung findet. Die Software besteht aus einem eigenständigen Kernel Modul (derzeit für Linux 2.4 und 2.6 Kernel verfügbar) für das schnelle Paket-Forwarding sowie einem im Hintergrund ablaufenden "Dämon", der sämtliche Kontrollfunktionen wahrnimmt und die Konsole sowie die Anfragen an die Radius-Kundendatenbank koordiniert. Bartels DSLKernel ist somit eine integrierte und auf die Belange der Service-Provider abgestimmte Lösung. Als Internet-Provider mit eigenem Netz hat unsere eigene Praxiserfahrung dazu beigetragen, eine Lösung vom Provider für Provider zu entwickeln. Daneben werden durch die Verwendung von Standardkomponenten die Betriebskosten reduziert, was im margenkritischen DSL Geschäft von besonderer Bedeutung ist. Daneben können wir als Hersteller mit Entwicklung und Service vor Ort in Deutschland die von unseren Kunden geforderte Flexibilität bieten. Weiterhin stellt Bartels DSLKernel eine interessante Alternative zur VPN Einwahl von Außenstellen und Home Offices in Firmennetze dar, durch das Layer 2 Tunneling entfällt die Notwendigkeit einer separaten Firewall je Außenstelle, was ebenfalls zur Kostenreduktion beiträgt.
|
|