VMware Tools unter Ubuntu installieren

Wer seine Server mit VMware virtualisiert hat, installiert auf den virtuellen Maschinen idealerweise die VMware-Tools. Auf Windows Maschinen ist das sehr simpel und auch auf Linux-Servern geht das recht einfach.
Dazu muss man zuerst im vSphere Client die Installation der VMware-Tools anstossen, damit dem Server die CD zur Verfügung gestellt wird.
http://images.t-error.ch/blog/1456/vmware_tools_01.jpg


Nun kann man das CD-Laufwerk mounten und die Installationsdatei (für Ubuntu die .tar.gz Datei) in einen anderen Ordner kopieren und das Laufwerk wieder unmounten.
root@srvWEB02:~# mount /dev/cdrom /media/cdrom/
root@srvWEB02:~# cp /media/cdrom/VMwareTools-4.0.0-261974.tar.gz /tmp
root@srvWEB02:/tmp# umount /media/cdrom/

Als nächstes wechselt man in den anderen Ordner und entpackt die Installationsdatei.
root@srvWEB02:~# cd /tmp/
root@srvWEB02:/tmp# tar -xvzf VMwareTools-4.0.0-261974.tar.gz

Jetzt ruft man die Installationsdatei auf und arbeitet sich durch alle Fragen durch. Bei mir haben alle Pfade schon gestimmt und ich musste nichts anpassen
root@srvWEB02:/tmp# vmware-tools-distrib/vmware-install.pl

Nachdem die Installation durchgelaufen ist, starten man den virtuellen Server noch neu und Voila: Die Tools sind installiert:
http://images.t-error.ch/blog/1456/vmware_tools_02.jpg

PDF-Icon in Sharepoint Foundation einbinden

Im Geschäft bin ich gerade ein SharePoint Foundation am installieren bzw. konfigurieren. Eines (der vielen) Probleme ist, dass bei PDF-Dokumenten kein Icon angezeigt wird, was das ganze etwas unübersichtlich macht. Das ganze kann aber recht schnell lösen. Dazu muss man das Icon für auf den Server kopieren und eine XML-Datei anpassen.
http://images.t-error.ch/blog/1379/sharepoint_vorher.jpg

Als erstes kopiert man dazu das PDF-Icon in einer Grösse von 16x16 Pixel auf den Server. Bei meinem Windows 2008 R2 Server, war das der folgende Ordner:
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\TEMPLATE\IMAGES

Dazu kann man das Icon benutzen: http://images.t-error.ch/blog/1379/icpdf.gif

Jetzt muss man noch die Datei DOCICON.XML anpassen, welche in diesem Ordner liegt:
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\TEMPLATE\XML

Der macht fügt man im Abschnitt ByExtension die folgende Zeile hinzu.
<Mapping Key="pdf" Value="icpdf.gif" OpenControl=""/>
Wichtig ist, dass der Dateiname gleich ist, wie der vom Bild.

Nun muss man auf dem Server mit dem Befehl iisreset noch den Webserver neustarten und dann werden die Icons schon angezeigt.
http://images.t-error.ch/blog/1379/sharepoint_nachher.jpg

Das ganze funktioniert natürlich auch mit den Icons von anderen Dateiendungen.

Access-based Enumeration und Windows 2008 R2

Vor bald drei Jahren habe ich mal einen Artikel über Access-based Enumeration bei eine Windows 2003 Server geschrieben.
Letzthin habe ich im Geschäft einen Windows 2008 R2 Fileserver in Betrieb genommen und wollte dort auch wieder ABE einschalten. Das ganze geht nun recht einfach und ohne die Installation von zusätzlicher Software.
Dazu öffnet man eine Management Console (Start -> Ausführen -> MMC) und fügt dort das Snap-in "Share and Storage Management" hinzu. In der Liste wählt man nun den Share, auf dem man die ABE einschalten will und klickt dann auf Advanced. In diesem Fenster kann man nun die ABE einschalten.
http://images.t-error.ch/blog/1325/abe.jpg

Linux mit Samba als Windows Domänenmitglied

