Datenhaufen zu IT und Elektronik.

Kategorie: Linux & BSD (Seite 7 von 7)

MOTDstat

Habe ich überhaupt schon von meinem neusten Lieblingsgimmik berichtet? Nein? Nö nö nö….. Es nennt sich MOTDstat und „ersetzt“ die bekannte Message of the Day.

Im Grunde ist es ein kleines bash Script welches einem ausgewählte Systeminformationen beim Login anzeigt. Es hat sogar die Möglichkeit einem im Fall der Fälle eine E-Mail zu schicken, dieses überlasse ich dann aber doch lieber Nagios 🙂

Nach dem Download installiert sich alles fast von allein.

$ make install

Damit alles regelmässig aktualisiert wird folgt man am besten dem Vorschlag der README und wird den folgenden Aufruf in seine crontab.

$ crontab -e
*/5 * * * * root /usr/bin/motdstat --generate 1>/dev/null 2>/dev/null

Damit wird der Zustand alle 5 Minuten aktualisiert und alle Infos zum CronJob landen im Nirwana!

Bei einem motdstat -g schiebt MOTDstat die eigentliche Datei /etc/motd in /etc/motd.ori und wirft den generierten Systemzustand in /etc/motd. Bei einem neuen Login wird diese nun gefolgt von der /etc/motd.ori augegeben. Testen lässt sich dieses mit einem:

$ motdstat -s

Einstellungen zum Script lassen sich unter /etc/motdstat vorneheme. Da ich meine Message of the Day so oder so immer anfasse um dort möglichst auffällig den Systemnamen erscheinen zu lassen (ich komme sonst mal schnell durcheinander), passt es ganz gut dazu. Es kann natürlich keine echte Überwachung ersetzten,ist aus meiner Sicht denn noch ein ganz nettes „Programm“.

So long…..

 

 

GeoTagging

GeoTagging mit dem i-gatU GT200e Gentoo Linux und Digikam… 

Ich habe von meiner Frau einen GPS Datenlogger zum Geburtstag geschenkt bekommen. Damit hat sie mir auch direkt meinen Wunsch nach so einem Gerät erfüllt. Danke 🙂 

Allen jenen welche durch eine Suche auf diesen Beitrag gestoßen sind muss ich wohl kaum erzählen was und zu welchem Zweck man dieses kleine Gerät einsetzten kann. Besitzer eines Smartphones werden wohl meist auch nur müde lächeln. Daher reiße ich nur kurz an, was ich mit dem Teil möchte.

Angeschlossen und geladen wird der GT-200e von i-gatU per USB. Ich habe zusätzlich die Möglichkeit das Gerät per Bluetooth zu verbinden. So zum Beispiel mit meinem Nokia Mobiltelefon (ja, vielleicht kaufe ich irgendwann mal etwas neuers). Kismet auf meinem Notebook oder oder oder….

Die aktuelle GPS Position kann mit dem Gerät per Knopfdruck oder je nach Einstellung automatisch im Intervall gespeichert werden. Da ein Akku verbaut ist kann es dieses komplett als Stand-Alone Gerät. Genau dieses ist mein Hauptplan…. Ich packe es einfach in meine Tasche oder befästige es an meiner Spiegelreflexkamera und/oder Digitalkamera und lasse es einfach mitlaufen. Die Akkulaufzeit reichte bei mir schon für 3 Tage, dann habe ich aufgehört zu testen.

Dieses kleine Ding hängt nun also an meiner Canon EOS 450D und schreibt alle paar Sekunden meinen genauen Standort auf. Zuhause kann ich nun diese Daten vom Gerät als GPX Datei auslesen und zusammen mit meiner Bilderverwaltungssoftware Digikam, die Bilder meiner Kamera mit den GPS Koordinaten vermischen. Somit ist in den Metadaten jedes Bildes gespeichert an welcher Position genau ich es aufgenommen habe.

Natürlich lässt sich anhand der Wegpunkte die genaue Strecke, Geschwindigkeit, Höhe usw… Errechnen und in lustige Grafiken gießen. Dieses ist für mich dass Abfallprodukt.

Wie so oft reicht es auch i-gatU sich hinsichtlich Treiber- und Softwareunterstützung um die Microsoft Windows und Apple MacOS Benutzer zu kümmern. Linux Benutzer müssen sich halt selbst irgendwie kümmern und das haben sie getan. Es gibt das Progrämmchen igotu2gpx der Linux Kernel kommt ab Versionen größer 2.6.3 problemlos mit dem Gerät zurecht.

Um igotu2gpx kompilieren zu können sind im groben folgende Abhängigkeiten zu erfüllen:

– qt4
– boost
– libusb
– chrpath
– marble
– openssl

Dieses sollte sich auf jeder gängigen Distribution durch den Paketmanager erledigen lassen. Unterwegs kümmert sich nun der GT200e um die genaue Positionsbestimmung. Zuhause kann ich dann die Wegpunkte mit igotu2gpx in eine gpx Datei exportieren. Digikam verbindet dann die Bilder mit der passenden GPS Position. Dieses funktioniert über die Uhrzeit. Die Kamera hängt beim Knipsen eines Bildes automatisch die Uhrzeit an das Bild. Diese kann nun mit den Zeiten aus dem gpx Export verglichen werden. So lässt sich herausfinden an welcher Position man gerade beim Knipsen des Bildes gewesen ist. Vorausgesetzt die Kamera hat auch die richtige Uhrzeit und das richtige Datum 🙂

Datenrettung

Datenrettung mit Linuxtools

Trockenübung

Ich habe mir die älteste Platte herausgesucht die ich in „funktionsfähig“ gefunden habe. Es ist eine WD Expert 136BA. Die Platte habe ich zur Vorbereitung per dd mit Nullen überschrieben:

dd if=/dev/zero of=/dev/sdb1

Dann habe ich der Platte eine Partition verpasst und diese als bootfähig markiert. Daraufhin wurde die Partition von mir mit dem Dateisysten NTFS formatiert:

mkfs.ntfs -L TestDatenloescheung -T /dev/sdb1 
Cluster size has been automatically set to 4096 bytes.
Initializing device with zeroes: 100% - Done.
Creating NTFS volume structures.
mkntfs completed successfully. Have a nice day.

 Ich habe einen ca. 1,53 GB großen Ordner, in diesem liegen die unterschiedlichsten Dateien. Diesen Ordner habe ich dann immer wieder auf die Platte kopiert bis sie voll war.

Dolphin zeigt uns die Ordner auf der Festplattekdf zeigt uns wie voll die Festplatten sind
Hier sieht man die mit Datenkrims vollgeworfene FestplatteWie zu sehen ist, ist die Platte gut voll!
kdf zeigt uns nach dem Löschen wie voll die Platten nun sind 
Hier erkennt man wie viele Daten gelöscht wurden. 

Mache ich nun einen ntfsundelete scan sagt dieser:

ntfsundelete -s /dev/sdb1
Files with potentially recoverable content: 0

Damit hat er ja sogar recht, denn es ist noch nichts gelöscht worden 🙂

Nun lösche ich mal ein paar Dateien und mache noch einen Scan:

ntfsundelete -s /dev/sdb1
Files with potentially recoverable content: 154

Das schaut für mich ja schon gut aus 😀

Starten wir mal eine wiederherstellung!

ntfsundelete /dev/sdb1 -u -m '*.*' -p 100 -d /test

 Dabei stehen die einzelnen Optionen für:

-u        Undelete Modus.
-m ‚*.*‘    Alle Dateien. Ein -m ‚*.doc‘ würde z.B.: nur Worddateien wiederherstellen.
-p 100        Nur Dateien die zu 100% wiederhergestellt werden können, bei Bildern könnte man ja auch mit Teilen etwas anfangen.
-d /test    Der Ort an welchem die Dateien wiederhergestellt werden sollen.

Je nach Dateityp der wiederhergestellt werden soll, gibt es noch ganz coole Optionen. Genau so kann man auch die Zeit angeben vor wievielen Tagen die Dateien maximal gelöscht worden sind.

Bei mir schaut die Ausgabe nun so aus:
ntfsundelete /dev/sdb1 -u -m ‚*.*‘ -p 100 -d /test
Files with potentially recoverable content: 154

Ganz cool, nur fällt mir auf, wenn ich Dateien mit gleichem Namen habe, überschreibt er diese nicht! Sollte man beachten, bzw. durch ein kurzes Script lösen.
Die Dateien sind aber wirklich alle da und auch funktionsfähig. Als wäre nie etwas gewesen 🙂

Mit der echten Platte also alles super. Da man im Fall von gelöschten Daten aber NIE mit der Originalplatte herumfummelt sondern sobald man den Verlust bemerkt am besten gleich den Stecker aus der Steckdose zieht (jeder weitere Betrieb und sei es nur herunterfahren überschreib ja ggf. diese Daten), mache ich mal ein RAW Image der Platte und teste damit:

dd if=/dev/sdb1 of=/001/TestRettung.img
26709984+0 Datensätze ein
26709984+0 Datensätze aus
13675511808 Bytes (14 GB) kopiert, 701,766 s, 19,5 MB/s

 Nach einiger Wartezeit ist das Image File fertig.

ntfsundelete -s /001/TestRettung.img

 Zeigt die gleichen Daten wie vorher _und_ es lässt sich auch alles so wiederherstellen.

Jetzt intresssiert mich natürlich noch was mit einer def. Platte ist….

Also mache ich meine Testplatte mal schnell wieder komplett voll und dann kaputt!

Festplatte mit freigelegten GehäuseschraubenFestplatte mit geöffnetem Gehäuse
Festplatte mit freigelegten

 

Gehäuseschrauben

Geöffnete Festplatte, bereit zur Zerstörung
Eine Festplatte die gerade mit einem Schraubendreher zerkratzt wird.Geöffnete Festplatte, welche gerade mit einem Schraubendreher zerkatzt wird!
Ich beim vorsichtigen zerkratzen der

 

