Beiträge

Du bist auf Ibiza und brauchst die nötige Unterstützung bei einem Event, Catering oder einer Hochzeit?

Flying Pig Ibiza hat uns für Customizing und Weiterentwicklung on Board geholt.

Übersetzung und Lektorat einfach Online kalkulieren und bestellen.

Für Customizing, Weiterentwicklung und Anpassung des Online Portales der Cambridge Editing AG aus der Schweiz sind wir der gesetzte Partner.

ipv6_logoWenn man schon IPv4 und IPv6 aktiviert und seine Dienste über beide Protokolle zur Verfügung stellt, möchte man manchmal auch wissen wie viel Traffic über die einzelnen Wege zustande kommt.

Anbei ein kleines Shellscript welches Apache-acceslogs vom gestrigen Tag auswertet.
Ontop zu einem regulären IPv4/IPv6 Test – Goldwert :-)

Man wundere sich nicht über den etwas sehr abgespaceten IPv6 Regex :-)

Dies lässt sich natürlich beliebig auf Dienste wie Mail, FTP usw erweitern.

#!/bin/bash

# title: apache duals stack traffic analyse
# contact: basti@baebeca.de
# source: baebeca.de
# article: http://blog.baebeca.de/2013/02/20/ipv4ipv6-dualstack-traffic-analyse/
# date: 20130216
# version: v.1.0

# ipv4 regex validation / visits
cat /var/log/apache2/access*.log | grep $(date -d yesterday +%d/%b/%Y) | grep -E '[0-9]{1,3}(\.[0-9]{1,3}){3}' | grep -v "(internal dummy connection)" | grep -v "Monitoring" | grep -v "Python-urllib" | grep -v "get_crawler.php" > /var/log/apache_traffic_ipv4

IPV4_VISITS=`cat /var/log/apache_traffic_ipv4 | wc -l`
echo "$IPV4_VISITS IPv4 visits"
echo ""

# ipv6 regex validation / visits
# ipv6 grep regex by Dicky (http://www.violato.net/blog/others/40-ipv6-regex-validation)
cat /var/log/apache2/access*.log | grep $(date -d yesterday +%d/%b/%Y) | grep -E '((([0-9A-Fa-f]{1,4}:){7}(([0-9A-Fa-f]{1,4})|:))|(([0-9A-Fa-f]{1,4}:){6}(:|((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})|(:[0-9A-Fa-f]{1,4})))|(([0-9A-Fa-f]{1,4}:){5}((:((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){0,1}((:((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){0,2}((:((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){0,3}((:((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:)(:[0-9A-Fa-f]{1,4}){0,4}((:((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(:(:[0-9A-Fa-f]{1,4}){0,5}((:((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})))' | grep -v "(internal dummy connection)" | grep -v "Monitoring" | grep -v "Python-urllib" | grep -v "get_crawler.php" > /var/log/apache_traffic_ipv6

IPV6_VISITS=`cat /var/log/apache_traffic_ipv6 | wc -l`
echo "$IPV6_VISITS IPv6 visits"
echo ""

# mysql inserts for statistics
# ipv4
mysql -u root -p<pass> <database> -e "INSERT INTO <table> SET date = '$(date --date='(date -d yesterday +%d/%b/%Y) 00:00:01 UTC+1 -86401 second' +%s)', apache_traffic_ipv4=$IPV4_VISITS ON DUPLICATE KEY UPDATE apache_traffic_ipv4=$IPV4_VISITS;"

# ipv6
mysql -u root -p<pass> <database> -e "INSERT INTO <table> SET date = '$(date --date='(date -d yesterday +%d/%b/%Y) 00:00:01 UTC+1 -86401 second' +%s)', apache_traffic_ipv6=$IPV6_VISITS ON DUPLICATE KEY UPDATE apache_traffic_ipv6=$IPV6_VISITS;"

 

Lebst du noch oder IPv6′st du schon :-}

Nun gibt es unseren IPv4 / IPv6 Test für alle Websites zum einbinden.

Die Einbindung erfolgt relativ simpel per Javascript. Einfach den folgenden Code im <body> einbinden. Bei Bedarf kann das Layout und Funktionen mittels Parameter in der URL angepasst werden.

<script src="https://www.baebeca.de/six/six.php"></script>

Folgende Parameter in der URL sind optional möglich:

?left=<0-100> (Prozentangabe - Horizontale Position von Links)
?hide=true (Check wird ausgeführt, jedoch nicht angezeigt)
?email=<email_address> (Wochenstatistik per Mail und Graph)