Im Geschäft hatten wir eine USB-Festplatte, auf welcher wir sehr viele Bilder für die Katalogproduktion hatten. Das funktionierte recht gut, nur war es recht umständlich, da man die Festplatte immer wieder von einem Computer an den anderen anschliessen mussten. Die ideale Lösung ist also, wenn man die Bilder auf einem Server platziert, damit alle Leute darauf zugriff haben. Eine Bedingung ist, dass alle Leute die Bilder ansehen, aber nur bestimmte Mitarbeiter darauf zugreifen können.
Ich habe das ganze mit einem Linux-Server mit Samba gelöst, welcher an die Windows-Domain angeschlossen wurde. Hier nun eine kleine Anleitung, wie das bei mit funktioniert hat.

Ausgangslage

Domain: MUSTER.LOCAL
DNS-Server: 192.168.1.10

Domaincontroller
OS: Windows 2003 SP 2
Hostname: SERV01
IP: 192.168.1.10

Linux Server
OS: Ubuntu Linux 8.04 Server (2.6.24-16-server)
Hostname: SERV02
IP: 192.168.1.11

Software

Installiert werden muss Samba, Winbind und Heimdal. Bei mir in den folgenden Version (direkt über apt)
  • Samba 3.0.28a
  • Winbind 3.0.28a-1ubuntu4
  • heimdal-clients 0.7.1-1ubuntu3

Installation

Kerberos


Kerberos wird zur Authentifizierung am Windows-Server verwendet. Will sich also ein Benutzer am SERV02 anmelden, so sendet dieser die Anfrage an den SERV01 (PDC) weiter und erhält von dem die Nachricht, ob Benutzername und Passwort korrekt sind. So kann man direkt die Benutzer und Gruppen aus der Active-Directory verwenden, was die Benutzerverwaltung sehr vereinfacht. Kerberos ist im Packet Heimdal enthalten.
Konfigurieren muss man die Datei /etc/krb5.conf. Dazu muss man zuerst eine Realm (einen Bereich) konfigurieren und dort ein KDC (Kerberos Distribution Center) angeben und dann der Domain den Berich zuweisen. Wichtig ist hier, dass auf die Gross- und Kleinschreibung geachtet wird. Meine Konfigurationsdatei sieht so aus:
[libdefaults]
        default_realm = MUSTER.LOCAL
        clockskew = 300

[realms]
        MUSTER.LOCAL = {
                kdc = SERV01.MUSTER.LOCAL
        }

[domain_realm]
        .muster.local = MUSTER.LOCAL

[logging]
#       default = SYSLOG:NOTICE:DAEMON
        default = FILE:/var/log/krb/krb5libs.log
        kdc = FILE:/var/log/krb/kdc.log
        kadmind = FILE:/var/log/krb/kadmind.log

[appdefaults]
        pam = {
                ticket_lifetime = 1d
                renew_lifetime = 1d
                forwardable = true
                proxiable = false
                retain_after_close = false
                minimum_uid = 0
                debug = false
        }

Nun kann man mit dem Befehl kinit den Kerberos Client (Linux) am Server (Windows) authenifizieren. Dies funktioniert mit dem folgenden Befehl:
kinit Administrator@MUSTER.LOCAL

Wichtig ist wieder, dass auf die Gross- und Kleinschreibung geachtet wird und dass die Namensauflösung funktioniert. Ein ping auf serv01 sollte hier im Beispiel 192.168.1.10 zurückgeben.

Samba


