Beiträge getagged mit Linux

Oracle 11g Installation auf Debian Squeeze

Kürzlich habe ich eine Oracle 11g Datenbank auf einem Debian Squeeze installiert.
Vielleicht kann Euch diese Zusammenfassung ja behilflich sein.

Es ist eine X-Oberfläche für die Installation notwendig, ich habe fluxbox dafür verwendet.
Die nachfolgenden Dinge habe ich vor der Installation durchgeführt, die Installation selbst wurde als Benutzer Oracle durchgeführt!
1. Oracle 11g downloaden von http://www.oracle.com/technology/software/products/database/index.html – es ist eine Registrierung erforderlich!
2. User „oracle“ anlegen
3. libstdc++5 aus lenny oder sid herunterladen – kann man hier finden.
4. Im Verlauf der Installation sind Fehler aufgetreten – diese sind mittels Links zu beheben. Wichtig: keine symbolische Links generieren! Die Pakete coreutils und mawk sollten dafür installiert sein.

ln /usr/bin/basename /bin/basename
ln /usr/bin/mawk /bin/awk

5. Es werden einige sysctl Variablen abgefragt, daher habe ich die Datei /etc/sysctl.d/oracle11g.conf mit folgendem Inhalt erstellt:

kernel.shmmax=536870912
net.ipv4.ip_local_port_range=9000 65500
net.core.rmem_default=262144
net.core.rmem_max=4194304
net.core.wmem_default=262144
net.core.wmem_max=1048576
fs.aio-max-nr=1048576
fs.file-max=6815744
kernel.sem=250 32000 100 128
# Mögliche Tuninghilfe – bei Bedarf
#vm.overcommit_memory=1

6. PAM – Limits für User oracle in der Datei /etc/security/limits.d/oracle11g.conf
definiert:

oracle hard nofile 65536

7. Die .bashrc des Users oracle angepasst.

# Oracle Vars
# ORACLE_SID nach Bedarf modifizieren
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=“$ORACLE_BASE“/11.2.0.1.0
export ORACLE_SID=orcl
export PATH=$PATH:$ORACLE_HOME/bin

8. Die Pakete „build-essential“ und „libaio“ installieren

Nun kann man mit der geführten Installation beginnen – die Requirements habe ich ignoriert – meist ist die installierte Version eine höhere wie von Oracle genannt (Beispiel make). Dann läuft die Installation und Kompilierung mancher Dinge – hier werden die erstellten Links benötigt.
Am Ende muss noch ein Shellscript mit root-Rechten ausgeführt werden. Dies funktioniert problemfrei wenn vorherige Punkte beachtet wurden.
Nach Abschluss der Installation sollte man dann die Weboberfläche aufrufen können. Dort muss der Listener angepasst werden, diese hört standardmäßig nur auf localhost und sollte zB auf 0.0.0.0 hören.
Anschließend muss man die DB neu starten.
Zuvor muss man aber das Shellscript dbstart im bin Verzeichnis von Oracle bearbeiten
Die Zeile

ORACLE_HOME_LISTNER=$1

wurde zu

ORACLE_HOME_LISTNER=$ORACLE_HOME

Nun kann man die Datenbank mit folgenden Befehlen fehlerfrei starten:

lsnrctl start
dbstart

Um das Automatisiert beim Systemstart zu erledigen, kann in der Datei /etc/oratab der Eintrag mit einem Y statt N versehen werden, detailierte Erläuterung dazu finden sich in der Datei selbst.
Nun kann auch ein Script /etc/init.d/oracle mit folgendem Inhalt Verwendung finden

#!/bin/sh
#
# chkconfig: 345 98 10
# description: Oracle
#
#
# change the value of ORACLE to the login name of the
# oracle owner at your site
#
ORACLE=oracle
case $1 in
’start‘)
cat < <-"EOF"|su – ${ORACLE}
# Start Oracle Net
if [ -f ${ORACLE_HOME}/bin/tnslsnr ] ;
then
echo "starting Oracle Net Listener"
${ORACLE_HOME}/bin/lsnrctl start
fi
echo "Starting Oracle databases"
${ORACLE_HOME}/bin/dbstart
${ORACLE_HOME}/bin/emctl start dbconsole
EOF
;;
'stop')
cat <<-"EOF"|su – ${ORACLE}
echo "shutting down"
${ORACLE_HOME}/bin/emctl stop dbconsole
# Stop Oracle Net
if [ -f ${ORACLE_HOME}/bin/tnslsnr ] ;
then
echo "stopping Oracle Net Listener"
${ORACLE_HOME}/bin/lsnrctl stop
fi
echo "stopping Oracle databases"
${ORACLE_HOME}/bin/dbshut
EOF
;;
*)
echo "usage: $0 {start|stop}"
exit
;;
esac
#
exit