ipv6_test_screen

 

Sofern weitere Anpassungsmöglichkeiten gewünscht sind, bitte bescheid geben ;)
Diese werden dann natürlich ergänzt.

Statistik: Positive IPv4 / IPv6 Checks der letzten Monate:

Zielsetzung: Erstellung einer „Big-Data“ Anwendung, die sowohl das automatische erstellen, erweitern, verwalten und speichern einer große Rainbowtable ermöglicht. Ziel war es Tabellen für Hash-Verfahren wie md5(), sha1(), MySQL4() und MySQL5() vorhalten zu können.

String länge: 0-100 Zeichen

 

Screenshot – PHPMyAdmin

Wie sich im Screenshot sehr schöne erkennen lässt wurde hierzu ein besonderes Schema innerhalb von MySQL verwendet.
(Wie genau das Schema innerhalb der jeweiligen Datenbanken/Tabellen aufgebaut wurde wird hier nicht preis gegeben)

Relativ zeitnah wurde eine Anzahl von „350 Millionen“ unterschiedlichen Strings erreicht.

Vorgehalten wurde der eigentliche String des Passwortes, sowie die dazugehörigen „hash-werte“ in:

  • md5()
  • mysql4()
  • mysql5()
  • sha1()

Durch ein spezielle entwickeltes Schema – welches sich selbst zur Indexierung benutzt – brauchten innerhalb der gesamten Hash-Datenbanken keinerlei Indizierungsmaßnahmen vorgenommen werden.

 Sprich, keinerlei Zeitverlust beim Eintragen neuer Inhalte

Ebenso wurde für die Rückwärtsauflösung hash->string ein spezielles Indexierungsverfahren gewählt welches sich oben im Screenshot erkenn lässt.

Lediglich die 2 Datenbanken „rb__index“ und „rb_md5“ führen überhaupt Indexe.

rb_md5 mit 28 Gigabyte
rb__index mit 3.5 Gigabyte

Diese Indexe reichen aus um sämtliche Datenbanken zu befüllen und abzufragen.

Besonderer Wert wurde auf die Performance der Anwendung gelegt.

Die Wahl der Struktur und Umsetzung wurde von einem weiteren Faktor begleitet.
So muss es ohne großen Aufwand – jederzeit – möglich sein neue Krypto Funktionen hineinzunehmen.

Zielsetzung: Die Erstellung einer Toolbar welche am unteren Rand des Browsers dockt und die gängigsten Social-Network Funktionen wie Chat, Freunde und Nachrichten kombiniert.

[jwplayer mediaid=“151″]

Skills:  Apache, HTML, JavaScript, JQuery, MySQL, PHP

Zielsetzung: Entwicklung eines Nightlife-Portal bestehend aus Bildern, Events, Community sowie Backend mit entsprechenden Verwaltungstools

  • Geile-Zeit.in – Pictures, Events und Community aus deiner Region

Im Projektverlauf wurden folgende Konzepte entwickelt und umgesetzt – (sämtliche Grafiken wurden von separater Firma erstellt):

  • Community
    • Userprofile
      • Galerien/Bilder
      • Freuende
      • Nachrichten
      • Chat
      • Achievement System
    • Bildmarkierungen
    • Usersuche
    • Statusupdates meiner Freunde / Region
    • Toolbar für Communityfunktionen
    • PayPal / Warenkorb System für Fotokauf und Druck
    • Facebook Integration
  • Pictures / Events / Locations
    • Logische Trennung nach Postleitzahlbereichen
    • Komplexe Datensammlung Bundesweiter Locations, Events und Bilder
    • Automatisierter Datenimport / Upload
    • Webansichten für Kommentare, Bewertungen und Einladungen
    • Strukturen für Bildergalerien inklusive Video Unterstützung
  • Management / Wartung
    • Administrationszugänge mit diversen Rechtestufen
    • Komplette Pflege über eigenes Backend (Von Usermanagement bis hin zu Programmierung und Serverwartung)
    • Abrechnungssystem für Fotografen / Franchiser
    • SMS, E-Mail Alarmsystem
    • Cronjob Monitoring
    • Automatische Spam Erkennung
    • Live und Test/Develop System inklusive automatischen Backup, Revisionierungs und Deployment System
    • Newsletter System

 

 

 

 

Skills: Apache, CSS, CSS 3, HTML, HTML 5, JavaScript, JQuery, MySQL,
PHP, RSS, htaccess