Archiv für die Kategorie 'Ubuntu'

09
Mai

OpenLDAP unter Ubuntu installieren

Wer seinen eigenen kleinen Server mit diversen Diensten betreibt kennt das Dilemma: Jede Applikation speichert seine Benutzerdaten separat, so dass nach einer gewissen Zeit ein kleines Chaos entstehen kann. Hier springt OpenLDAP in die Bresche, liefert es doch einen so genannten Verzeichnisdienst für die zentrale Authentifizierung und kann auch als zentrales Adressbuch genutzt werden. Die beschriebene Installation kann unter Umständen auch auf andere Linux Derivate (vor allem Debian basierte Linux Distributionen) angewandt werden. Um Konfigurationsdatei, die eventuell in anderen Verzeichnissen abgelegt sind, schnell zu finden, kann locate verwendet werden.
Die Installation der Pakete ist mit dem Paketmanager schnell gemacht:

sudo  apt-get install slapd ldap-utils 

Dabei werden wir nach dem gewünschten Administrationspasswort gefragt. Nach der Installation läuft der LDAP Server bereits, was wir mit nmap leicht überprüfen können:

nmap localhost | grep ldap
389/tcp  open  ldap

Damit wir während der Konfiguration einfach auf die Debuginformationen zugreifen können, richten wir noch den Syslog Deamon für OpenLdap ein. Als erstes setzten wir den gewünschten Log Level, indem wir folgenden Wert in /etc/ldap/slapd.conf anpassen. Um den Wert des gewünschten Loglevels herauszufinden müssen wir in der Man Page nachschauen und die gewünschten Eigenschaften zusammenzählen:

man 5 slapd.conf

Dort suchen wir nach loglevel:

1      trace function calls
2      debug packet handling
4      heavy trace debugging
8      connection management
16     print out packets sent and received
32     search filter processing
64     configuration file processing
128    access control list processing
256    stats log connections/operations/results
512    stats log entries sent
1024   print communication with shell backends
2048   entry parsing

…und können uns nun den gewünschten Loglevel berechnen. Ich interessiere mich für die Verbindungen, Operationen und deren Resultat (256), die Suchfilter (32) und das Verbindungsmanagement (8), was zusammengezählt 296 ergibt. Also können wir nun den Loglevel setzen:

loglevel 296

Damit wir alle Ausgaben in einer eigenen Datei haben, fügen wir noch folgenden Eintrag in die Syslog-Konfigurationsdatei /etc/syslog.conf ein:

local4.debug /var/log/slapd.log

nach dem Neustart des LDAP und Syslog Deamons können wir nun alle Logeinträge mit tail -f /var/log/slapd.log beobachten.

Als nächstes müssen wir den Dienst noch an unsere Bedürfnisse anpassen. Dazu müssen wir uns für einen eindeutigen Namen für unser Verzeichnis entscheiden. Dieser eindeutige Name wird auch als DN (Distinguished Name) abgekürzt und identifiziert die oberste Ebene unseres Verzeichnisses (Root). In meinem Fall nehme ich einfach meine TLD netzpiraten.ch, was als dc=netzpiraten,dc=ch geschrieben wird. Eine andere Möglichkeit wäre z.B auch o=netzpiraten,c=ch (o für Organisation und c für Land).

Also editieren wir einfach /etc/ldap/slapd.conf und legen als erstes unseren DN fest, indem wir suffix anpassen.

suffix    "dc=netzpiraten,dc=ch"

Wir müssen dann auch konsequent alle nachfolgenden dc=nodomain durch dc=netzpiraten,dc=ch ersetzten. Damit wir auch einen ersten Eintrag in den LDAP Server speichern können, legen wir einen lokalen Administrator an:

rootdn "cn=admin,dc=netzpiraten,dc=ch"
rootpw {SSHA}B3MTCdJ+bDiAUUzMuhPzcrmKG33+8Wkj

Das Passwort können wir mit dem Hilsprogramm slappasswd erzeugen:

slappasswd
New password:
Re-enter new password:
{SSHA}B3MTCdJ+bDiAUUzMuhPzcrmKG33+8Wkj

Und schlussendlich muss noch der Server neu gestartet werden:

/etc/init.d/slapd restart

Der Server wäre nun bereit, jetzt müssen wir noch den Clients sagen wo unser LDAP Server zu finden ist. Dazu legen wir /etc/ldap/ldap.conf mit folgendem Inhalt an:

ldap_version 3
URI     ldap://ldap.netzpiraten.ch:389
SIZELIMIT       0
TIMELIMIT       0
DEREF           never
BASE dc=netzpiraten, dc=ch

Nun sind wir bereit die ersten Daten einzuspeisen, dazu legen wir eine LDIF Datei base.ldif an, welche wir mit folgenden Objekten füllen:

 dn:dc=netzpiraten,dc=ch
objectClass: dcObject
objectClass: organization
o: netzpiraten
dc: netzpiraten

Die einzelnen Objekte müssen zwingen mit einer Leerzeile voneinander getrennt sein!

dn:cn=admin,dc=netzpiraten,dc=ch
objectClass: organizationalRole
cn: admin

Nun verwenden wir ldapadd zum hinzufügen:

ldapadd -x -W -D cn=admin,dc=netzpiraten,dc=ch -f base.ldif
Enter LDAP Password:
adding new entry "dc=netzpiraten,dc=ch"
adding new entry "cn=admin,dc=netzpiraten,dc=ch"

Und können das Ergebnis gleich vom LDAP Server abfragen:

ldapsearch -x
# extended LDIF
#
# LDAPv3
# base <> with scope sub
# filter: (objectclass=*)
# requesting: ALL
#
# netzpiraten.ch
dn: dc=netzpiraten,dc=ch
objectClass: dcObject
objectClass: organization
o: netzpiraten
dc: netzpiraten
# admin, netzpiraten.ch
dn: cn=admin,dc=netzpiraten,dc=ch
objectClass: organizationalRole
cn: admin
# search result
search: 2
result: 0 Success
# numResponses: 3
# numEntries: 2

Nun ist unser LDAP Server einsatzbereit! Damit wir uns den Objektbaum auch besser veranschaulichen können, installieren wir noch phpldapadmin. Ich gehe davon aus, dass bereits ein Apache am laufen ist. Somit ist die Installation ein Kinderspiel:

apt-get install phpldapadmin

Da phpmyadmin ein LDAP Client ist, haben wir bereits durch das anlegen der ldap.conf genügen angaben gemacht um uns gleich bei der Webapplikation anzumelden. Einfach im Webbrowser den Pfad /phpldapadmin/htdocs/index.php öffnen.

phpLDAPadmin

Leider werden nun alle Passwörter im Klartext an den LDAP Server gesendet, was wiederum ein Sicherheitsrisiko ist. Darum aktivieren wir TLS damit alle Daten verschlüsselt werden in der Client-Server Kommunikation. In diesem Beispiel gehe ich davon aus, dass der Server bereits ein Zertifikat von cacert hat. In dem Fall ist eine der LDAP Server schnell konfiguriert, indem man /etc/ldap/slapd.conf folgendermassen anpasst:

TLSCACertificateFile   /etc/ssl/certs/cacert.org.pem
TLSCertificateFile      /etc/ssl/netzpiraten/netzpiraten.crt
TLSCertificateKeyFile   /etc/ssl/netzpiraten/netzpiraten.key

Als nächstes muss nur noch die Client Konfiguration in /etc/ldap/ldap.conf angepasst werden:

TLS_CACERT /etc/ssl/certs/cacert.org.pem
TLS_REQCERT demand
06
Mrz

Der Ubuntu-Workshop ist tot - lang lebe der Ubuntu-Workshop & das Computerlabor

Für alle Ubuntu-Interessierten in der Region Bremgarten hier noch der Hinweis von Kire auf das Computerlabor im KuZeB:

Alloahe!

Der Ubuntu-Workshop ist tot -
                   lang lebe der Ubuntu-Workshop & das Computerlabor

Nachdem wir uns nun einige Montage ausschliesslich mit Ubuntu Linux
auseinander gesetzt haben, möchten wir die Themen nun breiter fassen:

Mo. 12.3.2007:   Dateien herunterladen & verteilen mit BitTorrent
Mo. 16.4.2007:   Ubuntu-Workshop
Mo. 14.5.2007:   E-Mails verschlüsseln mit PGP/GnuPG
Mo. 11.6.2007:   Ubuntu-Workshop
Mo. 10.9.2007:   Anonym surfen mit TOR, JAP & Freenet
Mo. 8.10.2007:   Ubuntu-Workshop

