Kategorien
Forensik Linux security

Festplatten Seriennummern unter Linux herausfinden

Um im PC-oder NAS Gehäuse immer gleich die richtige Festplatte zum Tauschen zu finden, muss im ID bzw. die Seriennummer der Festplatte herausgefunden werden.

Da leider nicht jedes NAS auf der Shell auch alle Befehle erlaubt Beziehungsweise alle Befehle anbietet, hier eine Liste mit 4 Methoden die Seriennummer von Festplatten unter Linux auszulesen.:

udebadm

udevadm info --query=property --name=/dev/sda | grep "^ID_SERIAL_SHORT=" | sed "s/ID_SERIAL_SHORT=//g"

Unter “–name=/dev/” wird das Laufwerk angegeben, die Ausgabe ist nur die Seriennummer.

hdparm

hdparm -i /dev/sda | sed -ne '/SerialNo/{s/.*SerialNo=\s*\(.*\)/\1/ ; p}'

Die Festplatte wurd als “-i /dev/sda” angegeben, alternativ können hier mehrere Festplatten mit “-i /dev/sd[ab]” angegeben werde. Die Ausgabe ist ausschließlich die Seriennummer.

smartctl

smartctl -i /dev/sda|sed -ne '/Serial\ Number\:/{s/.*Serial\ Number\:\s*\(.*\)/\1/ ; p}'

Auch bei smartctl wird mit “-i /dev/sda” die fragliche Festplatte angegeben. Die Ausgabe ist ausschließlich die Seriennummer.

 grep, awk, sed

ls -l /dev/disk/by-id/ | grep scsi- | grep -v part | awk '{print $NF " " $(NF-2)}' | sed 's|../../||g' | sed 's/scsi-...._//g'

gibt alle Festplatten mit den zugehörigen Seriennummern und Bezeichnung aus.

Kategorien
Linux

Partitionierung Klonen

Zum nachträglichen Manuellen einrichten eines RAID Mittels mdadm benötige ich auf beiden Festplatten exakt die gleiche Partitionierung.

Mit hilfe von sfdisk kann schnell und unkompliziert die Partitionierung eines Datenträgers gesichert und zurückgeschrieben werden.
Zuert die Partitionstabelle des Datenträgers in eine Datei sichern.:

sfdisk -d /dev/sda > sda.part

und im Anschlus die Partitionierung auf die nächste Festplatte schreiben.:

sfdisk /dev/sdb < sda.part

ACHTUNG! Alle Daten auf der Festplatte /dev/sdb gehen hierbei verloren!!

Kategorien
Linux

qcow2 Disk Image unter Linux mounten

Um ein qcow2-Disk Image unter Linux zu mounten muss qemu installiert sein.

zuerst müssen das Kernel Module nbd geladen werden:

modprobe nbd max_part=8

Das qcow2 Image muss im Anschluss an ein Gerät gebunden werden:

qemu-nbd --connect=/dev/nbd0 db1_old.qcow2

Im anschluss kann das gerät gemountet werden (im Beispiel die erste Partition):

 mount /dev/nbd0p1 /mnt/

Um im Anschluss das qcow2-Image wieder freizugeben, das Laufwerk unmounten und das Image vom Gerät lösen:

umount /mnt/
qemu-nbd --disconnect /dev/nbd0
Kategorien
Allgemein Linux security

RETTET TrueCrypt…

Da TrueCrypt auf der offiziellen Internet Seite eine Anleitung zur Umstellung auf unsicherere Software, wie zum Beispiel “BitLocker”, gestellt hat und aus Archiven verschwindet hier ein Spiegel der letzten Aktuellen Version! Bewahrt es gut auf!

Ich hoffe es finden sich Entwickler die TrueCrypt weiterführen!!!

Die Checksummen der Dateien (Bitte mit den Dateien und Checksummen aus Drittquellen vergleichen!)
md5sum:

  • bb355096348383987447151eecd6dc0e truecrypt-7.1a-linux-x64.tar.gz
  • 09355fb2e43cf51697a15421816899be truecrypt-7.1a-linux-x86.tar.gz
  • 89affdc42966ae5739f673ba5fb4b7c5 truecrypt_7.1a_mac_os_x.dmg
  • 102d9652681db11c813610882332ae48 truecrypt-7.1a-source.tar.gz
  • 7a23ac83a0856c352025a6f7c9cc1526 truecrypt_setup_7.1a.exe

