Skip to content

Willkommen – Welcome

Herzlich willkommen auf meinem WordPress Blog. Dieses Blog soll keinen Schönheitspreis gewinnen und auch nicht ‘top-ranked’ sein. Es dient einzig allein als Gedankenstütze für mich. Falls andere (du) mit meinen Geschreibsel was anfangen können. Gut :-)

Welcome to my WordPress Blog. This Blog is not focused to win a beauty competion or 2be ‘top-ranked’. It is only a mnemonic to me. If you like my wish-wash… Good :-)


Nothing like 127.0.0.1

Feed the Open Source, Luke!

vmkfstools – usefull hints

You can use the ‘vmkfstools’ in an ESXi SSH-Shell to copy virtual disks, or expand them, or whatever

Expand a virtual disk:

vmkfstools -X 30G ./DISK.vmdk

Be sure not to use the *-flat.vmdk file!

After expansion use GParted to expand the partition inside the virtual disk.

Clone a virtual disk:

vmkfstools -i ./OLD.vmdk ./NEW.vmdk

 

# vmkfstools - OPTIONS FOR FILE SYSTEMS:

vmkfstools -C --createfs vmfs3
 -b --blocksize #[mMkK]
 -S --setfsname fsName
 -Z --spanfs span-partition
 -G --growfs grown-partition
 deviceName

 -P --queryfs -h --humanreadable
 -T --upgradevmfs
 vmfsPath

OPTIONS FOR VIRTUAL DISKS:

vmkfstools -c --createvirtualdisk #[gGmMkK]
 -d --diskformat [zeroedthick|
 thin|
 eagerzeroedthick]
 -a --adaptertype [buslogic|lsilogic|ide]
 -w --writezeros
 -j --inflatedisk
 -k --eagerzero
 -K --punchzero
 -U --deletevirtualdisk
 -E --renamevirtualdisk srcDisk
 -i --clonevirtualdisk srcDisk
 -d --diskformat [zeroedthick|
 thin|
 eagerzeroedthick|
 rdm:<device>|rdmp:<device>|
 2gbsparse]
 -X --extendvirtualdisk #[gGmMkK]
 [-d --diskformat eagerzeroedthick]
 -r --createrdm /vmfs/devices/disks/...
 -q --queryrdm
 -z --createrdmpassthru /vmfs/devices/disks/...
 -v --verbose #
 -g --geometry
 -x --fix [check|repair]
 vmfsPath

OPTIONS FOR DEVICES:

 -L --lock [reserve|release|lunreset|targetreset|busreset|readkeys|readresv] /vmfs/devices/disks/...
 -B --breaklock /vmfs/devices/disks/...

Synology DiskStation autoindex Multimedia files by mediaserver

NAS>
cat /etc/rc.local
mount --bind /volume1/Multimedia/MP3 /volume1/music
mount --bind /volume1/Multimedia/video /volume1/video
mount --bind /volume1/Multimedia/Bilder /volume1/photo
chmod 755 /etc/rc.local

Thanks to Wim
http://dev.eek.be/2010/01/change-folders-for-synology-media-server/

to do:
echo repair > /sys/block/md2/md/sync_action

see --> http://forum.synology.com/enu/viewtopic.php?f=39&t=32727&p=129722&hilit=echo+repair+%3E+%2Fsys%2Fblock%2Fmd2%2Fmd%2Fsync_action#p129722

Synoindex Synology DS410

use this with SSH to add files to your Mediaserverindex.

 

NAS> synoindex
Copyright (c) 2003-2011 Synology Inc. All rights reserved.

usage:
 Add:    synoindex -a filename
 Delete: synoindex -d filename
 Add folder:    synoindex -A folder
 Delete folder: synoindex -D folder
 Rename/move file/folder:    synoindex -N newfullpath oldfullpath
 Update Photo Images:        synoindex -U photo
 Execute file index: synoindex -f {index option}
 Get from DB:         synoindex -g filename -t [video|music|photo|playlist]

There is also an additional option witch is as follows.
synoindex -R [video|music|photo|playlist]

This will re-index everything in to that current region.

Schon mal “Desktop anzeigen” verlegt?