Festplatte (nicht zu viel…)

Noch ein kleiner Kratzer
Geöffnete Festplatte mit zerkratzten Magnetscheiben. 
Zwei der Kratzer auf der Festplatte,

 

hier wird nichts mehr gelesen

 

Nun sollte das eine oder andere GB unlesbar sein. Mal schauen wie ddrescue damit klar kommt.

ddrescue -n /dev/sdb1 /001/datenrettung.img /001/datenrettung.log                                     
ddrescue -d -n -r3 /dev/sdb1 /001/datenrettung.img /001/datenrettung.log
ddrescue bei der Arbeit

Tja, was soll ich sagen? Nach meiner kleinen Kratzorgie hat ddrescue mal eben 52 Stunden an der Platte herumgefummel bevor es durch war. An dem Punkt muss ich erwähnen:
Wenn man wirklich wichtige Daten auf so einer Platte hat, sollte man bei einem def. lieber einen Datenretter aufsuchen. Geschäftlich arbeiten wir mit einem recht bekannten Datenretter zusammen. Dieser nimmt zur Diagnose 90€ und sagt dann was es wohl wirklich kostet und wie hoch die wiederherstellungswarscheinlichkeit ist. Bei einem aktuellen Fall aus 2010 hat ein Kunde mit einer 160GB HDD und einem Headcrash einen Kostenrahmen von 15000 – 18000 Euro genannt bekommen! Sind einem die Daten >3000 Euro wert sollte man die 90€ zur Diagnose ausgeben und dann entscheiden. Jede Bewegung an der Platte kann diese weiter zerstören und somit weitere Daten zerstören. Hat man das Geld nicht, kann man es mit ddrescue usw. selbst probieren, sofern die Platte überhaupt noch lesbar ist. Ich kann mich an ein Seagate SCSI Platten erinnern, welche nach einem shutdown einfach nicht mal anlaufen wollte, die Festplattenelektronik selbst hatte dabei eine Macke. Die Festplatte hat einfach keinen spinup mehr gemacht. Bei so einer Platte habe ich die komplette Elektronik getauscht, von einer Baugleichen versteht sich… Die Platte lieft auch wieder an und verhielt sich als wenn nie etwas gewesen währe. Getauscht habe ich sie nach einem Backup denn noch. Selbst ein Tausch der Schreib-/Leseköpfe (nach dem einer halb abgerissen war) hat schon mal funktioniert. Es konnten wirklich noch Daten von der Platte geholt werden. Die Platte ist aber nur noch ein mal angesprungen und war lesbar. Nach der Sicherung habe ich sie abgeschaltet und später noch mal anlaufen lassen, da ging überhaupt nichts mehr. Fummelt man aber an den Platten selbst herum,h at man direkt verloren. Wie gesagt, wenn die Daten wichtig sind… Datenretter 🙂 Solche „Experimente“ klappen nicht immer. Fummelt man an der Platte herum, hat meist der professionelle Datenretter auch keine Chance mehr..

Weiter im Text…
Theoretisch könnte ich das ddrescue raw image nun mounten:

mount -t ntfs /001/datenrettung.img /mnt/datenrettung -o loop

 In meinem Fall klappte das aber nicht mehr. Durch meine Schraubendrehermacken war auch das Dateisystem total im Eimer… Selbst jegliche fsck Versuche haben da nichts gebracht! Nun gibt es also ein Problem…. Ich habe mich auf die Suche nach einem Programm gemacht, welches Dateien anhand ihres Headers wiederherstellen kann. Dabei bin ich auf das Programm PhotoRec gestoßen. Total scharfes Programm kann ich nur sagen 🙂

Als erstes mache ich natürlich eine Kopie des Originalfiles. So kann ich das Imagefile ggf. total verbasteln und dann einfach mit einer weiteren Kopie neu probieren! Ich starte daher mal photorec gefolgt vom zu benutzenden Imagefile:

photorec datenrettung_parti_sicher.img

 Schon geht es los…

photorec auswahl der Festplattephotorec auswahl der PC-Architekturphotorec auswahl der Partition
Als erstes werde ich nun gefragt

 

welche Platte ich untersuchen

möchte. Hier nehme ich natürlich

das Image.

Dann muss die PC-Architektur

 

angegeben werden. Intel passt

hier!

Nun kann ich noch eine

 

Partition auswählen. Ich

nehme hier aber die

komplette Platte.

photorec AUswahl des Dateisystemsphotorec Rücksicherungsort aussuchenphotorec bei der Arbeit
Klar ist das Dateisystem

 

noch interessant. Da

es ein NTFS-Dateisystem ist,

kommt hier der Punkt zwei zum Zuge.

Nun muss ich angeben wo

 

ich die wiederherstellbaren

Daten gerne ablegen möchte.

Schon beginnt photorec mit

 

seiner Arbeit. Wie man sehen

kann, jetzt schon mir Erfolg!

Ob man es glaubt oder nicht aber photorec hat wirklich sehr viele Daten wiederherstellen können. Schaut man auf der PhotoRec Seite etwas weiter herum, findet man auch TestDisk. Dieses Programm habe ich mir natürlich mal angeschaut! Boar 🙂 Um gelöschte Daten wiederherzustellen, Partitionen zu rekonstruieren oder noch tausend andere Dinge! Ihr solltet es euch anschauen…

Hier ein paar Bilder:

Testdisk RAW ImageTestDiskTestDisk kaufen
photorec auswahl der PC-Architektur

Da ich gerade dabei bin… Wer ein Programm sucht, mit dessen Hilfe sich Festplatten auf Herz und Nieren prüfen lassen, dem sei hier das Programm: Visual Disk Test (vdt) von Alexandre Botao emfohlen!

Je nach Option können basic tests, compound tests oder stress tests mit allen nur erdenklichen Einstellungen auf die Platte losgelassen werden.

Eigenen Jabber-Server einrichten: Schritt-für-Schritt-Anleitung

Ich nutze Jabber schon länger als Messenger. Nun habe ich mir die Frage gestellt ob es nicht sinnvoll ist einen eigenen Jabber-Server zu betreiben…. Hier kann man nun etwas dazu lesen!

Warum ich Jabber benutze kann man schnell erkennen, wenn man sich das Thema Policy durchliest! Zudem bietet Jabber extrem viele Vorteile. Ich zähle mal ein paar auf 😀

– Jabber ist OpenSource, jeder kann sich also den Code anschauen. Es wird schwer hier Schadcode zu verstecken.
– Gerade weil jeder an den Code kann, kann auch jeder recht gut neue Software dafür entwickeln.
– Es gibt Transporter um, sofern man möchte, auch Verbindung zu ICQ, AIM, MSN usw. zu bekommen.
– Verschlüsselung per SSL/TLS/GPG usw. ist meist kein Problem und sehr einfach einsetzbar.
– Es gibt nicht ein zentrales Hauptsystem, welches bei einem Ausfall direkt alles lahm legt. Es besteht aus einem Netzwerk vieler kleiner Systeme, welche unabhängig voneinander funktionieren. Fällt eines aus, sind die User dieses Systems nicht mehr zu erreichen. Alle anderen sind davon nicht betroffen.

Klingt doch schon mal toll, oder? Warum nun also ein eigener Jabber Server?

Nun ja, natürlich um herauszufinden wie es funktioniert und ob ich es hin bekomme. Dann ist man unabhängiger von anderen Systemen und kann seine eigenen Regeln aufstellen. Alles lässt sich so konfigurieren und einrichten, wie man es selbst gerne hätte. Man kann selbst bestimme, welche Module in welcher Form nutzbar sein sollen….

Ich habe dann etwas mit verschiedenen Servern auf meinem Testsystem herumprobiert. Getestet habe ich jabberd, ejabberd und openfire. Hängen geblieben bin ich am Ende bei Openfire in Kombination mit dem Kraken IM Gateway Plugin. Dieser Server ist nur für mich, die Familien und einige enge Freunde geplant. Würde es ein großer öffentlicher Server werden sollen, hätte ich mich sicher für einen anderen Server entschieden! Für meinen Plan bringt dieser aber alles mit was ich brauche und dieses schnell und einfach! Zusätzlich spricht mein PSI mit dem Server auch über IPv6! IPv6 Kompatibilität ist für mich inzwischen recht wichtig und es war an einigen Stellen schon: „Das Zünglein an der Waage“.

Unter Debian war die Installation schnell durch. Ich musste für das Plugin etwas suchen, das lag aber eher an meiner situativen Unfähigkeit 😀 Das Plugin ermöglicht die Verbindung in andere IM Netzte, wie ICQ, MSN, AIM, Facebook usw. usw… Denn dieses Plugin stellt die so genannten Transporter!

Thema Policy

In den AIM Terms of Service findet sich beispielsweise folgende Stelle:

You or the owner of the Content retain ownership of all right, title and interest in Content that you post to public areas of any AIM Product. However, by submitting or posting Content to public areas of AIM Products (for example, posting a message on a message board or submitting your picture for the „Rate-A-Buddy“ feature), you grant AOL, its parent, affiliates, subsidiaries, assigns, agents and licensees the irrevocable, perpetual, worldwide right to reproduce, display, perform, distribute, adapt and promote this Content in any medium. Once you submit or post Content to any public area on an AIM Product, AOL does not need to give you any further right to inspect or approve uses of such Content or to compensate you for any such uses. AOL owns all right, title and interest in any compilation, collective work or other derivative work created by AOL using or incorporating Content posted to public areas of AIM Products.

Bei der Accepable Use Policy schaut es meiner Meinung nach nicht besser aus:

You agree that by posting any material or information anywhere on the ICQ Services and Information you surrender your copyright and any other proprietary right in the posted material or information. You further agree that ICQ LLC. is entitled to use at its own discretion any of the posted material or information in any manner it deems fit, including, but not limited to, publishing the material or distributing it.

