Urheberrecht
March 29th, 2008Ich hatte die Tage eine ebenso interessante wie auch erschreckende Diskussion zum Thema Urheberrecht mit einigen Bekannten im euIRC(Link).
Schon seit einiger Zeit besteht eine hitzige Diskussion des Chaos Computer Club, der Piratenpartei und einiger anderer Vereinigungen welche die aktuellen Maßnahmen zum Kopierschutz und die Rechtliche Verfolgung von MP3 Verbreitung im Internet anprangert.
Dabei hört man immer wieder Argumente wie “Rettet die Privatkopie”, “MP3 Download schadet der Musikindustrie nicht”, “Musik sollte Frei sein”.
Ich finde eigentlich die ganze Diskussion ziemlich realitätsfern. Es wird größtenteils mit lächerlichen Argumenten argumentiert mit dem Ziel weiterhin für lau Musik aus dem Internet laden zu können.
Ob das jetzt der Musikindustrie schadet oder nicht, soll bitte die Musikindustrie selbst beurteilen, ich denke da sollte niemand anders sich das Recht rausnehmen darüber zu urteilen. Immerhin ist es ihr gutes Recht ihre Prduktionen zu verkaufen und nicht zu verschenken.
In meinen Augen ist der illegale MP3 Download “Diebstahl” (auch wenn der rechtliche Begriff des Diebstahls davon abweicht), man nimmt sich etwas wofür Musiker hart gearbeitet und Labels eine Stange Geld ausgegeben haben ohne dafür zu zahlen. Es ist das selbe wie schwarzfahren: Sicher - die Züge und Busse fahren auch ohne mich, aber trotzdem ist es in gewisser Weise “Diebstahl” wenn man sich reinsetzt ohne zu zahlen.
An dieser Stelle hört man oft das Gegenargument “Musiker können auch über Konzerte und Merchandising verdienen”, aber da frage ich mich: Wer nimmt sich eigentlich das Recht den Musikern zu sagen wie sie ihr Geld zu verdienen haben? Sie erstellen ein Produkt und es sollte in deren Macht liegen dieses zu verkaufen und nicht zu verschenken.
Ich weiß nicht ob das an manchen Personen vorbeigegangen ist: Aber viele Musiker verdienen sich ihre Brötchen mit dem was sie tun. Wenn es Musiker gibt die dazu bereit sind ihre Musik frei zu vertreiben, dann ist das deren Entscheidung, aber das sollte immer noch die Entscheidung der Musiker bleiben.
Mailserver update.. im lovin’ it!
October 27th, 2007Der mailserver wurde etwas überarbeitet.
Er benutzt nun eine Postgresql Datenbank, kein Mysql mehr. Verwaltung ist einfacher geworden und jeder User bekommt seine Mails in den Ordner ~/mail/foo@bar.com zugestellt.
Zusätzlich sind jetzt auch Serverseitige Mailfilter drin, einfach die Datei ~/.mailfilter erstellen. Zugestellt werden die mails von Maildrop da liefert google ne menge Informationen. Für ein paar simple selbsterklärende Fälle hab ich hier ein Beispiel (anmerkung: die ordner in die Mails zugestellt werden sollen müssen existieren! also vorher mit imap erstellen oder im filter wie beim Spam Ordner verfahren.). Wichtig ist dass im Filter und im Dateisystem IMAP Ordner einen Punkt als Prefix haben.
# create Spam folder if it does not exist.
`test -d "$MAILDIR/.Spam/"`
if ($RETURNCODE != 0)
{
log "Spamdir not found! Creating $DEFAULT/.Spam"
`maildirmake -f Spam $DEFAULT/`
}
# filter spam
if (/^X-Spam-Flag: *YES/)
{
to "$DEFAULT/.Spam/"
}
if (/^From:.*benachrichtigungen@studenten-wg.de.*/)
{
to "$DEFAULT/.wohnungen"
}
if (/^From:.*ti.rwth-aachen.de.*/)
{
to "$DEFAULT/.ti"
}
if (/^List-Id:.*Open4Free.*/)
{
to "$DEFAULT/.open4free"
}
if (/^List-Id:.*gk-stud.*/)
{
to "$DEFAULT/.gk-stud"
}
to $DEFAULT
Apache Konfigurationstool
September 26th, 2007Ich habe mein Konfigurationstool für Apache fertig geschrieben. Da ich meine Domains nach einem festen Schema organisiere gibt es viele mehrfach vorhandenen Informationen in den VirtualHost Direktiven meiner Apache Konfiguration. Das macht das ganze umständlich erweiter- und wartbar.
Aufgabe, Ziele
Mein Konfigurationstool nimmt eine einzelne XML Datei in denen Domains und Subdomains definiert sind. Man kann den Domains/Subdomains UNIX Benutzer zuordnen, und verschiedene Module hinzufügen. Module sind kleine Apache Konfigurationsschnipsel die in die Konfigurations des VirtualHost eigefügt werden.
Das Tool nimmt 2 Parameter, den Namen der Konfigurationsdatei und einen Ordnernamen in dem die fertige Apache Konfiguration ausgegeben werden soll. Aus den Domain/Subdomain/Modul Daten wird dann eine Ordnerstruktur mit Apache Konfigurationen erstellt, sowieo eine domains.conf Datei welche alle definierten Domains lädt.
Beispiel
Beispiel Konfiguration:
<root group="users" chmod="700">
<domain name="bar.com" owner="harald">
<userconfig />
<subdomain name="foo" owner="franz">
<userconfig />
</subdomain>
</domain>
</root>
Diese Konfiguration definiert die domain bar.com im Besitz von Harald, sowie eine subdomain foo welche Franz gehört.
Anfragen an bar.com, www.bar.vom verwenden somit das DocumentRoot /home/harald/bar.com/www. Eine Anfrage an foo.bar.com wird dagegen auf /home/franz/foo.bar.com/www geleitet. Alle anderen subdomains gehen auf die entsprechenden Ordner in /home/harald/bar.com/.
Das praktische hierbei ist, dass jede subdomain wieder eigene subdomains enthalten kann, so wird test.foo.bar.com in den Ordner /home/franz/foo.bar.com/test/ geleitet. So ist die Konfiguration sehr flexibel, und unterstützt auch Domains welche Subdomains bei verschiedenen Usern haben.
Das Konfigurationstool erstellt auch automatisch alle Ordner und setzt die Berechtigungen entsprechend den Werten der owner, group, chmod Attribute (Die Attribute werden an innere Elemente vererbt, so ist für foo.bar.com das Attribut group=”users” gesetzt).
Das Modul <userconfig /> erstellt und liest die Datei /home/USERNAME/(SUB-)DOMAINNAME/config.xml und fügt die Elemente in die Konfiguration ein. Hier kann der Inhaber der Domain weitere Module laden. z.B.:
<config>
<enableHtAccessFiles />
<log />
<auth allowGroup="test" />
</config>
Beim nächsten Aufruf des Tools werden diese Module berücksichtigt und die Logfiles, user/group Dateien für die Autentifizierung erstellt und die Konfiguration angepasst.
Um beim neuerstellen der Konfiguration die alte Konfiguration nicht zu zerstören und den Apache HTTPD in die ewigen Jagdgründe zu schicken werden Backups der alten Konfiguration in dem Zielordner mit einer angehängten Zahl gespeichert.
Hier findet ihr auch eine eine Auflistung der verfügbaren Module für die Benutzer, inkl einer kleinen Übersicht wie die Ordnerstruktur ihrer Domains aufgebaut ist.
PS: Ich hatte nicht viel Zeit, Rechtschreibung und Zeichensetzung sind also frei erfunden und stehen in keinem Zusammenhang mit der deutschen Sprache.
Bind9 in VServern
September 25th, 2007Den Server 88.198.192.157 habe ich in der Planung bisher freigehalten, nun wird dort ein frischer Bind9 seine Dienste verrichten, doch das bereitet einige Probleme. Ein simples installieren und starten ist leider nicht drin da bind versucht auf die kernel capabilities zuzugreifen was in vservern (zu recht) nicht erlaubt ist.
Daniel Hokka Zakrisson hat dazu einen Patch geschrieben, welche jedoch für die aktuelle Bind Version (bind9-9.4.1-P1 in debian lenny momentan) nicht geeignet ist, also habe ich ihn per Hand eingearbeitet und einen aktualisierten patch sowie ein debian lenny package für amd64 erstellt.
Lang ist’s her…
August 26th, 2007… dass ich am Server gebastelt habe.
Aber jetzt stehen doch wieder einige Änderungen an.
Vserver Aufteilung
Die grsec-chroot Umgebungen weichen linux-vservern welche ich auf meine 5 IP Adressen verteilen werde.
- 88.198.192.154 Wird der Server für Apache, SSH und alle Dienste welche Benutzer starten.
- 88.198.192.155 Wird ein Server für Kommunikationsmittel. E-Mail, Jabber, IRC. Mit gewohnter Softwareausstattung Postfix (inkl Postgrey, Spamassassin), Openfire und Inspircd.
- 88.198.192.156 Wird ein Datenbankserver mit mysql und postgresql. Die Datenbankdaten selbst bekommen eine eigene Festplatte, was ein gewissen Performancevorteil mit sich bringen sollte.
- 88.198.192.157 Wird freigehalten für kommende Dienste.
- 88.198.192.158 Wird ein Server um experimentelle Software für den Serverbetrieb zu testen. Ist in der Regel nicht von außen zugänglich.
Paketfilter
Damit ich kontrollieren kann welche Dienste auf das Internet zugreifen (Besonders wichtig für 88.198.192.154 wo Benutzer Serverprozesse starten können) habe ich einen Paketfilter eingerichtet. Dabei behilflich war dieses Tutorial von bld.
Apache MPM
Ein wirklich nerviges Problem für das ich bisher keine Lösung gefunden hatte ist die Tatsache, dass PHP Scripts, DAV Zugriffe, etc unter der Benutzerkennung von Apache ausgeführt werden.
Dies hat zur folge dass Benutzer, welche Dateien per DAV hochladen nicht besitzer dieser Dateien sind, und dass PHP den vollen Zugriff auf alle Dateien hat auf welche Apache auch Zugriff hat (Was sich eher schlecht als recht mit Basedir Restriktionen lösen lässt).
Nun gibt es einige Ansätze den Apache Worker dazu zu bringen unter der Benutzerkennung der Inhaber der Seite zu laufen, was viele dieser Probleme beseitigen würde. Ich habe das Modul apache2-mpm-itk ein wenig getestet und bin begeistert davon.
Apache wird also demnächst darauf umgestellt.
Apache Konfigurationstool
Da die Apache Virtual Host Konfiguration bei mir viele redundanten Informationen enthält habe ich beschlossen mir ein kleines tool zu schreiben welches aus einer kompakten XML Datei eine Apache Konfigurationsdatei erstellt. Das wird das Hinzufügen von vhosts denächst erheblich vereinfachen.
Gruß,
Dennis
Fortschritte
September 7th, 2006Ich habe heute einiges geschafft.
Apache2 inklusive php5 laufen ohne Probleme, was ja auch nicht weiter schwierig war. Ich habe bloß ein bischen bei den Benutzerrechen nachgeholfen, nun kann Apache die Dateien aller Benutzer lesen, und die Benutzer können auf von Apache erzeugte Dateien (z.B. durch php) zugreifen.
Mysql läuft auch brav im eigenen chroot und speichert die Datenbank auf der /home Partition, wird also schön mit ins Backup gepackt
.
Die meisten Probleme hat, wie soll es auch anders sein, der Mailserver bereitet. Nachdem ich ein großteil der alten Configs übernommen hatte und ca eine Stunde lang einen Tippfehler in der Config gesucht habe, habe ich nochmal eine Stunde gebraucht um folgenden schicken Fehler zu finden, welcher nur auftritt wenn man das Maildir- statt Mailboxformat verwendet:
fatal: gethostbyname: Success
Was letztenendes bloß daran lag dass der unix hostname des servers auf dev-area stand, und postfix Lust hat den zu resolven wenn man Maildirs benutzt, keine Ahnugn wieso, aber er tut es
Nachdem das dann endlich auch funktioniert hat habe ich mich noch ein paar Stunden mit openssl rumgeschlagen (Gut zu wissen, dass pem Dateien nur eine Kombination aus Key und Zertifikat sind) habe ich endlich einen funktionierenden Mailserver, welcher selbstverständlich nur über TSL zu erreichen ist (Mal abgesehen von eingehenden SMTP mails).
Jetzt hab ich erstmal kein Bock mehr und verschieben Spam und Virenschutz auf später. Da gibt es momentan wichtigeres zu erledigen.
Und was macht man mit nem neuen Server?
September 6th, 2006Richtig! Man bastelt sich ne schicke Error 404 Seite…
Sinnlos, richtig! Aber ich brauchte etwas kreative Abwechslung vom Einrichten des Servers.
Mein neuer Kernel
September 6th, 2006Nach einigen Problemen mit dem Hetzner Robot Interface (Zum neustarten etc) habe ich den Kernel 2.6.17.11 mit grsecurity ans laufen bekommen.
Das ganze lässt sich nun schön über /proc/sys/kernel/grsecurity/ konfigurieren, und bietet einem halbwegs ausbruchsichere Chroot Umgebungen.
Ich habe mir auch direkt ein paar Backupscripts in Python zusammengeschustert. Jede Stunde wird der /home Ordner per rsync auf eine zweite Festplatte gesichert (welche danach wieder ausgehangen wird) und nachts wird das ganze dann komprimiert und auf den Backupserver von Hetzner verfrachtet.
Jetzt arbeite ich erstmal daran halbwegs vernünftige chroot Grundlagen zu schaffen um später schnell ein neues chroot für einen neuen Dienst einrichten zu können. Und diese nach einem Reboot auch entsprechend zu initialisieren.
Den Fortschritt und die nächsten vorhanben könnt ihr in meinem Bugtracker nachlesen. Den können die Jungs die ich hoste übrigends auch benutzen um Fehler zu melden.
Mein neuer Server
September 5th, 2006Ich hab keine lust mehr weiter auf Englisch zu schreiben also machen wir es so
Ich habe gestern abend die Auftragsbestätigung von Hetzner bekommen. Mein neuer Server ist fertig ![]()
Kurzinfo:
- AMD Athlon 64 3700+
- 1GB DDR400 RAM
- 2x 160GB STATA Harddisk
- 8er Subnet
- 50GB Platz aufm Backupserver
Ich habe noch gestern Abend per Rescuesystem Debian Etch installiert und mich gewundert dass ich das per Hand hin bekommen habe ;P.
Heute beschäftige ich mich noch damit einen neuen Kernel mit Grsecurity-Patch zu backen, wo ich wieder mal feststelle dass das garnicht so einfach ist wenn man nicht jeden Müll als Modul dazu kompilieren möchte.
Dann bleibt nur noch zu hoffen dass der neue Kernel auch funktioniert
Update:
Ich habe es befürchtet. Der Server bootet nicht mehr. Jetzt muss ich auf einen Hardwarereset durch das Rechenzentrum warten um im Rescuesystem den fehler zu suchen.
Doch für das nächste mal habe ich etwas nettes im Hetzner Forum gelesen:
#/kernel/panic.c
…
int panic_timeout=10;
..
Dadurch rebootet der Kernel automatisch wenn eine kernel panic verursacht wird. Das ist sehr hilfreich, zumal man mit
lilo -R labelname
lilo dazu bewegen kann beim nächsten reboot das label “labelname” als default zu nehmen.
So booten wir den neuen kernel und rebooten automatisch wieder in den alten falls ne kernel panic verursacht wird.
tja.. warten muss ich nun trotzdem. Hätte ich das mal früher gelesen
Strange…
July 18th, 2006
These days a found a pretty strange sign. I had to look twice to see whats wrong there, hehe.