Jetzt kann Samba über die Datei /etc/samba/smb.conf konfiguriert werden. Wichtig sind die Rot markierten Zeilen.
[global]
   workgroup = MUSTER
   server string =
   netbios name = serv02
   realm = MUSTER.LOCAL
   idmap uid = 10000 - 15000
   idmap gid = 10000 - 15000
   winbind separator = /
   winbind use default domain = yes
   password server = serv01.muster.local
   security = ADS
   client use spnego = yes
   dns proxy = no
   log file = /var/log/samba/log.%m
   max log size = 1000
   syslog = 0
   panic action = /usr/share/samba/panic-action %d
   encrypt passwords = yes
   passdb backend = tdbsam
   obey pam restrictions = yes
   invalid users = root
   passwd program = /usr/bin/passwd %u
   passwd chat = *Enter\snew\sUNIX\spassword:* %n\n *Retype\snew\sUNIX\spassword:* %n\n *password\supdated\ssuccessfully* .
   socket options = TCP_NODELAY

  • workgroup: Die Arbeitsgruppe. Sollte gleich dem Domänennamen sein
  • netbios name: Der Netbios Hostname des Servers
  • realm: Der Bereich. Gleich dem Bereich in der Kerberos Konfiguration
  • idmap uid: Bereich der genutzt wird um die Domänenbenutzer auf die Linux Benutzer zu mappen
  • idmap gid: Bereich der genutzt wird um die Domänengruppen auf die Linux Gruppen zu mappen
  • winbind seperator: Das Trennzeichen zwischen der Domäne und dem Benutzer
  • winbind use default domain: Definiert, ob Winbind auch mit dem Benutzernamen arbeitet, wenn keine Domäne angegeben wurde.
  • password server: Der Server, welcher die Passwörter validiert.
  • security: Definiert, dass Samba als ADS Mitglied arbeiten soll
  • client use spnego: Aktiviert SMB Singing

Nun muss man den Samba Server noch in die Domäne aufnehmen. Das macht man seit Samba 3.* nicht mehr mit smbpasswd sondern mit dem net Befehl:
net join -S serv01 -UAdministrator%password


Wenn alles geklappt hat muss man Linux noch mitteilen, dass Benutzeranfragen an winbind weitergeleitet werden sollen. Dies macht man in der Datei /etc/nsswitch.conf. Dort muss man die Zeilen passwd und group anpassen. Sie sollten schlussendlich so aussehen:
passwd:         files winbind
group:          files winbind


Nach einem Neustart von Samba und Winbind kann man prüfen, ob die Konfigurationsarbeit erfolgreich war. Die folgenden Befehle sollten alle Benutzer, bzw Gruppen der Windows Domäne anzeigen.
wbinfo -u
wbinfo -g

Shares einrichten

Sollte bisher alles funktioniert haben, kann man jetzt die Shares im Samba einrichten. Ich habe einen Share names Bilder gemacht, auf welchen alle Zugriff haben, aber nur eine bestimmte Gruppe schreiben kann.
[bilder]
   comment = Bilder
   path = /home/bilder
   public = yes
   read only = no
   guest ok = no
   browseable = yes
   valid users = @muster/alle
   admin users = @muster/abteilung, muster/user


Hier noch die Unterschiede zwischen Lokalen-/Domänenbenutzen-/Gruppen.
# lokaler user
valid users = user

# domain user
valid users = muster/user

# lokale gruppe
valid users = @group

# domain gruppe
valid users = @muster/group

Quellen


Im Internet gibt es schon einige Anleitungen dazu. Hier möchte ich diejenigen Auflisten, die mich am meisten weitergebracht haben:
  • http://www.pro-linux.de/work/server/samba3-domaene.html
  • http://www.administrator.de/Samba_in_Windows_Dom%C3%A4ne.html

Adminpack unter Windows Vista

Über das Adminpack für Windows XP habe ich ja bereits geschrieben. Eine wirklich praktische Sache, da man nicht immer über Remote-Desktop auf den Server verbinden muss, wenn man etwas in der Active-Directory anpassen will.
Da ich mich im Geschäft nun mit Vista herum schlage, wollte ich auch hier das Adminpack installieren. Also erstmal die neuste Version herunterladen und installieren. Das alles funktionierte ohne Probleme. Nur beim hinzufügen der Snap-Ins fehlten einige wichtige, wie zum Beispiel die Benutzerverwaltung.
Also schnell im Internet suchen und siehe da. Es gibt kein Adminpack für Vista und den Server 2003. Toll, danke! Aber es gibt einen Hack. Einfach die Befehle in eine neue Datei kopieren, diese als mmc.cmd abspeichern und dann als Administrator ausführen. Beim erneuten öffnen der MMC kann man nun alle Snap-Ins auswählen.
http://images.t-error.ch/blog/716/mmc.jpg