Bei Microsoft findet man ähnliches…..

Ist doch eine Super Sache, oder?

Aber kann man es ihnen wirklich vorhalten? Die Jungs stellen „kostenlos“ Serversysteme, Infrastruktur, Manpower usw usw…. Glaubt man denn wirklich das diese Dienstleister das aus reiner Nächstenliebe machen? Einen gewissen Plan werden die schon verfolgen und die müssen auch Geld mit ihrem Produkt verdienen. Wenn die jetzt schon in ihren Policys schreiben, dass man als Nutzer die Rechte an allem abgibt was man in irgendeiner Weise in deren Service wirft. Dann…. Na dann werden die doch GAAANNNNZZZ sicher nichts blödes mit diesen Daten anstellen, oder?


Um kurz zu zeigen wie anpassungsfähig jabber ist, habe ich hier noch ein paar Bilder.

Zuhause nutze ich das Siemens Gigaset C470IP. So kann ich schnell und einfach die Sipgate- und SIP-Accounts erreichbar machen. Dieses sogar so, dass jeder ohne Vorkenntnisse damit einfach telefonieren kann! Zusätzlich habe ich einen Jabber-Account auf meinem Server für ein Gigaset C47H erstellt.

Das Telefon hat also einen Messenger, welcher sich mit meinem Jabber-Server verbindet und darüber Nachrichten empfangen und verschicken kann.

Gigaset C470IP mit Mobilteil C47H online am Jabber Server mit seinem MessangerGigaset C470IP mit Mobilteil C47H online am Jabber Server mit seinem Messanger neue NachrichtGigaset C470IP mit Mobilteil C47H online am Jabber Server mit seinem Messanger neue Nachricht
Der Jabber Messenger des Gigaset C47H
ist online und mit dem Jabber-Server
verbunden.
Am Gigaset C47H ist eine neue Jabber
Message angekomen!
Die Jabber Nachricht wird am Mobilteil
gelesen. Nun könnte man auch
antworten.

Auch wenn mich einige für verrückt erklären werden, ich finde es total geil 😀

Zusammen mit den Transportern könnte ich das Telefon auch für MSN / Facebook / ICQ  usw. usw.. erreichbar machen. Na ja, wenn ich wollte 😛


*Update 19.05.2012*

Vergesst bei eurem Jabber-Server nicht die DNS SVR RECORDS 🙂

Routenplaner für Linux

Navigationssystem / Routenplaner für Linux

Ich habe lange Zeit ein Navigationssystem mit Routenplaner für mein Linux Notebook gesucht.

Jetzt habe ich es gefunden!

Die Software nennt sich Navigator 4 Europe und kommt von der Firma Directions Ltd aus England.
Genaueres findet ihr unter der Homepage der Firma unter: http://www.directions.ltd.uk/

Die Software läuft unter Linux (QT 3) und Windows. Zusammen mit der Software wurde mir auch eine USB GPS-Maus, von der Firma NAVI Lock, geliefert. Diese Firma hat natürlich auch eine Homepage die ihr unter folgender Adresse findet: http://www.navilock.de/

Die GPS-Maus NL-202U wird als serielles Gerät erkannt. Sofern der Kernel passend konfiguriert ist. Es muss also im Kernel oder als Modul die USB/Seriell Unterstützung mit übersetzt werden. Ist das gemacht, sollte das Gerät unter /dev/ttyUSB0, /dev/ttyUSB1…. zu finden sein.

Tipp:
Bei GPS-Geräten unterscheidet man zwischen einem Warm- und einem Kaltstart. Als Kaltstart wird der erste Start des GPS-Gerätes bezeichnet. Hier stellt dieses eine ganze Menge komplexer Berechnungen an und synchronisiert sich, auch Datum und Zeit lassen sich später vom Gerät nehmen. Der Kaltstart kann je nach der Qualität des Gerätes bis zu 10 Minuten dauern. Beim Warmstart geht es etwas schneller, das System synchronisiert sich aber auch kurz. In diesem Zustand sollte man das GPS-Gerät nicht von der Stelle bewegen. Sonst bekommt man vielleicht überhaupt kein Signal. Erst nach dem Abschluss des Kalt- bzw. Warmstarts wird einem die Anzahl der gefundenen Satelliten angezeigt. Man braucht min. 3!

In der Software kann man die Sprache im Menü von Englisch auf Deutsch umstellen. Die sprachgesteuerte Navigation (Ja, die Software erzählt einem wann und wo man abbiegen muss) ist dann auch auf Deutsch, wenn man es bei der Installation mit installiert hat.

Die Software hält eine Menge Kartenmaterial vor, fast über ganz Europa. Hier eine kleine Auflistung:

Andorra 100 % – Kartengrösse: 1 MB
Belgien 100 % – Kartengrösse: 113 MB
Dänemark 100 % – Kartengrösse: 95 MB
Deutschland 100 % – Kartengrösse: 1212 MB
Frankreich 100 % – Kartengrösse: 1237 MB
Finnland 79.41 % – Kartengrösse: 173 MB
Großbritanien 100 % – Kartengrösse: 776 MB
Luxemburg 100 % – Kartengrösse: 10 MB
Italien 91,74 % – Kartengrösse: 958 MB
Niederlande 100 % – Kartengrösse: 178 MB
Nord Irland 16.46 % / Rep. von Irland 45.09 % – Kartengrösse: 13MB
Norwegen 100 % – Kartengrösse: 200 MB
Österreich 100 % – Kartengrösse: 168 MB
Polen 4.23 % – Kartengrösse: 44 MB
Portugal 41.28 % – Kartengrösse: 54 MB
San Marino 100 % – Kartengrösse: 1 MB
Schweden 100 % – Kartengrösse: 340 MB
Schweiz 100 % – Kartengrösse: 113 MB
Spanien 79.54 % – Kartengrösse: 494 MB
Tschechische Rep. 72.9 % – Kartengrösse: 108 M

Die ganze Software ist bei mir auf einer DVD gekommen. Wobei die Einzelnen Karten auf der DVD mit RAR komprimiert sind. Der konsolenbasierte Installer entpackt diese ohne Probleme von alleine. Man sollte vorher sicherstellen das man unrar auf seinem Linux-System installiert hat. Das Entpacken und Installieren von allen Karten dauert dann natürlich etwas 😛
Leute mit alten Kirsten sollten sich auch beim Arbeiten mit der Software auf längere Wartezeiten einstellen.

In der Software kann man sehr genau und gezielt suchen. Man kann schon vor der Suche viele Filter anwenden und das Suchergebnis wird einem auch recht übersichtlich präsentiert.

Bei der Routenerstellung kann man unbegrenzt viele Wegpunkte setzten und verschiedene Routenarten und Alternativrouten generieren lassen.

Alles ist ohne Probleme auf Papier zu bringen. Karte sowie auch die Streckenliste. Genaue Entfernung, voraussichtlicher Benzinverbrauch und Kosten lassen sich genau so gut ausgeben.

Keine Software ist perfekt. Daher gibt es immer mal wieder neue Updates, welche direkt von der Homepage des Herstellers herunter geladen werden können. Was ich auch empfehlen würde denn mir ist die gelieferte Version ohne Updates ein paar mal abgeschmiert.

Als Systemvoraussetzung wird unter anderem eine der gängigen grossen Linux-Distributionen (Suse bla…) verlangt. Ich bin das Risiko einfach mal eingegangen und habe es auf Gentoo installiert. Ich kann mich dabei über nichts beklagen.

Soooo… da jeder gerne ein paar Bilder sehen möchte folgen hier nun einige! Ach ja, bevor ich es vergesse. Meiner Meinung nach, ist die Software inkl. GPS-Empfänger sein Geld wert und funktioniert prächtig.

Die Einstellungen
GPS-Ortung
USB GPS-Maus von NAVI Lock
Softwareversion und Information (nach Update)
Ich suchte hier nach MC Donalds in Belgien
Kurze berechnete Route
Gestartetes GPS-Routing
Startbildschirm
     
Kartenübersicht der Software
     

IVTV

Wer mit der PVR 350 von Hauppauge einfach nur TV schauen möchte, ohne Mythtv und ohne vdr der wird etwas länger nach einer passenden Anleitung im Internet suchen. Besonders wenn er einen Satelitenresiever oder ähnliches an seinen Composite-Anschluss seiner PVR350 anschliessen will.

Folgene Einstellungen sollten im Kernel gemacht werden:

Ich nutze hier bei mir Gentoo und den Kernel: Linux PC-02 2.6.16-gentoo-r12 #3 PREEMPT Mon Jul 10 23:54:18 CEST 2006 i686 Pentium III (Coppermine) GNU/Linux

Zuerst einmal sollte unter /etc/modules.d/ eine Datei mit dem Namen ivtv angelegt werden, sofern nicht schon vorhanden:

touch /etc/modules.d/ivtv

Der Inhalt dieser Datei sollte nun so abgeänder werden:

alias char-major-81 videodev
alias char-major-81-0 ivtv
alias char-major-61 lirc_i2c
options msp3400 once=1
add below ivtv msp3400 saa7115 saa7127 tuner
add above ivtv ivtv-fb
add above ivtv lirc_dev lirc_i2c

Das ist jetzt auch der Inhalt meiner ivtv-Datei. Diese ist mit den lirc Optionen auch schon ausgelegt auf den Einsatz zusammen mit Mythtv. Es kann aber alles so übernommen werden. Selbst wenn wir am Ende einfach nur TV schauen wollen.

Jetzt sollte der Treiber installiert werden, welcher es ermöglicht den Hauppauge PVR 350 hardware MPEG-2 chip zu „aktivieren“.
Das Treiberpaket nennt sich ivtv. Die offizielle Homepage zu diesem Projekt ist: http://www.ivtvdriver.org/!