C:\Dokumente und Einstellungen\UserName\Anwendungsdaten\Microsoft\Internet Explorer\Quick Launch

Datei erzeugen namens “Desktop anzeigen.scf”

Inhalt:

[Shell]
Command=2
IconFile=explorer.exe,3
[Taskbar]
Command=ToggleDesktop

 

…und wieda da :)

Catch all network traffic except ssh with tcpdump

tcpdump -p -s0 -w tcpdump_file.cap port not 22

copy backup ntds.dit Active Directory

If you want to copy / backup Active Directory Information do the following:

(tested on Server 2008)

  • Stop Active Directory Domain Services
  • cmd.exe
  • ntdsutil –> Activate Instance NTDS –> files –> compact to c:\horst (temp Folder)

now U have a copy of your AD Information in C:\horst\ntds.dit

Now, say you backup your AD Data every night, in folders that represent every day of a month. (I know that stopping AD Services every day in your productive environment is a decision you have to make ;-) )

You can take that copy of ntds.dit, seperate your server from your productive network (stop AD Services, replace file, delete log files in c:\windows\NTDS\*.log),  and you have a look in your AD at that time.

Before you start the AD Services again you have to insert the following reg key to the registry

HKLM/System/CurrentControlSet/Services/NTDS/Parameters: “Disable DSA Database Epoch Check”:REG_DWORD=0×00000001

or change “HKLM/System/CurrentControlSet/Services/NTDS/Parameters/DSA Database Epoch” – minus times you started the AD Services since then ;-) i prefer ”Disable DSA Database Epoch Check”

have phun :)

Squid Proxy Cache mit Einbindung Windows AD

Der folgende Text wurde Quick&Dirty aus Word eingefügt, daher gibt es noch ein “hübscheres” PDF


ngud.de – Squid Proxy Cache mit Einbindung Windows AD_anon


Verwendete Software

Debian Lenny 5.0.6

Linux 2.6.26-2-686 #1 SMP Mon Aug 30 07:01:57 UTC 2010 i686 GNU/Linux

Squid 2.7.STABLE3

Samba 3.2.5-41

Kerberos krb5-config 1.22 / krb5-user 1.6.dfsg.4

Winbind 3.2.5-41

Für das Verständniss dieses Dokuments wird der Umgang mit Netzwerken, Linux Debian, Windows Domänen und VMware ESXI Servern vorausgesetzt. Hilfreich sind Kenntnisse in Kerberos, Samba und Squid.

Inhaltsverzeichnis

1 Installation Server. 3

1.1 Installation VM3

1.2 Installation benötigte Programme. 5

1.3 Konfiguration der Programme. 7

1.3.1 Allgemeine Hinweise. 7

1.3.2 etc/samba/smb.conf 7

1.3.3 etc/krb5.conf – Kerberos Konfiguration. 8

1.3.4 Konfiguration Winbind. 10

1.3.5 etc/nsswitch.conf 10

1.4 Testen der Konfiguration. 11

1.5 Konfiguration Squid. 13

1.6 Last Words. 15

2 Anhang. 16

2.1 http://wiki.samba.org/index.php/Samba_&_Active_Directory. 16


Als Basis wird ein aktuelles Debian Netinst. verwendet. Zu beziehen ist dies unter http://www.debian.org/CD/netinst/

Es wird eine VM unter ESXi installiert. Ich empfehle Squid erst ohne Authentifizierung, zur besseren Fehlersuche, zu testen

Eine funktionierende DNS Umgebung ist für die Kommunikation mit dem AD zwingende Vorraussetzung.

Im Folgenden nur die „wichtigen“ Screenshots.

image

image

image

Für Testzwecke ist ein „Speicherplatz nach Bedarf zuteilen“ in Ordnung. Für die produktive Maschine sollte man die Festplatte komplett zuweisen.

image

Anschließend in den Eigenschaften der VM noch die passenden Einstellungen vornehmen (Arbeitsspeicher, CPUs, CD/DVD Laufwerk (vorweg geladenes Debian Netinst. ISO einbinden)).

Nun kann die virtuelle Maschine gestartet werden.

image

Als Vorschlag zur Installation nur das Standard System auswählen (SPACE wählt an und ab)