Dies ist nur exemplarisch und wurde nicht von mir getestet. Das Script ist von der Seite http://www.odi.ch/weblog/posting.php?posting=489 und kann problemlos via Google gefunden werden!
Dieses Script muss zuletzt noch via update-rc.d oracle defaults den Runleveln hinzugefügt werden.

Well done!

1.Update: 22.September 2010 –> Vielen Dank Mark! =)

,

4 Kommentare

DiskUsage sortiert nach Größe

Auf Anfrage stell ich den Einzeiler für im Titel genanntes hier rein.

du -s * | sort -n | cut -f 2- | while read a; do du -hs „$a“;done

,

Keine Kommentare

Server Kompromittierung

Frohes Neues Jahr – und schon gibt es wieder etwas zu berichten.

Über den Zeitraum der Jahreswende hatte ich hier einige Kommentare weil der Webserver wohl fremde Server auf phpmyadmins scannt. Ich habe mit den Schreibern Kontakt aufgenommen um zu erfahren wo denn das Problem sei und habe den hiesigen Webserver auf Sicherheitslöcher geprüft, Prozesse gecheckt und nochmals nach Kräften an allen erdenklichen Stellen den „Gürtel“ enger geschnallt. Diese Maßnahmen wurde den Betroffenen mitgeteilt und somit sah ich das Problem als „Behoben“ an.

Mein Kollege, ein namhafter Videokonferenz-Anbieter, bekam nun diese Woche Emails von seinem Provider – sein Server würde phpmyadmins scannen. Das kam mir irgendwie bekannt vor 😉
Nun lag es in der Natur der Dinge (sind nicht weiter erwähnenswert) dass sich die Leute auf dieser Seite melden – jedoch einen anderen Server meinen.

Ich musste also die Fährte aufnehmen… und habe dann auch den entsprechenden Server mit den dubiosen Applikationen gefunden.
Ein Debian Etch Server mit 2.6.18er Kernel… die 6.18er Reihe ist bekannt dafür, auf 0-Day Kernelexploits zu reagieren. Genau so musste der Angreifer das System kompromittiert haben – schliesslich hat er root Rechte erlangt und den Systembenutzer games mit uid und gid 0 ausgestattet – somit konnte man mittels diesem Benutzer böse Dinge anrichten.

In /tmp fand ich ein eine ssh2.tar (auch in entpackter Variante) – dies scheint ein Ersatz für den SSH-Server darzustellen. Komischerweise konnte ich aber keine der dortigen Binaries in der Prozessliste finden. Wichtig wäre wohl noch der Hinweis dass ich mich über das Schlüsselverfahren am Server anmelde und per „sudo“ root-rechte auf dem System erlange – ohne je ein Passwort eingeben zu müssen. Somit kann im Falle eines getauschten SSH Servers wenigstens nicht das Passwort mitgesnifft werden. Die /etc/ssh/sshd_config Datei wurde jedoch verändert – alle Werte wurden auskommentiert ausser dem Subsystem Pfad für sftp – dieser zeigte auf eine Datei unter /opt!

In /opt fand ich eine Verzeichnis Hierarchie wie sie unter /usr zu finden ist… mit ssh Binaries usw. Scheinbar wurde der Server also doch getauscht – das kann ich zum jetzigen Zeitpunkt aber leider nicht mehr genau nachvollziehen.

Ich habe also erst die Dateien aus /tmp entfernt – hier scheint das Massaker ja begonnen zu haben. Anschließend habe ich verdächtige Prozesse beendet, /opt bereinigt und die sshd_config entfernt. Nun konnte der SSH-Server neu installiert werden – sicherheitshalber! So weit – so gut!