sha1sum:

  • 086cf24fad36c2c99a6ac32774833c74091acc4d truecrypt-7.1a-linux-x64.tar.gz
  • 0e77b220dbbc6f14101f3f913966f2c818b0f588 truecrypt-7.1a-linux-x86.tar.gz
  • 16e6d7675d63fba9bb75a9983397e3fb610459a1 truecrypt_7.1a_mac_os_x.dmg
  • d43e0dbe05c04e316447d87413c4f74c68f5de24 truecrypt-7.1a-source.tar.gz
  • 7689d038c76bd1df695d295c026961e50e4a62ea truecrypt_setup_7.1a.exe

STELLT AUCH IHR SPIEGEL DES QUELLCODES!

Kategorien
Linux

squashfs Image einer Linux Distribution über Grub starten

Dies ist eine “Kurzanleitung”, wie ein squashfs Image über Grub zu starten. Ich gehe davon aus, das Grub installiert ist und das du das <LinuxBootCD>.iso Image besitzt.

Um unser Ziel zu erreichen kopieren wir einige Dateien aus dem ISO Image und schaffen einen Grub Eintrag.

$ sudo su
# mkdir /system
# mkdir loopmount
# mount -o loop .iso loopmount
# cp -a loopmount/system/vmlinuz1 /system
# cp -a loopmount/system/initrd1.img /system
# cp -a loopmount/system/filesystem.squashfs /system
# cp -a loopmount/system/filesystem.packages /system
# umount loopmount
# ls /system
filesystem.packages filesystem.squashfs initrd1.img memtest vmlinuz1

Jetzt sind alle benötigten Daten kopiert, es folgt die GRUB Einrichtung.

# vi /etc/grub.d/41_CB_squashfs

#!/bin/sh
exec tail -n +3 $0
menuentry 'Boote das squashfs Linux Image' --class debian --class gnu-linux --class gnu --class os {
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
linux /system/vmlinuz1 boot=live live-media-path=/system splash vga=791 config quiet noprompt
initrd /system/initrd1.img
}

# update-grub

Dies ist bereits der gesammte Prozess. Nach der aktuelisierung der Grub Konfiguration via update-grub ist existiert der neue Boot-Eintrag.

Zeit neu zu booten und im Grub den neuen Boot-Eintrag zu wählen.

Ich mag diese Art der “Installation”, da der Boot-Vorgang dank squashfs sehr schnell und vor ungewollten Veränderungen geschützt ist. 😉

Kategorien
CL-35B2

FANTEC CL-35B2 Zeitzonen korrigieren

Die voreingestellte Zeitzone auf der NAS CL-35B2 von fantec ist MST, die US Mountain Standard Time (-8 MEZ). Da mich alles was nicht meiner Lokalen, Berliner, Zeit entspricht irritiert habe ich auch im Fedora Core 12 des CL-35B2 die Berliner Zeit konfiguriert.

Um die Zeit zu konfigurieren bin ich entsprechend meiner folgenden Dokumentation vorgegangen.:

Zuerst den NTP Client stoppen:

/etc/init.d/ntpd stop

Die Zonen-Datei für Berlin nach /etc/localtime kopieren:

cp /usr/share/zoneinfo/Europe/Berlin /etc/localtime

Zeit mit dem Server der Physikalisch-Technische Bundesanstalt abgleichen.

ntpdate ptbtime1.ptb.de

Zeit in die Hardwareuhr schreiben.

/sbin/hwclock --systohc

Konfiguration für den NTP Dienst schreiben:

echo "server ptbtime1.ptb.de" > /etc/ntp.conf
echo "server ptbtime2.ptb.de" >> /etc/ntp.conf
echo "server ptbtime3.ptb.de" >> /etc/ntp.conf
echo "restrict default ignore" >> /etc/ntp.conf

und den NTP Dienst neu starten:

/etc/init.d/ntpd start
Kategorien
CL-35B2 Linux

Boot CL-35B2 from SATA

Ich habe einen ersten Erfolg erzielt, die CL-35B2 von einer SATA Festplatte zu starten. In der Dokumentation des SOC ist ein folgend erklärter Bootcode angegeben der auf die SATA Festplatte geschrieben werden muss um von der Festplatte zu starten.

Erstellen der Festplatte:
– Welche Festplatte soll überschrieben werden

export disk=/dev/sdc

– Festplatte leeren