Hier die Codes für die mmc.cmd
regsvr32 /s adprop.dll
regsvr32 /s azroles.dll
regsvr32 /s azroleui.dll
regsvr32 /s ccfg95.dll
regsvr32 /s certadm.dll
regsvr32 /s certmmc.dll
regsvr32 /s certpdef.dll
regsvr32 /s certtmpl.dll
regsvr32 /s certxds.dll
regsvr32 /s cladmwiz.dll
regsvr32 /s clcfgsrv.dll
regsvr32 /s clnetrex.dll
regsvr32 /s cluadmex.dll
regsvr32 /s cluadmmc.dll
regsvr32 /s cmproxy.dll
regsvr32 /s cmroute.dll
regsvr32 /s cmutoa.dll
regsvr32 /s cnet16.dll
regsvr32 /s debugex.dll
regsvr32 /s dfscore.dll
regsvr32 /s dfsgui.dll
regsvr32 /s dhcpsnap.dll
regsvr32 /s dnsmgr.dll
regsvr32 /s domadmin.dll
regsvr32 /s dsadmin.dll
regsvr32 /s dsuiwiz.dll
regsvr32 /s imadmui.dll
regsvr32 /s lrwizdll.dll
regsvr32 /s mprsnap.dll
regsvr32 /s msclus.dll
regsvr32 /s mstsmhst.dll
regsvr32 /s mstsmmc.dll
regsvr32 /s nntpadm.dll
regsvr32 /s nntpapi.dll
regsvr32 /s nntpsnap.dll
regsvr32 /s ntdsbsrv.dll
regsvr32 /s ntfrsapi.dll
regsvr32 /s rasuser.dll
regsvr32 /s rigpsnap.dll
regsvr32 /s rsadmin.dll
regsvr32 /s rscommon.dll
regsvr32 /s rsconn.dll
regsvr32 /s rsengps.dll
regsvr32 /s rsjob.dll
regsvr32 /s rsservps.dll
regsvr32 /s rsshell.dll
regsvr32 /s rssubps.dll
regsvr32 /s rtrfiltr.dll
regsvr32 /s schmmgmt.dll
regsvr32 /s tapisnap.dll
regsvr32 /s tsuserex.dll
regsvr32 /s uddi.mmc.dll
regsvr32 /s vsstskex.dll
regsvr32 /s w95inf16.dll
regsvr32 /s w95inf32.dll
regsvr32 /s winsevnt.dll
regsvr32 /s winsmon.dll
regsvr32 /s winsrpc.dll
regsvr32 /s winssnap.dll
regsvr32 /s ws03res.dll

Gruppenrichtlinienverwaltung unter Windows

Am letzten Samstag war ich ja wieder am MCSA Kurs. Das Hauptthema waren die Gruppenrichtlinien. Ein sehr spannendes und umfangreiches Thema.
Nun wollte ich das heute bei uns im Geschäft nochmals ansehen und auch einige Verbesserungen in unser System einbringen. Bevor ich allerdings loslegen konnte, muss ich die Gruppenrichtlinien-Verwaltungskonsole (GPMC) zuerst auf meinem Computer installieren. Danach konnte ich die MMC Starten und das "Gruppenrichtlinienverwaltung" Snap-In hinzufügen.
http://images.t-error.ch/blog/554/snap-in.jpg


In der MMC hat man nun die Richtlinienverwaltung und kann nun Richtlinien erstellen bzw. verwalten. Die Richtlinien kann man allerdings nur OUs zuweisen und nicht den Benutzergruppen. Warum sie Gruppenrichtlinien heissen ist mir ein kleines Rätsel.
http://images.t-error.ch/blog/554/mmc.jpg