Mit der Version 0.4.0-r3 unter Gentoo hatte ich einige Pobleme mit einem Kernel ab Version 2.6.15 aus diesem Grund habe ich zu einer maskierten Version gegriffen. Zu dem ist f�r den Kernel ab Version 2.6.x ja auch die ivtv Version 0.6.x zuständig!

Ich nutze jetzt die Version 0.6.3. Um diese unter Gentoo zu „demaskieren“ hilft folgendes:

echo "media-tv/ivtv ~x86" >> /etc/portage/package.keywords

Nun kann auch schon mit der Installation des Paketes begonnen werden:

emerge -a ivtv

Ist die installation sauber abgeschlossen kann man sein Modul auch schon laden:

modprobe ivtv

Nun sollte man am besten kurz nachschauen ob das mit dem Laden geklappt hat:

dmesg |grep ivtv

Es sollte sich in etwas so etwas in die Konsole erbrechen:

ivtv: ==================== START INIT IVTV ====================
ivtv: version 0.6.3 (tagged release) loading
ivtv: Linux version: 2.6.16-gentoo-r12 preempt PENTIUMIII REGPARM gcc-4.1
ivtv: In case of problems please include the debug info between
ivtv: the START INIT IVTV and END INIT IVTV lines, along with
ivtv: any module options, when mailing the ivtv-users mailinglist.
ivtv0: Autodetected Hauppauge WinTV PVR-350 card (cx23415 based)
tuner 1-0061: chip found @ 0xc2 (ivtv i2c driver #0)
tda9887 1-0043: chip found @ 0x86 (ivtv i2c driver #0)
saa7115 1-0021: saa7115 found @ 0x42 (ivtv i2c driver #0)
saa7127 1-0044: saa7129 found @ 0x88 (ivtv i2c driver #0)
msp3400 1-0040: MSP4418G-B3 found @ 0x80 (ivtv i2c driver #0)
ivtv0: loaded v4l-cx2341x-enc.fw firmware (262144 bytes)
ivtv0: loaded v4l-cx2341x-dec.fw firmware (262144 bytes)
ivtv0: Encoder revision: 0x02050032
ivtv0: Decoder revision: 0x02020023
ivtv0: Allocate DMA encoder MPEG stream: 128 x 32768 buffers (4096KB total)
ivtv0: Allocate DMA encoder YUV stream: 161 x 12960 buffers (2048KB total)
ivtv0: Allocate DMA encoder VBI stream: 80 x 26208 buffers (2048KB total)
ivtv0: Allocate DMA encoder PCM audio stream: 455 x 4608 buffers (2048KB total)
ivtv0: Create encoder radio stream
ivtv0: Allocate DMA decoder MPEG stream: 16 x 65536 buffers (1024KB total)
ivtv0: Allocate DMA decoder VBI stream: 512 x 2048 buffers (1024KB total)
ivtv0: Create decoder VOUT stream
ivtv0: Allocate DMA decoder YUV stream: 20 x 51840 buffers (1024KB total)
ivtv0: loaded v4l-cx2341x-init.mpg firmware (155648 bytes)
ivtv0: Initialized Hauppauge WinTV PVR-350, card #0
ivtv: ==================== END INIT IVTV ====================

Jetzt kann man schon das erste mal probieren ob man Fernsehen schauen kann. Man braucht nur einen Videoplayer der einen mpeg2 Stream abschpielen kann. Ich nutze dazu fast immer mplayer oder kmplayer.

Ein: mplayer /dev/video0 sollte nun Schnee in den Player zaubern. Nun ist es Zeit seinen Satelitenresiever (oder was auch immer) am Composite-Eingang seiner PVR350 in Gang zu setzen.

Folglich müssen wir unserer Karte nur noch sagen das wir einen anderen Eingang für unser Videosignal nutzen wollen!

ivtvctl -P zeigt uns den gerade genutzten Videoeingang. ivtvctl -n zeigt uns alle möglichen Video Ein- und Ausgänge.

Um ihn zu ändern brauchen wir ivtvctl -p der Composite-Eingang sollte auf 5 oder 6 liegen, also:

ivtvctl -p 5

Na? ist das nicht was? Bild und Ton sollte nun den Schnee aus unserem mplayer vertrieben haben.

Natürlich kann man nun auch mit der Karte ein Video aufnehmen! Einfach mal ein:

cat /dev/video0 > /ORDNERmitPASSENDENrechten/video.mpg

In die Konsole hämmern und schon wird aufgebommen. Ist man fertig mit seiner Aufnahmen kann man alles einfach mit STRG + C abbrechen. Die Datei /ORDNERmitPASSENDENrechten/video.mpg ist nun schon ein komplettes mpg Video und man kann damit machen was man will!

Natürlich kann man auch wärend der Aufnahme einfach mal schauen ob alle glatt geht und mit dem mplayer live testen:

mplayer /ORDNERmitPASSENDENrechten/video.mpg

Die Aufnahme kann dabei natürlich weiter laufen. So lässt sich dann auch die „Pause-Funtion“ nutzen, wenn auch etwas umständlich!

Wer Videorekorder, Teletext, TV-Zeitschrift, Pausefunktion, Netzwerkstreamen usw. usw.usw. haben will sollte sich nun doch vielleicht einmal überlegen MythTV oder VDR zu testen. tvtime xawtv und auch kdetv haben wohl zum Teil Plugins für die PVR350, diese kommen aber auch nicht ohne die ivtv-Treiber aus und mir ist noch keines unter die Nase gekommen, welches wirklich sauber Funktioniert hat.

Firewall

Update 2014

BOAR IST DAS SCHLECHT!!! Auf keinen Fall nachmachen… Gott ist das lange her!

 


 

Mein Netzwerk braucht natürlich eine Firewall. Diese muss die einzelnen Zugriffsrechte zwischen den Clients und den Netzen regeln sowie nach „ungewollten“ Packten filtern. Natürlich soll sie auch die Verbindung ins Internet absichern. Damit ich mich auch remote zu meinem Netzwerk verbinden kann habe ich den SSH-Dienst aus Richtung Internet freigegeben. Ich lade mit Hilfe des Programms BitTorrent freie CD- oder DVD-Images von Linux Distributionen wie z.B.: Debian GNU Linux herunter. Um hier nun den Nutzen und Sinn des Programms BitTorrent zu erhalten sind ganz besondere Zugriffsrechte an der Firewall nötig. Damit ich nicht gleich von jedem Script Kiddie genervt werde ist es ganz sinnvoll nicht auf jedes „Ping“ aus dem Internet zu antworten. Mache ich daher auch nicht :-). Es gehört vielleicht nicht ganz in eine Firewall aber ich möchte für einen bestimmten Netzwerkteil die maximale Bandbreite in beide Richtungen begrenzen.

Hier werde ich nun einige Teile meiner Firewall aufführen. Die hier aufgeführte Firewall ist natürlich nicht 1 zu 1 so bei mir im Einsatz. Einige Teile lasse ich weg oder schreibe sie etwas um. Man muss potenziellen Angreifern ja nicht unnötig helfen, oder?

Die Firewall läuft bei mir auf einem eigenen Rechner. Dieser ist ein Pentium 4 mit 2,4 Ghz, 512 MB RAM, zwei 40 GB SCSI Platten im Raid 1 und 3 NICs. Anfänglich waren 1024 MB RAM in dem System installiert. Dieses ist aber auf 512 MB RAM geändert worden, da dieses völlig ausreichend ist. Im Moment zumindest 😉 Als Betriebssystem habe ich Debian GNU Linux 3.0 mit dem Kernel 2.4 gewählt, welches über (das super geile) APT immer schön auf dem neusten Stand gehalten wird. Die Firewall wird über iptables realisiert und die Bandbreite über tc – traffic shaping geregelt.

Wie das eigentliche System nun gehärtet wird, IDS – Intrusion Detection System in meinem System funktioniert und die Dienste weiter abgesichert sind, werde ich vielleicht in einem späteren einmal beschreiben. Fragen dazu kann ich aber gerne beantworten.

Iptables benötigt einen Kernel 2.4 oder höher. Es ist recht weit verbreitet (fast bei jeder Distribution dabei), sehr simpel in der Anwendung und man kann damit sehr komplexe Aufgaben erfüllen. Iptables „speichert“ die Regeln in einer Art Liste / Tabelle. Schlägt irgendwo ein Paket auf schaut Iptables sich dieses an und geht die Regelliste von oben nach unten durch, bis es eine passende Regel gefunden hat. Dieses kann sehr oft zu Fehlern führen an denen man sich totsucht. Hat man im oberen teil z.B.: Erlaubt das vom Client mit der IP 192.168.0.3 alle Pakete ungehindert ins Internet dürfen, etwas weiter unten aber dann dem Client keinen Zugriff auf FTP geben möchten (also Port 21 sperren) werden wir uns wundern warum der Client immer noch FTP darf und suchen. Hier nimmt iptables nämlich die erste zutreffende Regel (alle Pakete ungehindert ins Internet). Iptables wird hier also nie bei der Verbotregel für Port 21 ankommen.

Tc ist seit einiger Zeit fester Bestandteil des offiziellen Linux Kernels. Um es nutzen zu können benötigen wir aber noch iptables und iproute2. Das feine an TC ist, dass man mit der Hilfe von iptables Pakete markieren kann und dessen Bandbreite dann nach festgelegten Regeln managen kann. Da man mit iptables alles mögliche filtern (also auch markieren) kann, ist hiermit fast jeder Idee recht einfach realisierbar.

#!/bin/bash


# TC-Krims
tc qdisc add dev eth2 root handle 1:0 htb default 10
tc qdisc add dev ppp0 root handle 1:0 htb default 10
tc class add dev eth2 parent 1:0 classid 1:1 htb rate 150kbit ceil 250kbit
tc class add dev ppp0 parent 1:0 classid 1:2 htb rate 30kbit ceil 40kbit
tc filter add dev eth2 parent 1: prio 0 protocol ip handle 1 fw flowid 1:1
tc filter add dev ppp0 parent 1: prio 0 protocol ip handle 2 fw flowid 1:2


# iptables-Modul
modprobe sch_htb
modprobe sch_sfq
modprobe cls_fw
modprobe cls_u32
modprobe cls_route
modprobe ip_tables


# Connection-Tracking-Module
modprobe ip_conntrack
modprobe ip_conntrack_irc
modprobe ip_conntrack_irc
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp 


# Tabelle flushen
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -t nat -X
iptables -t mangle -X


# Default-Policies setzen
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP


# MY_REJECT-Chain
iptables -N MY_REJECT

# MY_REJECT fuellen
iptables -A MY_REJECT -p tcp -m limit --limit 7200/h -j LOG --log-prefix "REJECT TCP "
iptables -A MY_REJECT -p tcp -j REJECT --reject-with tcp-reset
iptables -A MY_REJECT -p udp -m limit --limit 7200/h -j LOG --log-prefix "REJECT UDP "
iptables -A MY_REJECT -p udp -j REJECT --reject-with icmp-port-unreachable
iptables -A MY_REJECT -p icmp -m limit --limit 7200/h -j LOG --log-prefix "DROP ICMP "
iptables -A MY_REJECT -p icmp -j DROP
iptables -A MY_REJECT -m limit --limit 7200/h -j LOG --log-prefix "REJECT OTHER "
iptables -A MY_REJECT -j REJECT --reject-with icmp-proto-unreachable


# MY_DROP-Chain
iptables -N MY_DROP
iptables -A MY_DROP -m limit --limit 7200/h -j LOG --log-prefix "PORTSCAN DROP "
iptables -A MY_DROP -j DROP


# Alle verworfenen Pakete protokollieren
iptables -A INPUT -m state --state INVALID -m limit --limit 7200/h -j LOG --log-prefix "INPUT INVALID "
iptables -A OUTPUT -m state --state INVALID -m limit --limit 7200/h -j LOG --log-prefix "OUTPUT INVALID "
iptables -A FORWARD -m state --state INVALID -m limit --limit 7200/h -j LOG --log-prefix "FORWARD INVALID "


# Korrupte Pakete zurueckweisen
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A OUTPUT -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state INVALID -j DROP


# Stealth Scans etc. DROPpen
# Keine Flags gesetzt
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j MY_DROP
iptables -A FORWARD -p tcp --tcp-flags ALL NONE -j MY_DROP


# SYN und FIN gesetzt
iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j MY_DROP
iptables -A FORWARD -p tcp --tcp-flags SYN,FIN SYN,FIN -j MY_DROP


# SYN und RST gleichzeitig gesetzt
iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j MY_DROP
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN,RST -j MY_DROP


# FIN und RST gleichzeitig gesetzt
iptables -A INPUT -p tcp --tcp-flags FIN,RST FIN,RST -j MY_DROP
iptables -A FORWARD -p tcp --tcp-flags FIN,RST FIN,RST -j MY_DROP


# FIN ohne ACK
iptables -A INPUT -p tcp --tcp-flags ACK,FIN FIN -j MY_DROP
iptables -A FORWARD -p tcp --tcp-flags ACK,FIN FIN -j MY_DROP


# PSH ohne ACK
iptables -A INPUT -p tcp --tcp-flags ACK,PSH PSH -j MY_DROP
iptables -A FORWARD -p tcp --tcp-flags ACK,PSH PSH -j MY_DROP


# URG ohne ACK
iptables -A INPUT -p tcp --tcp-flags ACK,URG URG -j MY_DROP
iptables -A FORWARD -p tcp --tcp-flags ACK,URG URG -j MY_DROP


# Loopback-Netzwerk-Kommunikation zulassen
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT


# Maximum Segment Size (MSS) fr das Forwarding an PMTU anpassen
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu


# Connection-Tracking aktivieren
iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i ! ppp0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT


# Zocken mit den Kindern
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.100.0/24 -d 192.168.0.5 -j MASQUERADE


# Bandbeitenregelung
iptables -A POSTROUTING -t mangle -o eth2 -j MARK --set-mark 1
iptables -A POSTROUTING -t mangle -o ppp0 -s 192.168.100.0/24 -j MARK --set-mark 2


# SSH
iptables -A INPUT -i ppp0 -m state --state NEW -p tcp --dport 22 -j ACCEPT


# IP-Adresse des LAN-Interfaces ermitteln
LAN_IP=$(ifconfig eth0 | head -n 2 | tail -n 1 | cut -d: -f2 | cut -d" " -f 1)
LAN_IP2=$(ifconfig eth2 | head -n 2 | tail -n 1 | cut -d: -f2 | cut -d " " -f 1)
LAN_IP3=$(ifconfig eth3 | head -n 2 | tail -n 1 | cut -d: -f2 | cut -d " " -f 1)


#NAT fuer BitTorrent
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 6881:6889 -j DNAT --to-destination 192.168.0.9
iptables -t nat -A POSTROUTING -o eth0 -p tcp --dport 6881:6889 -j SNAT --to-source $LAN_IP
iptables -A FORWARD -i ppp0 -m state --state NEW -p tcp -d 192.168.0.9 --dport 6881:6889 -j ACCEPT


###########################################################################################################################


# Proxy Server
# Zugriff uerber die Firewall auf den Proxy
iptables -A INPUT -i eth0 -s 192.168.0.0/24 -p tcp --dport 3128 -j ACCEPT
iptables -A INPUT -i eth3 -s 192.168.101.0/24 -p tcp --dport 3128 -j ACCEPT
iptables -A INPUT -i eth2 -s 192.168.100.0/24 -p tcp --dport 3128 -j ACCEPT


# Diese duerfen alle direkt!
iptables -t nat -A POSTROUTING -o ppp0 -d dl1.antivir.de -p tcp --dport 80 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -d dl2.antivir.de -p tcp --dport 80 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -d dl3.antivir.de -p tcp --dport 80 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -d dl4.antivir.de -p tcp --dport 80 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -d dl1.avgate.net -p tcp --dport 80 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -d dl2.avgate.net -p tcp --dport 80 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -d dl3.avgate.net -p tcp --dport 80 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -d dl4.avgate.net -p tcp --dport 80 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -d dl5.avgate.net -p tcp --dport 80 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -d dl6.avgate.net -p tcp --dport 80 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -d dl7.avgate.net -p tcp --dport 80 -j MASQUERADE


iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.0.24 -p tcp --dport 80 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.101.10 -p tcp --dport 80 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.101.11 -p tcp --dport 80 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.0.10 -p tcp --dport 80 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.0.26 -p tcp --dport 80 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.0.28 -p tcp --dport 80 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.0.22 -p tcp --dport 80 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.0.9 -p tcp --dport 80 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.0.5 -p tcp --dport 80 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.0.100 -p tcp --dport 80 -j MASQUERADE


iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.101.30 -d 213.155.73.106 -p tcp --dport 80 -j MASQUERADE 
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.101.30 -d 213.155.73.106 -p tcp --dport 80 -j MASQUERADE 
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.101.30 -d 213.155.73.107 -p tcp --dport 80 -j MASQUERADE 
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.101.30 -d 213.155.73.107 -p tcp --dport 80 -j MASQUERADE 


## Um ganz sicher zu gehen machen wir die 80 sonst mal ganz zu :)
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.101.0/24 -p tcp --dport 80 -j DROP
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.0.0/24 -p tcp --dport 80 -j DROP
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.0/24 -p tcp --dport 80 -j DROP


###########################################################################################################################


# FTP


# - Kontrollverbindung
# - - Zugriff auf den Server
iptables -A INPUT -i ppp0 -p tcp --dport 1024:65535 --sport 21 ! --syn -j ACCEPT
iptables -A OUTPUT -o ppp0 -p tcp --sport 1024:65535 --dport 21 -j ACCEPT 


# - - Forwarding durch die Firewall 
iptables -A FORWARD -i eth0 -o ppp0 -p tcp --sport 1024:65535 --dport 21 -j ACCEPT
iptables -A FORWARD -i eth2 -o ppp0 -p tcp --sport 1024:65535 --dport 21 -j ACCEPT
iptables -A FORWARD -i eth3 -o ppp0 -p tcp --sport 1024:65535 --dport 21 -j ACCEPT
iptables -A FORWARD -i ppp0 -o eth0 -p tcp --dport 1024:65535 --sport 21 ! --syn -j ACCEPT
iptables -A FORWARD -i ppp0 -o eth2 -p tcp --dport 1024:65535 --sport 21 ! --syn -j ACCEPT
iptables -A FORWARD -i ppp0 -o eth3 -p tcp --dport 1024:65535 --sport 21 ! --syn -j ACCEPT


# - aktives FTP
# - - Zugriff auf den Server
iptables -A INPUT -i ppp0 -p tcp --dport 1024:65535 --sport 20 -j ACCEPT
iptables -A OUTPUT -o ppp0 -p tcp --sport 1024:65535 --dport 20 ! --syn -j ACCEPT


# - - Forwarding durch die Firewall
iptables -A FORWARD -i eth0 -o ppp0 -p tcp --sport 1024:65535 --dport 20 ! --syn -j ACCEPT
iptables -A FORWARD -i eth2 -o ppp0 -p tcp --sport 1024:65535 --dport 20 ! --syn -j ACCEPT
iptables -A FORWARD -i eth3 -o ppp0 -p tcp --sport 1024:65535 --dport 20 ! --syn -j ACCEPT
iptables -A FORWARD -i ppp0 -o eth0 -p tcp --dport 1024:65535 --sport 20 -j ACCEPT
iptables -A FORWARD -i ppp0 -o eth2 -p tcp --dport 1024:65535 --sport 20 -j ACCEPT
iptables -A FORWARD -i ppp0 -o eth3 -p tcp --dport 1024:65535 --sport 20 -j ACCEPT


# - passives FTP
# - - Zugriff auf den Server
iptables -A INPUT -i ppp0 -p tcp --dport 1024:65535 --sport 1024:65535 ! --syn -j ACCEPT
iptables -A OUTPUT -o ppp0 -p tcp --sport 1024:65535 --dport 1024:65535 -j ACCEPT


# - - Forwarding durch die Firewall
iptables -A FORWARD -i eth0 -o ppp0 -p tcp --sport 1024:65535 --dport 1024:65535 -j ACCEPT
iptables -A FORWARD -i eth2 -o ppp0 -p tcp --sport 1024:65535 --dport 1024:65535 -j ACCEPT
iptables -A FORWARD -i eth3 -o ppp0 -p tcp --sport 1024:65535 --dport 1024:65535 -j ACCEPT
iptables -A FORWARD -i ppp0 -o eth0 -p tcp --dport 1024:65535 --sport 1024:65535 ! --syn -j ACCEPT
iptables -A FORWARD -i ppp0 -o eth2 -p tcp --dport 1024:65535 --sport 1024:65535 ! --syn -j ACCEPT
iptables -A FORWARD -i ppp0 -o eth3 -p tcp --dport 1024:65535 --sport 1024:65535 ! --syn -j ACCEPT


###########################################################################################################################


# LAN-Zugriff auf ethx
iptables -A INPUT -m state --state NEW -i eth0 -j ACCEPT
iptables -A INPUT -i eth3 -s 192.168.101.10 -p udp --dport 22 -j ACCEPT
iptables -A INPUT -i eth3 -s 192.168.101.10 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -i eth3 -s 192.168.101.11 -p udp --dport 22 -j ACCEPT
iptables -A INPUT -i eth3 -s 192.168.101.11 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -i tun0 -p udp --dport 22 -j ACCEPT
iptables -A INPUT -i tun0 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -m state --state NEW -i eth2 -j DROP
iptables -A INPUT -m state --state NEW -i eth3 -j DROP


# Default-Policies mit REJECT
iptables -A INPUT -j MY_REJECT
iptables -A OUTPUT -j MY_REJECT
iptables -A FORWARD -j MY_REJECT


# Routing
echo 1 > /proc/sys/net/ipv4/ip_forward 2> /dev/null




###########################################################################################################################


# DNS nach draussen darf nur mein DNS-Server
## Mein lieber DNS-Server
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.0.10 -p tcp --dport 53 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.0.10 -p udp --dport 53 -j MASQUERADE
## Tja, und alle die es halt nicht duerfen :)
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.101.0/24 -p tcp --dport 53 -j DROP
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.101.0/24 -p udp --dport 53 -j DROP
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.0/24 -p tcp --dport 53 -j DROP
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.0/24 -p udp --dport 53 -j DROP


# Der liebe Sebi darf schoen xMule machen :)
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.0.9 -p tcp --dport 4000:5000 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.0.9 -p udp --dport 4000:5000 -j MASQUERADE
# Sonst darf aber kein Schwein xMule....
iptables -t nat -A POSTROUTING -o ppp0 -p tcp --dport 4000:5000 -j DROP
iptables -t nat -A POSTROUTING -o ppp0 -p udp --dport 4000:5000 -j DROP


# Kernel darf alles
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.101.10 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.101.10 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth2 -s 192.168.101.10 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.101.11 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.101.11 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth2 -s 192.168.101.11 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.101.2 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.101.2 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth2 -s 192.168.101.2 -j MASQUERADE


# Aus dem Netz 192.168.100.0 drfen nur Leutz die ich mag auch auf meinen dns-server zugreifen und auch nur
# auf diesen. Wre ja noch schner wenn da jeder spacken drfte.
iptables -t nat -A POSTROUTING -o eth0 -p tcp --dport 53 -s 192.168.100.2 -d 192.168.0.10 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -p udp --dport 53 -s 192.168.100.2 -d 192.168.0.10 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -p tcp --dport 53 -s 192.168.101.30 -d 192.168.0.10 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -p udp --dport 53 -s 192.168.101.30 -d 192.168.0.10 -j MASQUERADE 
iptables -t nat -A POSTROUTING -o eth0 -p tcp --dport 53 -s 192.168.100.100 -d 192.168.0.10 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -p udp --dport 53 -s 192.168.100.100 -d 192.168.0.10 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -p tcp --dport 53 -s 192.168.100.22 -d 192.168.0.10 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -p udp --dport 53 -s 192.168.100.22 -d 192.168.0.10 -j MASQUERADE 


# Wlan
iptables -t nat -A POSTROUTING -o eth0 -p tcp --dport 53 -s 192.168.101.0/24 -d 192.168.0.10 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -p udp --dport 53 -s 192.168.101.0/24 -d 192.168.0.10 -j MASQUERADE


# Cederic darf auf den Printserver fr die Buerodrucker zugreifen
#iptables -t nat -A POSTROUTING -o eth0 -s 192.168.100.2 -d 192.168.0.251 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.101.30 -d 192.168.0.251 -j MASQUERADE


# Cederic darf auf dem Netz 192.168.100.0 auf meinen mail-server zugreife
iptables -t nat -A POSTROUTING -o eth0 -p tcp --dport 25 -s 192.168.100.2 -d 192.168.0.10 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -p tcp --dport 110 -s 192.168.100.2 -d 192.168.0.10 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -p tcp --dport 25 -s 192.168.101.30 -d 192.168.0.10 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -p tcp --dport 110 -s 192.168.101.30 -d 192.168.0.10 -j MASQUERADE


# Anna darf auch mp3s hoeren
iptables -t nat -A POSTROUTING -o eth0 -p tcp --dport 137:139 -s 192.168.101.30 -d 192.168.0.10 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -p udp --dport 137:139 -s 192.168.101.30 -d 192.168.0.10 -j MASQUERADE


# Zugriff vom gesammten internen Netz auf die Test mp3 maschine
iptables -t nat -A POSTROUTING -o eth0 -p udp --dport 80 -s 192.168.101.0/24 -d 192.168.0.9 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -p tcp --dport 80 -s 192.168.101.0/24 -d 192.168.0.9 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -p udp --dport 8000 -s 192.168.101.0/24 -d 192.168.0.9 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -p tcp --dport 8000 -s 192.168.101.0/24 -d 192.168.0.9 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -p udp --dport 80 -s 192.168.100.0/24 -d 192.168.0.9 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -p tcp --dport 80 -s 192.168.100.0/24 -d 192.168.0.9 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -p udp --dport 8000 -s 192.168.100.0/24 -d 192.168.0.9 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -p tcp --dport 8000 -s 192.168.100.0/24 -d 192.168.0.9 -j MASQUERADE


# Kernel-Error darf natrlich ins Netz 192.168.100.0 zugreifen :)
iptables -t nat -A POSTROUTING -o eth2 -s 192.168.0.5 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth2 -s 192.168.0.110 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth2 -s 192.168.0.111 -j MASQUERADE


# und natrlich ins wlan
iptables -t nat -A POSTROUTING -o eth3 -s 192.168.0.5 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth3 -s 192.168.0.110 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth3 -s 192.168.0.111 -j MASQUERADE


# Einige Ports aus dem Netz 192.168.100.0 werden nicht geroutet.


iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.0/24 -p tcp --dport 25 -j DROP
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.0/24 -p udp --dport 25 -j DROP
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.0/24 -p tcp --dport 110 -j DROP
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.0/24 -p udp --dport 110 -j DROP
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.0/24 -p tcp --dport 443 -j DROP
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.0/24 -p udp --dport 443 -j DROP


###########################################################################################################################


#Cederic
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p tcp --dport 22 -j DROP
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p udp --dport 22 -j DROP
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -d 62.216.176.242 -p tcp --dport 31343 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p udp --dport 8767 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p udp --dport 8766 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p udp --dport 4765 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p tcp --dport 6111:6119 -j MASQUERADE 
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p udp --dport 6111:6119 -j MASQUERADE 
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p tcp --dport 4000 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p udp --dport 4000 -j MASQUERADE 
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p tcp --dport 6667:6669 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p udp --dport 6667:6669 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p tcp --dport 1:79 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p udp --dport 1:79 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p tcp --dport 81:1024 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p udp --dport 81:1024 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p tcp --dport 27000:29000 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p udp --dport 27000:29000 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p tcp --dport 14534 -d 82.211.60.25 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p udp --dport 14534 -d 82.211.60.25 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p tcp --dport 6003 -d half-life.east.won.net -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p udp --dport 6003 -d half-life.east.won.net -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p tcp --dport 6003 -d half-life.west.won.net -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p udp --dport 6003 -d half-life.west.won.net -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p tcp --dport 6003 -d half-life.central.won.net -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p udp --dport 6003 -d half-life.central.won.net -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p tcp --dport 7002 -d half-life.east.won.net -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p udp --dport 7002 -d half-life.east.won.net -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p tcp --dport 7002 -d half-life.west.won.net -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p udp --dport 7002 -d half-life.west.won.net -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p tcp --dport 7002 -d half-life.central.won.net -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p udp --dport 7002 -d half-life.central.won.net -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p tcp --dport 5190 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p udp --dport 5190 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p tcp --dport 10636 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p udp --dport 10636 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -d 81.2.131.248 -s 192.168.100.2 -p tcp --dport 26580 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -d 81.2.131.248 -s 192.168.100.2 -p udp --dport 26580 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -d 217.172.188.219 -p tcp --dport 6000 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -d 217.172.188.219 -p udp --dport 6000 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -d 81.169.187.190 -p tcp --dport 3445 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -d 81.169.187.190 -p udp --dport 3445 -j MASQUERADE 
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -d 62.75.250.105 -p tcp --dport 8000 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -d 62.75.250.105 -p udp --dport 8000 -j MASQUERADE


#Server-Bodo 
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.100 -p tcp --dport 22 -j DROP
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.100 -p udp --dport 22 -j DROP
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.100 -p tcp --dport 1:79 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.100 -p udp --dport 1:79 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.100 -p tcp --dport 81:1024 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.100 -p udp --dport 81:1024 -j MASQUERADE


# Anna
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.101.30 -p tcp --dport 1:1024 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.101.30 -p udp --dport 1:1024 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.101.30 -p tcp --dport 5190 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.101.30 -p udp --dport 5190 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.101.30 -p tcp --dport 10636 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.101.30 -p udp --dport 10636 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.101.30 -d 213.155.73.107 -p tcp --dport 7670 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.101.30 -d 213.155.73.107 -p udp --dport 7670 -j MASQUERADE


# AnnA-wlan
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.101.101 -p tcp --dport 1:1024 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.101.101 -p udp --dport 1:1024 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.101.101 -p tcp --dport 5190 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.101.101 -p udp --dport 5190 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.101.101 -p tcp --dport 10636 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.101.101 -p udp --dport 10636 -j MASQUERADE


# Alles was aus dem Net 192.168.100.0 kommt und ich nicht erlaubt habe bleibt auch da :)
iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -j DROP
iptables -t nat -A POSTROUTING -s 192.168.101.0/24 -j MASQUERADE


# Aus Netz 192.168.0.0 erst mal alles weitere durch lassen
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.0.0/24 -j MASQUERADE


###########################################################################################################################

# SYN-Cookies
echo 1 > /proc/sys/net/ipv4/tcp_syncookies 2> /dev/null

# Stop Source-Routing
for i in /proc/sys/net/ipv4/conf/*; do echo 0 > $i/accept_source_route 2> /dev/null; done

# Stop Redirecting
for i in /proc/sys/net/ipv4/conf/*; do echo 0 > $i/accept_redirects 2> /dev/null; done

# Reverse-Path-Filter
# Auskommentiert, da IPSEC mit RP_Filter nicht funktioniert!
# for i in /proc/sys/net/ipv4/conf/*; do echo 2 > $i/rp_filter 2> /dev/null; done

# Log Martians
for i in /proc/sys/net/ipv4/conf/*; do echo 1 > $i/log_martians 2> /dev/null; done

# BOOTP-Relaying ausschalten
for i in /proc/sys/net/ipv4/conf/*; do echo 0 > $i/bootp_relay 2> /dev/null; done

# Proxy-ARP ausschalten
for i in /proc/sys/net/ipv4/conf/*; do echo 0 > $i/proxy_arp 2> /dev/null; done

# Ungltige ICMP-Antworten ignorieren
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses 2> /dev/null

# ICMP Echo ignorieren
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all 2> /dev/null

# Max. 500/Sekunde (5/Jiffie) senden
echo 5 > /proc/sys/net/ipv4/icmp_ratelimit

# Speicherallozierung und -timing fr IP-De/-Fragmentierung
echo 262144 > /proc/sys/net/ipv4/ipfrag_high_thresh
echo 196608 > /proc/sys/net/ipv4/ipfrag_low_thresh
echo 30 > /proc/sys/net/ipv4/ipfrag_time

# TCP-FIN-Timeout zum Schutz vor DoS-Attacken setzen
echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout

# Maximal 3 Antworten auf ein TCP-SYN
echo 3 > /proc/sys/net/ipv4/tcp_retries1

# TCP-Pakete maximal 15x wiederholen
echo 15 > /proc/sys/net/ipv4/tcp_retries2

 

 

 

Wlan-Sicherheit

Wie finde ich heraus ob mein Wlan sicher ist?
(Bilder werden beim Anklicken gross.)

Hier möchte ich die möglichen „Angriffsmethoden“ zu einem Wlan
beschreiben. Am Ende wird jedem Sysadmin dann selbst auffallen, welche Bereiche
man am besten wie schützen sollte.

Es kommt immer wieder vor, dass Angestellte in der Firma einen AccessPoint
aufstellen. Dieses ohne den Admin darüber zu informieren. Was natürlich
ein grosses Sicherheitsproblem ist. Daher werde ich zum Anfang erst einmal beschreiben, wie
es überhaupt möglich ist ein Wlan zu finden. Alle meine Beschreibungen werden sehr
grob ausfallen. Wer sich wirklich mit diesem Thema beschäftigen möchte sollte sich
besser selbst mit den Einzelheiten auseinandersetzen.

Anhand folgender Ausrüstung, welche ich selbst besitze, werde ich die Beschreibung
und meine Beispiele machen.

Um mich nicht schon beim Suchen mit einem grossen und auffälligen Notebook herumschlagen
zu müssen habe ich den Sharp Zaurus SL-5500G mit einer SanDisk
CompactFlash 802.11b Low Power Wireless LAN Card
. Die Wlan Karte braucht sehr wenig Strom
und hat einen Prism II-Chip verbaut. Will man eine Wlan-Karte, welche ohne Probleme
mit Linux zusammenarbeiten, sollte man auf diesen Chip achten.

Mit Hilfe von meinem kleinen Zaurus kann ich nun sehr bequem und unauffällig durch die Gegend
laufen und nach WLANs ausschau halten. Habe ich dort mit Hilfe vom Wellenreiter ein Funknetzwerk
gefunden, bekomme ich gleich einige wichtige Informationen. Diese helfen mir dann dabei das Wlan einzuordnen.

Hat man ein Netz gefunden, welches interessant ausschaut (meist schon an der SSID zu erkennen),
ist es natürlich angenehmer mit einem Notebook zu arbeiten. Auch die Möglichkeiten sind hier grösser.
Jetzt gibt es aber wieder Probleme. Mit einem Notebook in der Hand fällt man auf. Man muss sich also in eine Ecke
verdrücken. Meist leidet der Empfang darunter. Sitzt man im Auto schirmt das Metall sofort alles ab.
Darum gibt es so etwas:

Links ist ein Standfuss mit Magnet. Dieser hält auch bei 50km/h noch auf dem Autodach.
Auf diesen wird nun die Antenne (Mitte) geschraubt. Dieses kann man nun ohne Probleme in die
Orinoco Gold PCMCIA-Karte (rechts) stecken, hier ist auch ein Prism II Chip verbaut.
Fertig….. Der Empfang ist einfach nur geil. Egal
wo man nun genau sitzt!

Jetzt fehlt nur noch ein Notebook.

Ich nutze ein Fujitsu Siemens LifeBook E 7110! Linux arbeiten mit
allen Komponenten in diesem Notebook ohne Probleme und gebastel zusammen.
Um Funknetzwerke zu finden, muss die Wlan-Karte in den Monitor Mode gesetzt werden.
Im Monitor Mode nimmt die Karte alle Packet an. Egal aus welchem Netz sie kommen und egal
für wen sie bestimmt sind.
Der Standart Linux-Kernel kann die Karte nicht in den Monitor Mode setzen. Dieser muss also gepatch
werden oder es muss ein passendes Kernelmodul erstellt werden. Am einfachsten geht es so:

0. Mit iwpriv schauen ob der eigene Kernel vielleicht schon gepatcht wurde!
1. Quellen des aktuellen Kernels installieren.
2. gcc installieren.
3. Die aktuelle Konfiguration des Kernels ins root der Kernelquellen legen.
Unter Suse: zcat /proc/config.gz > .config
Als Root unter /usr/src/linux
4. Saug dir hier die Datei orinoco-0.13e-SN-5.tar.bz2
5. Datei schön entpacken!
6. Als Root-User folgendes im root des Kernelmodules tippern:
make modules; make install
7. alle Dateien mit der Endung ko in /lib/modules/dein-aktueller-kernel/drivers/net/wireless kopieren.
Vorher Sicherung davon machen, da du einiges überschreiben musst!
8. Neustarten oder die Module entladen und laden.

Jetzt sollte nach der Eingabe von „iwpriv“, beim Teil der Wlan-Karte der Monitor Mode auftauchen.

Um mit dem Notebook nun nach Wlans zu suchen, nutzt man am besten das Programm Kismet.

Dieses sollte vorher noch konfigurieren werden;-). Es gibt unter /etc/kismet/ die Datei:
kismet.conf.
In dieser müssen wir zwei Änderungen vornehmen.
Beim Punkt „suiduser=“ tragen wir hinter dem = unseren Usernamen ein mit dem wir auf der Linux
Kiste arbeiten.
Am Punkt „source=“ tragen wir hinter dem = folgendes ein: orinoco,eth1,orinocosource
Wobei wir eth1 natürlich gegebenenfalls gegen unsere Wlan-Karte austauschen!
Ein „sudo kismet“ in der Userkonsole sollte nun das Programm starten und sogleich nach Netzen
suchen.
Haben wir eines gefunden und wollen erst einmal nachschauen, was genau dort durch die Gegend fliegt.
Brauchen wir dazu ein Programm mit dessen Hilfe wir den Datenstrom auslesen können. Dieses erledigt Ethereal
super. Später ist es auch drin, mit diesem Programm sehr komplexe Filterungen auf den Datenstrom anzuwenden.
Da wir aber nur die Daten annehmen können welche auf unserem Channel gesendet werden.
Betreibt Kismet Channelhopping. D.h.: Kismet springt im ms. Takt vom Einen in den Anderen Channel.
Wenn wir einen konstanten Datenstrom mitlesen wollen, ist das scheisse! Wir können dann ja nur die Daten
mitlesen, wenn wir auch gerade im passenden Channel sind. Daher beenden wir Kismet und setzen die Karte von Hand
in den Monitor Mode und den passenden Channel. Dieses geht als User-Root so:
iwpriv eth1 monitor 1 1
eth1 ist in diesem Fall die Wlan-Karte, mit monitor 1 sagen wir das der Monitor Mode gestartet werden soll
(mit iwpriv eth1 monitor 0 würden wir ihn also wieder beenden) und die letzte 1 gibt den Channel an, in
welchem die Karte gesetzt werden soll.

Ethereal kann nun mit den im Bild angezeitgen Optionen gestartet werden.
Nun würde Ethereal JEDES Datenpaket welches im Channel 1 durch die Gegend fliegt
auffangen und speichern.
Sollte auf dem AccessPoint eine Mac-Adressenfilterung eingerichtet sein, so müssen wir uns um
diese nicht weiter kümmern. Wir versuchen uns ja nicht am AP anzumelden, sondern hören ja einfach
nur zu. Interessant wird es erst, wenn das Netzwerk die Daten verschlüsselt überträgt.
Wir bekommen zwar immer noch alles, können damit aber nichts mehr anfangen.
Es ist aber Möglich WEP-Verschlüsselungen aufzubrechen, den Schlüssel zu errechnen.

AirSnort ist ein Programm welches genau das macht. Es kann die Karte in den Monitor-Mode
packen. Wenn vom User gewünscht auch gleich noch in den passenden Channel. Ab diesem Zeitpunkt
sammelt Airsnort die verschlüsselten Packete. Bei einer 128 Bit WEP Verschlüsselung muss es ca.
6 Millionen Pakete sammeln.
Das liegt daran, dass für die WEP Verschlüsselung nur ein begrenzter
Zufallszahlenraum zur Verfühgung steht. Nach ca. 6 Millionen Paketen wiederholen sich in jedem Fall Teile.
Mit diesen kann AirSnort nun rechnen.
Hat AirSnort den Schlüssel erfolgreich errechnet, tragen wir ihn einfach mit iwpriv bei unserer Wlan-Karte
ein und schon kann es weiter gehen!

WEP Verschlüsselungen mit einer Stärke von 256 Bit sind im Vergleich noch sehr sicher. Es würde
eine sehr lange Zeit dauern die notwendigen Pakete zu sammeln. Leider arbeiten kaum Karten mit 256 Bit WEP
Schlüsseln. Es gibt auch eine neue Methode: WPA… WPA gilt bisher als sicher.

Ich stufe mein Wlan immer noch als ein feindliches Netz ein. So behandelt es auch meine Firewall und so sollte es
jeder Admin behandeln. Es ist und bleibt wohl noch über lange Zeit ein grosses Sicherheitsproblem.

Genauere Fragen zu diesem Thema beantworte ich gerne per E-Mail!
Solltest du Fragen stellen achte bitte darauf deine Frage so genau wie irgend
möglich zu stellen. Beschreibe kurz dein Problem, haue mich nicht mit log und
configs zu und habe etwas Geduld. Ich bekomme nicht nur eine E-Mail am Tag. Darum
werde ich ganz sicher nicht auf unfreundliche und ungenaue Fragen antworten. KEINER
hat ein Recht drauf von mir Support zu bekommen!!

Dualhead mit KDE

Ich habe mir vor ein paar Tagen eine neue Grafikkarte geleistet. Es ist eine Gainward PowerPack Ultra /1980. Auf dieser ist ein GeForce 6600GT Chip mit 256MB DDR3 RAM verbastelt. Nun hat die Karte einen Analogen VGA Connector und einen DVI Connector. Ich selbst habe hier noch einen 17” CRT Monitor in der Ecke stehen. Da ist mir nun eine Idee gekommen….

Ich könnte ja einfach zwei Monitore an meinen Linux Rechner anschließen. An meinem Hauptrechner ist ein 19” CRT Monitor mit Analogeingang angeschlossen. Diesen einfach mit dem DVI Adapter an den DVI Connector der VGA-Karte und den 17“ CRT Monitor (auch Analogeingang) an den normalen Analog VGA Connector der VGA-Karte.

Tja… einschalten und schaut selbst:

Beim Booten zeigen beide Monitore schon mal das gleiche an. Zumindest bis der X-Server gestartet wird. Bei mir werkelt der X.org.

Ist dieser gestartet wird der zweite Monitor abgeschaltet und alles läuft weiter wie gehabt. 🙁

Also schnell STRG + ALT + F1 gedrückt als root angemeldet und direkt mit dem vi in die xorg.conf….

Hier habe ich nun folgendes eingetragen:

Section "ServerLayout"
Identifier "XFree86 Dual-Head"
Screen "Screen0"
Screen "Screen1" RightOf "Screen0"
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "PS/2 Mouse" "CorePointer"
Option "Xinerama" "on"
EndSection

Hier ist der Eintrag Option „Xinerama“ „on“hinzugekommen. Dann die Screen-Sektion!

Hier sind die beiden Screens (unten steht mehr) eingetragen. Wichtig ist das RightOf… Dieses gibt an, welche Monitor wo seht. Ok und den Identifier habe ich etwas umbenannt das ist aber für die Funktion uninteressant!

Die weiteren Punkte sind wie so oft selbsterklärend, finde ich zumindest.

Section "Monitor"
Identifier "Monitor0"
VendorName "AOC"
ModelName "19"
Option "DPMS"
EndSection

Section "Monitor"
Identifier "Monitor1"
VendorName "AOC"
ModelName "17"
Option "DPMS"
EndSection

Section "Device" Identifier "Card0"
Driver "nvidia"
VendorName "Nvidia Technologies Inc"
BoardName "Nvidia 6600 GT"
BusID "PCI:1:0:0"
Screen 0
Option "AGPFastWrite" "True"
EndSection

Section "Device"
Identifier "Card1"
Driver "nvidia"
VendorName "Nvidia Technologies Inc"
BoardName "Nvidia 6600 GT"
BusID "PCI:1:0:0"
Screen 1
Option "AGPFastWrite" "True"
EndSection

Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Depth 24
Modes "1280x1024"
EndSubSection
EndSection

Section "Screen"
Identifier "Screen1"
Device "Card1"
Monitor "Monitor1"
DefaultDepth 24
SubSection "Display"
Depth 24
Modes "1280x1024"
EndSubSection
EndSection

So schaut des ganze auf dem Desktop aus wenn es funktioniert. Der Hintergrund ist von http://www.deviantart.com

DAVfs2 und GMX: WebDAV unter Linux einrichten

Mit davfs2 den 1GB großen GMX Account als Laufwerk einbinden.

Den GMX Account gibt es kostenlos und man hat die Möglichkeit ihn mit bis zu 1GB Daten zu füttern. Fast jeder Linux User hat schon in den Konqueror ein: webdavs://mediacenter.gmx.net/ getippert und dort einige Daten zwischengelagert oder sonst etwas damit angestellt!

Wäre es nicht aber eine wunderbare Sache diesen Speicherplatz zu mounten und dann so nutzen zu können wie jedes andere „normale“ Laufwerk?

Ein großer Vorteil ist die Erreichbarkeit. Denn fast alles läuft über https. Ist also fast in jeder Firewall offen und es ist verschlüsselt. Was will man mehr?

Wer es nun einrichten möchte, sollte wie folgt vorgehen:

1.
Zuerst muss das Paket „davfs2“ installiert werden. Gentoo User machen einfach mal ein emerge -a davfs2. Unter /etc/davfs2 müssen in der Datei ’secrets‘ die Accountdaten für das GMX-Mediacenter, nach folgendem Schema, gespeichert werden:

# 1. Account
https://XXXXXXXX@mediacenter.gmx.net/ XXXXXXXX „Passwort1“
# 2. Account
https://YYYYYYYY@mediacenter.gmx.net/ YYYYYYYY „Passwort2“

Die Buchstabenreihe ist hier gegen die achtstellige Kundennummer des Accounts zu ersetzten. In der Datei wird nun das Kennwort im Klartext stehen. Aus diesem Grund sollte die Datei nur vom root zu lesen sein chmod 0600!

2.
Mountpunkte setzen und User-Mount erlauben

Zuerst muss im Dateisystem für die externen Datenspeicher ein Mountpunkt angelegt werden. In diesem Beispiel werden ‚/mnt/extern1‘ resp. ‚extern2‘ verwendet.

Die Datei /etc/fstab wird sodann um die zwei Mounpunkte und den Mountparametern erweitert:

https://XXXXXXXX@mediacenter.gmx.net/ /mnt/extern1 davfs user,noauto 0 0
https://YYYYYYYY@mediacenter.gmx.net/ /mnt/extern2 davfs user,noauto 0 0

 Als root kann man nun mit mount /mnt/extern1 den externen Webdav-Datenspeicher einbinden. Damit aber ein normaler User die Mediacenter mounten kann, müssen zusätzliche Vorkehrungen getroffen werden.

Auf /usr/lib/mount-davfs-2.6 muss das SUID-Bit als root mit chmod 4755 gesetzt werden. Wer einen 2.4er-Kernel verwendet, nimmt /usr/lib/mount-davfs-2.4.

Der herkömmliche Benutzer besitzt keine Schreibrechte auf /var/run/mount.davfs. Da in diesem Verzeichnis die PID des Mountprozesses abgelegt wird, sollte man als root die Berechtigungen bspw. mit chmod auf ‚0770‘ setzen und die Gruppe des Verzeichnisses mit chgrp auf ‚users‘ (z.B.) setzen. Hier kann man verfahren wie man möchte, Hauptsache ist nur, dass der oder die Benutzer das Verzeichnis schreiben dürfen. Allerdings empfiehlt sich ein chmod 0777 nicht unbedingt.

Als letzten Schritt kopiert man die Datei /etc/davfs2/secrets in das Homeverzeichnis des entsprechenden Benutzers in den Ordner ~/.davfs2. Auch hier muss die Datei secrets die Zugriffsrechte 0600 aufweisen.

Neuere Beiträge »

© 2026 -=Kernel-Error=-RSS

Theme von Anders NorénHoch ↑