Um nun weitere Einbrüche zu vermeiden, habe ich den 2.6.24er etchnhalf Kernel installiert & alle Sicherheitsupdates eingespielt. Wegen der installierten Applikationen war es erst abends möglich den Server neu zu starten – leider!

Als ich mich abends erneut angemeldet und die Prozessliste erneut gecheckt hatte – gab es wieder etwas zu staunen. Diesmal waren die Scanprozesse zu sehen – und das waren nicht wenige! Alle Prozesse hatten „vuln.txt“ im Command und wurden als root gestartet. Ich habe mich also direkt auf die Suche nach dieser Datei gemacht.
Fündig wurde ich in /dev/shm – hier wurde ein dot-Verzeichnis angelegt in welchem sich die komplette Scan-Applikation befand. Wieder habe ich händisch alle betroffenen Prozesse beendet und die Schad-Applikation entfernt.

Endlich wurde der reboot getriggert – ich war gespannt welche Prozesse nach Start auf dem System zu finden sind.
Zum Glück gab es keine Besonderheiten in der Prozessliste – nun heisst es also „Warten auf Abnormales“

Ein Tag später fand ich ein Perl Script im /tmp Bereich namens back.txt – Besitzer www-data
Der Inhalt war wenig spektakulär – einfaches Auslesen von Maschinendaten wie uname -a, id, pwd

Bis jetzt ist wieder Ruhe eingekehrt – und der Supportfall geschlossen!

,

Keine Kommentare

Samba und OSX 10.5

Zweifelsfrei sind Mac Rechner unter den Kollegen sehr beliebt.
Nachdem aber jetzt 2 aktuelle Modelle mit OSX 10.5 Einzug gehalten haben, bin ich unschlüssig ob ich das OS nach wie vor für „ach-wie-toll“ halten soll.

Ich beziehe mich hier auf den Umgang mit Sambafreigaben – diese gibt es hier zu Hauf. Seit neustem werden immer öfter Schreie laut – Zugriff verweigert – man könne nicht umbenennen und weiss der Teufel…

Nun – wieso ist dem so? Sämtliche Sambashares geben doch über „directory mask“ und „create mask“ den Takt vor?! An einem Beispielshare habe ich das dann mal exorziert und zelebriert. Ich musste mich kurzzeitig auch fragen, für was Optionen wie „force directory mode“ und „force create mode“ überhaupt existieren.

Das tolle Apfel-OS legt konsequent Ordner an, bei welchen g+w NICHT gesetzt ist – trotz sambaseitiger Aufforderung mittels eben genannten Methoden – „einfach“ 0775 – scheinbar unmöglich.

Zum Glück gibt es in den Untiefen der smb.conf(5) einen komischerweise passenden Eintrag:

unix extensions (G)
This boolean parameter controls whether Samba implements the CIFS UNIX extensions, as defined by HP. These extensions enable Samba to better serve UNIX CIFS clients by supporting features such as symbolic links, hard links, etc… These extensions require a similarly enabled client, and are of no current use to Windows clients.
Default: unix extensions = yes

Weiterer Versuch – setzen wir doch diesen Wert mal auf NO – die Windowsclients werden es ja wohl eh nicht mitbekommen.
Leider quittiert im Gegenzug der OSX Finder diese Aktion mit Fehlern wie -1407 oder -36.
Wenn aber alle Laufwerke getrennt und frisch angegangen werden – werden tatsächlich die Ordner endlich mit gewünschter Berechtigung angelegt. Apfel und Samba – hier ist der Wurm drin 😉

Zu erwähnen sei noch folgendes: Hier läuft Debian Squeeze – somit Samba in Version 3.4.3

Update: http://bitfuck.net/2009/05/19/apple-mac-os-105-leopard-und-samba-shares/
Hier gibts erschreckend ähnliches zu lesen.

, , , ,

Keine Kommentare

Blockdatei mit Dateisystem

Wer, aus welchen Gründen auch immer, eine Datei mit Dateisystem erstellen möchte, kann dies in wenigen Schritten tun.

Erstellen der Datei:
Festplatten haben idR eine Blockgröße von 512kb – diesen Wert übernehmen wir mit bs=512kb.
Abhängig vom benötigten Speicher zählen wir die Blocksize hoch – in dem Fall werden mit count=16000 8GB allociert.
Die zu erstellende Datei soll in /var/extra abgelegt werden.