Die Workshops beginnen jeweils pünktlich um 20.00 Uhr in der neuen
Läsothek und stehen selbstverständlich auch Apfel- und Fenster-
AnwenderInnen offen. Wer möchte, bringt seinen/ihren eigenen Computer
(und ein Netzwerkkabel) mit.

An den Ubuntu-Workshops sind auch NeueinsteigerInnen willkommen.

Taufrisch wurde zudem eine Mailingliste aus der Taufe gehoben, wo
TeilnehmerInnen zu den Themen diskutieren und einander helfen können.

Themenvorschläge, Anregungen und Mutationen an der Mailingliste nehme
ich gerne entgegen.

Grüssle
Kire

P.S.: Den Flyer gibt's auch hier: http://www.kire.ch/linux/workshop.gif

Natürlich sind die Themen-Workshops zu BitTorrent, E-Mail-Verschlüsselung, Anonym surfen auch für Benutzer anderer Linux Derivate als Ubuntu sehr informativ und hilfreich.

Danke Kire für deinen Beitrag zu Opensource!

28
Sep

Mailman für Postfix/MySQL unter Ubuntu

Ich habe bei mir bereits Postfix im Einsatz, der die virtuellen Domänen und Benutzer von einer MySQL Datenbank holt. Nun habe ich noch Mailmain aufgesetzt, da die Forwards von Postfix für einen Verteiler kein Ersatz ist für eine richtige Mailingliste sind.

Als erstes also Mailman mit dem Pakertmanager von Ubuntu installieren:

apt-get install mailman

und gleich die Berechtigungen mit dem Tool das von Mailman mitgeliefert wird überprüft:

check_perms

Nun sollte man theoretisch einfach die Option -f Anhängen um die Probleme automatisch beheben zu lassen:

check_perms -f

was aber nicht wirklich klappt (nochmals mit check_perms überprüfen). Man muss also die Berechtigungen selber korrigieren:

cd /var/lib/mailman
chown -R list:list *

Auch muss die Masterkonfiguration von Postfix noch angepasst werden, damit Mailman läuft:

vim /etc/postfix/master.cf

Die Konfiguration öffnen und nach folgender Zeile suchen:

mailman unix - - n - - pipe

… und diese dann folgendermasen anpassen:

mailman unix - n n - - pipe

Als nächstes muss man noch den Apache konfigurieren für das Webinterface von Mailman. Ich habe bei mir nur eine virtuelle Domäne angepasst und nicht gleich eine Modulkonfiguration für alle Domänen vorgenommen. Also einfach die Konfiguration der gewünschten Domäne mit dem Editor öffnen und folgende Einträge hinzufügen:

#Mailman cgi Script für das Webinterface
ScriptAlias /mailman/ /usr/lib/cgi-bin/mailman/
ScriptAlias /cgi-bin/mailman/ /usr/lib/cgi-bin/mailman/
<Directory /usr/lib/cgi-bin/mailman/>
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all
</Directory>

#Öffentliches pipermail archiv
Alias /pipermail/ /var/lib/mailman/archives/public
<Directory /var/lib/mailman/archives/public>
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order allow,deny
</Directory>

#Bilder für Mailman
Alias /images/mailman/ /usr/share/images/mailman/
<Directory /usr/share/images/mailman/>
AllowOverride None
Order allow,deny
Allow from all
</Directory>

Die Liste wollte ich nicht unter der Standartdomäne netzpiraten.ch laufen lassen, sondern unter lists.netzpiraten.ch. Dazu habe ich dann einfach einen neuen DNS Eintrag gemacht. Man darf nicht vergessen für die Listdomäne nicht nur einen A Record sondern auch einen MX Record zu machen, ansonsten verweigern einige Mailserver die Annahme oder stufen die Emails von dieser Domäne schneller als Spam Mail ein.

Nun muss natürlich noch Mailman so konfiguriert werden, dass er auch Postfix typisch konfiguriert ist und auch die neue Listendomäne verwendet:

vim /etc/mailman/mm_cfg.py

Als erstes den Mailserver und den Webserver eingetragen:

DEFAULT_EMAIL_HOST = 'lists.netzpiraten.ch'
DEFAULT_URL_HOST   = 'www.netzpiraten.ch'

Dannach in der gleichen Datei Postfix konfigurieren und zusätzlich die Listdomäne angegeben:

MTA='Postfix'
POSTFIX_STYLE_VIRTUAL_DOMAINS = ['lists.netzpiraten.ch']
add_virtualhost('www.netzpiraten.ch', 'lists.netzpiraten.ch')