image

Als root anmelden und ssh installieren, die weiteren Schritte sind dann mit Putty einfacher.

apt-get install ssh

squid2:~# apt-get update

Hit http://ftp.de.debian.org lenny Release.gpg

Ign http://ftp.de.debian.org lenny/main Translation-en_US

Hit http://ftp.de.debian.org lenny Release

Hit http://security.debian.org lenny/updates Release.gpg

Ign http://security.debian.org lenny/updates/main Translation-en_US

Ign http://ftp.de.debian.org lenny/main Packages/DiffIndex

Hit http://security.debian.org lenny/updates Release

Ign http://ftp.de.debian.org lenny/main Sources/DiffIndex

Ign http://security.debian.org lenny/updates/main Packages/DiffIndex

Hit http://ftp.de.debian.org lenny/main Packages

Ign http://security.debian.org lenny/updates/main Sources/DiffIndex

Hit http://volatile.debian.org lenny/volatile Release.gpg

Hit http://ftp.de.debian.org lenny/main Sources

Hit http://security.debian.org lenny/updates/main Packages

Hit http://security.debian.org lenny/updates/main Sources

Ign http://volatile.debian.org lenny/volatile/main Translation-en_US

Hit http://volatile.debian.org lenny/volatile Release

Ign http://volatile.debian.org lenny/volatile/main Packages/DiffIndex

Ign http://volatile.debian.org lenny/volatile/main Sources/DiffIndex

Hit http://volatile.debian.org lenny/volatile/main Packages

Hit http://volatile.debian.org lenny/volatile/main Sources

Reading package lists… Done

squid2:~# apt-get upgrade

Reading package lists… Done

Building dependency tree

Reading state information… Done

0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

# apt-get install htop ntp squid samba winbind krb5-config krb5-user

Im weiteren Verlauf folgen ein paar Fragen zu den installierenden Packeten, hier kann entweder der Default Wert eingetragen werden oder sinnvolle Werte. Die entsprechenden Eintragungen in den Configdateien von Samba, Winbind und Kerberos werden im weiteren Verlauf angepasst.

OK, die benötigten Programme sind installiert.

Htop – ist ein persönlicher Favorit von mir

Ntp – wird benötigt damit die Uhrzeit synchronisiert ist, damit im weiteren Verlauf die Kommunikation mit der Windows AD Domäne funktioniert.

Squid – ja, wir wollten ja einen Proxy installieren ;-)

samba winbind krb5-config krb5-user – werden für die Anbindung an die AD benötigt.


Zuallererst müssen die Daemons gestoppt werden.

squid2:~# /etc/init.d/samba stop

Stopping Samba daemons: nmbd smbd.

squid2:~# /etc/init.d/winbind stop

Stopping the Winbind daemon: winbind.

Die Konfiguration der Dienste ist diffizil und fehleranfällig. Deswegen im weiteren Verlauf Beispiele der Configdateien für ein Copy und Paste. Diese Dokumentation ist auf einer neuen Serverversion erfolgreich getestet worden. Ich hoffe die Namen für workgroup, realm, etc. sind sprechend.

squid:~# cat /etc/samba/smb.conf

[global]

workgroup = DOMAENEKURZNAME

realm = DOMAENE.FQDN.TLD

preferred master = no

security = ADS

encrypt passwords = true

winbind separator = +

idmap uid = 600-20000

idmap gid = 600-20000

client ntlmv2 auth = yes

[homes]

valid users = %S

Kurze Erklärung:

Wichtig ist die GROßSCHREIBUNG der workgroup und des realms, sonst funktioniert später die Einbindung in die AD nicht.

Preferred master ist optional, würde ich aber auf jeden Fall setzten – wenn der Linux host der Master ist wird wahrscheinlich das anmelden in der Domäne schwierig ;-)

Der winbind seperator spielt nachher in der Kerberos und Squid Konfiguration eine wichtige Rolle, der gewohnte Backslash „\“ ist kaum brauchbar, da man immer daran denken müsste ihn durch einen vorangestellen „\“, also „\\“ in den Configs brauchbar zu machen. Von daher ist ein Pluszeichen i.O.