dd if=/dev/zero of=/var/extra/meine-blockdatei bs=512 count=16000

Formatieren der Datei:
Die Formatierung kann wie gewohnt vorgenommen werden.
zB:
mkfs.ext3 /var/extra/meine-blockdatei

Einhängen der Datei:
Die Datei kann nun wie gewohnt (wie zB ein ISO Abbild) gemountet werden.
mount -o loop /var/extra/meine-blockdatei /home/user

Soll das zum Systemstart stattfinden, muss auf die Reihenfolge der Mounts geachtet werden. In dem Fall muss also /var gemountet sein bevor die Datei gemountet werden soll – idR selbsterklärend.

Verwendungszwecke sind zB:
1. Zuwenig Swapspeicher definiert – Erweiterung wäre mit einer entsprechend formatierten Blockdatei möglich
2. Bedarf eines Dateisystems mit bestimmter Funktion (Beispiel Verschlüsselung)
3. Angenommen eine Platte wäre derart partitioniert, daß der größte freie Speicher auf einer zwingend „noexec“ gemounteten Platte ist – hier kann eine solche Blockdatei zB in /home/user mit exec gemountet werden.

Dieser Beitrag wurde zur Gedächnisstütze hier aufgenommen. 😉

, , ,

Keine Kommentare

Windows7 und Samba

Um eine Windows 7 Maschine einem Samba PDC hinzuzufügen, bedarf es tatsächlich einer Modifikation des Clients.
2 kleine Registry Einträge später – und die Maschine darf sich Mitglied der Domäne nennen.
Hier der praktische Hinweis im Samba Wiki!
http://wiki.samba.org/index.php/Windows7

, ,

Keine Kommentare

GParted – Extended record needed

Um Partitionen auf Festplatten zu Resizen oder zu verschieben, greife ich gerne auf das Opensource Tool GParted bzw die erhältliche Live-CD zurück. Diese funktioniert einwandfrei, wenn man genau weiss was man tut!
Heute hat zum ersten Mal GParted beim Resizen einer logischen NTFS Partition den Dienst mit folgender Meldung verweigert:

Extended record needed (1048>1024),not yet supported.
Please try less free space.

Der Wert x >1024 kann variieren, wie ich durch Versuchsläufe feststellen konnte.

Zuerst dachte ich an ein „schmutziges“ NTFS Logfile, manuelles ntfsfix brachte allerdings keine Besserung. Nun gut, selbiges führt wohl auch GParted zurecht zu Beginn einer Modifikation durch.

Platz war ebenfalls reichlich auf der zu verkleinernden Partition vorhanden – dies konnte also nicht das Problem sein.

Durch Verändern der abzutrennenden Größe konnte zumindest der Zahlenwert variieren – jedoch immer „> 1024“ – somit also auch kein befriedigendes Ergebnis.

Erst eine Defragmentierung des betroffenen Laufwerkes unter Windows brachte den gewünschten Effekt und die Partition konnte nach belieben, wie gewohnt, modifiziert werden.

Die GParted Live-CD sollte zusammen mit der CloneZilla Live-CD zur Standardausrüstung eines jeden Administrators gehören.

, , ,

Keine Kommentare

/proc/cpuinfo flags

Wer mehr über seine CPU und deren Fähigkeiten erfahren möchte, bedient sich in der Regel der in /proc/cpuinfo ausgewiesenen Informationen.
Die Flags geben genau Auskunft ob zB der Prozessor mit 64bit arbeitet oder ob Virtualisierungsunterstützungen im Prozessor implementiert sind.

Wer auf die Antwort auf die 64bit Frage suchen sollte, gleich vorab: das Flag „lm“ weist auf diese Fähigkeit hin – gleichbedeutend mit „longmode“.

Was aber sagen die anderen Flags aus? Klar, man kann jeden Flag ergooglen oder in Wikipedia nachschlagen – komfortabel ist das jedoch nicht.

Die Antwort findet sich großteils in einem von Intel bereitgestellten Dokument – dort werden ab Kapitel 3.1.2.3 die Flags etwas ausführlicher in Ihrer Bedeutung genannt.

Auch AMD hat ein solches Dokument bereitgestellt, dort sind die Informationen verteilt zu finden.

Die Dokumente können auch hier bezogen werden. IntelAMD

