OPSI/Installation
Inhaltsverzeichnis
Ziel
Am Ende der Installation wird ein Host mit folgenen Funktionen zur Verfügung stehen.
Primär
- OPSI-Server
- PrimaryDomainController (PDC im NT4 Style)
- dhcp-Server
- name-Server
Sekundär
- openvpn
- Backup wichtiger Userdaten
- Squid für Black- & Withelisting
Eckdaten
- Hostname: opsi-1
- Netzwerkname: opsi-1.local
- Domain-Name: opsi-1
- IP zum OPSI-Netzwerk: 10.8.190.1 (optional zusätzlich 10.8.190.10)
Namenskonventionen in AD für Computer, Domänen, Standorte und Organisationseinheiten
Starten mit Livesystem
Rechner mit GRML vom USB-Stick starten
Das Live-System grml bietet mit grml-debootstrap mehr Komfort als das Debian-debbotstrap.
grml-debootstrap
Speicher vorbereiten
Festplatten automatisch partitionierern
sfdisk /dev/sda < my.layout
Nur ein Beispiel
my.layout
# partition table of /dev/sda unit: sectors /dev/sda1 : start= 2048, size= 497664, Id=83, bootable /dev/sda2 : start= 501758, size=1953021954, Id= 5 /dev/sda3 : start= 0, size= 0, Id= 0 /dev/sda4 : start= 0, size= 0, Id= 0 /dev/sda5 : start= 501760, size=1953021952, Id=8e
RAID 1 erzeugen (mirror)
mdadm --create --verbose /dev/md0 --level=mirror --raid-devices=2 /dev/sda1 /dev/sdb1
LVM erzeugen
Physical Volume erzeugen.
pvcreate /dev/md0
Wir erzeugen die Volumegroup opsi_system. Diese besteht aus einem physical volume.
vgcreate opsi_system /dev/md0
Danach zwei logical volumes, eins für / und eins für /local
lvcreate -L 20G -n lv_root opsi_system lvcreate -L 50G -n lv_local opsi_system
-L Größe des Volumes. G für Gigabyte
-n = Name des Volumes
mkfs.ext4 /dev/opsi_system/lv_root mkfs.ext4 /dev/opsi_system/lv_local
Grundsystem installieren
grml-debootstrap --target /dev/opsi_system/lv_root --grub /dev/sda
grub2 auch auf /dev/sdb installieren
Dafür brauchen wir ein chroot in das neue System.
- /dev/opsi_system/lv_root auf /mnt mounten
mount -t proc none /mnt/proc mount -o bind /dev /mnt/dev mount -t sysfs sys /mnt/sys chroot /mnt /bin/bash
In der Chroot-Umgebung ausführen
grub-install --recheck --no-floppy/dev/sdb
Chroot verlassen
exit
Erststart des Systems
- USB Stick <Bootmedium> entfernen.
reboot
Keyboard layout einstellen
dpkg-reconfigure console-data
Im ncurses-Menu auswählen.
- Select keymap from arch list => O.K.
- qwertz => O.K.
- German => O.K.
- Standard => O.K.
- latin1 => O.K.
Sprache einstellen
dpkg-reconfigure locales
de_DE.UTF-8 auswählen und als default einstellen
Host bequem machen
Bash-completion
apt-get install bash-completion
Farbiges Promt
vim ~/.bashrc
export PS1='\[\033[0;31m\]\u\[\033[0;36m\]@\h:\[\033[0m\]\w\$ '
- [0;36m] Türkis (cyan)
- [0;32m] Grün (green)
- [0;31m] Rot (red)
- Meine Farbregeln
- Vor dem Promt: rot für root und grün für user.
- Hinter dem Promt: rot für Produktivserver, türkis für Testrechner und grün für Privatrechner/Workstations.
Meine .bashrc für root auf einem Testrechner.
# ~/.bashrc: executed by bash(1) for non-login shells. export PS1='\[\033[0;31m\]\u\[\033[0;36m\]@\h:\[\033[0m\]\w\$ ' export LS_OPTIONS='--color=auto' eval "`dircolors`" alias ls='ls $LS_OPTIONS' alias ll='ls $LS_OPTIONS -l' alias l='ls $LS_OPTIONS -lA' # Some more alias to avoid making mistakes: alias rm='rm -i' # bash-completion . /etc/bash_completion
Host vorbereiten
Hostname
Wir nennen diesen Rechner opsi-1
vim /etc/hostname
opsi-1 eintragen
Hosts Datei
Der Name wird mit der IP verknüpft, die die Verbindung zum OPSI-Netzwerk bereitstellt.
vim /etc/hosts
Folgene Zeile einfügen (entsprechend Installation#Eckdaten)
10.8.190.1 opsi-1.opsi-1.local opsi-1
Prüfen mit folgendem Befehl
getent hosts $(hostname -f)
Das Ergebniss muss ausehen wie die eingefügte Zeile in /etc/hosts
10.8.190.1 opsi-1.opsi-1.local opsi-1
Server Software installieren
nameserver
apt-get install bind9 dnsutils
zone file
mkdir /etc/bind/zones
Die Dateien opsi-1.local.zone und 190.8.10.in-addr.arpa im Verzeichniss /etc/bind/zones erzeugen.
- opsi-1.local.zone => Zuständig für die Namensauflösung (Auflösen eines Namens in eine IP)
- 190.8.10.in-addr.arpa => Zuständig für reverse mapping (Auflösung der IP in einen Hostnamen)
zones einbinden
// // Do any local configuration here // // Consider adding the 1918 zones here, if they are not used in your // organization //include "/etc/bind/zones.rfc1918"; zone "sgn-ams.local" { type master; file "/etc/bind/zones/opsi-1.local.zone"; }; zone "11.8.10.in-addr.arpa" { type master; file "/etc/bind/zones/190.8.10.in-addr.arpa.zone"; };
DHCP-Client anpassen
Wenn der Server seine incoming IP über dhcp bezieht:
Damit unsere /etc/resolv.conf nicht andauernt überschrieben wird, muss das Verhalten des isc-dhcp-client geändert werden.
vim /etc/dhcp/dhclient.conf
Im Block request auskommentieren:
- domain-name
- domain-name-servers
- domain-search
- host-name
- dhcp6.name-servers
- dhcp6.domain-search,
- netbios-name-servers
Damit haben wir noch ein paar weitere requests abgeschaltet. Sollte nicht schaden.
DHCP
apt-get install isc-dhcp-server
/etc/default/isc-dhcp-server
In /etc/default/isc-dhcp-server das etsprechende Netzwerkinterface eintragen, auf dem der DHCP-Server auf Anfragen lauschen soll.
vim /etc/default/isc-dhcp-server
In die Zeile
INTERFACES=""
das entsprechende Interface eintragen. Sonst wird das nichts.
/etc/dhcp/dhcpd.conf
Einträge für die Zone 10.8.190.0/24
vim /etc/dhcp/dhcpd.conf
ddns-update-style none; # Ist der offizielle DHCP-Server für alles in 10.8.190.0/24 authoritative; # DNS-Domain-Name in der /etc/resolv.conf des Clienten # Das ist nicht die Windows Domain option domain-name "opsi-1.local"; # Nameserver option domain-name-servers 10.8.190.10; default-lease-time 600; max-lease-time 7200; log-facility local7; subnet 10.8.190.0 netmask 255.255.255.224 { # Der Range für nicht unten aufgeführte Computer per default abgeschaltet. # range 10.8.190.230 10.8.190.245; option routers 10.8.190.1; option broadcast-address 10.8.190.255; default-lease-time 600; max-lease-time 7200; } # Bei dieser Config werden die IPs über den nameserver aufgelöst. host win00 { hardware ethernet 08:00:07:26:c0:a5 fixed-address win00.opsi-1.local; }
MACs finden
Um die Liste zu füllen, könnte folgender Befehl funktionieren:
nmap -sP 10.8.190.0/24 -n|grep MAC|awk '{print $3}'
Könnte bedeutet, dass noch nicht klar ist, ab wann ein PC auf ein Ping antwortet.
Reicht es, dass er "an" ist? Oder muss ein BS laufen?
Erstes Fazit nach kurzem Test: Nicht gut.
Lösung: Alle Clients werden kurz mit einem Miminalsystem per tftp gebootet.
Das kann auf Ping reagieren.
samba
User automatisch anlegen: Entwurf
login=<USER> pass=<PASSWRD> options="" # zum Beispiel das Homeverzeichniss, die shell (/bin/false, /bin/bash) useradd $login $options echo -ne "$pass\n$pass\n" | smbpasswd -a -s $login
Mit net rpc rights grant den Benutzern winadmin alle Rechte und joindom "SeMachineAccountPrivilege" geben.
Altetnativ:
net rpc groupmap add ntgroup="Domain Admins" unixgroup=ntadmin rid=512 type=d
Der bekannte winadmin muss alternativ der Gruppe ntadmin angehören.
Dann muss kein net rpc rights grant .... ausgeführt werden.
net rpc groupmap add ntgroup="Domain Users" unixgroup=ntuser rid=513 type=d
Table 12.1. Well-Known User Default RIDs
Samba Docu: Table 12.1. Well-Known User Default RIDs
OPSI
OPSI Installation Anleitung
opsi-getting-started-stable-en