Nun muss mailman neu gestarted werden:

/etc/init.d/mailman restart

Als nächstes muss man die obligatorische mailman Mailingliste erstellen und gleich noch eine zweite zum Testen dazu:

newlist mailman
Enter the email of the person running the list: michi@netzpiraten.ch
Initial test password:
Hit enter to continue with test owner notification..
newlist test
Enter the email of the person running the list: michi@netzpiraten.ch
Initial test password:
Hit enter to continue with test owner notification..

Jetzt können die Aliases und Domains generiert werden. Dazu einfach das von Mailman mitgelieferte genaliasverwenden:

cd /var/lib/mailman/bin
./genaliases

Dannach sind die Dateien /var/lib/mailman/data/aliases und /var/lib/mailman/data/virtual-mailman generiert und enthalten alle benötigten Aliase für die Mailinglisten. Jetzt muss nur noch Postfix so konfigueriert werden, dass er diese Dateien auch verwendet:

vim /etc/postfix/main.cf

Zuerst die Aliase zu den normalen Systemaliasen hinzufügen:

alias_maps = hash:/etc/aliases, hash:/var/lib/mailman/data/aliases

Die alias_database soll nicht eingetragen werden, da Mailman diese selber verwaltet und nicht postfix mit newalias. Als nächstes noch die virtuellen Domänen eintragen:

virtual_alias_maps = proxy:mysql:/etc/postfix/mysql-virtual_forwardings.cf,
                   proxy:mysql:/etc/postfix/mysql-virtual_email2email.cf,
                   hash:/var/lib/mailman/data/virtual-mailman

Bei mir ist ja bereits der MySQL Zugriff konfiguriert, desshalb habe ich einfach die Mailman-Einstellungen hinten angehängt.

Nun nur noch eine Einstellung ändern, damit auch die *-owner Aliase richtig behandelt werden und die Listdomäne auch als möglichen Empfänger angeben:

owner_request_special = no
relay_domains = lists.netzpiraten.ch
mydestinations = $hostname, localhost.$mydomain, lists.netzpiraten.ch

Jetzt Postfix neu laden:

/etc/init.d/postfix reload

und schon sind die Mailinglisten einsatzbereit. Man darf nicht vergessen, nach einem ./genaliases Postfix auch wieder neu zu laden.

21
Sep

Ubuntu Workshop im KuZeB

Hat es dich schon immer wundergenommen was genau den Linux ist? Und hast du trotzdem nie die Zeit gefunden dich ins kalte Wasser zu stürzen und Linux auf einer Partition zu installieren? Dann ist dieser Workshop genau das richtige für dich!!!

Im Kultur Zentrum Bremgarten findet am 16. Oktober und den drei darauffolgenden Monatgabenden ab 19:30 Uhr ein Workshop zu Ubuntu Linux statt. Zu Beginn wird gezeigt, wie man Ubuntu Linux auf seinem Computer installieren kann und welche Applikationen in der GNU/Linux Welt die wichtigsten Bedürfnisse wie Email, Büroarbeit, Musik hören und Zeichnen abdecken. Dannach wird Individuell auf die Bedürfnisse der anwesenden Workshopteilnehmer eingegangen.

Vorgängige Anmeldung bei Kire ist erwünscht. Also nichts wie los…

02
Sep

Migration von Courier zu Dovecot

Habe nun schon seit einiger Zeit die Services von meinen Server zu Hause auf einen Rootserver migriert. Dabei habe ich gleich den IMAP Server von Courier nach Dovecot gewechselt. Auf der Homepage gibts einen Migrationsleitfaden, jedoch muss man dazu noch ein wenig Scripten.

Also als erstes courierimapsubscribed in subscriptions (Bei Dovecot Version vor 1.0 muss es .subscriptions heissen) umbenennen:

und in dem File die Prefixes INBOX. entfernen

courierimapuiddb muss in dovecot-uidlist umbenannt werden

Schlussendlich müssen nur noch courierimaphieracl, courierimapkeywords und courierimapacl gelöscht werden.

…und schon läuft Dovecot einwandfrei. Die Option -print0 bei find und -0 bei xargs sorgt dafür, dass auch z.B. Pfade mit einem Leerzeichen richtig zwischen den Programmen durchgereicht wird.




September 2010
M D M D F S S
« Jun    
 12345
6789101112
13141516171819
20212223242526
27282930  

Werbung


Buttonitis