Ich hoffe diese Infos sind für den einen oder anderen hilfreich. 😉

, ,

1 Kommentar

Apache2 Flashstreaming

Heute durfte ich ein Flashstreaming für ein CMS realisieren.

Wer schon mal einen Film o.ä. verlinkt hat, weiss vllt. das man innerhalb der Dateien nicht an beliebige Punkte springen kann ohne die komplette Datei heruntergeladen zu haben. Dies erzeugt viel Traffic, je nach Größe der Datei können auch immense Extrakosten durch Zusatztraffic entstehen

Genau diese Möglichkeit bietet aber Streaming!

Youtube verwendet zum Beispiel als Basis einen lighttpd welcher schon von Haus aus eine Streamingunterstützung mitbringt. Wie aber schaut es mit einem Apache aus?

Dieser bringt die Unterstützung leider nicht mit, sie kann aber nachgepflegt werden.

Um nun Flashvideos (*.flv) von einem Server aus streamen zu können, müssen folgende Requirements erfüllt werden:

1. Apache2 für Streaming vorbereiten

Download der Modul-Sourcen – ich konnte auch noch eine leicht überarbeitete Version im Netz finden.

Ich habe die überarbeitete Version benutzt welche folgende Benefits mitbringt

I’ve modified the module to fix content-length and add last-modified headers. I’ve also added a fix when offset is set to wrong position (i.e. past video length).

Compilieren und Installieren wird mittels apxs2 erledigt.

Schliesslich muss man das Installierte Modul noch in der Konfiguration vermerken, in meinem Fall für *.flv Dateien.

Kurzform als root:

cd ~
wget http://thinkscape.biz/community/mod_flvx.c
aptitude install apache2-prefork-dev
apxs2 -c -i mod_flvx.c
nano /etc/apache2/conf.d/mod_flvx.conf

mit folgendem Inhalt

LoadModule flvx_module /usr/lib/apache2/modules/mod_flvx.so
AddHandler flv-stream .flv

und schliesslich ein Neustart des Apache2 Services

/etc/init.d/apache2 restart

2. Flashdateien mit Metadaten/Keyframes ausstatten

Dies ist ein sehr wichtiger Schritt, denn ohne dies kann das Bewegen innerhalb der Datei nicht funktionieren!

Um flv Dateien entsprechend zu modifizieren, gibt es ein sehr mächtiges Werkzeug mit welchem man flv Dateien auch schneiden oder anderweitig modifizieren kann. All dies könnt Ihr auf der Seite des Herstellers von flvtool2 nachlesen.

Kurzform als root:

aptitude install ruby
wget http://files.rubyforge.mmmultiworks.com/flvtool2/flvtool2-1.0.6.tgz
tar xfz flvtool2-1.0.6.tgz; cd flvtool2-1.0.6
ruby setup.rb config
ruby setup.rb setup
ruby setup.rb install

nun steht das Tool flvtool2 zur Verfügung!

Um die FLV Dateien mit den Metadaten zu bestücken, muss auf jede betreffende Datei

flvtool2 -U datei.flv

angewendet werden.

Nach diesem Schritt kann man nun die Filme zB über den Flowplayer streamen lassen und in seine Webseiten einbauen.

, , ,

Keine Kommentare

pidgin kann nicht zu icq connecten

Seit gestern abend ist es für Debian Lenny/Stable Benutzer nicht mehr möglich, sich mit dem IM Pidgin (v.2.4.3) ins ICQ Netzwerk einzuklinken.

Es handelt sich, wie schon öfter vorgekommen, um ein Protokollupdate von ICQ selbst.

Um diesem Mißstand entgegenzuwirken, kann man als Benutzer mit sudo-Rechten folgende Anleitung befolgen:

Dazu müssen in der source.list von apt die deb-src Einträge vorhanden sein!

apt-get source libpurple0
sudo apt-get build-dep pidgin
cd pidgin-2.4.3
wget http://home.arcor.de/orgerwg/2.4.3-icq.patch
patch -p0 < 2.4.3-icq.patch
fakeroot dpkg-buildpackage
cd ..
sudo dpkg -i libpurple0_2.4.3-4_i386.deb

Wir hoffen, dass der Patch bald per Debianupdate zur Verfügung steht!

Ein dickes Danke an den Patchverfasser!

, , ,

2 Kommentare