Kategori Linux

sudo tee time.now

Donnerstag, März 26th, 2009

Da man mit sudo gut auf die Nasse fallen kann wie man im folgenden Beispiel sieht…
sudo echo 1 > /proc/sys/net/ipv4/ip_forward
bash: /proc/sys/net/ipv4/ip_forward: Permission denied

… gibt tee dabei Abhilfe
echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward

tee liest dabei von „Standard input“ und schreib es nach „Standard output“ oder in diesem Fall in eine Datei.

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 und MySQL Unterstützung, die man einfach über apt-get install php5-cli php5-mysql installieren kann benötigt.

Dann das Eigentlich Script. Es wird nur ausgeführt wenn Änderungen an der Datenbank Tabelle vorgenommen wurden dies wird anhand der Uhrzeit ermittelt wann das Script zuletzt geschrieben wurde. Wenn änderungen statgefunden haben werden alle Filterregeln überschreiben und neu geladen. Wenn der Datenbank Server einmal nicht erreichbar sein sollte bleibt alles so wie es ist, somit kann sichergestellt werden das der laufende betrieb so gut wie nie unterbrochen wird.
/usr/local/sbin/brieg.php

#!/usr/bin/php5
= ". 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

Unixtime 1234567890

Freitag, Februar 13th, 2009

Für alle die Valentinstag mit ihrem Computer verbringen sollten um 00:31:30 unserer Zeit mal date +%s angeben. Dan wird die Unixzeit 1234567890 anzeigen.

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.

reshapen beschleunigen

Samstag, Januar 17th, 2009

Das reshapen eines Software Raids (mdadm) ist unter Ubuntu 10.04 standardmäßig sehr langsam eingestellt und nach nun mehr als 24 Stunden habe ich mir gedacht das muss auch schneller gehen, zumal die platten kaum beansprucht wurden.

Vorher:
cat /proc/sys/dev/raid/speed_limit_max
200000
cat /proc/sys/dev/raid/speed_limit_min
1000
... finish=2234.7min speed=2171K/sec

echo 20000000 > /proc/sys/dev/raid/speed_limit_max
echo 25000 > /proc/sys/dev/raid/speed_limit_min
... finish=425.4min speed=11058K/sec

Die Disk Belastung laut atop nun:
DSK | sdb | busy 85% | read 936 | write 506 | avio 4 ms |
DSK | sda | busy 83% | read 931 | write 521 | avio 3 ms |
DSK | sdc | busy 74% | read 999 | write 474 | avio 3 ms |
DSK | sdd | busy 39% | read 0 | write 423 | avio 6 ms |