Benutzer:Kirmse/Grundinstallation2: Unterschied zwischen den Versionen

Aus Delixs
Zur Navigation springen Zur Suche springen
(Willkommensgruss)
(Kat)
 
(18 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
__NOTOC__
{{Uberarbeiten}}
== Der Willkommensgruss ==
== Der Willkommensgruss ==


so sieht es im Moment aus:


:[[Bild:Tmp_splash.png]]
:[[Datei:Tmp splashn.png]]
:''Abbildung: bootsplash1''
:''Abbildung: bootsplash 1''
 
 
 
== Installation ==
===  Grundinstallation ===
 
Bei der Grundinstallation wird exakt nach Doku (Kapitel [[http://www.delixs.de/dwiki/index.php/Entwicklungsumgebung/Grundinstallation|Grundinstallation]] im Wiki) ab "Echte Hardware" vorgegangen.
 
Ich habe als Domainname natürlich "delixs-schule.de" gewählt, sonst hätte ich nicht die conf-Dateien (Kapitel [[http://www.delixs.de/dwiki/index.php/Entwicklungsumgebung/Dateiliste|Dateiliste]]) von der alpha-8 direkt nachnutzen können.
 
Partitionierung:
 
  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 (Kapitel [[http://www.delixs.de/dwiki/index.php/Entwicklungsumgebung/Aptitude|Aptitude]]) wurde 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 "alix.key" ohne Passwort!
openssl genrsa -out alix.key 1024
 
# Generieren einer Zertifikatsanfrage "alix.csr"
openssl req -new -key alix.key -out alix.csr < /root/delixs/conffiles/eingabe.txt
 
# Generieren des eigentliche Zertifikat "alix.crt", welches wir selbst unterzeichnen
openssl x509 -req -in alix.csr -out alix.crt -signkey alix.key -days 3650
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
</source>
 
 
die Datei eingabe.txt sieht so aus:
 
<source lang="text">
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DE
Germany
.
delixs-Schule
.
alix
.
.
.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
</source>
 
 
=== Hardwareüberwachung ===
 
 
<source lang="text">
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#!/bin/bash
 
##################################################################
#  Kapitel: Hardware&uuml;berwachung des Servers
##################################################################
 
# Installation der Sensoren
aptitude install -R -y lm-sensors i2c-tools sensord
 
# Einrichtung der Festplattenueberwachung
aptitude install -R -y smartmontools
 
# zum automatisch starten, wird die default-Datei bereitgestellt
cp -f  /etc/default/smartmontools /root/delixs/confbackup/smartmontools
cp -f  /root/delixs/conffiles/smartmontools /etc/default/smartmontools
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
</source>
 
 
2 Bemerkungen: das mit "sensors-detect" habe ich per Hand ausgeführt. Ob
sich das so einfach automatisieren läßt kann ich nicht abschätzen.
 
Die Datei smartmontools konnte ich nicht aus der alpha-8 nehmen, weil
unter VMWare die Hardwareerkennung nicht geht. Es geht dort auch nur um
den Eintrag "start_smartd=yes", der vorher auskommentiert war.
 
 
=== Webserver Apache ===
 
 
<source lang="text">
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#!/bin/bash
 
##################################################################
#  Kapitel: Apache
##################################################################
 
# wir installieren die Pakete fuer den Apache
aptitude install -R -y apache2-mpm-prefork
 
# Installation von PHP
aptitude install -R -y libapache2-mod-php5 php5-mysql
 
# und bereitstellen/einschalten
a2enmod php5
 
# und Konfiguration neu einlesen lassen
/etc/init.d/apache2 restart
 
# wir stellen die Startseite von alix bereit
cp -f /root/delixs/conffiles/index.html  /var/www/index.html
cp -f /root/delixs/conffiles/delixs.gif  /var/www/delixs.gif
 
# wir stellen ein Script zum Testen von CGI-Scripten bereit
cp -f /root/delixs/conffiles/test.cgi  /usr/lib/cgi-bin/test.cgi
 
# wir stellen ein Script zum Testen der PHP-Funktionalität bereit
cp -f /root/delixs/conffiles/info.php  /var/www/info.php
 
# die Zertifikate sind ja schon erstellt, wir kopieren sie nur noch
mkdir /etc/apache2/ssl
cp -f /root/delixs/server.crt    /etc/apache2/ssl/server.crt
cp -f /root/delixs/server.key    /etc/apache2/ssl/server.key
# zum bequemen Einspielen in den Browser
cp -f /root/delixs/server.crt    /var/www/server.crt
 
 
# eigene Datei /etc/apache2/sites-available/default bereitstellen
cp -f /etc/apache2/sites-available/default-ssl /root/delixs/confbackup/
cp -f /root/delixs/conffiles/default-ssl /etc/apache2/sites-available/
 
# httpd.conf war leer, wir kopieren, weil wir dann wissen, dass das abgearbeitet wurde
cp -f /etc/apache2/httpd.conf  /root/delixs/confbackup/httpd.conf
cp -f /root/delixs/conffiles/httpd.conf  /etc/apache2/httpd.conf
 
# die Treiber fuer SSL laden
a2ensite default-ssl
a2enmod ssl
 
# Apache neu starten
/etc/init.d/apache2 restart
 
# weitere PHP-Werkzeuge
aptitude install -R -y php5-cli php5-common php5-mhash php-pear
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
</source>
 
 
Dazu folgende Bemerkungen:
 
die Statseite "It works" kann ich meinen Lehrern/Schülern nicht zumuten.
Ich habe die ersetzt durch diese http://www.arktur.th.schule.de/startseite.html
Es ist keineswegs die, die ich dafür gedacht habe, aber ich hatte damals
nichts anderes zu Verfügung. Mir wäre es schon sehr recht, wenn ich hier eine
attraktive Seite einbinden könnte, noch besser wäre es, wenn es schon die wäre,
die dann auch die Startseite von delixs (alix) werden sollte.
 
die Datei "default-ssl" hat folgende Änderung erhalten:
 
    ServerName  alix
 
(gleich unter ServerAdmin ergänzt)
außerdem wurden folgende beiden Einträge angepasst:
 
    SSLCertificateFile    /etc/apache2/ssl/alix.crt
    SSLCertificateKeyFile /etc/apache2/ssl/alix.key
 
die httpd.conf enthält folgende Zeile:
 
  AddType  application/x-x509-ca-cert  .crt .der
 
(nur) dadurch ist es möglich, dass man das Zertikat (hat ja die Endung .crt)
einfach im Browser aufrufen und einspielen kann. Hier mit der URL
 
  http://alix/alix.crt
 
Laut Wiki wird der Treiber angegeben,
also diese beiden Zeilen:
 
  a2ensite default-ssl
  a2enmod ssl
 
 
Der Aufruf von "lynx https://alix" erfolgt mit der Fehlermeldung:
  SSL error:no issuer was found-Continue? (j)
 
dagegen der Aufruf von "lynx https://localhost" bringt:
  SSL error:no issuer was found-Continue? (j)
  SSL-Fehler:host(localhost)!=cert(CN<alix>) - Fortfahren? (j)
 
ich interpretiere das so, dass im 1. Fall lynx das bereitgestellte
Zertifikat nicht abgleichen konnte (wie spielt man die in Lynx ein?)
Im 2. Fall wurde der Fehler festgestellt, dass das zertifkat nicht stimmt,
den es ist ja auf alix ausgestellt und nicht auf localhost.
 
für mich ist damit erstmal nachgewiesen, dass SSL (https) geht.
 
 
Noch eine ganz andere Installation von PHP, also diese Zeile:
 
  aptitude install php5-cli php5-common php5-mhash php-pear
 
 
=== LDAP ===
 
 
<source lang="text">
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#!/bin/bash
 
##################################################################
#  Kapitel: LDAP
##################################################################
 
# wir sichern erstmal den bisherigen Stand der debconf-Datenbank
debconf-get-selections > /root/delixs/confbackup/debconf_ldap.0
 
# Installation der Pakete des LDAP
# ================================================================
# es muss das Passwort 'schule' eingegeben werden
# da ja hier interaktiv kein Parameter -y
# ================================================================
aptitude install -R slapd
 
# hier sind die Änderungen von "aptitude install slapd"  drin
debconf-get-selections > /root/delixs/confbackup/debconf_ldap.1
 
# die ldap.conf einspielen
cp -f /etc/ldap/ldap.conf  /root/delixs/confbackup/ldap.conf
cp -f /root/delixs/conffiles/ldap.conf  /etc/ldap/ldap.conf
 
# Installation der benötigten LDAP-Tools
aptitude install -R -y ldap-utils libsasl2-modules
 
# ich denke mal hier ist nichts passiert
debconf-get-selections > /root/delixs/confbackup/debconf_ldap.2
 
# Installation von libnss-ldap
# ================================================================
# hier soll eingegeben werden:
# URI des LDAP-Servers:  'ldap://10.100.0.1'
# eindeutiger Name der Suchbasis: 'dc=delixs-schule,dc=de'
# LDAP-Version: 3
# LDAP-Zugang für root:                <frei lassen!>
# Passwort des LDAP-Zugangs für root:  <frei lassen!>
#
# wahrscheinlich ist es egal was eingegeben wird, weil wir ja
# sowieso die libnss_ldap.conf einspielen, aber es soll ja auch
# debconf die richtigen Daten haben
# da ja hier interaktiv kein Parameter -y
# ================================================================
aptitude install -R libnss-ldap


# hier sind die Änderungen von "aptitude install libnss-ldap" drin
debconf-get-selections > /root/delixs/confbackup/debconf_ldap.3


und so könnte es altternativ aussehen:
# die /etc/libnss-ldap.conf einspielen
cp -f /etc/libnss-ldap.conf  /root/delixs/confbackup/libnss-ldap.conf
cp -f /root/delixs/conffiles/libnss-ldap.conf  /etc/libnss-ldap.conf


:[[Bild:Delixs1a_256.png]]
# die "/etc/nsswitch.conf" einspielen
:''Abbildung: bootsplash 640x480 mit 256 Farben''
cp -f /etc/nsswitch.conf  /root/delixs/confbackup/nsswitch.conf
cp -f /root/delixs/conffiles/nsswitch.conf  /etc/nsswitch.conf


# ================================================================
# hier soll eingegeben werden:
# lokalen root zum Datenbankadministrator machen:  ja
# Benötigt die LDAP-Datenbank eine Anmeldung:      nein
# LDAP-Zugang fuer root:  'cn=admin,dc=delixs-schule,dc=de'
# Passwort des LDAP-Zugangs für root:      'schule'
#
# da ja hier interaktiv kein Parameter -y
# ================================================================
aptitude install -R libpam-ldap
# hier sind die Änderungen von "aptitude install libpam-ldap" drin
debconf-get-selections > /root/delixs/confbackup/debconf_ldap.4
cp -f /etc/pam_ldap.conf  /root/delixs/confbackup/pam_ldap.conf
cp -f /root/delixs/conffiles/pam_ldap.conf  /etc/pam_ldap.conf
cp -f /etc/pam.d/common-account  /root/delixs/confbackup/common-account
cp -f /root/delixs/conffiles/common-account  /etc/pam.d/common-account
cp -f /etc/pam.d/common-auth  /root/delixs/confbackup/common-auth
cp -f /root/delixs/conffiles/common-auth  /etc/pam.d/common-auth
# die Zeile mit 'pam_smbpass.so ...' ist noch auskommentiert !!!
cp -f /etc/pam.d/common-password  /root/delixs/confbackup/common-password
cp -f /root/delixs/conffiles/common-password  /etc/pam.d/common-password
cp -f /etc/pam.d/common-session  /root/delixs/confbackup/common-session
cp -f /root/delixs/conffiles/common-session  /etc/pam.d/common-session
# Initialisieren des LDAP (nur die Grundstruktur) - Passwort ist schule, siehe oben!
ldapadd -x -D "cn=admin,dc=delixs-schule,dc=de" -w schule -f /root/delixs/conffiles/initldap.ldif
cp -f /etc/ldap/slapd.conf  /root/delixs/confbackup/slapd.conf
cp -f /root/delixs/conffiles/slapd.conf  /etc/ldap/slapd.conf
# Datenbank des LDAP neu aufbauen
/etc/init.d/slapd stop
slapindex
chown -R openldap:openldap /var/lib/ldap
/etc/init.d/slapd start
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
</source>
Bemerkungen dazu: es kommen natürlich genau die Menüs, wie sie in der Doku im wiki
angegeben sind. die Eingaben stehen hier als Kommentare. Mit den debconf-get-selections-
Aufrufen hoffe ich einfach, die betreffenden Einträge zu finden und herausziehen
zu können.
In der Datei 'common-password' ist die Zeile mit 'pam_smbpass.so' natürlich auskommentiert,
da diese Bibliothek an der Stelle noch nicht verfügbar ist.
Die Datei initldap.ldif ist genau die, wie sie im wiki unter Entwicklungsumgebung/LDAP
angegeben ist.
Aber die slapd.conf aus der alpha-8 muss natürlich abgeändert werden, weil ich ja noch
nicht so weit bin:
  samba.schema und dhcp.schema raus
das corba.schema habe ich zwar drin gelassen, aber mir erschließt sich der Sinn nicht.
meines Erachtens irritiert diese Schema nur. ich hatte es noch nie genutzt/mitgeführt.
rootpw  habe ich auskommentiert, da es eine massive Sicherheitslücke darstellt.
ich habe ergänzt:
  defaultsearchbase dc=delixs-schule,dc=de
=== Test ===
Noch eine Bemerkung zum testen. Ich habe mit mmustermann.ldif getestet, aber mit
folgender Datei:
<source lang="text">
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dn: uid=mmustermann,ou=people,ou=accounts,dc=delixs-schule,dc=de
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
cn: mmustermann
sn: mmustermann
givenName: mmustermann
uid: mmustermann
uidNumber: 2000
gidNumber: 1002
homeDirectory: /home/students/mmustermann
loginShell: /bin/bash
gecos: System User
displayName: mmustermann
userPassword:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
</source>
Getestet wurde der Aufruf "getent passwd ...", id ..."
und die Änderung des Passwortes mit "passwd ...". Auch die Anmeldung mit diesem
Account klappte auf Anhieb.
=== SAMBA ===
jetzt erstmal die Installations-Scripte zu samba:
<source lang="text">
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#!/bin/bash
##################################################################
#  Kapitel: Samba
##################################################################
# wir sichern erstmal den bisherigen Stand der debconf-Datenbank
debconf-get-selections > /root/delixs/confbackup/debconf_samba.0
# Installation der Pakete des LDAP
# ================================================================
# es muss die Arbeitsgruppe 'SCHULE' eingegeben werden (Großbuchstaben!)
# und die Frage: "soll smb.conf so abgeaendert werden ...
# ... WINS-Einstellungen verwendet werden:        Nein
# da ja hier interaktiv kein Parameter -y
# ================================================================
aptitude install -R samba
# hier sind die Änderungen von "aptitude install samba"  drin
debconf-get-selections > /root/delixs/confbackup/debconf_samba.1
# dürfte keine Fragen stellen
aptitude install -R -y samba-common smbclient swat
# nur zur Sicherheit
debconf-get-selections > /root/delixs/confbackup/debconf_samba.2
# diese Pakete brauchen wir auch
aptitude install -R -y libpam-smbpass smbldap-tools smbfs smb-nat samba-doc
# nur zur Sicherheit
debconf-get-selections > /root/delixs/confbackup/debconf_samba.3
# wir spielen das Samba-Schema ein
cp -f /root/delixs/conffiles/samba.schema  /etc/ldap/schema/samba.schema
# wir spielen jetzt die /etc/ldap/slapd.conf ein, wobei das Samba-Schema ergaenzt ist
cp -f /root/delixs/conffiles/slapd.2.conf  /etc/ldap/slapd.conf
# Datenbank des LDAP neu aufbauen
/etc/init.d/slapd stop
slapindex
chown -R openldap:openldap /var/lib/ldap
/etc/init.d/slapd start
# wir spielen die erste conf-Datei von den smbldap-Tools ein
cp -f /root/delixs/conffiles/smbldap_bind.conf
/etc/smbldap-tools/smbldap_bind.conf
# da in der smbldap_bind.conf die Passworte im Klartext stehen, muessen Rechte gesetzt werden
chown root:root /etc/smbldap-tools/smbldap_bind.conf
chmod 600 /etc/smbldap-tools/smbldap_bind.conf
# in der smbldap.conf spielen wir die SID ein und legen sie in /etc/smbldap-tools ab
./sid_to_ldif.pl /root/delixs/conffiles/smbldap.conf > /etc/smbldap-tools/smbldap.conf
# wir legen jetzt die notwendigen Verzeichnisse an
mkdir /home/students        # Verzeichnisse fuer den Schulserver spaeter
mkdir /home/profile
mkdir /home/profile/students
# Jetzt wird noch das Verzeichnis /etc/skel-profile für die Windows-Profile ergänzt:
mkdir /etc/skel-profile
mkdir /etc/skel-profile/Win95      # Windows 9x/Me
mkdir /etc/skel-profile/WinNT      # Windows NT
mkdir /etc/skel-profile/Win2K      # Windows 2000
mkdir /etc/skel-profile/Win2K3      # Windows 2003
mkdir /etc/skel-profile/WinXP      # Windows XP
mkdir /etc/skel-profile/WinXP64    # Windows XP 64bit
mkdir /etc/skel-profile/Vista      # Windows Vista
# Verzeichnisse für die logon-Scripts anlegen
mkdir /etc/samba/scripts
mkdir /etc/samba/exec
mkdir /etc/samba/private
# wir spielen die /etc/samba/smb.conf ein
cp -f /etc/samba/smb.conf  /root/delixs/confbackup/smb.conf
cp -f /root/delixs/conffiles/smb.conf  /etc/samba/smb.conf
# wir spielen die logon.bat's ein
#cp -f /root/delixs/conffiles/Win95.bat  /etc/samba/scripts/Win95.bat
#cp -f /root/delixs/conffiles/WinNT.bat  /etc/samba/scripts/WinNT.bat
#cp -f /root/delixs/conffiles/Win2K.bat  /etc/samba/scripts/Win2K.bat
#cp -f /root/delixs/conffiles/WinXP.bat  /etc/samba/scripts/WinXP.bat
# (Haupt-)Gruppe setzen
smbldap-groupadd -g 1002 -a students
# smbldap-populate - Population im LDAP erzeugen (hier mit einem LDIF-File)
# wir lesen dazu das Passwort aus der /etc/pam_ldap.secret ein ( wir sind ja root  ;)  )
./sid_to_ldif.pl /root/delixs/conffiles/populate.ldif > /root/delixs/confbackup/populate.ldif
ldapadd -x -D "cn=admin,dc=delixs-schule,dc=de" -w schule -f /root/delixs/confbackup/populate.ldif
# wir hinterlegen für Samba jetzt root-Passwort für den LDAP
smbpasswd -w schule
# zum Abschluss wird Samba neu gestartet, damit er die Konfiguration einliest
/etc/init.d/samba restart
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
</source>
noch das Script sid_to_ldif.pl
<source lang="text">
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#!/usr/bin/perl
use warnings;
use strict;
# die SID aus dem LDIF-File (diese soll ersetzt werden)
my $oldsid = 'S-1-5-21-22721786-4218643269-2274238902';
# wir ermitteln die aktuelle SID
my $sid = `net getlocalsid`;
# wir entfernen den "Begleittext"
if ($sid =~ /^SID for domain.*is: (.*)$/) {
  $sid = $1;
}
# wir holen uns den Parameter (Dateiname)
my $datei = $ARGV[0];
# wir lesen das LDIF-File ein
open DATEI, "<", $datei or die "konnte $datei nicht einlesen!\n";
my @ldiffile = <DATEI>;
close DATEI;
# wir ersetzen alle alten SIDs
foreach my $zeile (@ldiffile) {
  $zeile =~ s/$oldsid/$sid/e;    # e = extended wegen Variable $sid
}
# wir schreiben das Ergebnis auf die Standardausgabe
foreach my $zeile (@ldiffile) {
  print $zeile;
}
__END__
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
</source>
=== Firewall ===
<source lang="text">
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#!/bin/bash
##################################################################
#  Kapitel: Firewall
##################################################################
# wir installieren das Firewallscript
cp -f /root/delixs/conffiles/firewall.sh  /usr/sbin/firewall.sh
chown root:root  /usr/sbin/firewall.sh
chmod 755        /usr/sbin/firewall.sh
# wir sichern erstmal den bisherigen Stand der debconf-Datenbank
debconf-get-selections > /root/delixs/confbackup/debconf_uif.0
# wir installieren uif (nach einem Vorschlag von Harry Jede)
# (gewählt: "nicht ändern")
aptitude install -R uif
# hier sind die Änderungen von "aptitude install uif" drin
debconf-get-selections > /root/delixs/confbackup/debconf_uif.1
# wir löschen uif (dabei bleibt u.a. das Initscript erhalten)
aptitude remove uif
# wir ersetzen dieses Initscript durch unser 'uif'
cp -f  /root/delixs/conffiles/uif      /etc/init.d/uif
chown root:root    /etc/init.d/uif
chmod 755          /etc/init.d/uif
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
</source>


== Installation ==


Das 1. Bild
== Weblinks ==


[[Bild:Tmp.png]]
* http://www.delixs.th.schule.de/installation/installation.html
* http://www.delixs.th.schule.de/installation2/index.html




Das 2. Bild
----
<div align="right">[[Benutzer:Kirmse]]</div>


[[Bild:Tmp1.png]]
Hans-Dietrich Kirmse 2009

Aktuelle Version vom 18. April 2012, 12:20 Uhr

Uberarbeiten Diese Seite sollte nochmals überarbeitet werden. Eine Begründung befindet sich in der Regel unter Diskussion (oben).


Der Willkommensgruss

Abbildung: bootsplash 1


Installation

Grundinstallation

Bei der Grundinstallation wird exakt nach Doku (Kapitel [[1]] im Wiki) ab "Echte Hardware" vorgegangen.

Ich habe als Domainname natürlich "delixs-schule.de" gewählt, sonst hätte ich nicht die conf-Dateien (Kapitel [[2]]) von der alpha-8 direkt nachnutzen können.

Partitionierung:

 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 (Kapitel [[3]]) wurde 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"> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  1. !/bin/bash
  1. Kapitel: APT Sourcen bearbeiten
  1. 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

  1. 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"> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  1. !/bin/bash
  1. Kapitel: Werkzeugkiste fuer den Admin
  1. Lynx

aptitude install -R -y lynx aptitude install -R -y mime-support

  1. MC
  2. Hinweis: der MC-Wrapper wird mit Kopieren der .bashrc eingerichtet

aptitude install -R -y mc

  1. wir setzen mcedit als Standard-Editor

update-alternatives --set editor /usr/bin/mcedit-debian

  1. die wichtigsten Packer

aptitude install -R -y zip unzip bzip2 bsdtar

  1. 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

  1. 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

  1. das Paket perl-doc

aptitude install perl-doc

  1. Image Optimierung

aptitude install -R -y zerofree

  1. Verzeichnisbaum

aptitude install -R -y tree

  1. Netzwerkkartenmanager ethtool

aptitude install -R -y ethtool

  1. Anzeige von NAT-Verbindungen

aptitude install -R -y netstat-nat

  1. Debconf-Werkzeuge

aptitude install -R -y debconf-utils

  1. Werkzeug zur Konfiguration der Initskriptlinks

aptitude install -R -y sysvconfig

  1. sudo

aptitude install -R -y sudo-ldap

  1. Farbige Ausgabe auf der Kommandozeile
  2. 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

  1. System anhalten
  2. Damit das System nach einem Soft-Reset nicht einfach wieder hochfaehrt,
  3. 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"> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  1. !/bin/bash


  1. Kapitel: Internetzugang und 2. Netzwerkkarte
  1. 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

  1. 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"> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  1. !/bin/bash
  1. Kapitel: ACLs und Plattenplatzkontrolle
  1. ACLs installieren

aptitude install -R -y acl

  1. Quotas installieren

aptitude install -R -y quota

  1. fstab anpassen

cp -f /etc/fstab /root/delixs/confbackup/fstab

  1. wir bearbeiten mit einem Script die /etc/fstab

./mod_fstab.pl

  1. /home neu mounten

mount -o remount /home </source>

noch das Script mod_fstab.pl :

<source lang="text">

  1. !/usr/bin/perl

use warnings; use strict;


my $string;

  1. wir lesen die 'fstab' ein

open DATEI, "<", '/etc/fstab' or die "konnte /etc/fstab nicht einlesen!\n"; my @file = <DATEI>; close DATEI;

  1. 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
  }

}


  1. 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
  }

}


  1. 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"> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  1. !/bin/bash
  1. Kapitel: Zeitserver
  1. Installation der Pakete

aptitude install -R -y ntp ntpdate

  1. unsere Konfiguration einspielen

cp -f /etc/ntp.conf /root/delixs/confbackup/ntp.conf cp -f /root/delixs/conffiles/ntp.conf /etc/ntp.conf

  1. 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

  1. Neustart des NTP-Servers

/etc/init.d/ntp restart ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ </source>


SSH-Server

ebenso:

<source lang="text"> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  1. !/bin/bash
  1. Kapitel: SSH-Server
  1. openssh-server, openssh-client und openssh-blacklist installieren

aptitude install -R -y ssh

  1. 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

  1. globale Konfiguration des SSH-Clients anpassen
  2. cp -f /root/conffiles/ssh_config /etc/ssh/ssh_config
  1. Neustart des SSH-Servers

/etc/init.d/ssh restart ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ </source>


OpenSSL (einschl. Erstellen des Zertifikats)

<source lang="text"> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  1. !/bin/bash
  1. Kapitel: OpenSSL
  1. OpenSSL installieren

aptitude install -R -y openssl ca-certificates

  1. Generieren eines privaten Serverschlüssel "alix.key" ohne Passwort!

openssl genrsa -out alix.key 1024

  1. Generieren einer Zertifikatsanfrage "alix.csr"

openssl req -new -key alix.key -out alix.csr < /root/delixs/conffiles/eingabe.txt

  1. Generieren des eigentliche Zertifikat "alix.crt", welches wir selbst unterzeichnen

openssl x509 -req -in alix.csr -out alix.crt -signkey alix.key -days 3650 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ </source>


die Datei eingabe.txt sieht so aus:

<source lang="text"> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DE Germany . delixs-Schule . alix . . . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ </source>


Hardwareüberwachung

<source lang="text"> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  1. !/bin/bash
  1. Kapitel: Hardwareüberwachung des Servers
  1. Installation der Sensoren

aptitude install -R -y lm-sensors i2c-tools sensord

  1. Einrichtung der Festplattenueberwachung

aptitude install -R -y smartmontools

  1. zum automatisch starten, wird die default-Datei bereitgestellt

cp -f /etc/default/smartmontools /root/delixs/confbackup/smartmontools cp -f /root/delixs/conffiles/smartmontools /etc/default/smartmontools ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ </source>


2 Bemerkungen: das mit "sensors-detect" habe ich per Hand ausgeführt. Ob sich das so einfach automatisieren läßt kann ich nicht abschätzen.

Die Datei smartmontools konnte ich nicht aus der alpha-8 nehmen, weil unter VMWare die Hardwareerkennung nicht geht. Es geht dort auch nur um den Eintrag "start_smartd=yes", der vorher auskommentiert war.


Webserver Apache

<source lang="text"> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  1. !/bin/bash
  1. Kapitel: Apache
  1. wir installieren die Pakete fuer den Apache

aptitude install -R -y apache2-mpm-prefork

  1. Installation von PHP

aptitude install -R -y libapache2-mod-php5 php5-mysql

  1. und bereitstellen/einschalten

a2enmod php5

  1. und Konfiguration neu einlesen lassen

/etc/init.d/apache2 restart

  1. wir stellen die Startseite von alix bereit

cp -f /root/delixs/conffiles/index.html /var/www/index.html cp -f /root/delixs/conffiles/delixs.gif /var/www/delixs.gif

  1. wir stellen ein Script zum Testen von CGI-Scripten bereit

cp -f /root/delixs/conffiles/test.cgi /usr/lib/cgi-bin/test.cgi

  1. wir stellen ein Script zum Testen der PHP-Funktionalität bereit

cp -f /root/delixs/conffiles/info.php /var/www/info.php

  1. die Zertifikate sind ja schon erstellt, wir kopieren sie nur noch

mkdir /etc/apache2/ssl cp -f /root/delixs/server.crt /etc/apache2/ssl/server.crt cp -f /root/delixs/server.key /etc/apache2/ssl/server.key

  1. zum bequemen Einspielen in den Browser

cp -f /root/delixs/server.crt /var/www/server.crt


  1. eigene Datei /etc/apache2/sites-available/default bereitstellen

cp -f /etc/apache2/sites-available/default-ssl /root/delixs/confbackup/ cp -f /root/delixs/conffiles/default-ssl /etc/apache2/sites-available/

  1. httpd.conf war leer, wir kopieren, weil wir dann wissen, dass das abgearbeitet wurde

cp -f /etc/apache2/httpd.conf /root/delixs/confbackup/httpd.conf cp -f /root/delixs/conffiles/httpd.conf /etc/apache2/httpd.conf

  1. die Treiber fuer SSL laden

a2ensite default-ssl a2enmod ssl

  1. Apache neu starten

/etc/init.d/apache2 restart

  1. weitere PHP-Werkzeuge

aptitude install -R -y php5-cli php5-common php5-mhash php-pear ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ </source>


Dazu folgende Bemerkungen:

die Statseite "It works" kann ich meinen Lehrern/Schülern nicht zumuten. Ich habe die ersetzt durch diese http://www.arktur.th.schule.de/startseite.html Es ist keineswegs die, die ich dafür gedacht habe, aber ich hatte damals nichts anderes zu Verfügung. Mir wäre es schon sehr recht, wenn ich hier eine attraktive Seite einbinden könnte, noch besser wäre es, wenn es schon die wäre, die dann auch die Startseite von delixs (alix) werden sollte.

die Datei "default-ssl" hat folgende Änderung erhalten:

   ServerName  alix

(gleich unter ServerAdmin ergänzt) außerdem wurden folgende beiden Einträge angepasst:

   SSLCertificateFile    /etc/apache2/ssl/alix.crt
   SSLCertificateKeyFile /etc/apache2/ssl/alix.key

die httpd.conf enthält folgende Zeile:

  AddType  application/x-x509-ca-cert  .crt .der

(nur) dadurch ist es möglich, dass man das Zertikat (hat ja die Endung .crt) einfach im Browser aufrufen und einspielen kann. Hier mit der URL

 http://alix/alix.crt

Laut Wiki wird der Treiber angegeben, also diese beiden Zeilen:

  a2ensite default-ssl
  a2enmod ssl


Der Aufruf von "lynx https://alix" erfolgt mit der Fehlermeldung:

  SSL error:no issuer was found-Continue? (j)

dagegen der Aufruf von "lynx https://localhost" bringt:

  SSL error:no issuer was found-Continue? (j)
  SSL-Fehler:host(localhost)!=cert(CN<alix>) - Fortfahren? (j)

ich interpretiere das so, dass im 1. Fall lynx das bereitgestellte Zertifikat nicht abgleichen konnte (wie spielt man die in Lynx ein?) Im 2. Fall wurde der Fehler festgestellt, dass das zertifkat nicht stimmt, den es ist ja auf alix ausgestellt und nicht auf localhost.

für mich ist damit erstmal nachgewiesen, dass SSL (https) geht.


Noch eine ganz andere Installation von PHP, also diese Zeile:

 aptitude install php5-cli php5-common php5-mhash php-pear


LDAP

<source lang="text"> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  1. !/bin/bash
  1. Kapitel: LDAP
  1. wir sichern erstmal den bisherigen Stand der debconf-Datenbank

debconf-get-selections > /root/delixs/confbackup/debconf_ldap.0

  1. Installation der Pakete des LDAP
  2. ================================================================
  3. es muss das Passwort 'schule' eingegeben werden
  4. da ja hier interaktiv kein Parameter -y
  5. ================================================================

aptitude install -R slapd

  1. hier sind die Änderungen von "aptitude install slapd" drin

debconf-get-selections > /root/delixs/confbackup/debconf_ldap.1

  1. die ldap.conf einspielen

cp -f /etc/ldap/ldap.conf /root/delixs/confbackup/ldap.conf cp -f /root/delixs/conffiles/ldap.conf /etc/ldap/ldap.conf

  1. Installation der benötigten LDAP-Tools

aptitude install -R -y ldap-utils libsasl2-modules

  1. ich denke mal hier ist nichts passiert

debconf-get-selections > /root/delixs/confbackup/debconf_ldap.2

  1. Installation von libnss-ldap
  2. ================================================================
  3. hier soll eingegeben werden:
  4. URI des LDAP-Servers: 'ldap://10.100.0.1'
  5. eindeutiger Name der Suchbasis: 'dc=delixs-schule,dc=de'
  6. LDAP-Version: 3
  7. LDAP-Zugang für root: <frei lassen!>
  8. Passwort des LDAP-Zugangs für root: <frei lassen!>
  9. wahrscheinlich ist es egal was eingegeben wird, weil wir ja
  10. sowieso die libnss_ldap.conf einspielen, aber es soll ja auch
  11. debconf die richtigen Daten haben
  12. da ja hier interaktiv kein Parameter -y
  13. ================================================================

aptitude install -R libnss-ldap

  1. hier sind die Änderungen von "aptitude install libnss-ldap" drin

debconf-get-selections > /root/delixs/confbackup/debconf_ldap.3

  1. die /etc/libnss-ldap.conf einspielen

cp -f /etc/libnss-ldap.conf /root/delixs/confbackup/libnss-ldap.conf cp -f /root/delixs/conffiles/libnss-ldap.conf /etc/libnss-ldap.conf

  1. die "/etc/nsswitch.conf" einspielen

cp -f /etc/nsswitch.conf /root/delixs/confbackup/nsswitch.conf cp -f /root/delixs/conffiles/nsswitch.conf /etc/nsswitch.conf

  1. ================================================================
  2. hier soll eingegeben werden:
  3. lokalen root zum Datenbankadministrator machen: ja
  4. Benötigt die LDAP-Datenbank eine Anmeldung: nein
  5. LDAP-Zugang fuer root: 'cn=admin,dc=delixs-schule,dc=de'
  6. Passwort des LDAP-Zugangs für root: 'schule'
  7. da ja hier interaktiv kein Parameter -y
  8. ================================================================

aptitude install -R libpam-ldap

  1. hier sind die Änderungen von "aptitude install libpam-ldap" drin

debconf-get-selections > /root/delixs/confbackup/debconf_ldap.4

cp -f /etc/pam_ldap.conf /root/delixs/confbackup/pam_ldap.conf cp -f /root/delixs/conffiles/pam_ldap.conf /etc/pam_ldap.conf

cp -f /etc/pam.d/common-account /root/delixs/confbackup/common-account cp -f /root/delixs/conffiles/common-account /etc/pam.d/common-account

cp -f /etc/pam.d/common-auth /root/delixs/confbackup/common-auth cp -f /root/delixs/conffiles/common-auth /etc/pam.d/common-auth

  1. die Zeile mit 'pam_smbpass.so ...' ist noch auskommentiert !!!

cp -f /etc/pam.d/common-password /root/delixs/confbackup/common-password cp -f /root/delixs/conffiles/common-password /etc/pam.d/common-password

cp -f /etc/pam.d/common-session /root/delixs/confbackup/common-session cp -f /root/delixs/conffiles/common-session /etc/pam.d/common-session

  1. Initialisieren des LDAP (nur die Grundstruktur) - Passwort ist schule, siehe oben!

ldapadd -x -D "cn=admin,dc=delixs-schule,dc=de" -w schule -f /root/delixs/conffiles/initldap.ldif

cp -f /etc/ldap/slapd.conf /root/delixs/confbackup/slapd.conf cp -f /root/delixs/conffiles/slapd.conf /etc/ldap/slapd.conf

  1. Datenbank des LDAP neu aufbauen

/etc/init.d/slapd stop slapindex chown -R openldap:openldap /var/lib/ldap /etc/init.d/slapd start ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ </source>


Bemerkungen dazu: es kommen natürlich genau die Menüs, wie sie in der Doku im wiki angegeben sind. die Eingaben stehen hier als Kommentare. Mit den debconf-get-selections- Aufrufen hoffe ich einfach, die betreffenden Einträge zu finden und herausziehen zu können.

In der Datei 'common-password' ist die Zeile mit 'pam_smbpass.so' natürlich auskommentiert, da diese Bibliothek an der Stelle noch nicht verfügbar ist.

Die Datei initldap.ldif ist genau die, wie sie im wiki unter Entwicklungsumgebung/LDAP angegeben ist.

Aber die slapd.conf aus der alpha-8 muss natürlich abgeändert werden, weil ich ja noch nicht so weit bin:

  samba.schema und dhcp.schema raus

das corba.schema habe ich zwar drin gelassen, aber mir erschließt sich der Sinn nicht. meines Erachtens irritiert diese Schema nur. ich hatte es noch nie genutzt/mitgeführt.

rootpw habe ich auskommentiert, da es eine massive Sicherheitslücke darstellt.

ich habe ergänzt:

  defaultsearchbase dc=delixs-schule,dc=de


Test

Noch eine Bemerkung zum testen. Ich habe mit mmustermann.ldif getestet, aber mit folgender Datei:

<source lang="text"> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ dn: uid=mmustermann,ou=people,ou=accounts,dc=delixs-schule,dc=de objectClass: top objectClass: person objectClass: organizationalPerson objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount cn: mmustermann sn: mmustermann givenName: mmustermann uid: mmustermann uidNumber: 2000 gidNumber: 1002 homeDirectory: /home/students/mmustermann loginShell: /bin/bash gecos: System User displayName: mmustermann userPassword: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ </source>


Getestet wurde der Aufruf "getent passwd ...", id ..." und die Änderung des Passwortes mit "passwd ...". Auch die Anmeldung mit diesem Account klappte auf Anhieb.

SAMBA

jetzt erstmal die Installations-Scripte zu samba:

<source lang="text"> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  1. !/bin/bash
  1. Kapitel: Samba
  1. wir sichern erstmal den bisherigen Stand der debconf-Datenbank

debconf-get-selections > /root/delixs/confbackup/debconf_samba.0

  1. Installation der Pakete des LDAP
  2. ================================================================
  3. es muss die Arbeitsgruppe 'SCHULE' eingegeben werden (Großbuchstaben!)
  4. und die Frage: "soll smb.conf so abgeaendert werden ...
  5. ... WINS-Einstellungen verwendet werden: Nein
  6. da ja hier interaktiv kein Parameter -y
  7. ================================================================

aptitude install -R samba

  1. hier sind die Änderungen von "aptitude install samba" drin

debconf-get-selections > /root/delixs/confbackup/debconf_samba.1

  1. dürfte keine Fragen stellen

aptitude install -R -y samba-common smbclient swat

  1. nur zur Sicherheit

debconf-get-selections > /root/delixs/confbackup/debconf_samba.2

  1. diese Pakete brauchen wir auch

aptitude install -R -y libpam-smbpass smbldap-tools smbfs smb-nat samba-doc

  1. nur zur Sicherheit

debconf-get-selections > /root/delixs/confbackup/debconf_samba.3

  1. wir spielen das Samba-Schema ein

cp -f /root/delixs/conffiles/samba.schema /etc/ldap/schema/samba.schema

  1. wir spielen jetzt die /etc/ldap/slapd.conf ein, wobei das Samba-Schema ergaenzt ist

cp -f /root/delixs/conffiles/slapd.2.conf /etc/ldap/slapd.conf

  1. Datenbank des LDAP neu aufbauen

/etc/init.d/slapd stop slapindex chown -R openldap:openldap /var/lib/ldap /etc/init.d/slapd start

  1. wir spielen die erste conf-Datei von den smbldap-Tools ein

cp -f /root/delixs/conffiles/smbldap_bind.conf /etc/smbldap-tools/smbldap_bind.conf

  1. da in der smbldap_bind.conf die Passworte im Klartext stehen, muessen Rechte gesetzt werden

chown root:root /etc/smbldap-tools/smbldap_bind.conf chmod 600 /etc/smbldap-tools/smbldap_bind.conf

  1. in der smbldap.conf spielen wir die SID ein und legen sie in /etc/smbldap-tools ab

./sid_to_ldif.pl /root/delixs/conffiles/smbldap.conf > /etc/smbldap-tools/smbldap.conf

  1. wir legen jetzt die notwendigen Verzeichnisse an

mkdir /home/students # Verzeichnisse fuer den Schulserver spaeter mkdir /home/profile mkdir /home/profile/students

  1. Jetzt wird noch das Verzeichnis /etc/skel-profile für die Windows-Profile ergänzt:

mkdir /etc/skel-profile mkdir /etc/skel-profile/Win95 # Windows 9x/Me mkdir /etc/skel-profile/WinNT # Windows NT mkdir /etc/skel-profile/Win2K # Windows 2000 mkdir /etc/skel-profile/Win2K3 # Windows 2003 mkdir /etc/skel-profile/WinXP # Windows XP mkdir /etc/skel-profile/WinXP64 # Windows XP 64bit mkdir /etc/skel-profile/Vista # Windows Vista

  1. Verzeichnisse für die logon-Scripts anlegen

mkdir /etc/samba/scripts mkdir /etc/samba/exec mkdir /etc/samba/private

  1. wir spielen die /etc/samba/smb.conf ein

cp -f /etc/samba/smb.conf /root/delixs/confbackup/smb.conf cp -f /root/delixs/conffiles/smb.conf /etc/samba/smb.conf

  1. wir spielen die logon.bat's ein
  2. cp -f /root/delixs/conffiles/Win95.bat /etc/samba/scripts/Win95.bat
  3. cp -f /root/delixs/conffiles/WinNT.bat /etc/samba/scripts/WinNT.bat
  4. cp -f /root/delixs/conffiles/Win2K.bat /etc/samba/scripts/Win2K.bat
  5. cp -f /root/delixs/conffiles/WinXP.bat /etc/samba/scripts/WinXP.bat
  1. (Haupt-)Gruppe setzen

smbldap-groupadd -g 1002 -a students

  1. smbldap-populate - Population im LDAP erzeugen (hier mit einem LDIF-File)
  2. wir lesen dazu das Passwort aus der /etc/pam_ldap.secret ein ( wir sind ja root  ;) )

./sid_to_ldif.pl /root/delixs/conffiles/populate.ldif > /root/delixs/confbackup/populate.ldif ldapadd -x -D "cn=admin,dc=delixs-schule,dc=de" -w schule -f /root/delixs/confbackup/populate.ldif

  1. wir hinterlegen für Samba jetzt root-Passwort für den LDAP

smbpasswd -w schule

  1. zum Abschluss wird Samba neu gestartet, damit er die Konfiguration einliest

/etc/init.d/samba restart ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ </source>


noch das Script sid_to_ldif.pl


<source lang="text"> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  1. !/usr/bin/perl

use warnings; use strict;

  1. die SID aus dem LDIF-File (diese soll ersetzt werden)

my $oldsid = 'S-1-5-21-22721786-4218643269-2274238902';

  1. wir ermitteln die aktuelle SID

my $sid = `net getlocalsid`;

  1. wir entfernen den "Begleittext"

if ($sid =~ /^SID for domain.*is: (.*)$/) {

  $sid = $1;

}

  1. wir holen uns den Parameter (Dateiname)

my $datei = $ARGV[0];

  1. wir lesen das LDIF-File ein

open DATEI, "<", $datei or die "konnte $datei nicht einlesen!\n"; my @ldiffile = <DATEI>; close DATEI;

  1. wir ersetzen alle alten SIDs

foreach my $zeile (@ldiffile) {

  $zeile =~ s/$oldsid/$sid/e;    # e = extended wegen Variable $sid

}

  1. wir schreiben das Ergebnis auf die Standardausgabe

foreach my $zeile (@ldiffile) {

  print $zeile;

}

__END__

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ </source>


Firewall

<source lang="text"> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  1. !/bin/bash
  1. Kapitel: Firewall


  1. wir installieren das Firewallscript

cp -f /root/delixs/conffiles/firewall.sh /usr/sbin/firewall.sh chown root:root /usr/sbin/firewall.sh chmod 755 /usr/sbin/firewall.sh

  1. wir sichern erstmal den bisherigen Stand der debconf-Datenbank

debconf-get-selections > /root/delixs/confbackup/debconf_uif.0

  1. wir installieren uif (nach einem Vorschlag von Harry Jede)
  2. (gewählt: "nicht ändern")

aptitude install -R uif

  1. hier sind die Änderungen von "aptitude install uif" drin

debconf-get-selections > /root/delixs/confbackup/debconf_uif.1

  1. wir löschen uif (dabei bleibt u.a. das Initscript erhalten)

aptitude remove uif

  1. wir ersetzen dieses Initscript durch unser 'uif'

cp -f /root/delixs/conffiles/uif /etc/init.d/uif chown root:root /etc/init.d/uif chmod 755 /etc/init.d/uif ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ </source>


Weblinks



Benutzer:Kirmse

Hans-Dietrich Kirmse 2009