OPSI/Installation

Aus Vosp.info
Version vom 19. September 2014, 21:54 Uhr von HK (Diskussion | Beiträge) (MACs finden)
Wechseln zu:Navigation, Suche

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-lnx01
  • 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

[1]

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-lnx01

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-lnx01.local opsi-1-lnx01

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-lnx01.opsi-1.local opsi-1-lnx01

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.zone => Zuständig für reverse mapping (Auflösung der IP in einen Hostnamen)
zones einbinden

Eine Zone wird in

vim /etc/bind/named.conf.local 

eingebunden.

//
// 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 "opsi-1.local" {
        type master;
        file "/etc/bind/zones/opsi-1.local.zone";
};

zone "190.8.10.in-addr.arpa" {
        type master;
        file "/etc/bind/zones/190.8.10.in-addr.arpa.zone";
};
/etc/bind/zones/opsi-1.local.zone
; Kopf Start
; BIND zone file for opsi-1.local
;
$TTL    604800
@       IN      SOA     opsi-1-lnx01.opsi-1.local. admin.opsi-1.local. (
                        2014091001      ; Serial => JahrMonatTag0-99, ist willkürlich bis 4,294,967,295
                         604800         ; Refresh in Sekunden
                          86400         ; Retry in Sekunden
                        2419200         ; Expire in Sekunden
                         604800 )       ; Negative Cache TTL in Sekunden
;
@       IN      NS      opsi-1-lnx01.opsi-1.local.
; Kopf Ende
; Ab hier werden die Namen aufgelöst.
gw                      IN A    10.8.190.1

opsi-1-lnx01            IN A    10.8.190.10
server                  CNAME   opsi-1
wpad                    CNAME   opsi-1
printer01               IN A    10.8.17.31

win01                   IN A    10.8.17.101
win02                   IN A    10.8.17.102
win03                   IN A    10.8.17.103
win04                   IN A    10.8.17.104
win05                   IN A    10.8.17.105
/etc/bind/zones/190.8.10.in-addr.arpa.zone
;
; BIND zone file for 190.8.10.in-addr.arpa zone
;
$TTL    604800
@       IN      SOA     opsi-1-lnx01.opsi-1.local. admin.opsi-1.local. (
                       20140601801     ; Serial
                        604800         ; Refresh
                         86400         ; Retry
                       2419200         ; Expire
                        604800 )       ; Negative Cache TTL
;
@       IN      NS      opsi-1-lnx01.opsi-1.local.

1                       IN PTR  gw.opsi-1.local. 

10                      IN PTR  opsi-1-lnx01.opsi-1.local.

31                      IN PTR  printer01.opsi-1.local.

101                     IN PTR  win01.opsi-1.local.
102                     IN PTR  win02.opsi-1.local.
103                     IN PTR  win03.opsi-1.local.
104                     IN PTR  win04.opsi-1.local.
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.
WICHTIG: Nur ein Interface darf rein, da die nc-opsi Tools darauf zurückgreifen!

INTERFACE="eth0"
/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; }

Später mal

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