Kategori FH-Aachen

Kein youtube.com mehr…

Sonntag, Juni 14th, 2009

Wie schon basicthinking.de berichtet hat ist Youtube zumindest was Musik angeht der groessten Flops des vergangenen Jahrzehnts.

Bei uns in der Kellerbar haben wir auch feststellen müssen, dass die Qualität der Songs unsere hochwertige Anlage quält und beschlossen youtube.com mal eben zu sperren. Da wir sowieso eine hidden briege einsetzen war dies ganz einfach mit einer iptabels regel zu definieren.

iptables -A FORWARD -s 10.0.0.2 -d www.youtube.com -j DROP
iptables -A FORWARD -s 10.0.0.2 -d youtube.com -j DROP

Quelle: Fex

Frank kommt in den Raum und fragt

Samstag, Juni 6th, 2009

Frank: Was ist das den hier?
Christoph: Da ist Spannung drauf.

spannung

Smiley

Donnerstag, Juni 4th, 2009

Neulich beim Saubermachen:
Maus

PHP CLI Bug

Mittwoch, Juni 3rd, 2009

Oh man wie dämlich war den das. Im Errorlog tauchte folgende Fehlermeldung auf:
[03-Jun-2009 10:11:50] PHP Warning: include_once(1): failed to open stream: No such file or directory in /var/www/... on line 8
Line 8 Besagt: include_once("/var/www/include/inc.php");

Das in meinem Log include_once(1) stand hat mich dann doch etwas stutzig gemacht. Als ich das dann nach (string) getypecastet habe wir mir klar das ist ein Bug.
include_once((string)"/var/www/include/inc.php");
include_once('/var/www/include/inc.php');

Aufgetreten unter Fedora Core 9 PHP Version 5.2.6

dpkg -l <> yum -pa

Mittwoch, Mai 13th, 2009

So hier habe ich noch ne tolle Seite gefunden wo dpkg yum etc. gegenübergestellt werden. Ich suchte eigentlich nach dpkg -l für yum: yum -pa

Quelle : wiki.openvz.org

Neulich im Büro

Montag, Mai 11th, 2009

Ulla: Du hast ja noch Kaffee da willst du den Stiften?
Tobias: Ja aber der ist schon abgelaufen. Schmeckt der noch?
Christoph: Also schlechter kann er nicht mehr schmecken.

Ablaufplan Servermigration

Montag, Mai 4th, 2009

Da der BSCW Server der FH ein Livesystem ist von dem es kein Testumgebung gibt sollte eine Kopie von dem Server erstellt werden. Die Arbeitsgruppe vor mir hat versucht alle Dateien per rsync in eine VM zu Kopien dies hat aber nicht geklappt da es Probleme mit rechten etc. gab. Ich habe Dreieck eine Biberkopie gemacht und die sofort in eine VM kopiert.

Ablaufplan Servermigration
1. Eine VM mit einer größeren als der zu Migrierenden HD erstellen.
2. In der VM die Ubuntu Live CD starten
3. Netzwerk Konfigurieren

      ip addr add 192.168.0.2/24 dev eth0;
      ip route add default via 192.168.0.1 dev eth0;
      echo "nameserver 62.146.114.240" > /etc/resolf.conf;

4. OpenSSH-Server Installieren:

      sudo apt-get install openssh-server

5. Root Passwort setzen.

      sudo passwd root

6. HD Info Auslesen:

      fdisk -l

7. Ubuntu Live CD in BSCW Server einlegen und Neustarten
8. Netzwerk Konfigurieren

      ip addr add 192.168.0.3/24 dev eth0

9. HD Info Auslesen:

      fdisk -l

10. Mit dem kopieren beginnen

      sudo dd if=/dev/sda | ssh root@192.168.0.2 "dd of=/dev/sda"

11. VM ohne Netzwerk Neustarten!!!

Heute Firefox Plugin per Hand installieren

Montag, Mai 4th, 2009

Irgendwie hat das vmware-mks.xpi eine Macke und will sich nicht installieren lassen. Nach eine Google Recherche habe ich das Plugin dann per Hand installiert.

wget https://vmware-server/ui/plugin/mozilla/linux/vmware-mks.xpi --no-check-certificate

