Benutzer:Kirmse/Grundinstallation2: Unterschied zwischen den Versionen
(anfang) |
(Anfang) |
||
Zeile 12: | Zeile 12: | ||
== Installation == | == Installation == | ||
=== Grundinstallation === | |||
exakt nach Doku im Wiki ab "Echte Hardware" | |||
Ich habe als Domainname natürlich "delixs-schule.de" gewählt, sonst hätte | |||
ich nicht die conf-Dateien von der alpha-8 direkt nachnutzen können. | |||
für /usr habe ich 6 GB gewählt, (im Wiki ist 3 bis 8 GB angegeben) | |||
für /var ebenfalls 6 GB gewählt, (wie bei /usr) | |||
Damit war der große Brocken geschafft. | |||
=== Paketmanager === | |||
Dieser Punkt würde für die hier ablaufende Installation nicht gebraucht, | |||
weil ich mit dem Parameter -R arbeite. Aber da Aptitude sowieso korrekt | |||
eingestellt werden muss, kann ich das auch an dieser Stelle tun. Also | |||
Optionen > Einstellungen > Empfohlene Pakete automatisch installieren | |||
abwählen | |||
Dann noch wie im wiki angegeben "das System aktualisieren" abgearbeitet. | |||
Aktionen > Paketliste aktualisieren - auf aktualisierbare Pakete gehen | |||
Taste q | |||
Die nächsten Schritte arbeite ich scriptgesteuert ab. Dazu müssen aber die | |||
Dateien aus dem Paket delixs.tgz auf den Server. Das habe ich so getan: | |||
Diese Dateien auf dem windows-Rechner entpackt, auf den Stick geschoben, | |||
am Rechner gemountet, dann nach /root/delixs gebracht, und wieder die Rechte | |||
gesetzt (chmod). | |||
=== APT Sourcen === | |||
Ich habe dieses Script "install_APTSourcen" aufgerufen. Die Scripte | |||
kopieren immer die alte Version /root/delixs/confbackup und die | |||
neue Version (von der alpha8) kopieren sie dann an diese Stelle. | |||
<source lang="text"> | |||
#!/bin/bash | |||
################################################################## | |||
# Kapitel: APT Sourcen bearbeiten | |||
################################################################## | |||
# wir spielen unsere sources.list ein | |||
cp -f /etc/apt/sources.list /root/delixs/confbackup/sources.list | |||
cp -f /root/delixs/conffiles/sources.list /etc/apt/sources.list | |||
# wir holen uns den Key fuer veraenderte APT-Sourcen | |||
wget -O - http://backports.org/debian/archive.key | apt-key add - | |||
</source> | |||
=== Werkzeugkiste === | |||
Ich habe im Gegensatz zur Doku Subversion NICHT installiert. m.E. gehört das | |||
nicht auf den Schulserver, sondern nur auf den Entwicklungsserver, was aber | |||
hier nicht der Fall ist. Ebenso hae ich den User devel herausgenommen, weil | |||
ich ja in der Schule keine delixs-CDs erstellen will. Auch das Paket | |||
simple-cdd entfällt hier. Weiterer Hinweis, im Wiki steht | |||
"aptitude install perl perl-doc". perl stört zwar nicht, ist aber schon auf | |||
dem System Deswegen bei mir nur perl-doc. Alles andere entspricht der Doku | |||
im Wiki. Unschlüssig bin ich mir mit sudo-ldap. wir verwalten sudo nicht im | |||
LDAP. aber ich habe es erstmal gelassen. m.E. ist sudo (was wir brauchen) eh | |||
dabei. | |||
<source lang="text"> | |||
#!/bin/bash | |||
################################################################## | |||
# Kapitel: Werkzeugkiste fuer den Admin | |||
################################################################## | |||
# Lynx | |||
aptitude install -R -y lynx | |||
aptitude install -R -y mime-support | |||
# MC | |||
# Hinweis: der MC-Wrapper wird mit Kopieren der .bashrc eingerichtet | |||
aptitude install -R -y mc | |||
# wir setzen mcedit als Standard-Editor | |||
update-alternatives --set editor /usr/bin/mcedit-debian | |||
# die wichtigsten Packer | |||
aptitude install -R -y zip unzip bzip2 bsdtar | |||
# UID-Bereiche fuer User im LDAP und nicht im LDAP bereitstellen | |||
cp -f /etc/adduser.conf /root/delixs/confbackup/adduser.conf | |||
cp -f /root/delixs/conffiles/adduser.conf /etc/adduser.conf | |||
# User "sysadm" loeschen und mit den veränderten Vorgaben neu erzeugen | |||
userdel -r sysadm | |||
addgroup --gid 10000 service | |||
mkdir /home/service | |||
adduser --ingroup service --gecos Systemverwaltung --disabled-password sysadm | |||
# das Paket perl-doc | |||
aptitude install perl-doc | |||
# Image Optimierung | |||
aptitude install -R -y zerofree | |||
# Verzeichnisbaum | |||
aptitude install -R -y tree | |||
# Netzwerkkartenmanager ethtool | |||
aptitude install -R -y ethtool | |||
# Anzeige von NAT-Verbindungen | |||
aptitude install -R -y netstat-nat | |||
# Debconf-Werkzeuge | |||
aptitude install -R -y debconf-utils | |||
# Werkzeug zur Konfiguration der Initskriptlinks | |||
aptitude install -R -y sysvconfig | |||
# sudo | |||
aptitude install -R -y sudo-ldap | |||
# Farbige Ausgabe auf der Kommandozeile | |||
# dazu wurde die .bashrc modifiziert. Diese wird einfach eingespielt | |||
cp -f /root/.bashrc /root/delixs/confbackup/.bashrc | |||
cp -f /root/delixs/conffiles/.bashrc /root/.bashrc | |||
# System anhalten | |||
# Damit das System nach einem Soft-Reset nicht einfach wieder hochfaehrt, | |||
# wurde bei CTRL-ALT-DEL von "-r"(=Restart) auf "-h"(=Halt) umgestellt. | |||
cp -f /etc/inittab /root/delixs/confbackup/inittab | |||
cp -f /root/delixs/conffiles/inittab /etc/inittab | |||
</source> | |||
=== Erste und zweite Netzwerkkarte === | |||
<source lang="text"> | |||
#!/bin/bash | |||
################################################################## | |||
# Kapitel: Internetzugang und 2. Netzwerkkarte | |||
################################################################## | |||
# es wird eine fertigkonfigurierte "interface-Datei" eingespielt | |||
cp -f /etc/network/interfaces /root/delixs/confbackup/interfaces | |||
cp -f /root/delixs/conffiles/interfaces /etc/network/interfaces | |||
# dann wird das netzwerk neu gestartet | |||
/etc/init.d/networking restart | |||
</source> | |||
=== ACLs und Quotas === | |||
die eigentliche Konfiguration findet nur in der Datei 'fstab' statt. | |||
Hier kann ich aber nicht einfach die von der alpha-8 einspielen, weil | |||
ja die device nicht unbedingt sda etc. heißen müssen, sondern auf alten | |||
Systemen auch hda ... . Deshalb kommt hier ein Script zum Einsatz, welches | |||
die fstab entsprechend ändert. | |||
<source lang="text"> | |||
#!/bin/bash | |||
################################################################## | |||
# Kapitel: ACLs und Plattenplatzkontrolle | |||
################################################################## | |||
# ACLs installieren | |||
aptitude install -R -y acl | |||
# Quotas installieren | |||
aptitude install -R -y quota | |||
# fstab anpassen | |||
cp -f /etc/fstab /root/delixs/confbackup/fstab | |||
# wir bearbeiten mit einem Script die /etc/fstab | |||
./mod_fstab.pl | |||
# /home neu mounten | |||
mount -o remount /home | |||
</source> | |||
noch das Script mod_fstab.pl : | |||
<source lang="text"> | |||
#!/usr/bin/perl | |||
use warnings; | |||
use strict; | |||
my $string; | |||
# wir lesen die 'fstab' ein | |||
open DATEI, "<", '/etc/fstab' or die "konnte /etc/fstab nicht einlesen!\n"; | |||
my @file = <DATEI>; | |||
close DATEI; | |||
# erstmal den ACL-Eintrag | |||
foreach my $zeile (@file) { # wir suchen alle betreffenden Zeilen | |||
if ($zeile =~ /^\/dev\/\w\w\w\d # Slash dev 3 Buchstaben, dann Ziffer | |||
\s+ # mindestens ein Whitespace (Tabulator) | |||
\/\w* # ein Slash und mehrere Zeichen | |||
\s* # mindestens ein Whitespace (Tabulator) | |||
(ext3|xfs) # das Dateisystem | |||
\s* # mindestens ein Whitespace (Tabulator) | |||
([^\s]*) # mehrere Zeichen, kein Whitespace sind | |||
/x) { | |||
$string = 'acl,' . $2; # Ersatzstring erzeugen, "acl," davor setzen | |||
$zeile =~ s/$2/$string/e; # jetzt substituieren wir | |||
} | |||
} | |||
# jetzt den Quota-Eintrag | |||
foreach my $zeile (@file) { # wir suchen alle betreffenden Zeilen | |||
if ($zeile =~ /^\/dev\/\w\w\w\d # Slash dev 3 Buchstaben, dann Ziffer | |||
\s+ # mindestens ein Whitespace (Tabulator) | |||
\/home # nur das Homeverzeichnis interessiert | |||
\s* # mindestens ein Whitespace (Tabulator) | |||
(ext3|xfs) # das Dateisystem | |||
\s* # mindestens ein Whitespace (Tabulator) | |||
([^\s]*) # mehrere Zeichen, kein Whitespace sind | |||
/x) { | |||
$string = $2.',usrquota,grpquota'; # wir erzeugen den Ersatzstring, | |||
$zeile =~ s/$2/$string/e; # jetzt substituieren wir | |||
} | |||
} | |||
# jetzt schreiben wir die Datei neu | |||
open DATEI, ">", '/etc/fstab' | |||
or die "konnte /etc/fstab nicht zum Schreiben oeffnen!\n"; | |||
foreach my $zeile (@file) { | |||
print DATEI $zeile; | |||
} | |||
close DATEI; | |||
__END__ | |||
</source> | |||
=== Zeit-Server === | |||
kurz und schmerzlos: | |||
<source lang="text"> | |||
#!/bin/bash | |||
################################################################## | |||
# Kapitel: Zeitserver | |||
################################################################## | |||
# Installation der Pakete | |||
aptitude install -R -y ntp ntpdate | |||
# unsere Konfiguration einspielen | |||
cp -f /etc/ntp.conf /root/delixs/confbackup/ntp.conf | |||
cp -f /root/delixs/conffiles/ntp.conf /etc/ntp.conf | |||
# einmalig die aktuelle Zeit holen | |||
sleep 1 | |||
cp -f /etc/timezone /root/delixs/confbackup/timezone | |||
cp -f /root/delixs/conffiles/timezone /etc/timezone | |||
ntpdate ptbtime1.ptb.de | |||
# Neustart des NTP-Servers | |||
/etc/init.d/ntp restart | |||
</source> | |||
=== SSH-Server === | |||
ebenso: | |||
<source lang="text"> | |||
#!/bin/bash | |||
################################################################## | |||
# Kapitel: SSH-Server | |||
################################################################## | |||
# openssh-server, openssh-client und openssh-blacklist installieren | |||
aptitude install -R -y ssh | |||
# Konfiguration des SSH-Servers anpassen | |||
cp -f /etc/ssh/sshd_config /root/delixs/confbackup/sshd_config | |||
cp -f /root/delixs/conffiles/sshd_config /etc/ssh/sshd_config | |||
# globale Konfiguration des SSH-Clients anpassen | |||
#cp -f /root/conffiles/ssh_config /etc/ssh/ssh_config | |||
# Neustart des SSH-Servers | |||
/etc/init.d/ssh restart | |||
</source> | |||
=== OpenSSL (einschl. Erstellen des Zertifikats) === | |||
<source lang="text"> | |||
#!/bin/bash | |||
################################################################## | |||
# Kapitel: OpenSSL | |||
################################################################## | |||
# OpenSSL installieren | |||
aptitude install -R -y openssl ca-certificates | |||
# Generieren eines privaten Serverschlüssel "server.key" ohne Passwort! | |||
openssl genrsa -out server.key 1024 | |||
# Generieren einer Zertifikatsanfrage "server.csr" | |||
openssl req -new -key server.key -out server.csr < /root/delixs/conffiles/eingabe.txt | |||
# Generieren des eigentliche Zertifikat "server.crt", welches wir selbst unterzeichnen | |||
openssl x509 -req -in server.csr -out server.crt -signkey server.key -days 3650 | |||
</source> | |||
die Datei eingabe.txt sieht so aus: | |||
<source lang="text"> | |||
DE | |||
Germany | |||
. | |||
delixs-Schule | |||
. | |||
alix | |||
. | |||
. | |||
. | |||
</source> | |||
---- | |||
<div align="right">[[Delixs10:Installationshandbuch|zurück]] | [[Hauptseite]]</div> | |||
Hans-Dietrich Kirmse 2009 |
Version vom 15. Oktober 2009, 11:18 Uhr
Diese Seite sollte nochmals überarbeitet werden. Eine Begründung befindet sich in der Regel unter Diskussion (oben). |
Der Willkommensgruss
- Datei:Tmp splash.png
- Abbildung: bootsplash 1
Installation
Grundinstallation
exakt nach Doku im Wiki ab "Echte Hardware"
Ich habe als Domainname natürlich "delixs-schule.de" gewählt, sonst hätte ich nicht die conf-Dateien von der alpha-8 direkt nachnutzen können.
für /usr habe ich 6 GB gewählt, (im Wiki ist 3 bis 8 GB angegeben) für /var ebenfalls 6 GB gewählt, (wie bei /usr)
Damit war der große Brocken geschafft.
Paketmanager
Dieser Punkt würde für die hier ablaufende Installation nicht gebraucht, weil ich mit dem Parameter -R arbeite. Aber da Aptitude sowieso korrekt eingestellt werden muss, kann ich das auch an dieser Stelle tun. Also
Optionen > Einstellungen > Empfohlene Pakete automatisch installieren abwählen
Dann noch wie im wiki angegeben "das System aktualisieren" abgearbeitet.
Aktionen > Paketliste aktualisieren - auf aktualisierbare Pakete gehen Taste q
Die nächsten Schritte arbeite ich scriptgesteuert ab. Dazu müssen aber die Dateien aus dem Paket delixs.tgz auf den Server. Das habe ich so getan: Diese Dateien auf dem windows-Rechner entpackt, auf den Stick geschoben, am Rechner gemountet, dann nach /root/delixs gebracht, und wieder die Rechte gesetzt (chmod).
APT Sourcen
Ich habe dieses Script "install_APTSourcen" aufgerufen. Die Scripte kopieren immer die alte Version /root/delixs/confbackup und die neue Version (von der alpha8) kopieren sie dann an diese Stelle.
<source lang="text">
- !/bin/bash
- Kapitel: APT Sourcen bearbeiten
- wir spielen unsere sources.list ein
cp -f /etc/apt/sources.list /root/delixs/confbackup/sources.list cp -f /root/delixs/conffiles/sources.list /etc/apt/sources.list
- wir holen uns den Key fuer veraenderte APT-Sourcen
wget -O - http://backports.org/debian/archive.key | apt-key add - </source>
Werkzeugkiste
Ich habe im Gegensatz zur Doku Subversion NICHT installiert. m.E. gehört das nicht auf den Schulserver, sondern nur auf den Entwicklungsserver, was aber hier nicht der Fall ist. Ebenso hae ich den User devel herausgenommen, weil ich ja in der Schule keine delixs-CDs erstellen will. Auch das Paket simple-cdd entfällt hier. Weiterer Hinweis, im Wiki steht "aptitude install perl perl-doc". perl stört zwar nicht, ist aber schon auf dem System Deswegen bei mir nur perl-doc. Alles andere entspricht der Doku im Wiki. Unschlüssig bin ich mir mit sudo-ldap. wir verwalten sudo nicht im LDAP. aber ich habe es erstmal gelassen. m.E. ist sudo (was wir brauchen) eh dabei.
<source lang="text">
- !/bin/bash
- Kapitel: Werkzeugkiste fuer den Admin
- Lynx
aptitude install -R -y lynx aptitude install -R -y mime-support
- MC
- Hinweis: der MC-Wrapper wird mit Kopieren der .bashrc eingerichtet
aptitude install -R -y mc
- wir setzen mcedit als Standard-Editor
update-alternatives --set editor /usr/bin/mcedit-debian
- die wichtigsten Packer
aptitude install -R -y zip unzip bzip2 bsdtar
- UID-Bereiche fuer User im LDAP und nicht im LDAP bereitstellen
cp -f /etc/adduser.conf /root/delixs/confbackup/adduser.conf cp -f /root/delixs/conffiles/adduser.conf /etc/adduser.conf
- User "sysadm" loeschen und mit den veränderten Vorgaben neu erzeugen
userdel -r sysadm addgroup --gid 10000 service mkdir /home/service adduser --ingroup service --gecos Systemverwaltung --disabled-password sysadm
- das Paket perl-doc
aptitude install perl-doc
- Image Optimierung
aptitude install -R -y zerofree
- Verzeichnisbaum
aptitude install -R -y tree
- Netzwerkkartenmanager ethtool
aptitude install -R -y ethtool
- Anzeige von NAT-Verbindungen
aptitude install -R -y netstat-nat
- Debconf-Werkzeuge
aptitude install -R -y debconf-utils
- Werkzeug zur Konfiguration der Initskriptlinks
aptitude install -R -y sysvconfig
- sudo
aptitude install -R -y sudo-ldap
- Farbige Ausgabe auf der Kommandozeile
- dazu wurde die .bashrc modifiziert. Diese wird einfach eingespielt
cp -f /root/.bashrc /root/delixs/confbackup/.bashrc cp -f /root/delixs/conffiles/.bashrc /root/.bashrc
- System anhalten
- Damit das System nach einem Soft-Reset nicht einfach wieder hochfaehrt,
- wurde bei CTRL-ALT-DEL von "-r"(=Restart) auf "-h"(=Halt) umgestellt.
cp -f /etc/inittab /root/delixs/confbackup/inittab cp -f /root/delixs/conffiles/inittab /etc/inittab </source>
Erste und zweite Netzwerkkarte
<source lang="text">
- !/bin/bash
- Kapitel: Internetzugang und 2. Netzwerkkarte
- es wird eine fertigkonfigurierte "interface-Datei" eingespielt
cp -f /etc/network/interfaces /root/delixs/confbackup/interfaces cp -f /root/delixs/conffiles/interfaces /etc/network/interfaces
- dann wird das netzwerk neu gestartet
/etc/init.d/networking restart </source>
ACLs und Quotas
die eigentliche Konfiguration findet nur in der Datei 'fstab' statt. Hier kann ich aber nicht einfach die von der alpha-8 einspielen, weil ja die device nicht unbedingt sda etc. heißen müssen, sondern auf alten Systemen auch hda ... . Deshalb kommt hier ein Script zum Einsatz, welches die fstab entsprechend ändert.
<source lang="text">
- !/bin/bash
- Kapitel: ACLs und Plattenplatzkontrolle
- ACLs installieren
aptitude install -R -y acl
- Quotas installieren
aptitude install -R -y quota
- fstab anpassen
cp -f /etc/fstab /root/delixs/confbackup/fstab
- wir bearbeiten mit einem Script die /etc/fstab
./mod_fstab.pl
- /home neu mounten
mount -o remount /home </source>
noch das Script mod_fstab.pl :
<source lang="text">
- !/usr/bin/perl
use warnings; use strict;
my $string;
- wir lesen die 'fstab' ein
open DATEI, "<", '/etc/fstab' or die "konnte /etc/fstab nicht einlesen!\n"; my @file = <DATEI>; close DATEI;
- erstmal den ACL-Eintrag
foreach my $zeile (@file) { # wir suchen alle betreffenden Zeilen
if ($zeile =~ /^\/dev\/\w\w\w\d # Slash dev 3 Buchstaben, dann Ziffer \s+ # mindestens ein Whitespace (Tabulator) \/\w* # ein Slash und mehrere Zeichen \s* # mindestens ein Whitespace (Tabulator) (ext3|xfs) # das Dateisystem \s* # mindestens ein Whitespace (Tabulator) ([^\s]*) # mehrere Zeichen, kein Whitespace sind /x) { $string = 'acl,' . $2; # Ersatzstring erzeugen, "acl," davor setzen $zeile =~ s/$2/$string/e; # jetzt substituieren wir }
}
- jetzt den Quota-Eintrag
foreach my $zeile (@file) { # wir suchen alle betreffenden Zeilen
if ($zeile =~ /^\/dev\/\w\w\w\d # Slash dev 3 Buchstaben, dann Ziffer \s+ # mindestens ein Whitespace (Tabulator) \/home # nur das Homeverzeichnis interessiert \s* # mindestens ein Whitespace (Tabulator) (ext3|xfs) # das Dateisystem \s* # mindestens ein Whitespace (Tabulator) ([^\s]*) # mehrere Zeichen, kein Whitespace sind /x) { $string = $2.',usrquota,grpquota'; # wir erzeugen den Ersatzstring, $zeile =~ s/$2/$string/e; # jetzt substituieren wir }
}
- jetzt schreiben wir die Datei neu
open DATEI, ">", '/etc/fstab'
or die "konnte /etc/fstab nicht zum Schreiben oeffnen!\n";
foreach my $zeile (@file) {
print DATEI $zeile;
} close DATEI;
__END__ </source>
Zeit-Server
kurz und schmerzlos:
<source lang="text">
- !/bin/bash
- Kapitel: Zeitserver
- Installation der Pakete
aptitude install -R -y ntp ntpdate
- unsere Konfiguration einspielen
cp -f /etc/ntp.conf /root/delixs/confbackup/ntp.conf cp -f /root/delixs/conffiles/ntp.conf /etc/ntp.conf
- einmalig die aktuelle Zeit holen
sleep 1 cp -f /etc/timezone /root/delixs/confbackup/timezone cp -f /root/delixs/conffiles/timezone /etc/timezone ntpdate ptbtime1.ptb.de
- Neustart des NTP-Servers
/etc/init.d/ntp restart </source>
SSH-Server
ebenso:
<source lang="text">
- !/bin/bash
- Kapitel: SSH-Server
- openssh-server, openssh-client und openssh-blacklist installieren
aptitude install -R -y ssh
- Konfiguration des SSH-Servers anpassen
cp -f /etc/ssh/sshd_config /root/delixs/confbackup/sshd_config cp -f /root/delixs/conffiles/sshd_config /etc/ssh/sshd_config
- globale Konfiguration des SSH-Clients anpassen
- cp -f /root/conffiles/ssh_config /etc/ssh/ssh_config
- Neustart des SSH-Servers
/etc/init.d/ssh restart </source>
OpenSSL (einschl. Erstellen des Zertifikats)
<source lang="text">
- !/bin/bash
- Kapitel: OpenSSL
- OpenSSL installieren
aptitude install -R -y openssl ca-certificates
- Generieren eines privaten Serverschlüssel "server.key" ohne Passwort!
openssl genrsa -out server.key 1024
- Generieren einer Zertifikatsanfrage "server.csr"
openssl req -new -key server.key -out server.csr < /root/delixs/conffiles/eingabe.txt
- Generieren des eigentliche Zertifikat "server.crt", welches wir selbst unterzeichnen
openssl x509 -req -in server.csr -out server.crt -signkey server.key -days 3650 </source>
die Datei eingabe.txt sieht so aus:
<source lang="text"> DE Germany . delixs-Schule . alix . . . </source>
Hans-Dietrich Kirmse 2009