Wie auch immer, als Beispiel erstellte ich eine Richtlinie die den Zweck hat, in der Systemsteuerung die klassische Ansicht zu erzwingen. Mit der neuen Kategorien-Ansicht vom Windows XP kann man ja nichts anfangen. So erstellt man eine neue Richtlinie und weist sie einem Container (OU, oder gleich der Domäne) zu.
Nun sucht man sich die Einstellungen die man verändern will. In meinem Fall nun wie gesagt die klassische Ansicht der Systemsteuerung. Diese findet man hier:
Benutzerkonfiguration -> Administrative Vorlagen -> Systemsteuerung

http://images.t-error.ch/blog/554/systemsteuerung.jpg


In den Eigenschaften stellt man den Schalter auf Aktiviert.
http://images.t-error.ch/blog/554/systemsteuerung_klassisch.jpg


An einem Client sollte man noch schnell einen Test machen, ob es klappt. Also in der Systemsteuerung zur Kategorien-Ansicht wechseln, Systemsteuerung schliessen und die Gruppenrichtlinien mit dem folgenden Befehl neu laden:
gpupdate /force
Wenn man nun die Systemsteuerung wieder öffnet sollte die klassische Ansicht verwendet werden.

Aber auch hier hat sich Microsoft einen kleinen Patzer erlaubt:
http://images.t-error.ch/blog/554/fehler.jpg

Zu finden unter:
Benutzerkonfiguration -> Administrative Vorlagen -> Windows-Komponenten -> Internet Explorer -> Internetsystemsteuerung -> Seite "Erweitert"

Access-based Enumeration

Im MCSA Kurs vom letzten Samstag wurden wir auf die Windows Server 2003 Access-based Enumeration aufmerksam gemacht. Ich habe dies nun auf unserem Server installiert und möchte nun kurz etwas darüber schreiben.

Was ist die Access-based Enumeration

Manche kennen es ja sicher schon, denn neu ist es nicht. Access-based Enumeration ist ein Programm, welches man auf einem Windows 2003 Server installieren kann . Damit ist es möglich Ordner, auf die ein Benutzer keinen Zugriff hat zu verstecken. Um zu erklähren wie das geht mache ich hier ein kleines Beispiel:
Angenommen eine Firma hat einen Share namens GROUP und darin mehrere Ordner. Einer davon heisst Buchhaltung und darauf hat natürlich nicht jeder Benutzer Zugriff. Trotzdem sieht jeder Benutzer, der den Share GROUP öffnet diesen Ordner. Access-based Enumeration setzt genau dort an. Ist es auf dem Share GROUP aktiviert sehen nur Benutzer, die auch Zugriff auf diesen Ordner haben den Ordner. So wird es wohl einige "Zugriff verweigert" Meldungen weniger geben. Zudem ist es auch Sicherheitstechnisch interessant, denn "Was ich nicht weiss, macht mich nicht heiss". Ein Benutzer versucht kaum einen Ordner zu öffnen, den er nicht sieht.

Installation

Die Installation ist wirklich sehr simpel. Als erstes muss man die Installatrionsdatei herunterladen. Nun kann man die MSI Datei auf dem Server ausführen und den Anweisungen folgen.
http://images.t-error.ch/blog/542/install.jpg


Konfiguration

Die Access-based Enumeration kann man nur auf einem Netzwerk-Share ein- oder ausschalten. Das Konfigurationsfenster öffnet man mit einem Rechtsklick auf einen Share und dann Eigenschaften, Access-based Enumeration. Dort kann man es nun ein- bzw. Ausschalten. Das war es auch schon mit der Konfiguration. Mit einer zweiten Checkbox kann man die Einstellung noch für alle Shares auf dem Server übernehmen.
http://images.t-error.ch/blog/542/config.jpg


Demo

Bei mir hat alles wunderbar geklappt. Die Benutzer sehen nun nur noch die Ordner, die auf denen sie auch Leseberechtigungen haben. In meiner Meinung ein sehr praktisches Tool.

Vorher:
http://images.t-error.ch/blog/542/enumeration_01.jpg


Nachher:
http://images.t-error.ch/blog/542/enumeration_02.jpg