das Plugin Aussprachen in die folgenden Ordner kopieren:
~/.mozilla/firefox/hash.default/extensions/
~/.mozilla/plugin

Dann muss die ~/.mozilla/firefox/profiles.ini zum die folgende Zeile ergänzt werden:
Path=hash.default

Für das vmware-mks.xpi Plugin sind noch folgende Spezielle Dinge zu erledigen:
sudo apt-get install libexpat-ocaml libexpat1 libstdc++5 libstdc++6

ln -s /usr/lib/libexpat.so.1.5.2 /usr/lib/libexpat.so.0
rm -f /usr/lib/libexpat.so.1
ln -s /usr/lib/libexpat.so.0 /usr/lib/libexpat.so.1

Nach einem Firefox Rastart funktioniert das Plugin in dann auch.
Quelle: debianforum.de

Neuelich im Aufzug

Mittwoch, April 1st, 2009

Beim einladen der Videoanlage in den Aufzug ist ein Kabel halb vor der Tür liegen geblieben. Nach dem wir im ersten Stock angekommen sind habe ich mich vor die Lichtschranke gesetzt, da der Aufzug für den zweiten Stocke Programmiert war.

imag0024

Einer der Hausmeister hat dann das Kabel im ersten Stock befreit, in dem er die Tür geöffnet hat, damit ich das Kabel raus ziehen konnte.

Hidden Bridge mit MySQL Unterstützung

Freitag, März 6th, 2009

Als nächstes will ich Dokumentiren wie wir die Bridge mit MySQL Unterstützung aufgesetzt haben.

Dafür wird die Datenbank benötigt die ich schon für den DHCP Server verwendet habe.

Wichtig! Für mein Script wird das "Comand Line Interface" für PHP, das man einfach über apt-get install php5_cli installieren kann, benötigt.

Dann das Eigentlich Script. Es wird nur ausgeführt wenn Änderungen an der Datenbank Tabelle vorgenommen wurden. Löscht dann zuerst alle Filterregeln und setzt alle wieder. Wenn der Datenbank Server einmal nicht erreichbar sein sollte bleibt alles so wie es ist.
/usr/local/sbin/brieg.php

#!/usr/bin/php5
<?php
$server = "dhcp.server";
$user = "";
$password = "";
 
//DB
$link = mysql_connect($server,$user,$password);
$db_selected = mysql_select_db("address", $link);
if (!$db_selected) {
    die ('Kann Adresse nicht benutzen : ' . mysql_error());
}
 
$conf = "/usr/local/sbin/ebt.sh";
$EBTABLES="/sbin/ebtables";
$ETHFH = "eth3"; # <- Anpassen
$ETHBA = "eth2"; # <- Anpassen
 
$sql = "SELECT mac FROM mac WHERE UNIX_TIMESTAMP(zeit) >= ". fileatime($conf) ."";
if(!file_exists($conf) || mysql_num_rows(mysql_query($sql,$link)) > 0)
{
 
	$data = "#!/bin/bash
 
$EBTABLES -F
";
 
	$sql = "SELECT mac,ip FROM mac WHERE status='activ' ORDER BY host";
	$q = mysql_query($sql, $link) or die(mysql_error($link));
	for(;$ds = mysql_fetch_array($q);)
	{
		if (preg_match("/[0-9a-f][0-9a-f][:][0-9a-f][0-9a-f][:][0-9a-f][0-9a-f][:][0-9a-f][0-9a-f][:][0-9a-f][0-9a-f][:][0-9a-f][0-9a-f]/i", $ds['mac']))
		{
$data .= "
$EBTABLES -A FORWARD -p IPv4 -i $ETHBA -o $ETHFH -s ". $ds['mac'] ." --ip-src ". $ds['ip'] ." -j ACCEPT
$EBTABLES -A FORWARD -p IPv4 -i $ETHFH -o $ETHBA -d ". $ds['mac'] ." --ip-dst ". $ds['ip'] ." -j ACCEPT
$EBTABLES -A FORWARD -p ARP -i $ETHBA -o $ETHFH --arp-opcode 2 --arp-ip-src ". $ds['ip'] ." --arp-mac-src ". $ds['mac'] ." -j ACCEPT
$EBTABLES -A FORWARD -p ARP -i $ETHFH -o $ETHBA --arp-opcode 2 --arp-ip-dst ". $ds['ip'] ." --arp-mac-dst ". $ds['mac'] ." -j ACCEPT
";
        }
	}
 
$data .= "
$EBTABLES -A FORWARD -p ARP -i $ETHBA -o $ETHFH --arp-opcode ! 2 -j ACCEPT
$EBTABLES -A FORWARD -p ARP -i $ETHFH -o $ETHBA --arp-opcode ! 2 -j ACCEPT
 
$EBTABLES -A FORWARD -p IPv4 -i $ETHBA -o $ETHFH -j DROP
$EBTABLES -A FORWARD -p IPv4 -i $ETHFH -o $ETHBA -j DROP
";
 
$date .= "exit 0
";
 
	$fp = fopen($conf, 'w+');
	fwrite($fp, $data);
	fclose($fp);
 
	system("chmod u+x " . $conf);
	system($conf);
}
system("exit 0");
?>