dd if=/dev/zero of=$disk bs=512

– Bootcode auf die Platte schreiben (Perl Magic 🙂

perl < print "\x00" x 0x1a4;
print "\x00\x5f\x01\x00";
print "\x00\xdf\x00\x00";
print "\x00\x80\x00\x00";
print "\x00" x (0x1b0 -0x1a4 -12 );
print "\x22\x80\x00\x00";
print "\x22\x00\x00\x00";
print "\x00\x80\x00\x00";
EOF

– Bootblock auf die Platte schreiben

dd if=./resource/stage1.wrapped of="$disk" bs=512 seek=34

– das U-Boot auf die Festplatte schreiben (Quellcode folgt!)

dd if=./resource/u-boot.wrapped_from-ox820source of="$disk" bs=512 seek=154

Wenn die Festplatte in slot 1 der CL-35B2 eingebaut wird bootet die NAS den U-Boot Bootloader von der Festplatte.
UBoot Dateien

Kategorien
Linux

Multifile Tar Archive

GNU Tar selbst bietet leider keine Möglichkeit die Tar-Datei in auf mehrere Dateien aufzuteilen. Der Linux Befehls split bietet die Möglichkeit dieses Manko zu beheben.

Tar Datei in vielen (kleinen) Dateien erzeugen:

tar -czf /dev/stdout /home | split -d -b "Größe der Ausgabedatei in Bytes" - Ausgabedatei

Wenn als “Größe der Ausgabedatei in Bytes” einer der folgenden Werte eingesetzt wird, wird das tar-Archive in entsprechend kleine Teile aufgespalten.:
1 Megabyte – 1048576
1,44 Megabyte – 1474560
10 Megabyte – 10485760
1 Gigabyte – 1073741824

Die Dateien können wie folgt wieder entpackt werden:

cat $(FILE_NAME_PREFIX)* >> /dev/stdout | tar -xzf /dev/stdin
Kategorien
IPTables Linux security

IP Filter…

Um Dienste von dem Zugriff durch bestimmte IP-Adressen zu sperren oder bestimmte IP Ports zu verbieten bietet sich ein IPTables Block an.

iptables -N block-enemy
iptables -A block-enemy -j DROP

Ziel-Port in die Blockliste aufnehmen

iptables -I INPUT 1 -p tcp --dport 3306 -j block-enemy
iptables -I INPUT 1 -p tcp --dport 8080 -j block-enemy

Eine IP-Adresse in die Liste Aufnehmen:

iptables -I INPUT 1 -p tcp --source 190.17.238.139 -j block-enemy

Eine Anwendung (MySQL Standartport) die Liste Aufnehmen:

iptables -I INPUT 1 -p tcp --dport 3306 -j block-enemy

Entfernen lässt sich der Inhalt des Blocks wieder mit:

iptables --flush block-enemy
Kategorien
lighttpd Linux

Wie finde ich heraus ob mein Webserver die Seiten gzip komprimiert ausliefert…

Am Beispiel des Heise Servers holem wir zuerst die Daten via wget.

$ wget --header="Accept-Encoding: gzip, deflate" http://heise.de
--2012-01-04 15:50:08-- http://heise.de/
Resolving heise.de... 193.99.144.80, 2a02:2e0:3fe:100::8
Connecting to heise.de|193.99.144.80|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: http://www.heise.de/ [following]
--2012-01-04 15:50:08-- http://www.heise.de/
Resolving www.heise.de... 193.99.144.85, 2a02:2e0:3fe:100::7
Connecting to www.heise.de|193.99.144.85|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 17439 (17K) [text/html]
Saving to: `index.html'

100%[=======>] 17,439 --.-K/s in 0.05s

2012-01-04 15:50:08 (316 KB/s) - `index.html' saved [17439/17439]

jetzt schauen wir, ob die geholte index Datei gzip komprimiert ist:

$ strings index.html|head -n 1
goNY

ok… das sieht nicht nach sinollem Text aus, könnte GZIP sein…
um dies zu prüfen entpacke ich die Datei mittels gzip:

$ mv index.html index.html.gz
gzip -d index.html.gz

und prüfen ob der Inhalt der Erwarteten HTML Datei entspricht.

strings index.html|head -n 1
< !DOCTYPE html>

Das ist der vollständigste Weg zu prüfen ob eine Seite von Webserver gzip koprimiert ausgeliefert wird.?