Mit Outlook auf Adressen in der Active Directory zugreifen

Mit Outlook hat man die Möglichkeit auf die Adressdaten einer Active Directory zuzugreifen. Da das ganze über LDAP läuft, ist das relativ simpel. Von Vorteil ist dies, wenn man Adressdaten zentral speichern will aber keinen Exchange Server hat.

Ich erkläre hier wie man mit einem Outlook 2002 auf die Active Directory von einem Windows 2003 Server zugreift. Ich denke, bei anderen Version sieht es ähnlich aus.

Dazu muss man ein neues Adressbuch erstellen. Dies macht man über Extras -> E-Mail-Konten. Nun wählt man "Ein neues Verzeichnis oder Adressbuch hinzufügen" an und klickt auf weiter. Beim nächsten schritt wählt man den "Internetverzeichnisdienst (LDAP)" an und klickt wieder auf weiter.
Jetzt hat man die Möglichkeit den Servernamen anzugeben. Zudem muss man die Anmeldeinformationen angeben. Idealerweise im Format domain\user.
http://images.t-error.ch/blog/516/outlook_ldap_server.jpg


Nun muss man noch weitere Einstellungen angeben. Unter Verbindung kann man den Anzeigenamen und den Port angeben. Mit dem Port 389 klappt es bei mir ohne Probleme.
http://images.t-error.ch/blog/516/outlook_ldap_name_port.jpg


Unter Suche gibt man nun an, wo die Adressdaten abgelegt sind. Je nachdem wie man die AD organisiert hat, sieht das halt etwas anders aus. Auf jeden Fall, muss man die Suchbasis im LDAP Stil angeben.
http://images.t-error.ch/blog/516/outlook_ldap_search.jpg


Wenn man das gemacht hat, kann man das Adressbuch öffnen und rechts oben bei "Namen anzeigen aus" das richtige Adressbuch auswählen. Dann sollten alle Adressen angezeigt werden.

Leider funktioniert das nicht Bidirektional. Das heisst, man kann keine Kontakte im Outlook erfassen, auch wenn die Berechtigungen stimmen. Zudem gibt es keine Möglichkeit die Adressen in Ordner zu fassen. Auch wenn man in der AD Organisationseinheiten (OUs) erstellt, werden die Adressen im Outlook in einer Liste dargestellt. Aber vielleicht, gibt es doch eine andere Lösung.

Adminpak: MMC für Windows XP

Einen Windows 2003 Server verwaltet man ja am einfachsten über die MMC (Mickey Mouse Club Microsoft Management Console), welche auf dem Server installiert ist. Nun möchte man aber nicht immer an den Server gehen und dort arbeiten, oder Remote auf dem Server arbeiten. Am besten installiert man einfach die MMC auf dem eigenen Computer. Das ganze ist recht simpel, denn man muss nur das Microsoft Administrartion Tools Pack installieren. Entweder aus dem Internet oder von der Windows 2003 im i386 Ordner. Einfach die adminpak.msi Datei installieren.

Schon kann man die gewünschten Snap-Ins hinzufügen und bequem vom eigenen Arbeitsplatz aus den Server verwaltet. So werden auch die ds-Befehle (dsadd, dsmove, dsremove usw.) installiert.
http://images.t-error.ch/blog/515/mmc.jpg

NTP unter Windows 2003 Server

Für den Fall, dass ich es mal wieder benötige: Ein Windows Computer, der in einer Domäne eingebunden ist, holt sich die Zeit standardmässig vom PDC. Nur sollte die Zeit auf dem PDC auch stimmen. Man kann diese natürlich manuell anpassen und immer wieder kontrollieren. Oder man nutzt NTP.

Bei einem Windows 2003 Server funktioniert das über die Konsole. Nicht ganz so simpel wie unter Linux, aber auch keine grosse Klickorgie.
w32tm /config /syncfromflags:manual /manualpeerlist:ch.pool.ntp.org
w32tm /config /update
w32tm /resync

So befragt der Server den Host ch.pool.net.org und holt sich die Zeit von dort.