LDAP-Verzeichnisserver

[stextbox id=“warning“ caption=“Achtung“]Diese Seite befindet sich noch in der bearbeitung – Benutzen auf eigene Gefahr![/stextbox]

__ LDAP-Verzeichnisse stellen eine art globale Datenbank dar. -Die einfachtse Anwendung ist hier z.B. das Führen von Firmen-/ oder Familienweiten Adressbüchern.
Oftmals kennt man dies von den Mailsystemen in Outlook oder Lotus Notes, bei dem man einfach nur den Namen des Mitarbeiters eingeben kann und die e-mail Adresse erscheint. Oder die "Who-is-who" Verzeichnisse, bei denen man die Telefonnummern, Foto, usw. von anderen mitarbeitern nachschlagen kann.

Doch mit LDAP lässt sich noch viel mehr machen. Man kann sozusagen das gesammte inventar in einem LDAP-Verzeichniss speichern und interessante Web-Anwendungen damit machen.

Wir werden hier jetzt auf Debian-etch einen solchen LDAP-Server installieren und in anderen Tutorials spezifisch erweitern (z.B. für SAMBA).

Zusätzlich wird mit phpLDAPadmin noch eine schöne Web-Administraions Oberfläche aufgesetzt. __

Vorbemerkungen

Unter Debian genügen die "apt-get install" aufrufe, da dort alle Abhängigkeiten automatisch installiert werden. Für andere Distributionen hier die Pakete die benötigt werden; diese kann man sich seperat downloaden und dann z.B. mit "rpm -ihv [paket]" installieren.

Grundinstallation des LDAP Dienstes

Benötigte Software-Pakete

Main Pakages

  • libiodbc2
  • libldap-2.3-0 libslp1
  • libslp1

Dependencies

  • make, gcc, gcc++
  • gengetopt libpopt-dev python-crypto
  • libpopt-dev
  • python-crypto

Installation

Zunächst mal die abhängikeiten installieren (kann nicht verkehrt sein g):

apt-get install make gcc gcc++ gengetopt libpopt-dev python-crypto

Dann LDAP selbst:

apt-get install slapd ldap-utils

Nun müssen wir den noch rekonfigurieren:

dpkg-reconfigure slapd

Die Fragen werden nun wie folgt beantwortet:
<SMALL>Hinweis: Der DNS-Name kann auch etwas anderes sein, z.B. ‚fileserver.home.meinName.tld‚</SMALL>

Soll die OpenLDAP-Server-Konfiguration ausgelassen werden?: Nein
DNS Name: samba.local
Name seiner Organisation: samba.local
Admin Kennwort: 123456
Kennwort wiederholen: 123456
Zu verwenden Datenbankmaschine : BDB
soll die Datenbank entfernt werden, wenn slapd vollständig gelöscht wird?: Nein
Es möchte die alte Datenbank verschieben: Ja__
LDAPV2: Nein

Testen kann man das ganze nun mit:

ldapsearch -x -b "dc=samba,dc=local"

(oder halt der DNS Name, den ihr eingegeben habt)

Dabei sollte sowas rauskommen:

# extended LDIF
#
# LDAPv3
# base with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#
 
# samba.local
dn: dc=samba,dc=local
objectClass: top
objectClass: dcObject
objectClass: organization
o: samba.local
dc: samba
 
# admin, samba.local
dn: cn=admin,dc=samba,dc=local
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
 
# search result
search: 2
result: 0 Success
 
# numResponses: 3
# numEntries: 2

Nun müssen wir noch den apache2-webserver installieren (für die Weboberfläche):

apt-get install apache2

Und schliesslich die Weboberfläche selbst 😉 :

apt-get install phpldapadmin

Nun kann man sich unter: http://IP-DES-SERVERS/phpldapadmin anmelden und Einträge hinzufügen.

Auf diese kann man nun ganz einfach mit Thunderbird, Outlook, usw. zugreifen.
Hier die Schritte für Thunderbird:
# Extras – Adressbuch
# Extras – Einstellungen
# Unter "Verfassen" die Registerkarte "Adressieren" wählen
# Häckchen bei "LDAP-Verzeichnisserver", dann "Anpassen" drücken
# "Hinzufügen" wählen
# Daten Eingeben, z.B. LDAP-Server / 10.0.0.3 / cn=admin,dc=samba,dc=local

Für ein Adressbuch reicht dies bereits aus. Wer bereits SAMBA als Domaincontroller einsetzt interessiert sich vielleicht auch für die nächsten Schritte, wenn wir LDAP in SAMBA integrieren.

Logging einrichten

Standardmässig werden die LDAP-Meldungen ins syslog geloggt. Da man aber besonders beim deubbgen extrem viele Meldungen bekommt, möchte man besser ein eigenes Logfile dafür haben.
Dazu muss man in syslog-deamon nur den Eintrag: "local4" konfigurieren:

touch /var/log/ldap.log
chown openldap:openldap /var/log/ldap.log
echo "local4.*				/var/log/ldap.log" >> /etc/syslog.conf
/etc/init.d/sysklogd restart && /etc/init.d/slapd restart

Die Meldungen des LDAP-Servers werden nun unter: /var/log/ldap.log gespeichert.

Integration in einen SAMBA Server

Dieses Tutorial geht davon aus, dass ein SAMBA Domaincontroller bereits nach dem Linux Fileserver Tutorial einsatzbereit läuft.

LDAP Anpassungen

Zusätzliche Software

Für die Installation von PAM mit OpenLDAP werden noch die folgenden Pakete beötigt: libnss-ldap, libpam-ldap und nscd.

apt-get install libnss-ldap libpam-ldap nscd

Die folgenden Fragen wie folgt beantworten:

Make local root Database admin: Ja
Does the LDAP database require login: Nein
Root login account: cn=admin,dc=samba-ldap,dc=local
Root login password: samba-ldap
Local crypt to use when changing passwords: crypt

LDAP Server host: 127.0.0.1
The distinguished name of the search base: dc=samba-ldap,dc=local
LDAP version to use: 3
Datenbank benötigt Login: Nein
Konfiguration nur für den Eigentümer les-/schreibbar machen: Ja

Nun muss noch der NSCD-Dienst gestartet werden:

/etc/init.d/nscd start

Nun können wir LDAP an SAMBA anpassen. Dazu generieren wir als erstes mal ein Verschlüsseltes LDAP-Passwort:

slappasswd

Die Ausgabe, etwas wie: " {SSHA}EDmTvpZ56jZAOelNPBR4MwReReHNJXo+" können wir gleich in die Zwischenablage kopieren.

Nun das File: /etc/ldap/slapd.conf öffnen und die 2 Zeilen rootdn/rootpw ändern/einfügen (rootpw ist das Passwort, dass wir vorhin erstellt haben):

rootdn "cn=admin,dc=samba-ldap,dc=local"
rootpw {SSHA}EDmTvpZ56jZAOelNPBR4MwReReHNJXo+

Da wir für unsere Anwendung ganz andere Zugrissrechte als die Standardmässigen benötigen, schiessen wir die folgenden am besten gleich raus:

 access to attrs=userPassword
 by dn="cn=admin,dc=samba-ldap,dc=local" write
 by anonymous auth
 by self write
 by * none
 
access to dn.base="" by * read
 
access to *
 by dn="cn=admin,dc=samba-ldap,dc=local" write
 by * read

Dafür setzten wir nun diese ein:

 access to attrs=userPassword
 by self write
 by anonymous auth
 by * none
 
access to attrs=sambaLMPassword
 by self write
 by anonymous auth
 by * none
 
access to attrs=sambaNTPassword
 by self write
 by anonymous auth
 by * none
 
access to *
 by * read

Dann muss noch die Zeile:

index objectClass eq

ersetzt werden durch:

index objectClass,uidNumber,gidNumber eq
index cn,sn,uid,displayName pres,sub,eq
index memberUid,mail,givenname eq,subinitial
index sambaSID,sambaPrimaryGroupSID,sambaDomainName eq

Nun können wir diese Datei schliessen und dafür: /etc/default/slapd öffnen.

Dort ersetzen wir:

SLAPD_OPTIONS=""

in

SLAPD_OPTIONS="-4"

, speichern und schliessen die Datei und öffnen: /etc/ldap/ldap.conf.

Hier tragen wir noch HOST, BASE und URI ein:

 HOST 127.0.0.1
BASE dc=samba-ldap,dc=local
URI ldap://localhost:389

SAMBA Anpassungen

Zusätzliche Software

Als erstes müssen wir nun noch die samba-Dokumentation, die smbldap-tools, sowie das Tool: "mkntpwd" installieren; letzteres ist dazu da NT-Passwörter zu kreieren.