Die Parameter idmap_uid und idmap_gid haben mit den Informationen zu tun die der Linux Server aus der AD zieht, ist z.B der erste Wert (600) zu hoch gesetzt können keine Gruppen oder Benutzerinformationen übertragen werden. Diese Werte stammen aus dem Samba Wiki (http://wiki.samba.org/index.php/Samba_&_Active_Directory ) und funktonieren. Die komplette Anleitung findet sich im Anhang (2.1).

Client ntlmv2 auth legt die Kommunikation mit dem AD auf das sichere NTLMv2 fest.

squid:~# cat /etc/krb5.conf

[logging]

default = FILE:/var/log/krb5libs.log

kdc = FILE:/var/log/krb5kdc.log

admin_server = FILE:/var/log/kadmind.log

[libdefaults]

default_realm = DOMAENE.FQDN.TLD

dns_lookup_realm = false

dns_lookup_kdc = false

ticket_lifetime = 24h

forwardable = yes

# The following krb5.conf variables are only for MIT Kerberos.

krb4_config = /etc/krb.conf

krb4_realms = /etc/krb.realms

kdc_timesync = 1

ccache_type = 4

forwardable = true

proxiable = true

# The following encryption type specification will be used by MIT Kerberos

# if uncommented. In general, the defaults in the MIT Kerberos code are

# correct and overriding these specifications only serves to disable new

# encryption types as they are added, creating interoperability problems.

#

# Thie only time when you might need to uncomment these lines and change

# the enctypes is if you have local software that will break on ticket

# caches containing ticket encryption types it doesn’t know about (such as

# old versions of Sun Java).

# default_tgs_enctypes = des3-hmac-sha1

# default_tkt_enctypes = des3-hmac-sha1

# permitted_enctypes = des3-hmac-sha1

# The following libdefaults parameters are only for Heimdal Kerberos.

v4_instance_resolve = false

v4_name_convert = {

host = {

rcmd = host

ftp = ftp

}

plain = {

something = something-else

}

}

fcc-mit-ticketflags = true

[realms]

DOMAENE.FQDN.TLD = {

kdc = dc.domaene.tld

admin_server = dc.domaene.tld

}

[domain_realm]

.mit.edu = ATHENA.MIT.EDU

mit.edu = ATHENA.MIT.EDU

.media.mit.edu = MEDIA-LAB.MIT.EDU

media.mit.edu = MEDIA-LAB.MIT.EDU

.csail.mit.edu = CSAIL.MIT.EDU

csail.mit.edu = CSAIL.MIT.EDU

.whoi.edu = ATHENA.MIT.EDU

whoi.edu = ATHENA.MIT.EDU

.stanford.edu = stanford.edu

.slac.stanford.edu = SLAC.STANFORD.EDU

[login]

krb4_convert = true

krb4_get_tickets = false

Ich habe zu der Standardconfig die Domäne hinzugefügt, und teilweise die Einträge belassen, zur besseren Übersicht hier nochmals die wichtigen Einstellungen separiert.

[realms]

DOMAENE.FQDN.TLD = {

kdc = dc.domaene.tld

admin_server = dc.domaene.tld

}

[libdefaults]

default_realm = DOMAENE.FQDN.TLD

dns_lookup_realm = false

dns_lookup_kdc = false

ticket_lifetime = 24h

forwardable = yes

Auch das Logging habe ich hinzugefügt.

[logging]

default = FILE:/var/log/krb5libs.log

kdc = FILE:/var/log/krb5kdc.log

admin_server = FILE:/var/log/kadmind.log

Falls Fragen auftauchen empfehle ich nach /etc/krb5.conf und den entsprechenden Schlagwörtern (kdc, admin_server) zu googlen, eine ausreichende Erklärung ist in diesem Dokument nicht möglich. Das Thema ist zu umfangreich.

Die Einstellungen hierzu sind wieder aus dem Samba Wiki


image

Squid und seine Helfer laufen als User Proxy auf dem Linuxserver, daher muss mit

gpasswd -a proxy winbindd_priv auf der Kommandozeile (Putty) der User proxy der Gruppe winbindd_priv hinzugefügt werden.

In der /etc/nsswitch.conf muss winbind zu passwd, group und shadow hinzugefügt werden, hier die Ansicht der bearbeiteten Datei.

squid:~# cat /etc/nsswitch.conf

# /etc/nsswitch.conf

#

# Example configuration of GNU Name Service Switch functionality.

# If you have the `glibc-doc-reference’ and `info’ packages installed, try:

# `info libc “Name Service Switch”‘ for information about this file.

passwd: compat winbind

group: compat winbind

shadow: compat winbind

hosts: files dns

networks: files

protocols: db files

services: db files

ethers: db files

rpc: db files

netgroup: nis


Die Dienste bitte in der folgenden Reihenfolge starten

/etc/init.d/samba start

/etc/init.d/winbind start

Jetzt kann der Linuxserver als Mitgliedsserver in die Windows AD gefahren werden.

net ads join -U Adminaccount

Hierbei wird das Passwort abgefragt.[1]

Hat das funktioniert liefert das folgende Kommando einen Erfolg.

squid:~# net ads testjoin

Join is OK

Gleichzeit sollte der Server in der AD auftauchen.

image

Folgend ein paar Kommandos, mit denen sich eine erfolgreiche Verbindung testen lässt.

squid:~# kinit testuser@DOMAENE.FQDN.TLD

Password for testuser@DOMAENE.FQDN.TLD:

squid:~# kinit -V

Password for testuser@DOMAENE.FQDN.TLD:

Authenticated to Kerberos v5

…zeigt eine erfolgreiche Erstellung eines Kerberos Tickets, was will der Admin mehr ;-)

