Debian Lenny
(→Grundlegende Tools) |
|||
(6 dazwischenliegende Versionen von einem Benutzer werden nicht angezeigt) | |||
Zeile 76: | Zeile 76: | ||
; vim: Der etwas bessere Editor im Vergleich zum vi. Ansonsten kann hier auch jeder beliebige Editor installiert werden. | ; vim: Der etwas bessere Editor im Vergleich zum vi. Ansonsten kann hier auch jeder beliebige Editor installiert werden. | ||
; mc: Ein Dateimanager im Norton Commander-Stil, beinhaltet den Editor mcedit. Nichts für Puristen. ;-) | ; mc: Ein Dateimanager im Norton Commander-Stil, beinhaltet den Editor mcedit. Nichts für Puristen. ;-) | ||
− | ; htop: Das etwas andere 'top' | + | ; htop: Das optisch etwas andere 'top' |
+ | ; iotop: top für die Festplatte | ||
; lsof: zum anzeigen offener Dateien und Verbindungen | ; lsof: zum anzeigen offener Dateien und Verbindungen | ||
; openssh-server: für den Remotezugriff | ; openssh-server: für den Remotezugriff | ||
Zeile 84: | Zeile 85: | ||
; less: weniger ist mehr ;-) (der bessere Pager) | ; less: weniger ist mehr ;-) (der bessere Pager) | ||
− | aptitude install vim mc htop openssh-server lsof apt-file bash-completion psmisc less | + | aptitude install vim mc htop openssh-server lsof apt-file bash-completion psmisc less iotop |
Falls die Installation des Servers bei einem Internet-Provider mithilfe eines vorgefertigten Images (z.B. [[Hetzner installimage]]) durchgeführt wird, | Falls die Installation des Servers bei einem Internet-Provider mithilfe eines vorgefertigten Images (z.B. [[Hetzner installimage]]) durchgeführt wird, | ||
Zeile 90: | Zeile 91: | ||
Dies trifft insbesondere für den SSH-Server zu, der in diesem Falle oder bei einer Remoteinstallation durch die Auswahl 'Installer Components'->'network console' | Dies trifft insbesondere für den SSH-Server zu, der in diesem Falle oder bei einer Remoteinstallation durch die Auswahl 'Installer Components'->'network console' | ||
bereits installiert wurde. | bereits installiert wurde. | ||
+ | |||
+ | Falls man mit mehreren Konsolen gleichzeitig arbeitet, tritt das Problem auf, daß nur die Befehle aus der zuletzt geschlossenen Sitzung in der bash history gespeichert werden. | ||
+ | Die läßt sich ebenfalls in der /etc/bash.bashrc ergänzen: | ||
+ | # Shell darf Befehle an die history anhängen | ||
+ | shopt -s histappend | ||
+ | # Befehle werden sofort in die history geschrieben | ||
+ | PROMPT_COMMAND="history -a" | ||
+ | |||
+ | ==(L)AMP== | ||
+ | |||
+ | Meist benötigt, der Apache. Hier gleich mit MySQL, PHP und ein paar PHP-Modulen im Schlepp, sowie den Webalizer für die Statistiken. | ||
+ | |||
+ | aptitude install apache2-mpm-itk libapache2-mod-php5 php-pear php5-gd php5-curl php5-mcrypt \ | ||
+ | php5-imagick libmagickcore3-extra php5-mysql phpmyadmin mysql-server webalizer | ||
+ | |||
+ | Da der Apache gern wegen dem FQDN meckert, passen wir noch die /etc/hosts an und schreiben vor dem kurzen Hostnamen '''lenny3''' noch die lange Variante '''lenny3.debian.local''' und schon gibt dieser auch hier Ruhe. | ||
+ | |||
+ | /etc/hosts: | ||
+ | 127.0.0.1 localhost | ||
+ | 192.168.122.20 lenny3.debian.local lenny3 | ||
+ | |||
==Benutzerverwaltung mit LDAP== | ==Benutzerverwaltung mit LDAP== | ||
Zeile 98: | Zeile 120: | ||
; slapd: der [[OpenLDAP-Server]] | ; slapd: der [[OpenLDAP-Server]] | ||
; ldap-utils: die [[OpenLDAP-Client]]-Tools | ; ldap-utils: die [[OpenLDAP-Client]]-Tools | ||
− | ; libnss- | + | ; libnss-ldap(d): [[NSS-LDAP]] ist die LDAP-Informationsquelle für den NameSeviceSwitch |
− | ; libpam-ldap: [[PAM-LDAP]] ist für die Authentifizierung der Benutzer via LDAP zuständig und wird durch libnss-ldapd automatisch installiert. | + | ; libpam-ldap(d): [[PAM-LDAP]] ist für die Authentifizierung der Benutzer via LDAP zuständig und wird durch libnss-ldapd automatisch installiert. Seit Squeeze ist auch hier die (d)-Variante verfügbar und greift auf den nslcd zu. Der nslcd ist jetzt von libnss-ldapd getrennt ein eigenständiges Paket, welches sowohl für NSS als auch PAM als Verbindung zum LDAP-Server zuständig ist. |
; [[ldapscripts]]: Kommandozeilentools für die Verwaltung von Benutzern im LDAP | ; [[ldapscripts]]: Kommandozeilentools für die Verwaltung von Benutzern im LDAP | ||
; phpldapadmin: die bequeme Art, das LDAP-Verzeichnis vom Browser aus zu verwalten. | ; phpldapadmin: die bequeme Art, das LDAP-Verzeichnis vom Browser aus zu verwalten. |
Aktuelle Version vom 27. Mai 2011, 18:17 Uhr
Ausgehend von einer Minimalinstallation wird hier Aufbau eines Servers beschrieben, der soweit möglich und sinnvoll auf LDAP zurückgreift. LDAP wird von vielen Diensten als Authentifizierungs-Backend unterstützt. LDAP kann wiederum z.B. via PHP über Webseiten manipuliert werden. Das ermöglicht eine Benutzerverwaltung für verschiedene Dienste per Weboberfläche. Zum Teil gibt es dafür schon fertige Web-Tools, auf die bei Bedarf eingegangen wird. Ziel ist es nicht, diese Tools als "Blackbox" zu benutzen, sondern das Zusammenwirken der Komponenten darzustellen.
Es werden die einzelnen nachinstallierten Pakete mit deren Aufgabe für das System beschrieben.
Als Referenz dient ein Debian Lenny 5.0.6 i386. Der Hostname ist lenny3, die Domain debian.local.
Inhaltsverzeichnis |
[Bearbeiten] Partitionierung
Für das Testsystem steht eine virtuelle Maschine (KVM) mit 1 CPU, 512 MB RAM und 2 GB HDD zur Verfügung. Deshalb wird die all-in-one-Variante gewählt und der Vorschlag des Installers übernommen. Von den 2 GB werden 150 MB für SWAP verwendet, der Rest unter / gemountet. Für ein Produktivsystem ist eine Aufteilung in /boot, /, /usr, /home, /var, /tmp und SWAP empfehlenswert. Je nach Verwendung sind weitere Partitionen für /opt, /srv oder auch Teile von /var sinnvoll. Entsprechende Größenangaben folgen später.
Es ist sinnvoll, für die Partitionen LABELs zu vergeben und diese darüber zu mounten. Dafür gibt es mehrere Gründe:
- es kommt vor, daß nach einem Kernelupgrade die Festplatte nicht mehr als /dev/hda erkannt wird, sondern als /dev/sda
- beim Installieren einer weiteren Festplatte könnte die Reihenfolge vertauscht werden, in der diese angesprochen werden
- UUIDs werden beim Erzeugen des Filesystems generiert, d.h. bei Hardwaretausch + Backup hat die Partition ein neues FS und somit eine neue UUID
- UUIDs sind schwer lesbar
Labels hingegen können beim Erzeugen des Dateisystems angegeben oder auch nachträglich gesetzt werden. Sie sollten allerdings so eindeutig sein, daß sich beim Einbau einer Festplatte in einen anderen Rechner keine Kollisionen ergeben. Bewährt hat sich ein Präfix mit dem Hostnamen.
In Testsystem entspricht das für das Root-FS und Swap:
# mkfs -T ext3 -L lenny3-root /dev/vda1 # mkswap -L lenny3-swap /dev/vda5
nachträglich erledigen:
# tune2fs -L lenny3-root -c0 -i0 /dev/vda1
Bei der Gelegenheit schalten wir die FS-Checks gleich aus, die bei Journal-Dateisystemen nicht mehr nötig sind.
Für Swap geht das nicht nachträglich. Deshalb müssen wir die Swap-Partition neu formatieren und demzufolge vorher aushängen.
# swapoff /dev/vda5 # mkswap -L lenny3-swap /dev/vda5 # swapon LABEL=lenny3-swap
Natürlich funktioniert auch weiterhin ein swapon /dev/vda5, aber so können wir das Label gleich testen.
Jetzt sind in /etc/fstab die /dev/* (bzw. UUID=*) durch ein LABEL=lenny3-* zu ersetzen:
/etc# diff fstab.old fstab 5,6c5,6 < /dev/vda1 / ext3 errors=remount-ro 0 1 < /dev/vda5 none swap sw 0 0 --- > LABEL=lenny3-root / ext3 errors=remount-ro 0 1 > LABEL=lenny3-swap none swap sw 0 0
Nun muß noch der Bootloader GRUB angepaßt werden.
[Bearbeiten] Installation
- im BIOS sollte die Zeit auf UTC gestellt sein
- Installer: advanced -> Expert
- Standardsprache: english, US, UTF-8
- additional locales: en_US, en_US.ISO, de_DE, de_DE.UTF-8, de_DE.ISO
- Tastatur: german (außer man kennt die Tastaturbelegung einer englischen Tastatur auswendig oder hat eine solche angeschlossen)
- Module: usb-storage (kann), PC-Card nein
- Installer Components (für Spezialfälle)
- network console - für eine Installation per SSH (für Remoteinstallation bei Internet-Providern notwendig)
- openssh-client - falls man während der Installation schon per SSH raus will
- ppp, wireless - wenn der Rechner nur direkt an (DSL-)Modem oder WLAN hängt
- Partitionierung: geführt, ganze Platte, all-in-one (für die Testumgebung , s.o.)
- Kernel: 2.6.26-686, initrd: generic
- login as root: no -> sudo-Umgebung
- Debian-Mirror: Germany->ftp.de.debian.org (TU Dresden)
- Proxy: http://192.168.122.1:3142 (apt-cacher auf dem KVM-Host)
dadurch wird in /etc/apt/apt.conf folgende Zeile eingefügt:
Acquire::http::Proxy "http://192.168.122.1:3142";
- non-free, security, volatile: yes
- Software selection: auch das Standardsystem entfernen
- grub2, MBR
- finish installation, SysClock: UTC
Damit ist die Grundinstallation abgeschlossen und das System kann neu gestartet werden. In diesem Zustand hat das System gerade mal 428 MB HDD und 126 MB RAM belegt.
[Bearbeiten] Grundlegende Tools
Diese werden einfach mit
aptitude install <PACKAGENAME>
nachinstalliert. Meist ziehen die Pakete noch einige Abhängigkeiten nach, womit man sich nicht um jedes einzelne benötigte Paket kümmern muß.
- vim
- Der etwas bessere Editor im Vergleich zum vi. Ansonsten kann hier auch jeder beliebige Editor installiert werden.
- mc
- Ein Dateimanager im Norton Commander-Stil, beinhaltet den Editor mcedit. Nichts für Puristen. ;-)
- htop
- Das optisch etwas andere 'top'
- iotop
- top für die Festplatte
- lsof
- zum anzeigen offener Dateien und Verbindungen
- openssh-server
- für den Remotezugriff
- apt-file
- für die Suche nach Dateien von noch nicht installierten Paketen
- bash-completion
- vervollständigt auch die Optionen von den Kommandos, muß aber in der /etc/bash.bashrc noch aktiviert werden ('#' in Zeile 32-34 entfernen)
- psmisc
- enthält u.a. pstree und killall
- less
- weniger ist mehr ;-) (der bessere Pager)
aptitude install vim mc htop openssh-server lsof apt-file bash-completion psmisc less iotop
Falls die Installation des Servers bei einem Internet-Provider mithilfe eines vorgefertigten Images (z.B. Hetzner installimage) durchgeführt wird, können einige dieser Pakete bereits vorhanden sein und somit an dieser Stelle ausgelassen werden. Dies trifft insbesondere für den SSH-Server zu, der in diesem Falle oder bei einer Remoteinstallation durch die Auswahl 'Installer Components'->'network console' bereits installiert wurde.
Falls man mit mehreren Konsolen gleichzeitig arbeitet, tritt das Problem auf, daß nur die Befehle aus der zuletzt geschlossenen Sitzung in der bash history gespeichert werden. Die läßt sich ebenfalls in der /etc/bash.bashrc ergänzen:
# Shell darf Befehle an die history anhängen shopt -s histappend # Befehle werden sofort in die history geschrieben PROMPT_COMMAND="history -a"
[Bearbeiten] (L)AMP
Meist benötigt, der Apache. Hier gleich mit MySQL, PHP und ein paar PHP-Modulen im Schlepp, sowie den Webalizer für die Statistiken.
aptitude install apache2-mpm-itk libapache2-mod-php5 php-pear php5-gd php5-curl php5-mcrypt \ php5-imagick libmagickcore3-extra php5-mysql phpmyadmin mysql-server webalizer
Da der Apache gern wegen dem FQDN meckert, passen wir noch die /etc/hosts an und schreiben vor dem kurzen Hostnamen lenny3 noch die lange Variante lenny3.debian.local und schon gibt dieser auch hier Ruhe.
/etc/hosts:
127.0.0.1 localhost 192.168.122.20 lenny3.debian.local lenny3
[Bearbeiten] Benutzerverwaltung mit LDAP
LDAP ist die Basis für eine spätere Verwaltung der Benutzer für verschiedene Bereiche über eine Weboberfläche bzw. für die Nutzung der Daten von verschiedenen Rechnern aus. Mit LDAP können auch Adressbücher und weitere Verzeichnisdienste verwaltet werden.
Benötigt werden folgende Pakete:
- slapd
- der OpenLDAP-Server
- ldap-utils
- die OpenLDAP-Client-Tools
- libnss-ldap(d)
- NSS-LDAP ist die LDAP-Informationsquelle für den NameSeviceSwitch
- libpam-ldap(d)
- PAM-LDAP ist für die Authentifizierung der Benutzer via LDAP zuständig und wird durch libnss-ldapd automatisch installiert. Seit Squeeze ist auch hier die (d)-Variante verfügbar und greift auf den nslcd zu. Der nslcd ist jetzt von libnss-ldapd getrennt ein eigenständiges Paket, welches sowohl für NSS als auch PAM als Verbindung zum LDAP-Server zuständig ist.
- ldapscripts
- Kommandozeilentools für die Verwaltung von Benutzern im LDAP
- phpldapadmin
- die bequeme Art, das LDAP-Verzeichnis vom Browser aus zu verwalten.
Ein Beispieleintrag für einen Unix-Benutzer:
dn: dn=testuser,ou=people,dc=debian,dc=local cn: testuser description: TestUser gecos: TestUser gidnumber: 1001 homedirectory: /home/testuser loginshell: /bin/bash objectclass: account objectclass: posixAccount uid: testuser uidnumber: 1001 userpassword: {SSHA}V3N3EuLiYKurgaM5tJ61+ArsJRi0my/E
Description, Gecos-Feld und die Login-Shell sind hierbei optional, alle anderen sind Pflichteinträge.
Ein Beispieleintrag für die persönliche Unix-Gruppe von testuser:
dn: cn=testuser,ou=group,dc=debian,dc=local cn: testuser description: TestUser gidnumber: 1001 memberuid: anotheruser objectclass: posixGroup
Hier ist nur Description optional. Über MemberUID werden dieser Gruppe weitere Mitglieder hinzugefügt.
Standardmäßig wird im gesamten LDAP-Baum nach posixAccount- und posixGroup-Einträgen gesucht.
ToDo: Wo/wie sind entsprechende Filter zu konfigurieren?
[Bearbeiten] Samba mit LDAP
Benötigt werden folgende Pakete:
- samba
- der Server für Windows-Datei-Freigaben
- samba-client
- der Client zum lokalen Testen der Konfiguration
- smbldap-tools
- Verwaltung der LDAP-Einträge von Windows aus.
- tdb-tools
- Tools für das TDB-Backend