apt-get install samba-doc

Dann noch einige LDAP-Tools:

apt-get install smbldap-tools

Um die funktionstüchtigkeit von den sambaldap-tools zu gewärleisten, müssen noch einige Perl-Module installiert werden:

apt-get install libnet-ldap-perl libcrypt-smbhash-perl libunicode-maputf8-perl libio-socket-ssl-perl libdigest-sha1-perl

Dazu müssen wir noch die smbldap-tools configfiles kopieren:

gunzip -c /usr/share/doc/smbldap-tools/examples/smbldap.conf.gz > /etc/smbldap-tools/smbldap.conf
cp -pv /usr/share/doc/smbldap-tools/examples/smbldap_bind.conf /etc/smbldap-tools/smbldap_bind.conf

Nach dem wir alle Perl-Module installiert haben, können wir einen Test der sambaldap-tools machen:

smbldap-usershow

Kommt nun folgende Ausgabe, hat die Installation des sambaldap Tools und die Installation der Perl Module funktionert:

(c) Jerome Tournier - IDEALX 2004 (<a href="http://www.idealx.com)-" target="blank">http://www.idealx.com)-</a> Licensed under the GPL
Usage: /usr/local/sbin/smbldap-usershow [-?] username
    -? show this help message

mkntpwd muss kompiliert werden:

$ cd /opt/
wget <a href="http://www.silcom.com.pe/soft/mkntpwd.tar.gz" target="blank">http://www.silcom.com.pe/soft/mkntpwd.tar.gz</a>
tar -zxf mkntpwd.tar.gz
cd mkntpwd
make
cp mkntpwd /usr/local/bin

Testen mit:

mkntpwd

Ausgabe:

# mkntpwd
Usage: mkntpwd [-L lanmgrpwd] [-N ntpasswd]
       mkntpwd password
       mkntpwd -f [-] [filename]
 
     -L lanmgrpasswd  LanManager cleartextpwd <= 14 chars
     -N ntpasswd      NT cleartextpwd <=128 chars (usually <=14)
 
     with both options present the encrypted LanManager-Pwd is
     printed first, followed by a ':' and the encrypted NT-Pwd.
 
     The second usage behaves like mkntpwd -L pwd -N pwd
 
     The third usage reads the password from STDIN or a File. Printout
     is the same as second.
 
anton@genua.de

smbldap-tools Konfiguration

Nun können wir die smbldap-tools konfigurieren.

Als erstes müssen wir die so genannte SID unserer Domäne ermitteln. Diese wird bei jeder Domäne anders aussehen, deswegen nicht wundern wenn Ihr eine andere habt als hier angegeben.

net getlocalsid SAMBA-LDAP

SID for domain SAMBA-LDAP is: S-1-5-21-2856778860-2055491937-1446371655

Diese SID müssen wir jetzt in die smbldap.conf einfügen:

/etc/smbldap-tools/smbldap.conf

Dort suchen wir jetzt nach dem SID Eintrag und löschen das Beispiel von IDEALIX.ORG raus und tragen dafür unseren ein:

SID="Eure SID"

Als nächstes müssen wir den Wert sambaDomain in dieser Datei auf unsere Domäne so wie in der smb.conf angegeben abändern:

sambaDomain="SAMBA-LDAP"

Wir verwenden in diesem HowTo keine Verschlüsselung und somit können wir ldapTLS auf = 0 setzen.

ldapTLS="0"

Für die Installation benötigen die smbldap-tools noch unseren LDAP Suffix:

suffix="dc=samba-ldap,dc=local"

Wie in der smb.conf angegeben verwalten wir die Computer Accounts im SubTree Machines. Aus diesem Grund müssen wir noch den computersdn ändern:

computersdn="ou=Machines,${suffix}"

Um herauszufinden welche UnixIDs noch frei sind müssen wir noch angeben in welchen Domain Pools nach freien IDs suchen soll:

sambaUnixIdPooldn="sambaDomainName=SAMBA-LDAP,${suffix}"

Da wir schon in der smb.conf schon angeben haben wo sich das Home Verzeichnis der Benutzer befindet können wir den Wert userSmbHome auf „“ setzen.

userSmbHome=""

Das gleiche auch mit den Benutzerprofilen:

userProfile=""

Nun hinterlegen wir noch den Laufwerksbuchstaben für das Persönliche Laufwerk:

userHomeDrive="H:"

Da auch die smbldap-tools wissen müssen in welchem Server die Daten gespeichert warden sollen, tragen wir jetzt in die /etc/smbldap-tools/smbldap_bind.conf die benötigten Werte ein.

/etc/smbldap-tools/smbldap_bind.conf

Die vorhanden Daten ersetzen wir gegen:

slaveDN="cn=admin,dc=samba-ldap,dc=local"
slavePw="samba-ldap"
masterDN="cn=admin,dc=samba-ldap,dc=local"
masterPw="samba-ldap"

Nun gehts ans anpassen der Samba-Config.
<EM>Achtung: </EM>Wenn ihr den Samba-Server schon produktiv im einsatz habt am besten ein Backup der smb.conf machen: cp -pv /etc/samba/smb.conf /etc/samba/smb.conf.noldap! -Dann könnt ihr, falls was schief geht durch austauschen der smb.conf.noldap wieder die alte Funktionalität herstellen.

Folgende zusätzliche Änderungen sind nun in die /etc/samba/smb.conf Einzutragen:

# Password Backend
passdb backend = ldapsam:ldap://127.0.0.1/
 # Samba Tools zur Verwaltung der Benutzer, Gruppen und Computerkonten im LDAP
 
add user script = /usr/local/sbin/smbldap-useradd –m –a “%u”
delete user script = /usr/local/sbin/smbldap-userdel “%u”
add group script = /usr/local/sbin/smbldap-groupadd –p “%g”
delete group script = /usr/local/sbin/smbldap-groupdel “%g”
add user to group script = /usr/local/sbin/smbldap-groupmod –m “%u” “%g”
delete user from group script = /usr/local/sbin/smbldap-groupmod –x “%u””%g”
set primary group script = /usr/local/sbin/smbldap-usermod –g “%u” “%g”
add machine script = /usr/local/sbin/smbldap-useradd –w “%u”
# LDAP werte für den Zugriff von Samba auf die LDAP Datenbank
 
ldap admin dn = cn=admin,dc=samba-ldap,dc=local
ldap delete dn = Yes
ldap user suffix = ou=Users
ldap group suffix = ou=Groups
ldap machine suffix = ou=Machines
ldap passwd sync = Yes
ldap suffix = dc=samba-ldap,dc=local
ldap ssl = no
host msdfs = Yes
# Administratoren des Servers – alle Aktionen warden mit dem Systembenutzer root
# ausgeführt
 
admin users = root, Administrator

Damit LDAP auch weiß, wie es mit Samba Benutzern und seinen Passwörtern umzugehen hat müssen wir jetzt noch das samba Schema entpacken und in der slapd.conf eintrage.

gunzip –c  /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz > /etc/ldap/schema/samba.schema

In der Datei slapd.conf im /etc/ldap/ Verzeichniss tragen wir nach den vorhanden Schemas noch das samba.schema ein, wie unten zu sehen ist.

# Schema and objectClass definitions
include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/inetorgperson.schema
include /etc/ldap/schema/samba.schema

Damit der smbd und LDAP auch miteinander Kommunizieren können und dürfen muss noch das admin Kennwort in der secrets.tdb hinterlegt werden. Dies geschieht durch den smbpasswd Befehl mit der Option –w.
Das Passwort muss natürlich angepasst werden.

smbpasswd -w samba-ldap

Ausgabe:
"Setting stored password for "cn=admin,dc=samba-ldap,dc=local" in secrets.tdb"

Systen Anpassen / PAM-NSS

Testumgebung einrichten

Wenn man einen Produktiven SAMBA-PDC auf LDAP authentifizierung upgraded, kann es in der Anfangsphase häufig zu Problemen kommen, so dass ein login an der Domäne teilweise gar nicht mehr möglich ist.

Hat man also keine Testumgebung zur Verfügung, bzw. arbeiten schon user an der Domäne, muss man diese quasi auf "knopfdruck" wieder zur alten Konfiguration herstellen können.
Ich habe mir zu diesem zeck von jedem configfile, dass verändert wird 2 Kopien gemacht: Eine ldap-version und eine noldap-Version. Mit 2 kleinen Scripts setze ich jeweils links auf diese Versionen. Die noldap-Version habe ich zudem mit dem "immutable" attribut ausgestattet, damit sicher gestellt wird, dass diese nicht verändert werden kann.

So richtet man sich eine solche Umgebung ein:

pam.d-Verzechnis auserhalb des /etc kopieren:

cp -pRv /etc/pam.d /root/ldap-pam

2 Versionen der Files anlegen:

cp -pv /root/ldap-pam/common-account /root/ldap-pam/common-account.ldap
cp -pv /root/ldap-pam/common-account /root/ldap-pam/common-account.noldap
 
cp -pv /root/ldap-pam/common-auth /root/ldap-pam/common-auth.ldap
cp -pv /root/ldap-pam/common-auth /root/ldap-pam/common-auth.noldap
 
cp -pv /root/ldap-pam/common-password /root/ldap-pam/common-password.ldap
cp -pv /root/ldap-pam/common-password /root/ldap-pam/common-password.noldap
 
cp -pv /root/ldap-pam/common-session /root/ldap-pam/common-session.ldap
cp -pv /root/ldap-pam/common-session /root/ldap-pam/common-session.noldap
 
cp -pv /root/ldap-pam/login /root/ldap-pam/login.ldap
cp -pv /root/ldap-pam/login /root/ldap-pam/login.noldap
 
cp -pv /etc/samba/smb.conf /etc/samba/smb.conf.ldap
cp -pv /etc/samba/smb.conf /etc/samba/smb.conf.noldap

Funktionierende Config unveränderbar machen:

chattr -V +i /root/ldap-pam/*.noldap
chattr -V +i /etc/samba/smb.conf.noldap

Scripts schreiben:
vi /root/ldapon.sh

ln -vs /root/ldap-pam/common-account.ldap /etc/pam.d/common-account
ln -vs /root/ldap-pam/common-auth.ldap /etc/pam.d/common-auth
ln -vs /root/ldap-pam/common-password.ldap /etc/pam.d/common-password
ln -vs /root/ldap-pam/common-session.ldap /etc/pam.d/common-session
 
ln -vs /root/ldap-pam/login.ldap /etc/pam.d/login
 
ln -vs /etc/samba/smb.conf.ldap /etc/samba/smb.conf
 
/etc/init.d/samba restart

vi /root/ldapoff.sh

ln -vs /root/ldap-pam/common-account.noldap /etc/pam.d/common-account
ln -vs /root/ldap-pam/common-auth.noldap /etc/pam.d/common-auth
ln -vs /root/ldap-pam/common-password.noldap /etc/pam.d/common-password
ln -vs /root/ldap-pam/common-session.noldap /etc/pam.d/common-session
 
ln -vs /root/ldap-pam/login.noldap /etc/pam.d/login
 
ln -vs /etc/samba/smb.conf.noldap /etc/samba/smb.conf
 
/etc/init.d/samba restart

Scripts ausführbar machen:

chmod 755 /root/ldapon.sh
chmod 755 /root/ldapoff.sh

So kann ich einerseits die "normalen" configdateien in /etc/pam.d bearbeiten (da sie ja nur links sind) nicht ausversehen die "falschen" editieren (da sie unveränderbar sind) und mittels /.ldapon.sh, bzw. /.ldapoff.sh jederzeit die LDAP-, oder die (funktionierende) nicht-LDAP Umgebung aufrufen.

Hinweis: Läuft die LDAP-Konfiguration sollte man die links unter /etc/pam.d/ löschen und stattdessen die *.ldap Files wieder Zurück kopieren.

So, nun werden die Security-Module des Systems noch so konfiguriert, dass auch das ganze Linux System die Infos zuerst aus der LDAP-Datenbank liesst.
<EM>Achtung:</EM> Damit wird ggf. das /etc/passwd /etc/groups und /etc/shadow System ungültig! -Die User/PW Daten sind dann alle in der LDAP Datenbank!

Daher erfolgt hier zu einigen der zu bearbeitenden Dateien eine genauere Beschreibung; es ist sehr wichtig zu wissen, was ihr hier ändert!

PAM common settings für alle Services
<SMALL>PAM steht für "Pluggable Authentication Modules". Diese regeln unter Linux den Modus für die Zugriffs-Liste. Standardmässig werden bei einem Unix-System die Benutzer-Infos aus den Dateien: /etc/passwd /etc/groups und /etc/shadow gelesen.
Diese kann man aber im PAM Modul ändern, so dass die Infos z.B. auch aus einer mysql, oder eben LDAP Datenbank (oder beiden) geholt werden können.
Es gilt grundsätzlich, dass zuerst der erste Eintrag in der Reihenfolge abgefragt wird, dann der Zweite, dann der dritte, usw.
D.h. wenn ich einem PAM File angebebe, dass die User-Authentifizierung über LDAP, mysql, passwd erfolgen soll, wird bei einem Login erst das LDAP verzeichnis abgefragt; findet sich die Info darin erfolgt das Login, falls nicht wird die mysql, dann das passwd-file, usw. abgefragt. Ist die Information in allen angegebenen sourcen nicht verfügbar wird eine "login failed" fehlermeldung ausgegeben.</SMALL>

/etc/pam.d/
<SMALL>Im Verzeichnis /etc/pam.d werden die Konfigurationsdateien für jeden Service gespeichert, der die PAM Module nutzt. In unserem Fall also z.B. samba/ldap.</SMALL>

/etc/pam.d/common-account
<SMALL>Das Account Modul regelt ob und wie sich ein benutzer einloggen kann und schaut z.B. nach ob das PW abgelaufen ist, er sich nur zu bestimmten tagen einloggen darf oder ob er sich remote bzw. über die Konsole anmeldet, usw.</SMALL>

account     required        pam_unix.so
account     sufficient      pam_ldap.so

/etc/pam.d/common-auth
<SMALL>Im Auth-Modul wird geprüft ob es den Benutzer gibt, dieser ein gültiges Passwort eingegeben hat und zu welcher Gruppe dieser gehört. (Standardmässig sind das die Files: /etc/passwd, /etc/shadow und /etc/group)</SMALL>

auth    sufficient     pam_unix.so nullok_secure
auth    sufficient     pam_ldap.so use_first_pass
auth    required       pam_deny.so

/etc/pam.d/common-password
<SMALL>Dieses Modul regelt das updaten/ändern des User-Passworts</SMALL>

password        sufficient      pam_unix.so nullok obscure min=4 max=8 md5
password        sufficient      pam_ldap.so use_first_pass use_authtok
password        required        pam_deny.so

/etc/pam.d/common-session
<SMALL>Dinge die getan werden, bevor der Benutzer sich einloggt; dies sind z.B. das Mounten von User-Spezifischen verzeichnissen, Umgebungsvariablen, usw.</SMALL>

session     required        pam_unix.so
session     optional         pam_ldap.so

/etc/nsswitch.conf
<SMALL>Diese Datei enthält die Sourcen wo bestimmte system-calls ihre Informationen abrufen. Die Shell kann sich z.B. die Passwörter von Files oder Datenbanken holen, die Namensauflösung vom DNS-Server, usw.</SMALL>

passwd: compat ldap
group: compat ldap
shadow: compat ldap

NSS anpassen

/etc/libnss-ldap.conf

~ Zeile: 50

rootbinddn cn=admin,dc=samba-ldap,dc=local

~ Zeile: 179

nss_base_passwd ou=Users,dc=samba-ldap,dc=local?one
nss_base_passwd ou=Machines,dc=samba-ldap,dc=local?one
nss_base_shadow ou=Users,dc=samba-ldap,dc=local?one
nss_base_group ou=Groups,dc=sama-ldap,dc=local?one

~ Zeile: 217

pam_password md5

~ Zeile: 275

ssl no

Nun haben wire s fast geschaft. Jetzt müssen wir nur noch die Grunddaten in die LDAP Datenbank schreiben.

Da bei manchen Installationen beim ersten Start nach der Installation nur fehlerhafte Daten in die Datenbank geschrieben werden, werden wir diese erstmal stoppen und dann löschen. Nach einem erfolgreichen löschen der Daten müssen wir allerdings vor dem Eintragen unserer Daten die LDAP Datenbank wieder starten.

debain-pdc:~# /etc/init.d/slapd stop
debian-pdc:~# rm /var/lib/ldap/.
debian-pdc:~# /etc/init.d/slapd start

Nun ist die Datenbank soweit vorbereitet damit wir unsere Daten mit smbldap-populate einspielen:

smbldap-populate

Ausgabe:

Populating LDAP directory for domain SAMBA-LDAP
(S-1-5-21-2856778860-2055491937-1446371655)
(using builtin directory structure)
 
adding new entry: dc=samba-ldap,dc=local
adding new entry: ou=Users,dc=samba-ldap,dc=local
adding new entry: ou=Groups,dc=samba-ldap,dc=local
adding new entry: ou=Machines,dc=samba-ldap,dc=local
adding new entry: ou=Idmap,dc=samba-ldap,dc=local
adding new entry: uid=root,ou=Users,dc=samba-ldap,dc=local
adding new entry: uid=nobody,ou=Users,dc=samba-ldap,dc=local
adding new entry: cn=Domain Admins,ou=Groups,dc=samba-ldap,dc=local
adding new entry: cn=Domain Users,ou=Groups,dc=samba-ldap,dc=local
adding new entry: cn=Domain Guests,ou=Groups,dc=samba-ldap,dc=local
adding new entry: cn=Domain Computers,ou=Groups,dc=samba-ldap,dc=local
adding new entry: cn=Administrators,ou=Groups,dc=samba-ldap,dc=local
adding new entry: cn=Account Operators,ou=Groups,dc=samba-ldap,dc=local
adding new entry: cn=Print Operators,ou=Groups,dc=samba-ldap,dc=local
adding new entry: cn=Backup Operators,ou=Groups,dc=samba-ldap,dc=local
adding new entry: cn=Replicators,ou=Groups,dc=samba-ldap,dc=local
adding new entry: sambaDomainName=SAMBA-LDAP,dc=samba-ldap,dc=local
 
Please provide a password for the domain root:
Changing password for root
New password : samba-ldap
Retype new password : samba-ldap

Jetzt können wir den smbd Final neustarten und versuchen auf die Freigaben zu zugreifen.

/etc/init.d/samba restart

Related Links

|| Link | Beschreibung
[http://www.openldap.org/|openldap.org] | Der bekannte LDAP Server für Linux, Dokumentation
[http://www.yolinux.com/TUTORIALS/LinuxTutorialLDAP.html|YoLinux LDAP Tutorial] | Gutes tutprial mit lauffähigem Beispiel
[http://www.pro-linux.de/t_office/openldap-adressbuch.html|Openldap Adressbuch] | Infos für die integration in Outlook/Thunderbird/etc. Clients
[http://www.linux-magazin.de/heft_abo/ausgaben/2001/05/straffe_verwaltung|Linux-Magazin: OpenLDAP Praxis] | Einige interessante Info szum Aufbau von LDAP Servern
[http://www.samba-ldap.de/|samba-ldap.de] | Eine Ganze Webseite, die sich mit dem Thema beschäftigt
||

Related Downloads

|| File | Beschreibung
[http://phpldapadmin.sourceforge.net/|phpLDAPadmin] | Sehr schöne Weboberfläche für die Administration von LDAP-Servern
[http://www-unix.mcs.anl.gov/~gawor/ldap/|LDAPBrowser] | JAVA LDAP-Browser um die LDAP-Verbindung zu testen und Einträge zu Erstellen; klappt damit manchmal besser als mit dem Web-Tool!
||

DHCP

DHCP steht für <I>Dynamic Host Configuration Protocol</I> und ist ein Protokoll, mit dem sich ein Computer selbständif fürs Netzwerk konfigurieren kann.

[stextbox id=“note“ caption=“Hinweis“]Falls beim Start des DHCPs ein Fehler kommt, muss man ihn vorher evtl. auf eth1 (statt standardmässig eth0) um konfigurieren.
Bei Debian geht das so:

vi /etc/default/dhcp

, dort das verwendete (interne) interface eintragen und mittels:

dpkg-reconfigure dhcp

neu Konfigurieren.[/stextbox]

Nun öffnen wir die DHCP Konfigurations-Datei mittels: vi /etc/dhcpd.conf -Falls diese Datei noch nicht existiert, muss sie erstellt werden.
Darin schreiben wir folgendes (evtl. schon vorhandenen Text löschen):

subnet 10.1.1.0 netmask 255.255.255.0
{
  # Global options
  range 10.1.1.100 10.1.1.240;
  option subnet-mask 255.255.255.0;
  option routers 10.0.0.1;
  option domain-name-servers 10.1.1.3;
  option domain-name "home.lan";
  option ip-forwarding on;
  option netbios-node-type 1;
}

Mit dem obigen Code definieren wir mit der Zeile subnet 10.1.1.0 netmask 255.255.255.0 ein Klasse-A-Netzwerk (10.1.1.x) mit der Netzmaske: 255.255.255.0, dies entspricht der Konfiguration, die wir im ersten Artikel bei allen Computern eingetragen haben.
Innerhalb der geschweiften Klammern können wir dann angeben, wie die einzelnen PCs konfiguriert werden sollen:

  • der DHCP-Server IP-Adressen von 10.1.1.100-10.1.1.240 vergeben kann <SMALL>(range 10.1.1.100 10.1.1.240)</SMALL>
  • die subnet maske immer auf 255.255.255.0 gesetzt wird <SMALL>(option subnet-mask 255.255.255.0;)</SMALL>
  • Das Standard Gateway auf: 10.1.1.1 <SMALL>(option routers 10.1.1.1;)</SMALL>
  • Der DNS Server auf 10.1.1.3 (Das wird später unser DNS) <SMALL>(option domain-name-servers 10.1.1.3;)</SMALL>
  • Das DNS Suffix auf home.lan gesetzt wird; d.h. es werden allen lokalen Namen der Zusatz home.lan angehängt. So kann man später einfach pc01 wählen, anstatt der volle Name: pc01.home.lan. Dies macht natürlich nur Sinn, wenn man nachher den DNS Server noch aufsetzt… g<SMALL>(option domain-name "home.lan";)</SMALL>
  • IP-Forwarding aktiviert wird <SMALL>(option ip-forwarding on;)</SMALL><LI>NetBIOS über TCP/IP aktiviert wird <SMALL>(option netbios-node-type 1;)</SMALL>

Nun würden alle PCs jeweils eine zufällige IP-Adresse von 10.1.1.100 bis 10.1.1.240 bekommen, was zwar ganz praktisch ist, wenn mal ein fremder PC ans Netzwerk angeschlossen wird, aber eher weniger geeignet, für unsere festen PCs, da wir uns ja dann nie recht wüssten was für eine IP wir gerade haben. Deshalb geben wir den festen PCs im Netzwerk auch eine feste IP-Adresse.
Diese definieren wir mit:

host pc-name
{
  hardware ethernet 00:00:00:00:00:00;
  fixed-address 0.0.0.0;
}

host pc-name leitet hier die Konfiguration für den PC mit dem namen pc-name ein, die Optionen in den geschweiften Klammern bedeuten:

  • Die Physikalische Adresse der Netzwerkkarte des PCs pc-name (du findest diese Adresse raus, wenn du in Windows 2000/XP unter Start-Ausführen-cmd ipconfig /all eingibst*) <SMALL>(hardware ethernet 00:00:00:00:00:00; )</SMALL>
  • Die feste IP Adresse, z.B. 10.0.0.10 für den ersten PC <SMALL>(fixed-address 0.0.0.0;)</SMALL><SMALL>*Windows zeigt die Hardware-Adresse in der Form 00-AA-00-00-00-00 an; für die DHCP-Konfiguration musst du aber : als Trenner verwenden und nicht -!</SMALL>

Ein solcher host-block musst du nun für jeden PC im Netzwerk definieren, der eine feste IP-Adresse bekommen soll; diese Blöcke müssen wiederum innerhalb des subnet-blocks stehen.
Für unsere 3 PCs aus dem ersten Beitrag sähe die Konfigurationsdatei dhcpd.conf also so aus (Die Physikalischen Adressen sind rein zufällig und müssen angepasst werden!):

################################################################################
#                                                                              #
# DHCP Configuration for home.lan on eth1                                 #
#                                                                              #
################################################################################
 
subnet 10.1.1.0 netmask 255.255.255.0
{
  #Globale Optionen
  range 10.1.1.100 10.1.1.240;
  option subnet-mask 255.255.255.0;
  option routers 10.0.0.1;
  option domain-name-servers 10.1.1.3;
  option ip-forwarding on;
  option netbios-node-type 1;
 
  #Einzelkonfigurationen
  host pc01
  {
    hardware ethernet 00:FF:00:33:00:BB;
    fixed-address 10.1.1.10;
  }
  host pc02
  {
    hardware ethernet BB:00:20:00:FF:00;
    fixed-address 10.1.1.20;
  }
  host pc03
  {
    hardware ethernet 22:FF:00:00:00:AA;
    fixed-address 10.1.1.30;
  }
 
}

Damit hättest du den DHCP-Server auch schon fertig konfiguriert!
Nun kannst du den DHCP-Server starten mit:

/etc/init.d/dhcp start

Related Links

|| Link | Beschreibung
[http://www.geo.uni-bonn.de/members/kuepper/linux/DHCP.txt|DHCP-Textfile] | Umfangreiche Informationen über die Einstellungsmöglichkeiten beim DHCPD
||

Zusätzliche Services Installieren

Nachdem wir nun ein sicheres Gateway installiert und dieses abgeschottet haben, kommen wir zum dritten Teil des Workshops: Das konfortable Verwalten des Netzwerks mittels DHCP und DNS, sowie das aktivieren von Services auf Drittrechnern, wie z.B. Webserver mittels Port Forwarding.
Zum Schluss wird noch gezeigt, wie man die Firewall selbstständig erweitern kann.

Continue reading Zusätzliche Services Installieren

Linux Fileserver

Diese Seite beschreibt den Zusammenbau, Installation, Konfiguration und ggf. Migration eines Linux Fileservers mit 2×3 Festplatten je im RAID5 Verbund auf Basis von CentOS.

Da dieser Server nicht als Firewall Rechner dient, werden wir im Nachhinein daraus noch DHCP, DNS und letztendlich einen kompletten NT-Domaincontroller mit Samba bauen.

PS: Wer ein nicht ganz so anspruchsvolles Setup will, sollte sich die Seite: Linux Fileserver (alte Version) anschauen.

Continue reading Linux Fileserver

CentOS basis Installation

rootserver kann man heute fast zum Schnäppchenpreis bekommen. Jedoch ist es sehr wichtig, dass man sich mit der Materie auskennt, da ansonsten ein falsch konfigurierter Server schnell gehackt wird.

Ich setze deshalb in sämtlichen rootserver tutorials fundiertes linux wissen voraus und werde nicht auf Linux-Basics eingehen.

Continue reading CentOS basis Installation

SQL

__ Dieser Workshop soll in die Programmierung mit SQL mit VisualBasic als Programmiersprache einführen.

Selbstverständlich kann man damit auch mit ASP, PHP oder einer anderen Programmiersprache auf SQL zugreifen. __

Einleitung

Da man oft mit Datenbank zugriffen arbeitet, wird hier eine Visual Basic unabhängige Datenbanklösung als die in Büchern beschriebene gezeigt.
Die Lösung basiert auf "SQL" und ist wird auch in anderen Programmiersprachen verwendet. SQL lässt sich auch ganz gut in Visual Basic einbinden.

Was ist SQL?

SQL = Structured Query Language, wird dazu verwendet um unabhängige Datenbank abfragen auszuführen. Es spielt dabei keine Rolle, was für eine Datenbank (Access, mySQL, DBase) verwendet wird.
Selbstverständlich kann man mit SQL noch viel mehr machen als nur einfache abfragen auszuführen, wen also die Datenbank Anbindung interessiert, wird empfohlen, hierzu weitere Literatur zu beschaffen.

Welche Schritte sind zu tun, um auf eine SQL Datenbank zuzugreifen?

Um mit SQL auf eine (Access) Datenbank zuzugreifen sind zunächst einige Schritte erforderlich, das nachfolgende Beispiel veranschaulicht dies:

'--Dieser Teil braucht nur einmal gemacht zu werden--
'Variablen deklarieren
Dim Conn As Object
Dim SQLQUERY As Object
Dim DBPath As String
Dim SQL As String
 
'Datenbank Pfad bestimmen
DBPath = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=K:daten.mdb"
 
'Datenbank Objekt erstellen
Set Conn = CreateObject("ADODB.Connection")
'Die Datenbank öffnen (Conn)
Conn.Open DBPath
 
'--Dieser Teil wird jeweils vor jeder abfrage ausgeführt--
'SQL Befehl festlegen
SQL = "SELECT * FROM tblLogin"
 
'Den SQL Befehl auf die Datenbank ausführen und die Abfrage'in der "Variablen"* SQLQUERY speichern
Set SQLQUERY = Conn.Execute(SQL)
 
'Solange die Datenbank nicht am ende angelangt ist'(EOF = EndOfFile) Gib das Feld "UserLoginName" aus
While Not SQLQUERY.EOF
  MsgBox (SQLQUERY("UserLoginName"))
  SQLQUERY.MoveNext
Wend
'Gehe wieder zum ersten Datensatz
SQLQUERY.MoveFirst
 
'--Dieser Teil kommt jeweils immer am schluss--
'Datenbank schliessen
Conn.Close
  • SQLQUERY ist eigentlich ein Objekt, es fällt aber leichter, dies als Variable darzustellen.

Die SQL Anweisungen

Nun kann man mit sogennanten "SQL Statements" auf eine Datenbank verschiedene Arbeiten durchführen, bsp. Auslesen, Eintragen oder Löschen:

Abfragen mit SELECT

Mittels dem Befehl SELECT können einzelne Felder, Datensätze oder ganze Tabellen abgefragt werden.
Syntax:

SELECT TabellenFeld FROM Tabelle [WHERE TabellenFeld = Wert]

Einfügen mittels INSERT

Mittels INSERT können Datensätze eingefügt werden
Syntax:

INSERT INTO Tabelle [(Tabellenfeld1, Tabellenfeld2)] VALUES ('Wert1', 'Wert2')

Modifizieren mittels UPDATE

Mittels UPDATE können Datensätze modifiziert werden
Syntax:

UPDATE Tabelle WHERE TabellenFeld = 'Wert' SET (TabellenFeld1 = 'Wert1', TabellenFeld2 = 'Wert2')

Related Downloads

|| File | Beschreibung
[http://www.tech-island.com/scripts/download.php?action=getFile&id=73|SQL Einbindung in Visual Basic] | In vielen Visual Basic Büchern ist eine Datenbank Zugriffs Variante beschrieben, die auf VB Active X Controlls basiert. -Wer dies nicht will, findet in diesem Dokument eine Beschreibung, wie man SQL in VB weitgehend unabhängig einbinden kann.
||

Outlook Express Erweitern und Absichern

[stextbox id=“warning“ caption=“Hinweis“]Diese Seite ist unfertig, wird aber nicht mehr aktualisiert oder erweitert, da ich inzwischen von Outlook Express nach Thunderbird gewechselt bin. – Grund war die bessere IMAP Unterstützung in thunderbird und die vielen tollen plugins.
Zu Referenz-Zwecken lass ich diese Seite jedoch „provided as is“ so stehen.[/stextbox]

Outlook Express Sicherheit

Outlook Express Erweitern

Schaust du machnmal neidisch auf die Konkurenz Mailprogramme, weil diese erweiterte Möglichkeiten haben? -Leider hat Outlook Express von Haus aus nicht so viel zu bieten, aber es lässt sich mit zahlreichen externen Tools quasi zum Super-Mailprogramm einrichten! 😉

URLs immer in neuem Browserfenster öffnen

Wenn man in Outlook Express eine Internetadresse anklickt, wird diese das erste mal zwar in einem neuen Browserfenster geöffnet, beim anklicken einer zweiten Adresse wird diese aber im gleichen Browserfenster geöffnent wie zuvor. -Dies kann manchmal ziemlich nerven, da man ja u.U. den Inhalt der Seite noch nicht gelesen hat.

So kann man einstellen, dass URLs in OE immer in einem neuen Fenster geöffnet werden:

# Unter <WINMENU>Arbeitsplatz</WINMENU> auf <WINMENU>Extras</WINMENU>-"Ordneroptionen" gehen
# Unter dem Tab "Dateitypen" so lange runterscrollen, bis: "URL:HTTP (HyperText Transfer Protocol)" erscheint
# Hier auf "erweiter" klicken, danach den Eintrag "open" auswählen und "bearbeiten" drücken
# Nun nur noch das Kästchen "DDE verwenden" deaktivieren und überall auf "ok" klicken

Ab jetzt werden URL’s in OE immer in einem neuen Fenster geöffnet.

Mails Filtern mit Hamster

blabla

Outlook Express reparieren

Einige lästige Bugs und fehlerhafte Funktionen machen das benutzen von Outlook teilwiese etwas lästig – Das muss nicht sein! Es gibt auch hierfür zahlreiche Workarounds um OE zu zähmen und es seinen konkurrenten mindestens ebenbürtig zu machen!

Standardspeicherpafad für Anlagen festlegen

Der Standardspeicherphad für Anlagen wird manchmal von OE eigenwillig auf den "Eigenen Dateien" Ordner gesetzt, obwohl man seine Dateien immer woanders speichert und sich so imnmer mühsam wieder durch die Ordner klicken muss.

Wenn OE also wieder mal "vergessen" hat, wo die Anlagen gespiechert werden sollen, hilft folgender Eintrag in der registry:

  • Start – Ausführen – Regedit
  • Zum Schlüssel: HKEY_CURRENT_USERIdentities{GUID}SoftwareMicrosoftOutlook

Express5.0Save Attachment Path durchklicken

  • Neuen Standardpfad Eintragen

Ab jetzt sollte sich OE den "neuen" Pfad wieder merken!

Übrigens: Es gibt noch einen etwas "unsaubereren", dafür aber auch einfachern Weg:

Beim nächsten mal Speichern einfach inter den Ordner eine Menge ""s anhängen, also z.B. für C:Downloads: C:Downloads\\\\\\\\\\\\\\\
\ etc.
Jetzt wird bei jedem Speichern einer der / abgezogen, aber die Datei immer unter C:Downloads gespeichert. -Und wenn sich die backslashes dann dem Ende nähern, einfach wieder neue Anfügen! 😉

Ohne Bugs im Usenet

-kommt noch-

Related Links

|| Link | Beschreibung
[http://support.microsoft.com/?kbid=256953|MS KB: How to Configure Outlook Express to Open Links in E-mail Messages in a New Browser Window] | Microsoft gibt in diesem Knowledgebase Artikel eine offizielle Beschreibung, wie man OE links in einem neuen Fenster öffnen kann
[http://www.arcorhome.de/newshamster/micha/|Hamster Infoseite] | Hier wird der Hamster und dessen Konfiguration sehr genau beschrieben
[http://www.tglsoft.de/misc/hamster_de.htm|Hamster] | Die Downloadseite des Hamsters; hier kann man auch neuere Beta-Versionen downloaden was sich für geübtere user durchaus lohnen kann.
||

Related Downloads

|| File | Beschreibung
[http://hamster.arcornews.de/tgl/hamster/Hamster.2.0.0.1.zip|Hamster Mailserver] | Der kleine Mailserver filtert nicht nur unerwünschte Mails raus…
[http://www.morver.de/download/mv10305.zip|Morver] | Morver ist ein kleiner Miniserver mit eingebauter Artikelkorrektur. Er wird wie Hamster zwischen den Newsreader und den Server gesetzt und bearbeitet vor dem Posten die Artikeltexte. So können Postings auch korrigiert werden, ohne einen Hamster aufzusetzen. Die Einbindung von Korrnews erfolgt automatisch. Hamster kann selbstverständlich auch eingesetzt werden.
||

Internet Explorer Erweitern und Absichern

[stextbox id=“warning“ caption=“Achtung – Tote Seite“]Diese Seite wird nicht mehr aktualisiert und bleibt so wie sie ist;
__dadurch kann es sein, dass der Inhalt nicht mehr Zeitgemäss- und auch nicht richtig ist.
Weiter könnten diverse Rechtschreibfehler__ vorhanden sein.
Die Seite bleibt nur noch zu Referenz-Zwecken erhalten.[/stextbox]

__Den Internet Explorer von Microsoft kann man sehr indivduell erweitern. Viele möglichkeiten um den IE zu personalisieren sind weitgehend unbekannt; das spektrum reicht vom erweitern des Kontextmenus über das anpassen der Dateitypen, die automatisch geladen/angezeigt werden sollen, bis zum "skinnen" des Browsers oder das hinzufügen benutzerdefinierten Zonen.

Ein weichtiger Abschnitt ist auch dem Absichern des Browsers gegen Viren und Würmer gewidmet.__

IE und Sicherheit

Da ich oft danach gefragt werde wieso ich mit meinem IE bis jetzt noch keine einzige Sicherheitslücke erfolgreich testen konnte, werde ich den ersten Abschnitt dem Absichern des Browsers widmen, da es im Prinzip gar nicht so aufwändig ist und man die Sicherheit vor dem Erweitern lösen sollte.

IE und die "Zonen"

Sowohl der Internet Explorer, wie auch Outlook Express verwenden sogenannte "Zonen" um die Seiten als "sicher" oder "unsicher" einzustufen. Standardmässig gibt es 5 solcher Zonen: "Internet", "Lokales Intranet", "Vertrauenswürdige Sites", "Eingeschränkte Sites" und als spezielle Zone "Arbeitsplatz". -Letzere ist im IE unter "Extras-Internetoptionen-Sicherheit" ausgeblendet.
Für jede dieser Zonen kann man benutzerspezifische Einstellungen vornehmen. Die Standardeinstellungen sind jedoch meist nicht optimal, bzw. nicht sicher genug.

Die Zonen sind für folgende Benutzung vorgesehen:{131:right}

  • Internet

Dies ist die ‚Standardzone‘; alle aufgerufenen Internet-Seiten werden in dieser Zone ausgeführt, sofern man sie nicht in eine andere Zone verschoben hat.

  • Lokales Intranet

Diese Zone ist dazu gedacht um auf Dateien in einem Netzwerk zuzugreifen. Alle Adressen mit freigabenamen wie z.B. $freigabe werden in dieser Zone ausgeführt.

  • Vertrauenswürdige Sites

In diese Zone kann man die Internet-Seiten eintragen denen man vertraut, beispielsweise die Windows-Update Seite (windowsupdate.microsft.com), da diese activex Programme ausführen muss um zu ermitteln welche updates schon installiert sind. Standardmässig werden hier, wie gesagt, z.B. activex controlls ausgeführt.

  • Eingeschränkte Sites

Hier sollen Seiten eingetragen werden, denen man wenig vertraut; beispielsweise warez oder sexseiten.

  • Arbeitsplatz

Diese Zone ist eigentlich nicht vorgesehen um im Internet Explorer benutzt zu werden und ist deswegen in den Internetoptionen auch nicht sichtbar, wird aber gebraucht weil ja bekanntermassen seit Windows 98 der IE fest ins System integriert ist und so auch jedes lokal geöffnete Verzeichnis (z.B. C:Windows) in einem Internet Explorer Fenster gestartet wird. Diese Zone hat standardmässig keine Einschränkungen und gillt für alle auf der lokalen Festplatte aufgerufenen Daten; also alle Daten die sich schon auf dem PC befinden. (z.B. C:webmeine_webseite.htm)

Alle Zonen haben Standardmässig keine Seiten voreingetragen.

Zonen sicherer machen

Leider ist besonders die Internetzone Standardmässig zu locker eingestellt; dies weil Microsoft -und viele Nutzer- wert darauf legen dass bestimmte Plugins wie z.B. Flash, Quicktime, usw. problemlos abgespielt werden. Da es aber schwierig ist festzustellen, ob ein plugin "sicher" oder "unsicher" ist, hat man nur die Wahl zwischen maximalem Konfort und Sicherheit.
-Da aber fast auschliesslich alle Sicherheitslücken auf eben diesen aktivierten Plugins/Controlls basieren, sollte man es sich genau überlegen wie wichtig es ist, dass Flash Seiten automatisch angezeigt werden, oder ein, in eine Webseite eingebetete Video-Datei automatisch startet.

Aber genug Therorie, schliesslich wollen wir den Internet Explorer jetzt mal sicher machen.

Also gehen wir auf: ‚Extras-Internetoptionen-Sicherheit‘ und wählen dann bei ‚Internet‘ die Schaltfläche ‚Stufe Anpassen‘.
Hier sollte grundsätzlich alles auf "deaktiviert" eingestellt sein, ausser:

  • Download: Dateidownload, Schriftartdownload
  • Scripting: ActiveScripting (das ist JavaScript)
  • Verschiedenes: Dauerhaftigkeit der Benutzerdaten, META-REFRESH zulassen, unverschlüsselte Formulardaten übermitteln (kann auch auf ‚Eingabeaufforderun‘ gestellt werden, muss aber nicht),
  • Microsoft-VM: Java-Einstellungen sollte auf "Hohe Sicherheit stehen"
  • Zugriffsrechte für Softwarechannel: Sollte mindestens auf ‚Mittlere Sicherheit‘ stehen, besser aber noch ‚Hohe Sicherheit‘

Damit kann man vernünftig und sicher im Internet Surfen, ohne auf grundlegende Funktionen wie z.B. JavaScript zu verzichten.

Sicherheitslücken, Dialer, usw. können nun auch nicht mehr "versehentlich" ausgeführt werden, dafür sieht man nun bei einigen Seiten folgende Meldung:
{img fileId="56" thumb="y" alt="" rel="box[g]"}

Dies heisst nicht unbedingt, dass die Seite unsicher ist, sondern einfach dass ein plugin oder controll in der Seite eingebetet ist. Dies kann ein Flash Film sein, aber auch ein Dialer oder ein eingebundenes Video.

Was aber nun, wenn bestimmte Plugins auf bestimmten Seiten benötigt werden?

In diesem falle, also z.B. wenn man eine Flashseite betrachten will, oder ein Video anschauen kann man die Adresse der Seite kopieren (CTRL+C), dann "Extras-Internetoptionen-Sicherheit" aufrufen, die Zone "Vertrauenswürdige Sites" anwählen, auf "Sites" klicken und die Adresse der Seite dort Einfügen. Danach Alles bestätigen und die Seite aktualiseren; ab jetzt wird das Flash/Video wieder angezeigt. Für grosse Seiten kann man übrigens einen Stern () setzen um alle subdomains miteinzuschliessen, also z.B. ".microsft.com". Benutzt man das Windowsupdate sollte man mindestens die Adresse: windowsupdate.microsoft.com dort Eintragen, da diese ansonsten nicht mehr funktioniert.

Noch einfacher geht das mit den Power Tweaks von Microsoft. Diese fügen unter dem Menu ‚Extras‘ einen Menupunkt hinzu, bei dem man eine Seite mit nur einem Mausklick in die Zone ‚Sichere Sites‘, bzw. auch ‚Eingeschränkte Sites‘ legen kann; so reicht ein Mausklick und ein klick auf ‚Aktualisieren‘ um z.B. eine Flash-Seite anzuzeigen.

MS Java Interpreter entfernen

Der Hauseigene Java interpreter von Microsoft ist umstritten und stellt unter gewissen Umständen auch ein Sicherheitsrisiko dar. Da die meisten Webprogrammierer Ihre Applets sowieso nur unter Sun’s original Java erstellen, kann man den MS Java Interpreter (jview) deaktivieren.

Dazu geht man unter "Start" auf "Ausführen", gibt dort cmd ein und drückt auf ENTER.

In der nachfolgenden Konsole den Befehl:

regsvr32 /u javaprxy.dll

eingeben und mit ENTER ausführen.

Nachteil dieser Lösung: Anwendungen, die auf Microsofts Java angewiesen sind, funktionieren nicht mehr, was aber anhand der sehr geringen Zahl an MS Java Applets durchaus vernachläsigbar ist.

IE Erweitern

Neues Fenster automatisch maximieren

Der Internet Explorer bietet leider keine option um neue Fenster immer maximiert zu öffnen, stattdessen nimmt er immer die zuletzt verwendete auflösung was nach dem besuchen von Seiten, die die Fenstergrösse ändern zu nervigen klein fenstern führen kann. Tools wie der MaxIEmizer setzen dem ein Ende und maximieren automatisch jedes neue Fenster.

Das Kontextmenu erweitern

{img fileId="57" thumb="y" rel="box[g]" imalign="right" align="right"} BILD Das Kontextmenu, das bei einem Rechtsklick erscheint kann eifach erweitert werden:

# Start – Ausführen und ‚regedit‘ eingeben
# Zum schlüssel: HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerMenuExt durchklicken
Nun kann man einen neuen Unterschlüssel mit dem Namen des Eintrags der erscheinen soll angeben und als Standardwert den Pfad zur Datei, die man beim klick darauf aufrufen will.

Dies kann z.B. eine HTML-Datei sein, die den W3C HTML Validator aufruft und die Seite anzeigt, oder auf das Script pcwIESpell.VBS verweisen um die MS Word Rechtschreibeprüfung bei Webformularen einzusetzen. Die Möglichkeiten sind sehr vielfälltig, so kann man auf den Inhalt der Seite mit einem selbst erstellten script/programm zugreifen.
Empfehlenswert hierzu finde ich folgende Einträge: W3C HTML Validator, W3C CSS Validator und pcwIESpell.VBS .

Als Anschauungsbeispiel wollen wir uns mal den Eintrag zum W3C HTML Validator selbst erstellen, obwohl man diesen auch als Selbstinstallierende Datei runterladen könnte.

Erstmal gilt es eine HTML-Datei (z.B.: C:w3chtml.htm) mit folgendem Inhalt zu erstellen:

<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
window.open("<a href="http://validator.w3.org/check?ss=&uri="" target="blank">http://validator.w3.org/check?ss=&uri="</a> + external.menuArguments.location.href,"", "toolbar=yes,location=yes,directories=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes,top=0,left=0,width=" +(screen.width) +",height=" +(screen.height));
</SCRIPT>

Javascript-kundige werden sich bei diesem Code etwa vorstellen können, was passiert: Damit wird ein neues popup-fenster in vollbildgrösse mit der URL des W3C-Validators (http://validator.w3.org/) aufgerufen und als parameter die aktuelle Seite, die mittels der Objektvariable: ‚external.menuArguments.location.href‘ bestimmt werden kann angehängt.

UPDATE 26.05.2005: Aus irgendeinem undefinierbaren Grund haben die Microsoft IE-Programmierer entschieden, dass die aktuelle Seite nicht mehr über: ‚external.menuArguments.document.location.href‘, sondern nur noch über: ‚external.menuArguments.location.href‘ abgerufen werden kann. Hier wurde vormals die "alte" Variante beschrieben; wenn also die Scripts nicht mehr funktionieren, muss man ggf. diese Zeile anpassen.
Mehr Infos: http://www.philringnalda.com/blogthis/

Aber zurück zum Thema: Diese Datei nun Speichern und unter: ‚HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerMenuExt‘ einen neuen Schlüssel mit dem Namen: "HTML Validieren" erstellen.
Dann in diesem neuen Schlüssel mittels Rechtsklick [Neu] wählen und den Pfad zur HTML Datei angeben, also z.B. ‚C:w3chtml.htm‘

Ab jetzt kann man Webseiten einfach durch rechtsklick + ‚HTML Validieren‘ vom HTML Validator überprüfen lassen.

Übrigens, wer noch eine weitere Anregung möchte um selbst kreativ zu werden:
Die Seite http://dict.leo.org/ übersetzt fremdsprachige Wörter in die Deutsche Sprache und umgekehrt. Da die Seite auch mit URL-Parametern arbeitet, ist es nun relativ einfach möglich obiges Script so abzuändern, dass man per Rechtsklick ein Wort übersetzen lassen kann… 😉
Tip: An den selektierten Text auf einer Webseite kommt man mittels: ‚document.all.location.select()‘

Weitere Anregungen und Beispiele geben die IE Web-Entwickler tools die ebenfalls so aufgebaut sind.

Die IE-Menuleiste erweitern

Nicht ganz so einfach wie das erweitern des Kontextmenus, aber auch möglich ist das erweitern der Menus ‚Extras‘ und ‚?‘ in der Menuleiste.
Dazu muss man das in MS Visual Studio enthaltene Programm: GUIDEN utility benutzen, dass man im VisualStudio Verzeichniss unter: CommonTools findet.
-Wer das VisualStudio nicht hat, kann sich das GuidGen Utility aber auch von der Mircosoft Webseite runterladen.

{143:left}Mit diesem Tool muss man sich erstmal eine sog. Globally Unique Identifiers ID im Registry-Format generieren lassen.

Danach kann man zum registry-Pfad unter: ‚HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerExtensions‘ wechseln.
Jetzt erstellt man einen neuen Schlüssel mit der eben generierten GUID als Name.

Als Schlüsselwerte müssen darin mindestens die Zeichenfolgen ‚CLSID‘, mit einer neuen generierten ID, die das aufgerufene Programm verwendet, sowie ‚MenuText‘, dass den Text enthällt enthalten. Mit der Zeichenfolge ‚Exec‘ kann ein Programm angegeben werden, dass aufgerufen werden soll.

Wie gesagt, es ist relativ kompliziert dort Einträge einzufügen und offensichtlich will Microsoft diese Funktion den Programmierern vorenthalten.

Interessierte finden sich im Web mehr zum Thema.

JavaScript-Plugins

Einen etwas einfacheren Weg stellen sogenannte ‚JavaScript-Plugins‘ dar, diese erlauben es mittels des Zusatztools ‚Trixie‘ beliebige JavaScripts zu Webseiten hinzuzufügen. Dies kann man z.B. brauchen um Werbung aus häufig verwendeten Seiten zu verstecken, Fehler in Webseiten behehen oder sogar die Seiten mittles kleiner tools Benutzerfreundlicher zu machen.
Der Weg dorthin ist ganz einfach: Trixie installieren, danach findet man im Menu ‚Extras‘ ein zusätzlicher Menupunkt: ‚Trixie Options…‘ Dort findet sich schon eine vorauswahl an Scripts zum auswählen. Selbst erstellte Scripts kann man ins Verzeichnis Trixie/Scripts kopieren, diese werden danach jeweils in der betreffenden Seite geladen.
Weitere infos zu solchen Trixie-Scripts gibts auf der Trixie-Webseite .

Eigene Zonen erstellen

Weiter oben wurde besprochen wie man die Berechtigungen im IE mit Hilfe von Zonen einteilen kann. Von diesen Zonen kann man bei bedarf auch noch eigene erstellen, auch wenn der sinn dessen fraglich ist.
So gehts:

# Start – Ausführen und "regedit" eingeben
# Zum schlüssel: HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionInternet SettingsZones durchklicken
Jetzt kann ein neuer Schlüssel mit aufsteigender Zahl erstellt werden (also 5, 6, usw.) und darin folgende Zeichenfolgen erstellen:

"DisplayName"="Neue Zone"
"Description"="Beschreibung für die neue Zone"
"Icon"="shell32.dll#0019"

danach die DWORD-Werte:

"CurrentLevel"=0
"MinLevel"=12000
"RecommendedLevel"=12000
"Flags"=3

Leider klappt es bei der Namen der Zonen nicht so richtig und ich habe selber noch nicht raus gefunden wie man die eigenen Zonen korrekt benennen kann.

Dateien nicht automatisch downloaden

Einige Dateien, z.B. CSS-Dateien werden vom IE automatisch heruntergeladen und im Standarprogramm geöffnet. -Wer dies nicht will, geht Auf Arbeitsplatz, klickt dann auf "Extras"-"Ordneroptionen"-"Dateitypen", sucht nach der Datei, klickt auf "erweitert" und aktiviert das Kästchen bei: "Öffnen nach Download bestätigen".

Popups-Blocken

Popups blocken können nicht nur alternative Browser, sondern auch der Internet Explorer! Der einzige unterschied ist, dass man ein Zusatzprogramm dafür downloaden und installieren muss, was bei anderen Browsern automatisch installiert wird.
Das bekannteste und einfachtse Programm dafür ist der Webwasher ; erweiterte Filtermöglichkeiten wie z.B. beim Firefox Browser hat man mit Proxomitron . Leider ist letzteres nicht ganz so einfach zu konfigurieren wie Webwasher, aber nach dem durchlesen der Dokumentation und tutorials sollts schon klappen.

IE mit Skins

Wer denkt umsteigen zu müssen bloss weil der IE vermeintlich keine Skins hat, liegt falsch.
Mittels dem Microsoft eigenen webaccess Tool kann man ein Hintergrundbild für die IE Oberfläche setzen.

{148:left}!!Webseiten dynamisch verändern mit einen Proxy-Server
Oft hört man mittlerweile das Argument, man andere browser hätten mehr Möglichkeiten, wie beispielsweise das entfernen von Werbebannern, das ändern des User-Agent-Feldes, oder das blocken nur bestimmter JavaScripts, etwa zur veränderung der Statuszeile. Doch auch dies kann man relativ leicht mit einem sogenannten Proxy-Server "nachrüsten" – Und das sogar ganz Browserunabhängig.
Für diese zwecke eignet sich der Proxy: Proxomitron am besten. Alles was man dazu tun muss ist diesen herunterzuladen, ins Programmverzeichniss zu kopieren und zu starten. Hier sieht man dann schon einige Filter vorkonfiguriert, etwa zum entfernen von Werbebannern. Nun muss man nur noch dem IE bekanntmachen, dass er die Webseiten über diesen Proxy-Server laden muss: Unter: Extras-Internetoptionen-Verbindungen-"LAN-Einstellungen…" bei "Proxy Server" ‚localhost‘ eintragen und als Port-nr. ‚8080‘.

[stextbox id=“tip“ caption=“Hinweis“]Da dies nicht mehr wirklich zum Internet Explorer gehört, wird hier nur kurz eingegangen. Über die Konfiguration und Möglichkeiten von proxomitron liefert die Webseite: http://www.buerschgens.de/Prox/ ausführliche Informationen.[/stextbox]

<!–
TODO:
-MIME TYPES
-Kontextmenu
–>

Related Links

|| Link | Beschreibung
[http://www.webwasher.com/|Webwasher] | Das Tool um Poups zu Filtern
[http://www.buerschgens.de/Prox/|Proxomitron] | Proxomitron ist ein guter Freeware HTML-Proxy mit vielen Filtermöglichkeiten
[http://www.microsoft.com/windows/ie/previous/webaccess/default.mspx|webaccess] | Das webaccess tool bietet dem IE einige Zusatzfunktionen, wie beispielsweise das hinzufügen von Skins.
[http://www.mvps.org/winhelp2002/ieplus.htm|Weitere Erweiterungen auf mvps.org] | Einige weitere Plugins für den Internet Explorer, wie z.B. die Web Accessories, PowerTweaks, oder eine erweiterte Rechtschreibprüfung, die auch ohne MS Office funktioniert
[http://www.mindcracker.com/mindcracker/c_cafe/internet/ie0.asp|Customizing Internet Explorer auf mindcracker.com] | Tips für Programmierer, die eigene Plugins für den IE schreiben wollen
[http://www.aborange.de/products/freeware/maxiemizer.php|MaxIEmizer] | Der Microsoft Internet Explorer hat eine lästige Eigenart: Jedes neue geöffnete Fenster erscheint in Standardgröße mitten auf dem Bildschirm. MaxIEmizer, sorgt dafür, dass Programmfenster des Internet Explorers in maximaler Größe erscheinen und der Bildschirm komplett ausgenutzt wird.
[http://www.bhelpuri.net/Trixie/|Trixie-Webseite] | Mittels diesem IE Add-on lassen sich eigene JavaScripts in fremden Webseiten ausführen.
[http://www.bhelpuri.net/Snippy/default.htm|Snippy] | Mit diesem Plugin lassen sich konfortabel Teile einer Webseite markieren und als Bild in die Zwischenablage kopieren, um es z.B. per mail weiter zu senden
[http://www.gurusheaven.de/|Gurus Heaven] | Eine Seite, die sich mit Browser Sicherheit- und Anonymität befasst
[http://www.misitio.ch/|misito.ch] | Viele Tips rund um den IE
||

Related Downloads

|| File | Beschreibung
[http://www.heise.de/ct/ftp/projekte/iecontroller/|ct IE-Controller] | Die Zeitschrift ct hatte mal ein gutes Programm zum gezielten Absichern des Internet Explorers entwickelt
[http://www.pcwelt.de/public/pcwIESpell.z.exe|pcwIESpell.VBS] | Mit diesem PC-Welt Script kann man die Microsoft Word Rechtschreibkorrektur in den Internet Explorer einbinden
[http://www.nirsoft.net/utils/ctie.html|CustomizeIE] | Mit CustomizeIE lassen sich die Menueinträge bei ‚Extras‘ und ‚?‘, sowie der Toolbar individuell anpassen
[http://www.iespell.com/|ieSpell] | Eine erweiterte Rechtschreibprüfung um die Textformulare auf Webseiten einer Rechtschreibüberprüfung zu unterziehen. Nützlich, wenn man oft viel Text über Web-Formulare versendet, wie z.B. bei WebMail, Blogs, Content Management Systemen,…
[http://www.microsoft.com/downloads/details.aspx?amp;displaylang=en&familyid=94551f58-484f-4a8c-bb39-adb270833afc&displaylang=en|GUID Utility] | Das GUID Utility von Microsoft um selbst sog. Globally Unique Identifiers (GUIDs) zu generieren
[http://www.tech-island.com/scripts/download.php?action=getFile&id=71|IE Web-Entwickler tools] | Eine nette sammlung sehr nützlicher tools, wenn man selbst Webseiten erstellt
[http://download.microsoft.com/download/ie5/Utility/1/W9XNT4MeXP/EN-US/pwrtwks.exe|Power Tweaks] | Seiten als Vertrauenswürdig/Eingeschränkt einstufen über das Kontextmenu, URL einer Seite in die zwischenablage kopieren und online/offline Button
[http://www.bhelpuri.net/Trixie/TrixieSetup.htm|Trixie] | Download des Trixie Add-ons
[http://www.microsoft.com/downloads/details.aspx?FamilyID=8B5762D2-077F-4031-9EE6-C9538E9F2A2F&displaylang=de|Office-Tool zur Öffnungsbestätigung von Dokumenten] | Microsoft hat ein Tool entwickelt, das vor dem Öffnen eines Office-Dokuments (Word, Excel, PowerPoint oder Access) aus Internet Explorer eine Bestätigung erfordert uns somit schluss macht mit dem Unsinn Office Dokumente wie Word oder Excel im Browserfenster zu öffnen
||