An dieser Stelle ist ein Neustart des Servers erforderlich, fragt mich nicht warum ;-) ich weiss es nicht. Ich habe nur reproduzierbar festgestellt das wbinfo erst Info’s liefert, nach dem der Server neu gestartet wurde.

wbinfo –u liefert die User der Domäne

squid:~# wbinfo -u

DOMAENE+testuser

DOMAENE+gast

DOMAENE+support_388945a0

DOMAENE+testuser2

DOMAENE+administrator

wbinfo –t liefert das Ergebniss zum Trust

squid:~# wbinfo -t

checking the trust secret via RPC calls succeeded

wbinfo –g liefert die Gruppen

squid:~# wbinfo -g

DOMAENE+sqlserver2005sqlbrowseruser$…

DOMAENE+sqlserver2005mssqlserveradhelperuser$…

DOMAENE+sqlserver2005mssqluser$erpdc02$…

DOMAENE+sqlserver2005msfteuser$erpdc02$…

DOMAENE+domänencomputer

DOMAENE+domänencontroller

DOMAENE+zertifikatherausgeber

DOMAENE+domänen-admins

DOMAENE+domänen-benutzer

DOMAENE+inet

DOMAENE+domänen-gäste

DOMAENE+ras- und ias-server

DOMAENE+wins-benutzer

DOMAENE+dnsadmins

Wbinfo –a macht eine Probeanmeldung

squid:~# wbinfo -a ERP+testuser%Passwort

plaintext password authentication failed

Could not authenticate user testuser with plaintext password

challenge/response password authentication succeeded

Bei dieser Ausgabe ist zu sehen das Plaintext nicht funktioniert (Domäneneinstellung), eine Anmeldung aber doch (challenge/response password authentication succeeded (in diesem Fall über das sichere NTLMv2))

Okay, damit ist die Testphase abgeschlossen, der Server ist Mitglied der Domäne und kann erfolgreich Nutzer authentifizieren. Jetzt kann Squid eingerichtet werden.


Die Squid Konfiguration ist in der Datei /etc/squid/squid.conf gesammelt. Diese Datei ist sehr umfangreich und nicht einfach zu konfigurieren. Anbei meine geänderten Zeilen die eine erfolgreiche Authentifizierung mit der Domäne bewirken. (Bei Zeilenumbrüchen bitte die Zeile als Ganzes betrachten). Ich gehe die squid.conf von oben nach unten durch.

Zur besseren Übersichtlichkeit kann man nach denm # fettgedruckten Text suchen, dann ist man schneller im entsprechenden Block

Hinweise zur Formatierung:

Ist die Zeile in der Configdatei

Sind meine Anmerkungen (darunter)

Änderungen /etc/squid/squid.conf

# WELCOME TO SQUID 2.7.STABLE3 —————————-

# OPTIONS FOR AUTHENTICATION

auth_param ntlm program /usr/bin/ntlm_auth –helper-protocol=squid-2.5-ntlmssp –require-membership-of=”DOMAENE+inet”

–require-membership-of=”DOMAENE+inet” steht für die Gruppe in der Domäne, in diesem Fall also die Gruppe INET. Benutzer die Mitglieder dieser Gruppe sind wird der Zugang über den Proxy gewährt

#auth_param ntlm program /usr/bin/ntlm_auth –helper-protocol=squid-2.5-ntlmssp

Dieser Parameter ist auskommentiert, bedeutet aber das jedem authentifizierten Nutzer das Surfen erlaubt wird.

auth_param ntlm children 15

Anzahl der Threads, die Squid öffnen darf um Anfragen an das AD zu stellen. Bei Bedarf sollten diese erhöht werden. Erfahrungen dazu habe ich noch nicht.

auth_param ntlm keep_alive on

# TAG: acl

# Defining an Access List

acl AuthorizedUsers proxy_auth REQUIRED

Damit wird die ACL Auth.Users kreiert, über proxy_auth wird auf auth_param ntlm verwiesen. Es heisst also nichts anderes als definiere eine Gruppe Auth.User, die sich zuvor über proxy_auth authentifiziert haben.

acl SSL_ports port 443 # https

acl SSL_ports port 563 # snews

acl SSL_ports port 873 # rsync

acl Safe_ports port 80 # http

acl Safe_ports port 21 # ftp

acl Safe_ports port 443 # https

acl Safe_ports port 70 # gopher

acl Safe_ports port 210 # wais

acl Safe_ports port 1025-65535 # unregistered ports

acl Safe_ports port 280 # http-mgmt

acl Safe_ports port 488 # gss-http

acl Safe_ports port 591 # filemaker

acl Safe_ports port 777 # multiling http

acl Safe_ports port 631 # cups

acl Safe_ports port 873 # rsync

acl Safe_ports port 901 # SWAT

acl purge method PURGE

acl CONNECT method CONNECT

Bei den Ports habe ich nichts verändert, die Liste scheint vollsändig. Bei Bedarf an weiteren Ports, diese hier anfügen.

# TAG: http_access

http_access allow all AuthorizedUsers

Über diese http_access Regel wird den Auth.Usern der Zugriff gewährt (weiter oben wurde Auth.Users definiert). Benutzer müssen in der Gruppe DOMAENE\inet sein.

# http_access allow localnet

http_access allow localhost

Localhost darf auch

# And finally deny all other access to this proxy

http_access deny all

der verbleibende Rest darf nicht mehr

# TAG: http_port

# Usage: port [options]

# hostname:port [options]

# 1.2.3.4:port [options]

# Squid normally listens to port 3128

http_port 3128

Port bei Bedarf verändern, z.B. 8888

# MEMORY CACHE OPTIONS

# —————————————————————————–

# TAG: cache_mem (bytes)

#Default:

cache_mem 16 MB

# maximum_object_size_in_memory 8 KB

# memory_replacement_policy lru

# DISK CACHE OPTIONS

# —————————————————————————–

# TAG: cache_replacement_policy

#Default:

# cache_replacement_policy lru

#Default:

# cache_dir ufs /var/spool/squid 100 16 256

#Default:

# minimum_object_size 0 KB

#Default:

# maximum_object_size 20480 KB

#Default:

# cache_swap_low 90

# cache_swap_high 95

# LOGFILE OPTIONS

# —————————————————————————–

# TAG: logformat

# The default formats available (which do not need re-defining) are:

#

#logformat squid %ts.%03tu %6tr %>a %Ss/%03Hs %<st %rm %ru %un %Sh/%<A %mt

#logformat squidmime %ts.%03tu %6tr %>a %Ss/%03Hs %<st %rm %ru %un %Sh/%<A %mt [%>h] [%<h]