Anschließend mit crontab -e einen Minütlichen Cronjob erstellen.
# m h dom mon dow command
* * * * * /usr/local/sbin/brieg.php

DHCP Server mit MySQL

Freitag, März 6th, 2009

So hier dokumentiere ich mal wie ich den Wohnheims DHCP Server mit MySQL Unterstützung aufgesetzt habe.

Zuerst eine Datenbank aufsäten. In meinem Fall ist das eine MySQL 5.0 Datenbank.

CREATE TABLE IF NOT EXISTS `mac` (
  `mac` varchar(17) collate utf8_unicode_ci NOT NULL DEFAULT '00:00:00:00:00:00',
  `ip` varchar(15) collate utf8_unicode_ci NOT NULL DEFAULT '149.201.241.0',
  `host` varchar(100) collate utf8_unicode_ci NOT NULL,
  `status` enum('activ','static','new','notpay','inactiv') collate utf8_unicode_ci NOT NULL DEFAULT 'activ',
  `name` varchar(255) collate utf8_unicode_ci NOT NULL,
  `comment` text collate utf8_unicode_ci NOT NULL,
  `zeit` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY  (`mac`),
  UNIQUE KEY `host` (`host`,`status`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

Wichtig! Für mein Script wird das "Comand Line Interface" für PHP, das mann einfach über apt-get install php5_cli installieren kann, benötigt.

Es Prüft zuerst ob Änderungen an der DHCP Tabelle vorgenommen worden sind. Dann schreib es die Mac, Host liste in die /etc/dhcp3/hosts.conf und refrecht den DHCP-Server.

/usr/local/sbin/dhcp.php

#!/usr/bin/php5
<?
$server = "localhost";
$user = "";
$password = "";
 
$conf = "/etc/dhcp3/hosts.conf";
 
//DB
$link = mysql_connect($server,$user,$password);
$db_selected = mysql_select_db("address", $link);
if (!$db_selected) {
    die ('Kann address nicht benutzen : ' . mysql_error());
}
 
$sql = "SELECT mac FROM mac WHERE UNIX_TIMESTAMP(zeit) >= ". fileatime($conf) ."";
if(mysql_num_rows(mysql_query($sql,$link)) > 0 || !file_exists($conf))
{
	//DATEN
	$sql = "SELECT mac,ip,host,comment FROM mac WHERE NOT ip='' AND status='activ' ORDER BY host";
	$q = mysql_query($sql, $link);
	echo mysql_error($link);
	for(;$ds = mysql_fetch_array($q);)
	{
	    if (preg_match("/[0-9a-f][0-9a-f][:][0-9a-f][0-9a-f][:][0-9a-f][0-9a-f][:][0-9a-f][0-9a-f][:][0-9a-f][0-9a-f][:][0-9a-f][0-9a-f]/i",$ds['mac']))
	    {
	        if($ds['name'])
		$daten .= '        # '. $ds['name'] .'
	';
	        $daten .= '        host '. $ds['host'] .' {
		    hardware ethernet '. $ds['mac'] .';
	            fixed-address '. $ds['ip'] .';
	            option host-name "'. $ds['host'] .'";
	        }
	';
	    }
	}
 
	// Speichern
	$fp = fopen($conf, 'w+');
	fwrite($fp, $daten);
	fclose($fp);
 
	system ("/etc/init.d/dhcp3-server force-reload");
}
 
system("exit 0");
?>
 

Dann die /etc/dhcp3/dhcpd.conf anpassen:
server-name "dhcp";
deny bootp;

authoritative;

shared-network bauhuette
{
option domain-name "bauhuette.fh-aachen.de";

subnet 149.201.241.0 netmask 255.255.255.0
{
option routers 149.201.241.20;
option broadcast-address 149.201.241.255;
option domain-name-servers 149.201.10.30;
option ntp-servers timeserver.rwth-aachen.de;

default-lease-time 600;
max-lease-time 7200;
deny unknown-clients;

}

group
{
include "/etc/dhcp3/hosts.conf";
}
}

Anschließend mit crontab -e einen Minütlichen Cronjob erstellen.
# m h dom mon dow command
* * * * * /usr/local/sbin/dhcp.php

D-Link Switch mit VLAN problem

Freitag, März 6th, 2009

Unser neues D-Link Switch DGS1248T bricht komplett zusammen beim einrichten eines VLANs.

Aachen von mir aus

Dienstag, März 3rd, 2009

Da heute ja so schönes wetter war und ich eine Neue Kamera hier liegen habe habe ich mal Aachen von mir aus Fotografiert.

img_0794

Hier noch der ganze rund umblick, Bildergalerie.

Neuverkabelung im Netzwerkraum

Donnerstag, Februar 12th, 2009

Im Zuge der Umstruckturierungsmaßnahmen haben wir unserem Netz eine Neuverkabelung gegönnt. Vorher war alles grau und durcheinander. Jetzt ist es bunt und aufgeräumt.

Vorher:
dscf4055

Nachher:
dscf4069

[UPDATE]
Weite Bilder findet ihr in der Bildergalerie.

Controller tausch

Donnerstag, Februar 5th, 2009

Heute haben wir im Rechenzentrum bei einer Sun Fire 4150 den Controller getauscht, nachdem dieser vor einer Woche einmal ausgefallen ist. Bei eine identischen Maschine hat ein solcher Controller ganz aufgegeben und wurde bereits getauscht.

Sun Fire 4150

Sun Fire 4150

Kein Netzerk nach dem booten bei Fedora Core 10

Donnerstag, Februar 5th, 2009

Als ich heute 2 VMs mit Fedora Core 10 ohne jegliche zusatzfeatures aufsetzen sollte habe ich die Kreise bekommen als nach dem Booten das Netzwerk nicht starten wollte.

Zuerst musste ich in der Datei: /etc/sysconfig/networking/devices/ifcfg-eth0 die folgenden Attribute verändern:
ONBOOT=yes
BOOTPROTO=static

Anschließend habe ich in der: /etc/rc.d/rc.local das starten des Netzwerkinterface angefügt:
echo "/etc/init.d/network start" >> /etc/rc.d/rc.local

Ich kann mir nicht vorstellen das das der Offizielle weg sein kann allerdings war mir das nach 2 Stunden Googlen auch egal.

RAID5 vergrößert

Freitag, Januar 16th, 2009

Heute habe ich mein RAID5 mal wieder vergrößert. Ich hatte bislang meine 2 500GB WD Platten auf meinem File-Server als Software RAID5 laufen. Jetzt kann man sich natürlich fragen: "wie geht den das"? Für ein RAID5 braucht man mindestens 3 Platten. Das stimmt auch soweit aber nicht wenn man die dritte Platte als Spare-Laufwerk einbindet. Das ist ähnlich dem Hot-Spare-Laufwerk nur das es im Gegenzug nicht vorhanden ist. Da ich aber schon wusste das ich das RAID eines Tages (heute) vergrößern wollte, habe ich ein RAID5 gewählt. Man hätte auch die beiden als RAID0 einbinden können. Dann hätte ich mir 1TB Platten holen können um da wiederum dann ein RAID5 zu legen aber auf den Mischmasch wollte ich verzichten.

Da ich noch ein 4HE Gehäuse hatte und der Server eh im NWR steht, habe ich mir zum einbauen der Platten, 4 Winkel mit je 12 Löschern, machen lassen und sie angeordnet wie in Sun(s) X4540. Mein sind zwar nicht ganz so gut angeordnet aber theoretisch bekomme ich so 2x 12 Platten unter.

dscf4017

4x WD5000AACS (Energie effizient)
2x WD2500JB (System)
4x WD1200JB Für RAID vorgemerkt.

dscf4021

Jetzt habe ich auf jeden fall 4x 500GB. + System Platten. Zukünftig brauch ich aber noch einen IDE Controller der zumindest JBOD kann. Das RAID mach ich ja dann eh softwaretechnisch.

Hier noch wie ich das RAID vergrößert habe:
mdadm --add /dev/md0 /dev/sdc1
mdadm --add /dev/md0 /dev/sdd1

Mit watch cat /proc/mdstat mann man sich dann anschauen wie weit er ist.
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid5 sdd1[3](S) sdc1[4] sda1[0] sdb1[1]
976767872 blocks level 5, 64k chunk, algorithm 2 [3/2] [UU_]
[========>............] recovery = 42.0% (205538560/488383936) finish=55.3min speed=131587K/sec

unused devices:

Dann das RAID noch um die 4te Platte ergänzen.
mdadm --grow --raid-devices=4 /dev/md0
Mit watch cat /proc/mdstat kann man sich dann wieder anschauen wie weit er ist.
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid5 sdd1[3] sdc1[2] sda1[0] sdb1[1]
976767872 blocks super 0.91 level 5, 64k chunk, algorithm 2 [4/4] [UUUU]
[========>............] reshape = 40.3% (196861568/488383936) finish=2234.7min speed=2171K/sec

unused devices:

Ich hätte --raid-devices auch auf 5 stellen können um wieder eine als Spare-Laufwerk einzubinden. Aber das kann ich auch immer noch machen wenn der Platz wieder eng wird und ich auf Ausfallsicherheit verzichten kann.

Damit beim nächsten Starten des Systems das RaidArray auch wieder gefunden wird muss man noch folgendes unternehmen.
cd /etc/mdadm
echo 'DEVICE /dev/hd*[0-9] /dev/sd*[0-9]' > mdadm.conf
mdadm --detail --scan >> mdadm.conf

Ganz zum Schluss noch das ext3 vergrößern.
resize2fs /dev/md0

Testmail bekommen

Montag, Dezember 29th, 2008

Christoph: He, ich habe eine Testmail bekommen.
Harry: Super, dann kann ich ja jetzt Feierabend machen. Das war alles was ich heute noch schaffen wollte.
Christoph: Das war ja nicht so viel.

Internet Explorer und die interpretation von Buttons

Dienstag, Dezember 16th, 2008

Komischer weise ist das mir noch nie aufgefallen aber als ich heute einen Bug fixen sollte, war ich mal wieder richtig geschockt wie sich der IE mal wieder mit Händen und Füßen gegen Standards wärt.

<button type="submit" name="mode" value="preview">Vorschau</button>
<button type="submit" name="mode" value="insert">speichern</button>

Beim klicken auf den Button "Vorschau" passiert folgendes:

  • Der IE 6 (und älter) überträgt mode=Vorschau&mode=speichern
    - das Script wertet den letzten Wert aus, also mode=speichern
  • Der IE 7 überträgt mode=Vorschau
  • Opera und Firefox übertragen mode=preview

So bekam ich im IE eine PHP Error, den ich mir nicht erklären konnte da im FE lief alles lief. Und normalerweise PHP ja auf dem Server kompiliert. Da aber im value eine ID stand und im dem IE ein Sting übergeben wurde, war der fehler gefunden.

Lösung:
Entweder hidden Felder nutzen oder links verwenden.

Quelle: notizen.joergkrusesweb.de

Alles gute Dimitri

Freitag, Oktober 31st, 2008

Da das heute Dein letzter Arbeitstag bei uns ist habe ich mir mal gedacht verweise ich mal auf alle deine Sprüche die Du die letzten Monate geklopft hast. Zudem wünsche ich Dir alles gute bei der neuen Arbeite, auch wenn Du mir dann nicht mehr bei Mathe helfen kannst.

20.10.08: PHP vs Mathe
29.08.08: Dotnet Framework
28.08.08: Vergesslichkeit
11.07.08: E-Mail von Jörn
14.05.08: Dimitri fällt ein Wort nicht ein