#logformat common %>a %ui %un [%tl] “%rm %ru HTTP/%rv” %Hs %<st %Ss:%Sh

#logformat combined %>a %ui %un [%tl] “%rm %ru HTTP/%rv” %Hs %<st “%{Referer}>h” “%{User-Agent}>h” %Ss:%Sh

access_log /var/log/squid/access.log squid

#Default:

cache_log /var/log/squid/cache.log

#Default:

cache_store_log /var/log/squid/store.log

Das access_log kann bei Bedarf verändert werden, in dieser Einstellung sieht eine Zeile so aus:

1284045145.911 910 123.123.123.136 TCP_MISS/200 55024 GET http://www.ngud.de/ DOMAENE+testuser2 DIRECT/87.230.78.108 text/html

Wenn nicht alle relavanten Informationen zu sehen sind kann das Log über „logformat squid“ angepasst werden.

# OPTIONS FOR FTP GATEWAYING

# —————————————————————————–

#Default:

ftp_user Squid@domain.tld

Ist das editieren der squid.conf beendet kann man mit /etc/init.d/squid restart (oder reload) die Konfiguration testen.

Ich persönlich ziehe noch einen kompletten Serverneustart vor, um sicherzugehen das alle Dienste in der richtigen Reihenfolge geladen weden.

Nun sollte ein User, der in der Gruppe „inet“ ist surfen können. Ein Nutzer, aus der gleichen Domäne, der nicht in der Gruppe ist, nicht.

Happy Testing :-)


[1] Ich habe bei dieser Gelegenheit mit tcpdump die Packete mitgeschnitten und diese mit Whireshark untersucht. Mein Passwort konnte ich nicht entdecken, daher scheint die Verschlüsselung zu funktionieren ;-)

Powershell: read eventlogs from remote servers and send them as mail

with the help of the Microsoft Community ;)

here is a script which reads the eventlogs from multiple Servers and finally sends the output with the help of the Send-MailMessage Cmdlet (Powershell v 2.0)

It has 2 forech () Sections because it should go server by server.

$meldungen = @()
$compName = $("server1", "server2")
$Logs =$("System", "Application", "Directory Service", "DNS Server", "File Replication Service")
Foreach ($server in $compName){
    forEach ($log in $logs){
    $meldungen += Get-EventLog $log -EntryType Error,Warning -ComputerName $server -after (get-date).AddHours(-24) | where{$_.EventID -ne "3000"} | select MachineName,TimeWritten,EntryType,Source,EventID,Message | ConvertTo-Html -As List -PreContent "<H3>Servername: $server Log: $log </h3>" -PostContent "<hr>" | Out-String
    }
}

$compName = $("server3", "server4", "server5", "server6", "server7")
$Logs =$("System", "Application")

Foreach ($server in $compName){
    forEach ($log in $logs){
    $meldungen += Get-EventLog $log -EntryType Error,Warning -ComputerName $server -after (get-date).AddHours(-24) | where{$_.Source -ne "Print" -and $_.EventID -ne "1111"} | select MachineName,TimeWritten,EntryType,Source,EventID,Message | ConvertTo-Html -As List -PreContent "<H3>Servername: $server Log: $log </h3>" -PostContent "<hr>" | Out-String
    }
}
$body = $meldungen | Out-String

$from = "mail@somewhere.tld"
$Subject = "Eventlogs ERP Error, Warning, letzte 24 Stunden"
$To = user@2getmail.tld
Send-MailMessage -from $from -Subject $Subject -To $To -Body $body -SmtpServer "your_smtp_server" -BodyAsHtml -Priority Low

# with “$meldungen = @()” i create an array – and with “$meldungen += Get-EventLog…” i put all the entry’s one after another

# (get-date).AddHours(-24) means – get the eventlogs for the last 24 hours, script is run at 07:00 in the morning.

# where{$_.EventID -ne "3000"} means filter out Events with EventID 3000 (DNS Server has found multiple…..)

# the “ConvertTo-Html -As List -PreContent "<H3>Servername: $server Log: $log </h3>" -PostContent "<hr>" “ does a nice job, in the email it produces nice sections, Output looks like this (no entry’s means nothing to worry about ;-) )

 

Von: Ereignislogs 123[mailto:some@email]
Gesendet: Mittwoch, 25. August 2010 11:51
An:  Roman
Betreff: Eventlogs ERP Error, Warning, letzte 24 Stunden
Wichtigkeit: Niedrig

Servername: Server1 Log: System
 

Servername: Server1 Log: Application

MachineName:

Server1

TimeWritten:

25.08.2010 03:36:12

EntryType:

Warning

Source:

Userenv

EventID:

1517

Message:

Die Registrierung des Benutzers "xxx" wurde gespeichert, obwohl eine Anwendung oder ein Dienst auf die Registrierung während der Abmeldung zugegriffen hat. Der von der Registrierung des Benutzers verwendete Speicher wurde nicht freigegeben. Der Upload der Registrierung wird durchgeführt, wenn diese nicht mehr verwendet wird. Dies wird oft durch Dienste verursacht, die unter einem Benutzerkonto ausgeführt werden. Versuchen Sie diese so zu Konfigurieren, dass sie unter den Konten "Lokaler Dienst" oder "Netzwerkdienst" ausgeführt werden.


Servername: Server1 Log: Directory Service
 

Servername: Server1 Log: DNS Server
 

Servername: Server1 Log: File Replication Service
 

Servername: Server2 Log: System
 

Servername: Server2 Log: Application

MachineName:

Server2

TimeWritten:

25.08.2010 10:40:10

EntryType:

Warning

Source:

Userenv

EventID:

1517

Message:

Die Registrierung des Benutzers "Horst ;-) ” wurde gespeichert, obwohl eine Anwendung oder ein Dienst auf die Registrierung während der Abmeldung zugegriffen hat. Der von der Registrierung des Benutzers verwendete Speicher wurde nicht freigegeben. Der Upload der Registrierung wird durchgeführt, wenn diese nicht mehr verwendet wird. Dies wird oft durch Dienste verursacht, die unter einem Benutzerkonto ausgeführt werden. Versuchen Sie diese so zu Konfigurieren, dass sie unter den Konten "Lokaler Dienst" oder "Netzwerkdienst" ausgeführt werden.


 

Copy directories depending on LastWriteTime with Powershell

This is my first PowerShell Script, Comments welcome.

Thanks to Google and all the Scripting Gods out there ;)

The intention of this Powershell Script is not to know what it has to copy, the only filter is in “$dirs = Get-ChildItem $Quelle -filter erp* | % {$_.fullname}“. I filter for erp as the first three characters of the filename. The first Get-Childitem gets the directories, the second Get-Childitem gets the subdirectories and copies just the dirs (-recurse) which are not older than six days ( $Zeitvergleich = (Get-date).AddDays(-6) ).

$Quelle = "D:\somewhere\onyourdisk"
$Ziel = "D:\somewhereelse\onyourdisk"
$Zeitvergleich = (Get-date).AddDays(-6)
$dirs = Get-ChildItem $Quelle -filter erp* | % {$_.fullname}
foreach($dir in $dirs){
$dir = Get-Childitem $dirs | where-object {$_.LastWriteTime -gt $Zeitvergleich} | Copy-Item -Path {$_.Fullname} $Ziel -recurse
}

I pimp’d my script to move the directories with move-item, there is a nice way to change the -Destination String with Replace

$Quelle = "D:\somewhere\onyourdisk"
$Ziel = "D:\somewhereelse\onyourdisk"
$Zeitvergleich = (Get-date).AddDays(-6)

$dirs = Get-ChildItem $Quelle -filter erp* | % {$_.fullname}

$dir = Get-Childitem $dirs | where-object {$_.LastWriteTime -gt $Zeitvergleich}

foreach($item in $dir){

move-Item -Path $item.FullName -Destination $item.FullName.ToString().Replace($Quelle,$Ziel)

}

Tagesdatum in Batchdatei

So, damit ich es nicht schon wieder vergesse ;) jetzt mal als Blog.

Lösung für ein Tagesdatum in einer Batchdatei

FOR /F "tokens=1-3 delims=." %%J IN ("%date%") DO SET "Tagesdatum=%%L-%%K-%%J"

echo %Tagesdatum%

 
 

have a nice day (-: