<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>LANbugs</title>
	<atom:link href="http://www.lanbugs.de/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.lanbugs.de</link>
	<description>where do you want LAN bugs today?</description>
	<lastBuildDate>Thu, 08 Mar 2012 10:02:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Enterasys Logging &amp; Debugging</title>
		<link>http://www.lanbugs.de/netzwerktechnik/enterasys-logging-debugging/</link>
		<comments>http://www.lanbugs.de/netzwerktechnik/enterasys-logging-debugging/#comments</comments>
		<pubDate>Thu, 08 Mar 2012 10:02:23 +0000</pubDate>
		<dc:creator>bigmekk</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Enterasys]]></category>
		<category><![CDATA[Netzwerktechnik]]></category>

		<guid isPermaLink="false">http://www.lanbugs.de/?p=749</guid>
		<description><![CDATA[Kürzlich wurde ich von einem Kunden mit einem Problem konfrontiert das im Enterasys NetSight im Traplog immer wieder &#8220;Incorrect Community Name&#8221; auftaucht. SNMP war im NetSight korrekt konfiguriert. Der Kunde wollte wissen wer versucht auf dem Switch zuzugreifen per SNMP. In der Trap Meldung wird  [...]]]></description>
			<content:encoded><![CDATA[<p>Kürzlich wurde ich von einem Kunden mit einem Problem konfrontiert das im Enterasys NetSight im Traplog immer wieder &#8220;Incorrect Community Name&#8221; auftaucht. SNMP war im NetSight korrekt konfiguriert. Der Kunde wollte wissen wer versucht auf dem Switch zuzugreifen per SNMP. In der Trap Meldung wird diese Information leider nicht mitgesendet. Die bekannten Debug Befehle die man von Cisco kennt gibt es nicht aber man kann den Enterasysgeräten auch einige Informationen entlocken wenn man weiß wo man suchen muss.</p>
<p>Man kann bei Enterasys das Loggingverhalten für verschiedene Systemdienste anpassen um mehr Informationen zu bekommen.</p>
<p>Mit dem Kommando &#8220;show logging application&#8221; oder kurz &#8220;sh logg app&#8221; angezeigt werden.</p>
<p>Hier eine Liste von den verschiedenen Switch Serien und Applications wo man das Logging ändern kann:<br />
Enterasys B3 Serie:</p>
<pre class="brush:plain">         Application   Current Severity Level
---------------------------------------------
 89      CLIWEB                   6
 90      SNMP                     7
 91      STP                      6
 92      Driver                   6
 93      System                   7
 94      Stacking                 6
 112     UPN                      6
 118     Router                   6

1(emergencies)  2(alerts)       3(critical)
4(errors)       5(warnings)     6(notifications)
7(information)  8(debugging)</pre>
<p>Enterasys C2 Serie:</p>
<pre class="brush:plain">         Application   Current Severity Level
---------------------------------------------
 89      CLIWEB                   6
 90      SNMP                     6
 91      STP                      6
 92      Driver                   6
 93      System                   6
 94      Stacking                 6
 95      RtrOspf                  6
 96      RtrMcast                 6
 97      RtrVrrp                  6
 112     UPN                      6
 118     Router                   6

1(emergencies)  2(alerts)       3(critical)
4(errors)       5(warnings)     6(notifications)
7(information)  8(debugging)</pre>
<p>Enterasys N Serie:</p>
<pre class="brush:plain">        Application   Current Severity Level Server List
----------------------------------------------------------
  88    RtrAcl                           6      1-8,console,file
  89    CLI                              6      1-8,console,file
  90    SNMP                             6      1-8,console,file
  91    Webview                          6      1-8,console,file
  93    System                           6      1-8,console,file
  95    RtrFe                            6      1-8,console,file
  96    Trace                            6      1-8,console,file
 105    RtrLSNat                         6      1-8,console,file
 111    FlowLimt                         6      1-8,console,file
 112    UPN                              6      1-8,console,file
 117    AAA                              6      1-8,console,file
 118    Router                           6      1-8,console,file
 140    AddrNtfy                         6      1-8,console,file
 141    OSPF                             6      1-8,console,file
 142    VRRP                             6      1-8,console,file
 145    RtrArpProc                       6      1-8,console,file
 147    LACP                             6      1-8,console,file
 148    RtrNat                           6      1-8,console,file
 151    RtrTwcb                          6      1-8,console,file
 154    DbgIpPkt                         6      1-8,console,file
 158    HostDoS                          6      1-8,console,file
 180    RtrMcast                         6      1-8,console,file
 183    PIM                              6      1-8,console,file
 184    DVMRP                            6      1-8,console,file
 185    BGP                              6      1-8,console,file
 196    LinkFlap                         6      1-8,console,file
 199    Spoof                            6      1-8,console,file
 207    IPmcast                          6      1-8,console,file
 209    Spantree                         6      1-8,console,file
 211    trackobj                         6      1-8,console,file
 213    LinkTrap                         6      1-8,console,file
 214    CDP                              6      1-8,console,file
 215    LLDP                             6      1-8,console,file
 216    CiscoDP                          6      1-8,console,file
 222    Security                         6      1-8,console,file
 225    RMON                             6      1-8,console,file
 231    IPsec                            6      1-8,console,file

1(emergencies)  2(alerts)       3(critical)
4(errors)       5(warnings)     6(notifications)
7(information)  8(debugging)</pre>
<p>Enterasys S Serie SSA (SW-release mit VSB = Virtual Chassis Bonding):</p>
<pre class="brush:plain">        Application   Current Severity Level Server List
----------------------------------------------------------
  88    RtrAcl                           6      1-8,console,file
  89    CLI                              6      1-8,console,file
  90    SNMP                             6      1-8,console,file
  91    Webview                          6      1-8,console,file
  93    System                           6      1-8,console,file
  95    RtrFe                            6      1-8,console,file
  96    Trace                            6      1-8,console,file
 105    RtrLSNat                         6      1-8,console,file
 111    FlowLimt                         6      1-8,console,file
 112    UPN                              6      1-8,console,file
 117    AAA                              6      1-8,console,file
 118    Router                           6      1-8,console,file
 140    AddrNtfy                         6      1-8,console,file
 141    OSPF                             6      1-8,console,file
 142    VRRP                             6      1-8,console,file
 145    RtrArpProc                       6      1-8,console,file
 147    LACP                             6      1-8,console,file
 148    RtrNat                           6      1-8,console,file
 151    RtrTwcb                          6      1-8,console,file
 154    DbgIpPkt                         6      1-8,console,file
 158    HostDoS                          6      1-8,console,file
 180    RtrMcast                         6      1-8,console,file
 183    PIM                              6      1-8,console,file
 184    DVMRP                            6      1-8,console,file
 185    BGP                              6      1-8,console,file
 196    LinkFlap                         6      1-8,console,file
 199    Spoof                            6      1-8,console,file
 207    IPmcast                          6      1-8,console,file
 209    Spantree                         6      1-8,console,file
 211    trackobj                         6      1-8,console,file
 213    LinkTrap                         6      1-8,console,file
 214    CDP                              6      1-8,console,file
 215    LLDP                             6      1-8,console,file
 216    CiscoDP                          6      1-8,console,file
 218    OAM                              6      1-8,console,file
 222    Security                         6      1-8,console,file
 225    RMON                             6      1-8,console,file
 231    IPsec                            6      1-8,console,file
 239    Bonding                          6      1-8,console,file
 242    HAUpgrade                        6      1-8,console,file

1(emergencies)  2(alerts)       3(critical)
4(errors)       5(warnings)     6(notifications)
7(information)  8(debugging)</pre>
<p>Um jetzt mehr sehen zu können muss der Severity Level angepasst werden für die Application die man &#8220;debuggen&#8221; will. Ein meinem Fall war es SNMP auf einem B3 Switch also => SNMP.</p>
<pre class="brush:plain">
set logging application SNMP level 7
</pre>
<p>Wer die Informationen an einen Syslog Server senden will sollte noch einen Syslogserver hinterlegen mit den richtigen Severity Level.</p>
<pre class="brush:plain">
set logging server 1 ip-addr 10.1.1.1 severity 8 description "default" state enable
</pre>
<p>Alternativ kann man sich die Syslogs auch auf der Console ausgeben lassen:</p>
<p>A/B/C/D/I-Serie auf Console:</p>
<pre class="brush:plain">
set logging local console enable
</pre>
<p>A/B/C/D/I/N/S-Serie in File:</p>
<pre class="brush:plain">
set logging local console disable file enable
</pre>
<p>N/S-Serie:</p>
<pre class="brush:plain">
set logging here enable
</pre>
<p>Im Syslog tauchte dann auch das System auf das versucht hat mit einer falschen SNMP Community auf die Switche zuzugreifen. Es war ein Printer Verwaltungserver (HP Jetadmin) der die komplette IP-Range des Standorts scannt und versucht per SNMP Parameter von den Geräten abzufragen (Tonerstand, etc.)</p>
<pre class="brush:plain">
<166>Feb 1 10:33:06 192.168.1.52-1 TRAPMGR[175072816]: traputil.c(475) 260 %% Authent. Failure: Unit: 1 IP Address: 192.168.7.26
<166>Feb 1 10:33:06 192.168.1.2-1 TRAPMGR[138984840]: traputil.c(475) 430 %% Authent. Failure: Unit: 1 IP Address: 192.168.7.26
<166>Feb 1 10:33:06 192.168.1.4-1 TRAPMGR[138984160]: traputil.c(475) 245 %% Authent. Failure: Unit: 1 IP Address: 192.168.7.26
<166>Feb 1 10:33:06 192.168.1.8-1 TRAPMGR[138983208]: traputil.c(475) 264 %% Authent. Failure: Unit: 1 IP Address: 192.168.7.26
<166>Feb 1 10:33:06 192.168.1.11-1 TRAPMGR[138983560]: traputil.c(475) 327 %% Authent. Failure: Unit: 1 IP Address: 192.168.7.26
<166>Feb 1 10:33:06 192.168.1.14-2 TRAPMGR[138984192]: traputil.c(475) 203 %% Authent. Failure: Unit: 1 IP Address: 192.168.7.26
<166>Feb 1 10:33:06 192.168.1.15-1 TRAPMGR[138983728]: traputil.c(475) 219 %% Authent. Failure: Unit: 1 IP Address: 192.168.7.26
<166>Feb 1 10:33:06 192.168.1.35-1 TRAPMGR[175050544]: traputil.c(475) 205 %% Authent. Failure: Unit: 1 IP Address: 192.168.7.26
<166>Feb 1 10:33:05 192.168.1.39-1 TRAPMGR[126209216]: traputil.c(466) 181 %% Authent. Failure: Unit: 1 IP Address: 192.168.7.26
<166>Feb 1 10:33:07 192.168.1.43-1 TRAPMGR[175061168]: traputil.c(475) 280 %% Authent. Failure: Unit: 1 IP Address: 192.168.7.26
<166>Feb 1 10:33:07 192.168.1.48-1 TRAPMGR[175067568]: traputil.c(475) 446 %% Authent. Failure: Unit: 1 IP Address: 192.168.7.26
<166>Feb 1 10:33:07 192.168.1.52-1 TRAPMGR[175072816]: traputil.c(475) 261 %% Authent. Failure: Unit: 1 IP Address: 192.168.7.26
<166>Feb 1 10:33:07 192.168.1.2-1 TRAPMGR[138984840]: traputil.c(475) 431 %% Authent. Failure: Unit: 1 IP Address: 192.168.7.26
<166>Feb 1 10:33:08 192.168.1.4-1 TRAPMGR[138984160]: traputil.c(475) 246 %% Authent. Failure: Unit: 1 IP Address: 192.168.7.26
<166>Feb 1 10:33:08 192.168.1.8-1 TRAPMGR[138983208]: traputil.c(475) 265 %% Authent. Failure: Unit: 1 IP Address: 192.168.7.26
<166>Feb 1 10:33:07 192.168.1.11-1 TRAPMGR[138983560]: traputil.c(475) 328 %% Authent. Failure: Unit: 1 IP Address: 192.168.7.26
<166>Feb 1 10:33:07 192.168.1.15-1 TRAPMGR[138983728]: traputil.c(475) 220 %% Authent. Failure: Unit: 1 IP Address: 192.168.7.26
<166>Feb 1 10:33:08 192.168.1.14-2 TRAPMGR[138984192]: traputil.c(475) 204 %% Authent. Failure: Unit: 1 IP Address: 192.168.7.26
<166>Feb 1 10:33:08 192.168.1.35-1 TRAPMGR[175050544]: traputil.c(475) 206 %% Authent. Failure: Unit: 1 IP Address: 192.168.7.26
<166>Feb 1 10:33:06 192.168.1.39-1 TRAPMGR[126209216]: traputil.c(466) 182 %% Authent. Failure: Unit: 1 IP Address: 192.168.7.26
<166>Feb 1 10:33:08 192.168.1.43-1 TRAPMGR[175061168]: traputil.c(475) 281 %% Authent. Failure: Unit: 1 IP Address: 192.168.7.26
<166>Feb 1 10:33:08 192.168.1.48-1 TRAPMGR[175067568]: traputil.c(475) 447 %% Authent. Failure: Unit: 1 IP Address: 192.168.7.26
<166>Feb 1 10:33:08 192.168.1.52-1 TRAPMGR[175072816]: traputil.c(475) 262 %% Authent. Failure: Unit: 1 IP Address: 192.168.7.26
<166>Feb 1 10:33:08 192.168.1.2-1 TRAPMGR[138984840]: traputil.c(475) 432 %% Authent. Failure: Unit: 1 IP Address: 192.168.7.26
<166>Feb 1 10:33:09 192.168.1.4-1 TRAPMGR[138984160]: traputil.c(475) 247 %% Authent. Failure: Unit: 1 IP Address: 192.168.7.26
<166>Feb 1 10:33:09 192.168.1.8-1 TRAPMGR[138983208]: traputil.c(475) 266 %% Authent. Failure: Unit: 1 IP Address: 192.168.7.26
<166>Feb 1 10:33:09 192.168.1.11-1 TRAPMGR[138983560]: traputil.c(475) 329 %% Authent. Failure: Unit: 1 IP Address: 192.168.7.26
<166>Feb 1 10:33:09 192.168.1.14-2 TRAPMGR[138984192]: traputil.c(475) 205 %% Authent. Failure: Unit: 1 IP Address: 192.168.7.26
<166>Feb 1 10:33:09 192.168.1.15-1 TRAPMGR[138983728]: traputil.c(475) 221 %% Authent. Failure: Unit: 1 IP Address: 192.168.7.26
<166>Feb 1 10:33:09 192.168.1.35-1 TRAPMGR[175050544]: traputil.c(475) 207 %% Authent. Failure: Unit: 1 IP Address: 192.168.7.26
<166>Feb 1 10:33:08 192.168.1.39-1 TRAPMGR[126209216]: traputil.c(466) 183 %% Authent. Failure: Unit: 1 IP Address: 192.168.7.26
<166>Feb 1 10:33:10 192.168.1.43-1 TRAPMGR[175061168]: traputil.c(475) 282 %% Authent. Failure: Unit: 1 IP Address: 192.168.7.26
<166>Feb 1 10:33:09 192.168.1.48-1 TRAPMGR[175067568]: traputil.c(475) 448 %% Authent. Failure: Unit: 1 IP Address: 192.168.7.26
<166>Feb 1 10:33:09 192.168.1.52-1 TRAPMGR[175072816]: traputil.c(475) 263 %% Authent. Failure: Unit: 1 IP Address: 192.168.7.26
<166>Feb 1 10:33:10 192.168.1.2-1 TRAPMGR[138984840]: traputil.c(475) 433 %% Authent. Failure: Unit: 1 IP Address: 192.168.7.26
<166>Feb 1 10:33:10 192.168.1.4-1 TRAPMGR[138984160]: traputil.c(475) 248 %% Authent. Failure: Unit: 1 IP Address: 192.168.7.26
<166>Feb 1 10:33:10 192.168.1.8-1 TRAPMGR[138983208]: traputil.c(475) 267 %% Authent. Failure: Unit: 1 IP Address: 192.168.7.26
<166>Feb 1 10:33:10 192.168.1.11-1 TRAPMGR[138983560]: traputil.c(475) 330 %% Authent. Failure: Unit: 1 IP Address: 192.168.7.26
<166>Feb 1 10:33:10 192.168.1.14-2 TRAPMGR[138984192]: traputil.c(475) 206 %% Authent. Failure: Unit: 1 IP Address: 192.168.7.26
<166>Feb 1 10:33:10 192.168.1.15-1 TRAPMGR[138983728]: traputil.c(475) 222 %% Authent. Failure: Unit: 1 IP Address: 192.168.7.26
<166>Feb 1 10:33:10 192.168.1.35-1 TRAPMGR[175050544]: traputil.c(475) 208 %% Authent. Failure: Unit: 1 IP Address: 192.168.7.26
<166>Feb 1 10:33:09 192.168.1.39-1 TRAPMGR[126209216]: traputil.c(466) 184 %% Authent. Failure: Unit: 1 IP Address: 192.168.7.26
<166>Feb 1 10:33:11 192.168.1.43-1 TRAPMGR[175061168]: traputil.c(475) 283 %% Authent. Failure: Unit: 1 IP Address: 192.168.7.26
<166>Feb 1 10:33:11 192.168.1.48-1 TRAPMGR[175067568]: traputil.c(475) 449 %% Authent. Failure: Unit: 1 IP Address: 192.168.7.26
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.lanbugs.de/netzwerktechnik/enterasys-logging-debugging/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubuntu/Debian: Eigene Rootzertifikate importieren und vertrauen</title>
		<link>http://www.lanbugs.de/howtos/linux-tipps-tricks/ubuntudebian-eigene-rootzertifikate-importieren-und-vertrauen/</link>
		<comments>http://www.lanbugs.de/howtos/linux-tipps-tricks/ubuntudebian-eigene-rootzertifikate-importieren-und-vertrauen/#comments</comments>
		<pubDate>Fri, 29 Jul 2011 10:55:52 +0000</pubDate>
		<dc:creator>bigmekk</dc:creator>
				<category><![CDATA[Linux Tipps & Tricks]]></category>

		<guid isPermaLink="false">http://www.lanbugs.de/?p=727</guid>
		<description><![CDATA[Um Zertifikatsfehler bei eigenen CAs zu beseitigen muss man das Root CA Zertifikat dem Zertifikatsstore des Betriebssystems bekannt machen.
Das Root CA Zertifikat muss im Ordner /usr/share/ca-certificates abgelegt werden mit der Endung .crt (nicht .pem). Man sollte einen passenden und  [...]]]></description>
			<content:encoded><![CDATA[<p>Um Zertifikatsfehler bei eigenen CAs zu beseitigen muss man das Root CA Zertifikat dem Zertifikatsstore des Betriebssystems bekannt machen.</p>
<p>Das Root CA Zertifikat muss im Ordner /usr/share/ca-certificates abgelegt werden mit der Endung .crt (nicht .pem). Man sollte einen passenden und aussagekräfigen Namen für die Datei vergeben. Bei Ubuntu sind zusätzlich die Zertifikate in verschiedene Unterordner einsortiert. Wenn es mehrere sind kann man auch noch einen eigenen Ordner erstellen.</p>
<pre class="brush:shell">root@foobar:/usr/share/ca-certificates# ls -la
insgesamt 52
drwxr-xr-x  11 root root  4096 2011-07-29 12:29 .
drwxr-xr-x 101 root root  4096 2011-07-28 11:10 ..
drwxr-xr-x   2 root root  4096 2011-07-28 10:16 brasil.gov.br
drwxr-xr-x   2 root root  4096 2011-07-28 10:16 cacert.org
drwxr-xr-x   2 root root  4096 2011-07-28 10:16 debconf.org
drwxr-xr-x   2 root root  4096 2011-07-28 10:16 gouv.fr
drwxr-xr-x   2 root root 12288 2011-07-28 10:16 mozilla
drwxr-xr-x   2 root root  4096 2011-07-28 10:16 signet.pl
drwxr-xr-x   2 root root  4096 2011-07-28 10:16 spi-inc.org
drwxr-xr-x   2 root root  4096 2011-07-28 10:16 telesec.de</pre>
<p>Nach dem Ablegen des Zertifikats muss man dieses noch installieren. Dazu ist das Kommando &#8220;dpkg-reconfigure ca-certificates&#8221; auszuführen. Es öffnet sich ein Menü, hier ist sicherheitshalber &#8220;Fragen&#8221; auszuwählen.</p>
<pre class="brush:plain"> ┌──────────────────────────────┤ ca-certificates configuration ├───────────────────────────────┐
 │ Dieses Paket kann neue Zertifikate von CAs (Zertifizierungsstellen) installieren, wenn ein   │
 │ Upgrade durchgeführt wird. Sie sollten solche neuen CA-Zertifikate vielleicht prüfen und     │
 │ nur Zertifikate auswählen, denen Sie vertrauen.                                              │
 │                                                                                              │
 │  - Ja    : neuen CA-Zertifikaten wird vertraut und sie werden installiert;                   │
 │  - Nein  : neue CA-Zertifikate werden standardmäßig nicht installiert;                       │
 │  - Fragen: fragt bei jedem neuen CA-Zertifikat nach.                                         │
 │                                                                                              │
 │ Neuen Zertifikaten von Zertifizierungsstellen vertrauen?                                     │
 │                                                                                              │
 │                                            Ja                                                │
 │                                            Nein                                              │
 │                                            Fragen                                            │
 │                                                                                              │
 │                                                                                              │
 │                                            &lt;Ok&gt;                                              │
 │                                                                                              │
 └──────────────────────────────────────────────────────────────────────────────────────────────┘</pre>
<p>Im nächsten Screen muss das zu installierende Zertifikat markiert werden.</p>
<p>&nbsp;</p>
<pre class="brush:plain">┌──────────────────────────────┤ ca-certificates configuration ├──────────────────────────────┐
│ Dieses Paket installiert gebräuchliche Zertifikate von CAs (Zertifizierungsstellen) unter   │
│ /usr/share/ca-certificates.                                                                 │
│                                                                                             │
│ Bitte wählen Sie die Zertifizierungsstellen aus, denen Sie vertrauen, damit deren           │
│ Zertifikate in /etc/ssl/certs installiert werden. Sie werden in eine einzige Datei          │
│ /etc/ssl/certs/ca-certificates.crt zusammengestellt.                                        │
│                                                                                             │
│ Zu aktivierende Zertifikate:                                                                │
│                                                                                             │
│    [*] brasil.gov.br/brasil.gov.br.crt                                                  ↑   │
│    [*] cacert.org/cacert.org.crt                                                        ▮   │
│    [*] debconf.org/ca.crt                                                               ▒   │
│    [*] gouv.fr/cert_igca_dsa.crt                                                        ▒   │
│    [*] gouv.fr/cert_igca_rsa.crt                                                        ▒   │
│    [ ] eigene-root-ca/root-ca.crt                                                       ▒   │
│    [*] mozilla/ABAecom_=sub.__Am._Bankers_Assn.=_Root_CA.crt                            ▒   │
│    [*] mozilla/AddTrust_External_Root.crt                                               ↓   │
│                                                                                             │
│                                                                                             │
│                                           &lt;Ok&gt;                                              │
│                                                                                             │
└─────────────────────────────────────────────────────────────────────────────────────────────┘</pre>
<p>Das ganze mit OK bestätigen, das Zertifikat wird installiert.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lanbugs.de/howtos/linux-tipps-tricks/ubuntudebian-eigene-rootzertifikate-importieren-und-vertrauen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Postfix: Mail-Relay mit SMTP-Auth via Submission/TLS für ausgehende Mails</title>
		<link>http://www.lanbugs.de/howtos/linux/postfix-mail-relay-mit-smtp-auth-via-submissiontls-fur-ausgehende-mails/</link>
		<comments>http://www.lanbugs.de/howtos/linux/postfix-mail-relay-mit-smtp-auth-via-submissiontls-fur-ausgehende-mails/#comments</comments>
		<pubDate>Fri, 29 Jul 2011 09:41:33 +0000</pubDate>
		<dc:creator>bigmekk</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Linux Tipps & Tricks]]></category>
		<category><![CDATA[Postfix & Co.]]></category>

		<guid isPermaLink="false">http://www.lanbugs.de/?p=716</guid>
		<description><![CDATA[Ein Server soll als Relayhost (oder in der Windowswelt auch Smarthost gennant) dienen. Wer keine feste IP Adresse mit passenden DNS Reverse Eintrag hat wird schlechte Chancen haben das ein richtig konfigurierter Mailserver die Mails annehmen wird. Die Lösung ist die Mails an einen anderen Relayhost  [...]]]></description>
			<content:encoded><![CDATA[<p>Ein Server soll als Relayhost (oder in der Windowswelt auch Smarthost gennant) dienen. Wer keine feste IP Adresse mit passenden DNS Reverse Eintrag hat wird schlechte Chancen haben das ein richtig konfigurierter Mailserver die Mails annehmen wird. Die Lösung ist die Mails an einen anderen Relayhost oder Mailserver zu schicken und dieser stellt dann die Mails zu. Manchmal bieten die Provider selbst Relayhosts an in vielen Fällen bleibt nichts anderes übrig als das ganze über ein Postfach zu versenden. Einige Provider bieten das Anliefern von Mails nur noch über Submission (TCP/587) und TLS verschlüsselt an. Ist mir persönlich auch lieber &#8230;</p>
<h2>Beispielszenario</h2>
<p>Provider: example.net</p>
<p>Mailaccount: user1@example.net Password: example%1</p>
<p>Mailserver: mail.example.net</p>
<p>Submission (TCP/587) und TLS sind notwendig.</p>
<h2> Lösung</h2>
<p>&#8220;/etc/postfix/main.cf&#8221; ergänzen mit:</p>
<pre class="brush:shell">relayhost = mail.example.net:submission
smtp_use_tls=yes
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/smtp_auth
smtp_sasl_security_options = noanonymous, noplaintext
smtp_sasl_tls_security_options = noanonymous</pre>
<p>/etc/postfix/smtp_auth (Map-Datei, muss initialisiert werden!!!)</p>
<pre class="brush:shell">mail.example.net:submission               user1@example.net:example%1</pre>
<p>Folgende Kommandos sind noch auszuführen:</p>
<pre class="brush:shell">postmap /etc/postfix/smtp_auth</pre>
<p>durchführen um die Datei zu mappen.</p>
<pre class="brush:shell">/etc/init.d/postfix restart</pre>
<p>durchführen um die Änderungen zu aktivieren.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lanbugs.de/howtos/linux/postfix-mail-relay-mit-smtp-auth-via-submissiontls-fur-ausgehende-mails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Massenhafte Änderungen von Datei und Verzeichnis Rechten unter Linux</title>
		<link>http://www.lanbugs.de/howtos/linux-tipps-tricks/massenhafte-anderungen-von-datei-und-verzeichnis-rechten-unter-linux/</link>
		<comments>http://www.lanbugs.de/howtos/linux-tipps-tricks/massenhafte-anderungen-von-datei-und-verzeichnis-rechten-unter-linux/#comments</comments>
		<pubDate>Thu, 21 Jul 2011 13:25:49 +0000</pubDate>
		<dc:creator>bigmekk</dc:creator>
				<category><![CDATA[Linux Tipps & Tricks]]></category>

		<guid isPermaLink="false">http://www.lanbugs.de/?p=704</guid>
		<description><![CDATA[Ich habe gerade das Tool OpenTimeTool auf einem Server installiert. Im Paket sind alle Dateien und Verzeichnisse mit 777 Rechten vorhanden. Man sollte wenn die Kiste im Internet steht die Berechtungungen schon ein wenig restriktiver vergeben. Normalerweise haben Dateien auf einem Webserver eine 644  [...]]]></description>
			<content:encoded><![CDATA[<p>Ich habe gerade das Tool OpenTimeTool auf einem Server installiert. Im Paket sind alle Dateien und Verzeichnisse mit 777 Rechten vorhanden. Man sollte wenn die Kiste im Internet steht die Berechtungungen schon ein wenig restriktiver vergeben. Normalerweise haben Dateien auf einem Webserver eine 644 Maske und Verzeichnisse eine 755 Maske.  </p>
<pre class="brush:shell">foo@bar:/var/www/bar/opentimetool/test# ls -la
insgesamt 2404
drwxr-xr-x  7 root   root      4096 2011-07-21 15:10 .
drwxr-xr-x  8 foo    foo       4096 2011-07-21 15:10 ..
-rwxrwxrwx  1 root   root      9513 2011-04-18 22:12 CHANGELOG
drwxrwxrwx  3 root   root      4096 2011-04-18 22:25 classes
-rwxrwxrwx  1 root   root      1371 2008-10-21 21:20 config-local.php.dist
-rwxrwxrwx  1 root   root      8179 2011-04-18 22:12 config.php
-rwxrwxrwx  1 root   root      3642 2011-01-05 00:10 db_upgrade.php
drwxrwxrwx  3 root   root      4096 2011-04-18 22:25 docs
drwxrwxrwx  9 root   root      4096 2011-04-18 22:25 htdocs
drwxrwxrwx 15 root   root      4096 2011-04-18 22:25 includes
-rwxrwxrwx  1 root   root      1546 2008-03-18 15:45 index.php
-rwxrwxrwx  1 root   root     22871 2011-01-05 00:10 init.php
-rwxrwxrwx  1 root   root      2983 2008-09-22 18:51 INSTALL
-rwxrwxrwx  1 root   root      2403 2008-09-22 18:51 INSTALL.de
-rwxrwxrwx  1 root   root     18009 2008-03-18 15:45 LICENSE
-rwxrwxrwx  1 root   root        17 2008-03-18 15:45 media
-rwxrwxrwx  1 root   root       856 2008-03-18 15:45 messages.php
-rwxrwxrwx  1 root   root       717 2008-10-21 21:20 mobile_access.README
drwxrwxrwx  2 root   root      4096 2011-04-18 22:25 mobile_login
-rwxrwxrwx  1 root   root     63312 2010-09-09 10:24 mysql.sql
-rw-r--r--  1 root   root   2201345 2011-04-27 22:02 openTimetool_2.3.1.tar.gz
-rwxrwxrwx  1 root   root       214 2008-03-18 15:45 phpinfo.php
-rwxrwxrwx  1 root   root       676 2008-03-18 15:45 README
-rwxrwxrwx  1 root   root       915 2008-03-18 15:45 SafeMode.README
-rwxrwxrwx  1 root   root       709 2008-03-24 21:18 Suhosin-README.txt
-rwxrwxrwx  1 root   root     10215 2008-03-18 15:45 TODO
-rwxrwxrwx  1 root   root     10761 2010-02-09 09:59 translate_de.sql
-rwxrwxrwx  1 root   root      9243 2010-02-09 09:59 translate_en.sql
-rwxrwxrwx  1 root   root       982 2010-02-09 09:59 update.README</pre>
<p>Mit den Linuxboardmitteln kann man sich viel Arbeit sparen. Mit &#8220;find&#8221; kann ich einen Parameter -type mitgeben wo ich entweder Dateien (f = Files) oder Verzeichnisse (d = Directory) als Ergebnis zurückgeben lassen kann. Mit dem Parameter -exec kann ich anschließend direkt ein Kommando ausführen und das gefundene als Parameter ({}) mitgeben.</p>
<pre class="brush:shell">
find /var/www/bar/opentimetool/test -type f -exec chmod 644 {} \;
find /var/www/bar/opentimetool/test -type d -exec chmod 755 {} \;
</pre>
<p>Zuletzt sollte man noch den Benutzer und die Gruppe richtig setzen.</p>
<pre class="brush:shell">
chown www-data:www-data -R /var/www/bar/opentimetool/test
</pre>
<p>Das Resultat sieht dann wie folgt aus:</p>
<pre class="brush:shell">
foo@bar:/var/www/opentimetool/test# ls -la
insgesamt 2404
drwxr-xr-x  7 www-data www-data    4096 2011-07-21 15:10 .
drwxr-xr-x  8 foo      foo         4096 2011-07-21 15:10 ..
-rw-r--r--  1 www-data www-data    9513 2011-04-18 22:12 CHANGELOG
drwxr-xr-x  3 www-data www-data    4096 2011-04-18 22:25 classes
-rw-r--r--  1 www-data www-data    1371 2008-10-21 21:20 config-local.php.dist
-rw-r--r--  1 www-data www-data    8179 2011-04-18 22:12 config.php
-rw-r--r--  1 www-data www-data    3642 2011-01-05 00:10 db_upgrade.php
drwxr-xr-x  3 www-data www-data    4096 2011-04-18 22:25 docs
drwxr-xr-x  9 www-data www-data    4096 2011-04-18 22:25 htdocs
drwxr-xr-x 15 www-data www-data    4096 2011-04-18 22:25 includes
-rw-r--r--  1 www-data www-data    1546 2008-03-18 15:45 index.php
-rw-r--r--  1 www-data www-data   22871 2011-01-05 00:10 init.php
-rw-r--r--  1 www-data www-data    2983 2008-09-22 18:51 INSTALL
-rw-r--r--  1 www-data www-data    2403 2008-09-22 18:51 INSTALL.de
-rw-r--r--  1 www-data www-data   18009 2008-03-18 15:45 LICENSE
-rw-r--r--  1 www-data www-data      17 2008-03-18 15:45 media
-rw-r--r--  1 www-data www-data     856 2008-03-18 15:45 messages.php
-rw-r--r--  1 www-data www-data     717 2008-10-21 21:20 mobile_access.README
drwxr-xr-x  2 www-data www-data    4096 2011-04-18 22:25 mobile_login
-rw-r--r--  1 www-data www-data   63312 2010-09-09 10:24 mysql.sql
-rw-r--r--  1 www-data www-data 2201345 2011-04-27 22:02 openTimetool_2.3.1.tar.gz
-rw-r--r--  1 www-data www-data     214 2008-03-18 15:45 phpinfo.php
-rw-r--r--  1 www-data www-data     676 2008-03-18 15:45 README
-rw-r--r--  1 www-data www-data     915 2008-03-18 15:45 SafeMode.README
-rw-r--r--  1 www-data www-data     709 2008-03-24 21:18 Suhosin-README.txt
-rw-r--r--  1 www-data www-data   10215 2008-03-18 15:45 TODO
-rw-r--r--  1 www-data www-data   10761 2010-02-09 09:59 translate_de.sql
-rw-r--r--  1 www-data www-data    9243 2010-02-09 09:59 translate_en.sql
-rw-r--r--  1 www-data www-data     982 2010-02-09 09:59 update.README
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.lanbugs.de/howtos/linux-tipps-tricks/massenhafte-anderungen-von-datei-und-verzeichnis-rechten-unter-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>socat: Pfiffiges Tool zum Mappen von IPv6 auf IPv4 Adressen</title>
		<link>http://www.lanbugs.de/howtos/linux/socat-pfiffiges-tool-zum-mappen-von-ipv6-auf-ipv4-adressen/</link>
		<comments>http://www.lanbugs.de/howtos/linux/socat-pfiffiges-tool-zum-mappen-von-ipv6-auf-ipv4-adressen/#comments</comments>
		<pubDate>Fri, 15 Jul 2011 11:42:08 +0000</pubDate>
		<dc:creator>bigmekk</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Linux Tipps & Tricks]]></category>

		<guid isPermaLink="false">http://www.lanbugs.de/?p=685</guid>
		<description><![CDATA[Wer gerade vor dem Problem steht alle Dienste auf seinen Linux Maschinen IPv4/IPv6 Dualstack fähig zu machen, der ist froh wenn er so ein Tool wie socat findet.
Es sind zwar die meisten Linux Dienste bereits Dualstack fähig aber es gibt vereinzelt noch Dienste wo keine regelmäßige bis keine Pflege  [...]]]></description>
			<content:encoded><![CDATA[<p>Wer gerade vor dem Problem steht alle Dienste auf seinen Linux Maschinen IPv4/IPv6 Dualstack fähig zu machen, der ist froh wenn er so ein Tool wie socat findet.</p>
<p>Es sind zwar die meisten Linux Dienste bereits Dualstack fähig aber es gibt vereinzelt noch Dienste wo keine regelmäßige bis keine Pflege der Software stattfindet.</p>
<p>socat ist quasi ein IPv6 -&gt; IPv4 Relay. Das Paket ist im Packet Repository von Debian / Ubuntu verfügbar.</p>
<p>Beschreibung von socat aus der README des Pakets:</p>
<pre class="brush:plain">socat is a relay for bidirectional data transfer between two independent data
channels. Each of these data channels may be a file, pipe, device (serial line
etc. or a pseudo terminal), a socket (UNIX, IP4, IP6 - raw, UDP, TCP), an
SSL socket, proxy CONNECT connection, a file descriptor (stdin etc.), the GNU
line editor (readline), a program, or a combination of two of these.
These modes include generation of "listening" sockets, named pipes, and pseudo
terminals.

socat can be used, e.g., as TCP port forwarder (one-shot or daemon), as an
external socksifier, for attacking weak firewalls, as a shell interface to UNIX
sockets, IP6 relay, for redirecting TCP oriented programs to a serial line, to
logically connect serial lines on different computers, or to establish a
relatively secure environment (su and chroot) for running client or server
shell scripts with network connections.

Many options are available to refine socats behaviour:
terminal parameters, open() options, file permissions, file and process owners,
basic socket options like bind address, advanced socket options like IP source
routing, linger, TTL, TOS (type of service), or TCP performance tuning.

More capabilities, like daemon mode with forking, client address check,
"tail -f" mode, some stream data processing (line terminator conversion),
choosing sockets, pipes, or ptys for interprocess communication, debug and
trace options, logging to syslog, stderr or file, and last but not least
precise error messages make it a versatile tool for many different purposes.

In fact, many of these features already exist in specialized tools; but until
now, there does not seem to exists another tool that provides such a generic,
flexible, simple and almost comprehensive (UNIX) byte stream connector.</pre>
<p>Das Tool kann noch wesentlich mehr, Infos findet man auf der Webseite des Programmierers <a href="http://www.dest-unreach.org/socat/">http://www.dest-unreach.org/socat/</a>.</p>
<p>Ich habe das für meinen alten SKS Keyserver verwendet, der noch kein IPv6 beherrscht. Ich lasse das ganze in einzelnen Screens laufen.</p>
<pre class="brush:shell">screen -dmS socat1 socat TCP6-LISTEN:11370,ipv6only=1,reuseaddr,fork TCP4:1.2.3.4:11370
screen -dmS socat2 socat TCP6-LISTEN:11371,ipv6only=1,reuseaddr,fork TCP4:1.2.3.4:11371
screen -dmS socat3 socat TCP6-LISTEN:80,ipv6only=1,reuseaddr,fork TCP4:1.2.3.4:11371</pre>
<p>Damit das ganze auch noch einen Neustart überlebt kann man es noch in die /etc/rc.local vor dem &#8220;exit 0&#8243; einfügen.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lanbugs.de/howtos/linux/socat-pfiffiges-tool-zum-mappen-von-ipv6-auf-ipv4-adressen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Managed Service Accounts (MSA) für Services unter Windows 2008 R2</title>
		<link>http://www.lanbugs.de/howtos/windows-tipps-tricks/manage-service-accounts-msa-fur-services-unter-windows-2008-r2/</link>
		<comments>http://www.lanbugs.de/howtos/windows-tipps-tricks/manage-service-accounts-msa-fur-services-unter-windows-2008-r2/#comments</comments>
		<pubDate>Fri, 15 Jul 2011 11:06:14 +0000</pubDate>
		<dc:creator>bigmekk</dc:creator>
				<category><![CDATA[Windows]]></category>
		<category><![CDATA[Windows Tipps & Tricks]]></category>

		<guid isPermaLink="false">http://www.lanbugs.de/?p=655</guid>
		<description><![CDATA[Unter Windows 2008 R2 gibt es sog. Managed Service Accounts. Diese Accounts sind für Dienste / Services gedacht. Vorteil dieser Accounts ist, das diese keine festen Passwörter mehr benötigen. Früher wurde für einen Service ein Account mit einem festen Passwort angelegt das nicht abläuft. Mit dieser  [...]]]></description>
			<content:encoded><![CDATA[<p>Unter Windows 2008 R2 gibt es sog. Managed Service Accounts. Diese Accounts sind für Dienste / Services gedacht. Vorteil dieser Accounts ist, das diese keine festen Passwörter mehr benötigen. Früher wurde für einen Service ein Account mit einem festen Passwort angelegt das nicht abläuft. Mit dieser neuen Funktion ist das nicht mehr notwendig da der Server selbständig in der Lage ein neues Passwort zu vergeben wenn es ausläuft.</p>
<p>Für die Erstellung von MSA´s benötigt man die PowerShell im Adminmodus.</p>
<p><a href="http://www.lanbugs.de/wp-content/uploads/msa_3.jpg"><img class="alignnone size-full wp-image-658" title="msa_3" src="http://www.lanbugs.de/wp-content/uploads/msa_3.jpg" alt="" width="1010" height="198" /></a></p>
<p>Benötigt wird das Modul ActiveDirectory.</p>
<pre class="brush:shell">import-module activedirectory
New-ADServiceAccount -name msa1
New-ADServiceAccount -name msa2 -AccountPassword (ConvertTo-SecureString -AsPlainText 1q2w3e4r%T -Force)
Add-ADComputerServiceAccount -Identity romulus -ServiceAccount msa1
Add-ADComputerServiceAccount -Identity romulus -ServiceAccount msa2</pre>
<p>New-ADServiceAccount legt einen neuen MSA an. Falls man für eine Dienstinstallation ein Passwort benötigt kann man mit dem Zusatz -AccountPasswort (siehe MSA2) ein Startpasswort definieren. Nach Ablauf der Passwortgültigtkeit wird dann ebenfalls ein neues gesetzt. Mit Add-ADComputerServiceAccount wird festgelegt für welche Maschine der Serviceaccount ist.</p>
<p>Auf der Maschine wo der ServiceAccount benötigt wird muss dieser noch Installiert werden.</p>
<p><a href="http://www.lanbugs.de/wp-content/uploads/msa_8.jpg"><img class="alignnone size-full wp-image-663" title="msa_8" src="http://www.lanbugs.de/wp-content/uploads/msa_8.jpg" alt="" width="999" height="86" /></a></p>
<pre class="brush:shell">Import-Module ActiveDirectory
Install-ADServiceAccount -Identity msa1
Install-ADServiceAccount -Identity msa2</pre>
<p>Mit dem Kommando Install-ADServiceAccount wird der Maschine der ServiceAccount bekannt gemacht. Ab diesen Moment weiß die Maschine das sie für diesen Account auch die Passwörter wechseln muss wenn es soweit ist.</p>
<h2> Wie werden die MSA`s verwendet?</h2>
<p>Zum Testen habe ich einfach schnell 2 Dienste über die Kommandozeile angelegt.</p>
<p><a href="http://www.lanbugs.de/wp-content/uploads/msa_2.jpg"><img class="alignnone size-full wp-image-667" title="msa_2" src="http://www.lanbugs.de/wp-content/uploads/msa_2.jpg" alt="" width="699" height="195" /></a></p>
<p>Wichtig sind die Leerzeichen nach dem Istgleich.</p>
<pre class="brush:shell">sc create Dienst1 type= own binpath= c:\dienst1.exe
sc create Dienst2 type= own binpath= c:\dienst2.exe</pre>
<p>Jetzt benötigen wir die services.msc Managementkonsole, dort tauchen jetzt auch unsere 2 neuen Dienste auf.</p>
<p><a href="http://www.lanbugs.de/wp-content/uploads/msa_91.jpg"><img class="alignnone size-full wp-image-675" title="msa_9" src="http://www.lanbugs.de/wp-content/uploads/msa_91.jpg" alt="" width="664" height="479" /></a></p>
<p>Einen der Testdienste mit Doppelklick öffnen und in den Reiter &#8220;Logon&#8221; gehen. Hier &#8220;This Account&#8221; auswählen und auf &#8220;Browse&#8221; gehen. In das Suchfeld msa1 oder msa2 eingeben und suchen. Das ganze mit OK bestätigen.</p>
<p>Der Account wird als msa1$ oder msa2$ angezeigt. Passwort kann man irgendwas eingeben, um das Passwort kümmert sich Windows selbst. Alles mit OK bestätigen.</p>
<p><a href="http://www.lanbugs.de/wp-content/uploads/msa_5.jpg"><img class="alignnone size-full wp-image-670" title="msa_5" src="http://www.lanbugs.de/wp-content/uploads/msa_5.jpg" alt="" width="839" height="620" /></a></p>
<h2>Noch ein kleines &#8220;Nice to know&#8221;</h2>
<p>Es gibt die Möglichkeit ACLs für Dienste selbst zu vergeben, d.H. nicht nur für Dienste die unter einem User laufen sondern auch für Dienste die im LOCAL SYSTEM laufen. Hier kann man den Diensten Rechte nehemen oder geben.</p>
<p>Als Location muss die Maschine selbst angegeben werden, in dem Fall &#8220;ROMULUS&#8221;. Im Suchfeld muss der entsprechende Dienst mit dem Prefix &#8220;nt service\&#8221; eingegeben werden, also &#8220;nt service\dienst1&#8243;. Ohne das Prefix findet Windows den Dienst nicht!</p>
<p><a href="http://www.lanbugs.de/wp-content/uploads/msa_6.jpg"><img class="alignnone size-full wp-image-671" title="msa_6" src="http://www.lanbugs.de/wp-content/uploads/msa_6.jpg" alt="" width="822" height="745" /></a></p>
<p>Auf einen Dienst können alle ACLs die auf einen User anwendbar sind ebenfalls angewendet werden.</p>
<p><a href="http://www.lanbugs.de/wp-content/uploads/msa_7.jpg"><img class="alignnone size-full wp-image-672" title="msa_7" src="http://www.lanbugs.de/wp-content/uploads/msa_7.jpg" alt="" width="375" height="452" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lanbugs.de/howtos/windows-tipps-tricks/manage-service-accounts-msa-fur-services-unter-windows-2008-r2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Die PowerShell</title>
		<link>http://www.lanbugs.de/howtos/windows-tipps-tricks/die-powershell/</link>
		<comments>http://www.lanbugs.de/howtos/windows-tipps-tricks/die-powershell/#comments</comments>
		<pubDate>Thu, 14 Jul 2011 15:08:51 +0000</pubDate>
		<dc:creator>bigmekk</dc:creator>
				<category><![CDATA[Windows]]></category>
		<category><![CDATA[Windows Tipps & Tricks]]></category>

		<guid isPermaLink="false">http://www.lanbugs.de/?p=610</guid>
		<description><![CDATA[Dieser Artikel ist nur ein kleiner Überblick der mächtigen PowerShell. Die PowerShell wurde von Microsoft entwickelt um administrative Aufgaben effizienter erledigen zu können und um eine zentrale, einheitliche Schnittstelle zu bieten. Für viele neue Microsoft Produkte ist die PowerShell  [...]]]></description>
			<content:encoded><![CDATA[<p>Dieser Artikel ist nur ein kleiner Überblick der mächtigen PowerShell. Die PowerShell wurde von Microsoft entwickelt um administrative Aufgaben effizienter erledigen zu können und um eine zentrale, einheitliche Schnittstelle zu bieten. Für viele neue Microsoft Produkte ist die PowerShell unabdingbar (z.B. Microsoft Exchange 2010).</p>
<p><a href="http://www.lanbugs.de/wp-content/uploads/ps.jpg"><img class="alignnone size-full wp-image-626" title="ps" src="http://www.lanbugs.de/wp-content/uploads/ps.jpg" alt="" width="994" height="97" /></a></p>
<h2>Allgemeines</h2>
<p>Die PowerShell besteht aus kleinen Einheiten die sich Cmdlets nennen. Die Kommandos sind alle nach dem Schema Verb-Substantiv aufgebaut, z.B. get-help. Groß-/Kleinschreibung spielt keine Rolle. Für bestimmte Kommandos und Cmdlets gibt es Aliase.</p>
<p>&nbsp;</p>
<h3>Wichtige Kommandos</h3>
<p>&nbsp;</p>
<table style="width: 100%;" border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="width: 200px;" lang="" dir="" scope="" rowspan="1" colspan="1" align="" valign=""><strong>Kommando/Cmdlet</strong></td>
<td rowspan="1" colspan="1"><strong>Beschreibung</strong></td>
</tr>
<tr>
<td style="width: 200px;" lang="" dir="" scope="" rowspan="1" colspan="1" align="" valign="">get-help</td>
<td>Zeigt die Hilfe an</td>
</tr>
<tr>
<td>get-help &lt;Kommando/Cmdlet&gt;</td>
<td>Zeigt die Hilfe zu einem Kommando/Cmdlet an</td>
</tr>
<tr>
<td>get-variable</td>
<td>Zeigt alle gesetzten Variablen an</td>
</tr>
<tr>
<td rowspan="1" colspan="1">get-alias</td>
<td rowspan="1" colspan="1">Zeit alle gesetzten Aliase an</td>
</tr>
<tr>
<td>get-module -ListAvailable</td>
<td>Zeigt vorhandene Module an</td>
</tr>
<tr>
<td>import-module &lt;modulname&gt;</td>
<td>Importiert das Modul in die aktuelle Sitzung (z.B. import-module activedirectory)</td>
</tr>
<tr>
<td>get-command</td>
<td>Zeigt die verfügbaren Kommandos / Cmdlets an</td>
</tr>
<tr>
<td>sort-object</td>
<td>Sortieren einer Datenmenge</td>
</tr>
<tr>
<td>select-object</td>
<td>Einen bestimmten Bereich selektieren (z.B. select-object -First 3)</td>
</tr>
<tr>
<td>export-csv</td>
<td>Datenmenge in CSV exportieren</td>
</tr>
<tr>
<td>get-psdrive</td>
<td>Zeigt PowerShell Laufwerke an</td>
</tr>
<tr>
<td>invoke-command</td>
<td>Kommandos Remote auf anderen Server ausführen</td>
</tr>
<tr>
<td>enable-psremoting</td>
<td>Aktiviert Remote Power Shell</td>
</tr>
<tr>
<td>new-pssession</td>
<td>Baut eine Verbindung zu einem Remote Power Shell Server auf</td>
</tr>
<tr>
<td>enter-pssession</td>
<td>Geht in die Remote Verbindung rein</td>
</tr>
<tr>
<td>exit-pssession</td>
<td>Verlässt die Remote Session</td>
</tr>
<tr>
<td>get-credential</td>
<td>Frägt über einen Popup Anmeldeinformationen ab wenn man nicht die Sitzungsanmeldeinformationen verwenden will</td>
</tr>
<tr>
<td>get-aduser &lt;username&gt;</td>
<td>Frägt aus dem AD Informationen über einen User ab (Nur Verfügbar wenn das ActiveDirectory Modul geladen ist.)</td>
</tr>
<tr>
<td>get-adobject &lt;filter&gt;</td>
<td>Frägt ein Objekt aus dem AD ab (Nur Verfügbar wenn das ActiveDirectory Modul geladen ist.)</td>
</tr>
<tr>
<td>get-adcomputer &lt;computer&gt;</td>
<td>Frägt aus dem AD Computerinformationen ab (Nur Verfügbar wenn das ActiveDirectory Modul geladen ist.)</td>
</tr>
<tr>
<td>set-adaccountpassword</td>
<td>Setzt Passwort für einen User (Nur Verfügbar wenn das ActiveDirectory Modul geladen ist.)</td>
</tr>
</tbody>
</table>
<h2>Vergleichs- und Verknüpfungsoperatoren</h2>
<p>&nbsp;</p>
<table style="width: 100%;" border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="width: 200px;" lang="" dir="" scope="" rowspan="1" colspan="1" align="" valign=""><strong>Operator</strong></td>
<td rowspan="1" colspan="1"><strong>Beschreibung</strong></td>
</tr>
<tr>
<td style="width: 200px;" lang="" dir="" scope="" rowspan="1" colspan="1" align="" valign="">-eq</td>
<td>(equal) gleich</td>
</tr>
<tr>
<td>-ne</td>
<td>(not equal) nicht gleich</td>
</tr>
<tr>
<td>-gt</td>
<td>(greater than) größer als</td>
</tr>
<tr>
<td>-lt</td>
<td>(less than) kleiner als</td>
</tr>
<tr>
<td>-ge</td>
<td>(greater equal) größer gleich</td>
</tr>
<tr>
<td>-le</td>
<td>(less equal) kleiner gleich</td>
</tr>
<tr>
<td>-like</td>
<td>wie .z.B. &#8220;a*&#8221;</td>
</tr>
<tr>
<td rowspan="1" colspan="1">-notlike</td>
<td rowspan="1" colspan="1">nicht wie z.B. &#8220;a*&#8221;</td>
</tr>
<tr>
<td>-match</td>
<td>&#8220;^ABC&#8221; (Regex)</td>
</tr>
<tr>
<td>-AND</td>
<td>und</td>
</tr>
<tr>
<td>-OR</td>
<td>oder</td>
</tr>
<tr>
<td>-NOT</td>
<td>nicht</td>
</tr>
</tbody>
</table>
<h2>Beispiel: get-service</h2>
<p>get-service gibt den Status der Prozesse zurück.</p>
<p><a href="http://www.lanbugs.de/wp-content/uploads/ps_1.jpg"><img class="alignnone size-full wp-image-613" title="ps_1" src="http://www.lanbugs.de/wp-content/uploads/ps_1.jpg" alt="" width="994" height="401" /></a></p>
<p>Will man jetzt z.B. nur Dienste sehen die sich im Status &#8220;Running&#8221; befinden so kann man das Ergebnis an ein anderes Kommando pipen.</p>
<pre class="brush:shell">get-service | where-object {$_.status -eq "running"}</pre>
<p>Das Resultat:</p>
<p><a href="http://www.lanbugs.de/wp-content/uploads/ps_2.jpg"><img class="alignnone size-full wp-image-614" title="ps_2" src="http://www.lanbugs.de/wp-content/uploads/ps_2.jpg" alt="" width="995" height="313" /></a></p>
<p>Alternativ für where-object gibt es einen Alias der &#8220;?&#8221; heißt. Also wäre auch folgender Befehl möglich:</p>
<pre class="brush:shell">get-service | ? {$_.status -eq "running"}</pre>
<p>Das ganze lässt sich mit einem Verbindungsoperator noch erweitern:</p>
<pre class="brush:shell">get-service | ? {($_.name -like "A*") -AND ($_.status -like "run*")}</pre>
<p>Als Resultat bekommen wir alle Prozesse die mit A&#8230;. beginnen und laufen.</p>
<p>Jetzt können wir uns noch alle Prozesse mit A ausgeben lassen und diese absteigend sortieren.</p>
<p><a href="http://www.lanbugs.de/wp-content/uploads/ps_3.jpg"><img class="alignnone size-full wp-image-635" title="ps_3" src="http://www.lanbugs.de/wp-content/uploads/ps_3.jpg" alt="" width="994" height="217" /></a></p>
<pre class="brush:shell">get-service | ? {$_.name -like "a*"} | sort-object displayname -Descending</pre>
<p>Die Ausgabe können wir jetzt noch auf 3 Resultate beschränken:</p>
<p><a href="http://www.lanbugs.de/wp-content/uploads/ps_4.jpg"><img class="alignnone size-full wp-image-637" title="ps_4" src="http://www.lanbugs.de/wp-content/uploads/ps_4.jpg" alt="" width="989" height="173" /></a></p>
<pre class="brush:shell">get-service | ? {$_.name -like "a*"} | sort-object displayname -Descending | select-object -First 3</pre>
<p>Das können wir jetzt noch in eine CSV Datei exportieren:</p>
<p><a href="http://www.lanbugs.de/wp-content/uploads/ps_5.jpg"><img class="alignnone size-full wp-image-638" title="ps_5" src="http://www.lanbugs.de/wp-content/uploads/ps_5.jpg" alt="" width="996" height="91" /></a></p>
<pre class="brush:shell">get-service | ? {$_.name -like "a*"} | sort-object displayname -Descending | select-object -First 3 | export-csv -path export.csv</pre>
<p>Inhalt export.csv:</p>
<pre class="brush:plain">#TYPE System.ServiceProcess.ServiceController
"Name","RequiredServices","CanPauseAndContinue","CanShutdown","CanStop","DisplayName","DependentServices","MachineName","ServiceName","ServicesDependedOn","ServiceHandle","Status","ServiceType","Site","Container"
"AudioEndpointBuilder","System.ServiceProcess.ServiceController[]","False","False","True","Windows Audio Endpoint Builder","System.ServiceProcess.ServiceController[]",".","AudioEndpointBuilder","System.ServiceProcess.ServiceController[]","SafeServiceHandle","Running","Win32ShareProcess",,
"AudioSrv","System.ServiceProcess.ServiceController[]","False","False","True","Windows Audio","System.ServiceProcess.ServiceController[]",".","AudioSrv","System.ServiceProcess.ServiceController[]","SafeServiceHandle","Running","Win32ShareProcess",,
"AppMgmt","System.ServiceProcess.ServiceController[]","False","False","False","Application Management","System.ServiceProcess.ServiceController[]",".","AppMgmt","System.ServiceProcess.ServiceController[]","SafeServiceHandle","Stopped","Win32ShareProcess",,</pre>
<h2>PowerShell Drives</h2>
<p>In der PowerShell kann man auf verschiedene Daten über das Filesystem zugreifen. Darunter sind unter anderem der Certificate Store und die Registry.</p>
<p><a href="http://www.lanbugs.de/wp-content/uploads/ps_6.jpg"><img class="alignnone size-full wp-image-641" title="ps_6" src="http://www.lanbugs.de/wp-content/uploads/ps_6.jpg" alt="" width="994" height="524" /></a></p>
<p>&nbsp;</p>
<pre class="brush:shell">get-psdrive
cd HKLM:
cd .\SOFTWARE
dir</pre>
<h2>Remote PowerShell</h2>
<p>In der PowerShell ist es möglich einen RemoteAccess zu aktivieren. Einmal aktiviert bleibt er auch aktiviert, er lässt sich aber wieder abschalten. Der PowerShell Remote Service läuft auf 2 TCP Ports. TCP/5985 ohne SSL und TCP/5986 mit SSL.</p>
<p>Aktivieren der Remote Shell:</p>
<p><img title="ps_remote" src="http://www.lanbugs.de/wp-content/uploads/ps_remote.jpg" alt="" width="997" height="221" /></p>
<pre class="brush:shell">enable-psremoting</pre>
<p>Die beide Abfragen mit &#8220;Y&#8221; bestätigen, eine automatische Firewallregel wird installiert.</p>
<p>Es gibt 2 Möglichkeiten mit der Remote PowerShell zu arbeiten.</p>
<p>1. Wir können ein Kommandosatz übermitteln und das Ergebnis verarbeiten</p>
<pre class="brush:shell">invoke-command -computername romulus.thoma.local -scriptblock {get-service}</pre>
<p>2. Wir können uns eine vollständige Remote Shell öffnen</p>
<p><a href="http://www.lanbugs.de/wp-content/uploads/ps_remote_1.jpg"><img class="alignnone size-full wp-image-645" title="ps_remote_1" src="http://www.lanbugs.de/wp-content/uploads/ps_remote_1.jpg" alt="" width="992" height="147" /></a></p>
<pre class="brush:shell">new-pssession -computername romulus</pre>
<p>Nach dem Verbindungsaufbau muss man in die Session einsteigen</p>
<p><a href="http://www.lanbugs.de/wp-content/uploads/ps_remote_2.jpg"><img class="alignnone size-full wp-image-646" title="ps_remote_2" src="http://www.lanbugs.de/wp-content/uploads/ps_remote_2.jpg" alt="" width="987" height="159" /></a></p>
<pre class="brush:applescript">enter-pssession 1</pre>
<p>Am Beginn der Zeile steht jetzt der Hostname der Remotemaschine. Um die Remotemaschine zu verlassen benötigt man folgendes Kommando:</p>
<pre class="brush:shell">exit-pssession</pre>
<p>Die Sessions verschwinden nach 15 Minuten von alleine, wer nicht warten will kann mit</p>
<pre class="brush:shell">remove-pssession 1</pre>
<p>die Session löschen.</p>
<h3>Mit anderen Credentials Remote anmelden</h3>
<p>Es gibt 2 verschiedene Möglichkeiten Credentials mitzugeben.</p>
<p>1. Im Script</p>
<p><a href="http://www.lanbugs.de/wp-content/uploads/ps_remote_3.jpg"><img class="alignnone size-full wp-image-648" title="ps_remote_3" src="http://www.lanbugs.de/wp-content/uploads/ps_remote_3.jpg" alt="" width="999" height="213" /></a></p>
<p>Windows benötigt gehashte Passwörter für die Anmeldung.</p>
<pre class="brush:shell">$secpasswd = Convert-To-SecureString "1q2w3e4r%T" -AsPlainText -Force
$username="max"
$mycreds = new-object system.management.automation.pscredential ($username, $secpasswd)
invoke-command -credential $mycreds -computername romulus.thoma.local -scriptblock {get-service}</pre>
<p>2. Per Popup</p>
<p><a href="http://www.lanbugs.de/wp-content/uploads/ps_remote_4.jpg"><img class="alignnone size-full wp-image-650" title="ps_remote_4" src="http://www.lanbugs.de/wp-content/uploads/ps_remote_4.jpg" alt="" width="996" height="530" /></a></p>
<pre class="brush:shell">$mycreds = get-credential
invoke-command -credential $mycreds -computername romulus.thoma.local -scriptblock {get-service}</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.lanbugs.de/howtos/windows-tipps-tricks/die-powershell/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows 2008 R2 Server Active Directory Papierkorb aktivieren und verwenden</title>
		<link>http://www.lanbugs.de/howtos/windows-tipps-tricks/windows-2008-r2-server-active-directory-papierkorb-aktivieren-und-verwenden/</link>
		<comments>http://www.lanbugs.de/howtos/windows-tipps-tricks/windows-2008-r2-server-active-directory-papierkorb-aktivieren-und-verwenden/#comments</comments>
		<pubDate>Thu, 14 Jul 2011 11:54:31 +0000</pubDate>
		<dc:creator>bigmekk</dc:creator>
				<category><![CDATA[Windows]]></category>
		<category><![CDATA[Windows Tipps & Tricks]]></category>

		<guid isPermaLink="false">http://www.lanbugs.de/?p=590</guid>
		<description><![CDATA[In der aktuellen Windows 2008 R2 Server Version gibt es die Möglichkeit das gelöschte AD Objekte in einem Papierkorb aufbewahrt werden. Das gab es zwar schon früher, allerdings werden bei dem AD Papierkorb alle Werte erhalten incl. Passwort. Dies war bei der vorhergehenden Lösung nicht der  [...]]]></description>
			<content:encoded><![CDATA[<p>In der aktuellen Windows 2008 R2 Server Version gibt es die Möglichkeit das gelöschte AD Objekte in einem Papierkorb aufbewahrt werden. Das gab es zwar schon früher, allerdings werden bei dem AD Papierkorb alle Werte erhalten incl. Passwort. Dies war bei der vorhergehenden Lösung nicht der Fall. Der AD Papierkorb setzt voraus das der Forrest Funcional Level &#8220;Windows 2008 R2&#8243; ist. Ist die Domäne auf Windows 2003 aufgebaut und wurde zu 2008 R2 migriert werden die Objekte im Papierkorb für 60 Tage gespeichert. Ist die Domäne direkt mit Windows 2008 / 2008 R2 aufgebaut werden die Objekte für 180 Tage gespeichert. Der Wert lässt sich auch ändern.</p>
<p><strong>Wichtig!</strong> Die AD Papierkorbfunktion gibt es nur unter Windows 2008 R2 Server.</p>
<p>Um den AD Papierkorb zu aktivieren muss auf dem Schema-Master in einer administrativen Power Shell folgender Befehl ausgeführt werden.</p>
<p>Wer ist der Schema-Master? Dies lässt sich mit netdom ermitteln:</p>
<p><a href="http://www.lanbugs.de/wp-content/uploads/fsmo_roles.jpg"><img class="alignnone size-full wp-image-599" title="fsmo_roles" src="http://www.lanbugs.de/wp-content/uploads/fsmo_roles.jpg" alt="" width="676" height="340" /></a></p>
<pre class="brush:shell">C:\&gt;netdom query fsmo</pre>
<p>Falls keine Remote Powershell aktiviert ist muss man sich via RDP verbinden oder sich direkt an die Maschine begeben.</p>
<p><a href="http://www.lanbugs.de/wp-content/uploads/enable_ad_recycle_bin.jpg"><img class="alignnone size-full wp-image-600" title="enable_ad_recycle_bin" src="http://www.lanbugs.de/wp-content/uploads/enable_ad_recycle_bin.jpg" alt="" width="993" height="207" /></a></p>
<p>In der PowerShell muss das Modul ActiveDirectory nachgeladen werden. Der DN muss angepasst werden auf die entsprechende Domäne genauso wie das Target.</p>
<pre class="brush:applescript">PS C:\&gt;import-module activedirectory
PS C:\&gt;enable-adoptionalfeature -identity "cn=recycle bin feature,cn=optional features,cn=directory service,cn=windows nt,cn=services,cn=configuration,dc=thoma,dc=local" -scope forestorconfigurationset -target "thoma.local"</pre>
<p><strong>ACHTUNG!</strong> Das Feature lässt sich nicht mehr abschalten. Anschließend mit &#8220;Y&#8221; bestätigen.</p>
<h2> Wie kann man den AD Papierkorb verwenden ?</h2>
<p>Ich habe zum Test den User dummy1 gelöscht. Der User befindet sich jetzt in diesem Papierkorb.</p>
<p>Mit einer administrativen PowerShell können wir den User suchen.</p>
<p><a href="http://www.lanbugs.de/wp-content/uploads/get-adobject_deleted_user.jpg"><img class="alignnone size-full wp-image-602" title="get-adobject_deleted_user" src="http://www.lanbugs.de/wp-content/uploads/get-adobject_deleted_user.jpg" alt="" width="995" height="209" /></a></p>
<pre class="brush:applescript">PS C:\&gt;import-module activedirectory
PS C:\&gt;get-adobject -filter {name -like "*dummy1*"} -includedeletedobject</pre>
<p>Will man diesen User jetzt wiederherstellen so muss man folgenden Befehl verwenden:</p>
<pre class="brush:shell">PS C:\&gt;get-adobject -filter {name -like "*dummy1*"} -includedeletedobject | restore-adobject</pre>
<p>Ruft man jetzt erneut den &#8220;get-adobject -filter {name -like &#8220;*dummy1*&#8221;} -includedeletedobject&#8221; Befehl auf sieht man das der User nichtmehr das Flag &#8220;Deleted&#8221; besitzt und wieder seinen orginalen DN hat.</p>
<p><a href="http://www.lanbugs.de/wp-content/uploads/get-adobject_not_deleted_user1.jpg"><img class="alignnone size-full wp-image-605" title="get-adobject_not_deleted_user" src="http://www.lanbugs.de/wp-content/uploads/get-adobject_not_deleted_user1.jpg" alt="" width="993" height="189" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lanbugs.de/howtos/windows-tipps-tricks/windows-2008-r2-server-active-directory-papierkorb-aktivieren-und-verwenden/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Windows 2008 Active Directory Snapshot erstellen und mounten</title>
		<link>http://www.lanbugs.de/howtos/windows-tipps-tricks/windows-2008-active-directory-snapshot-erstellen-und-mounten/</link>
		<comments>http://www.lanbugs.de/howtos/windows-tipps-tricks/windows-2008-active-directory-snapshot-erstellen-und-mounten/#comments</comments>
		<pubDate>Thu, 14 Jul 2011 10:02:17 +0000</pubDate>
		<dc:creator>bigmekk</dc:creator>
				<category><![CDATA[Windows]]></category>
		<category><![CDATA[Windows Tipps & Tricks]]></category>

		<guid isPermaLink="false">http://www.lanbugs.de/?p=564</guid>
		<description><![CDATA[Windows 2008 / 2008 R2 Server bietet ein cooles Feature um regelmäßig und schnell das Active Directory zu sichern. Die Sicherung kann im Betrieb erfolgen. Für den Snapshot wird der Volume Shadow Service verwendet.
Zum Anlegen des Snapshots wird das mitgelieferte Tool ntdsutil verwendet.
Wichtig!  [...]]]></description>
			<content:encoded><![CDATA[<p>Windows 2008 / 2008 R2 Server bietet ein cooles Feature um regelmäßig und schnell das Active Directory zu sichern. Die Sicherung kann im Betrieb erfolgen. Für den Snapshot wird der Volume Shadow Service verwendet.</p>
<p>Zum Anlegen des Snapshots wird das mitgelieferte Tool ntdsutil verwendet.</p>
<p><strong>Wichtig!</strong> Das Tool benötigt Admin Rechte. cmd Box mit Adminrechten starten!</p>
<p><a href="http://www.lanbugs.de/wp-content/uploads/snapshot_erstellen.jpg"><img class="alignnone size-full wp-image-571" title="snapshot_erstellen" src="http://www.lanbugs.de/wp-content/uploads/snapshot_erstellen.jpg" alt="" width="677" height="341" /></a></p>
<p>Mit dem Kommando</p>
<pre class="brush:shell">ntdsutil "ac i ntds" "sn" "cr" "q" "q"</pre>
<p>verbindet sich das Tool zum Active Directory und startet das Anlegen des Snapshots.</p>
<p><a href="http://www.lanbugs.de/wp-content/uploads/snapshots2.jpg"><img class="alignnone size-full wp-image-574" title="snapshots" src="http://www.lanbugs.de/wp-content/uploads/snapshots2.jpg" alt="" width="674" height="344" /></a></p>
<p>Die bereits erstellten Snapshots kann man sich mit</p>
<pre class="brush:shell">ntdsutil "sn" "l a" "q" "q"</pre>
<p>anzeigen lassen.</p>
<p>&nbsp;</p>
<p><a href="http://www.lanbugs.de/wp-content/uploads/mount_snap.jpg"><img class="alignnone size-full wp-image-576" title="mount_snap" src="http://www.lanbugs.de/wp-content/uploads/mount_snap.jpg" alt="" width="675" height="340" /></a></p>
<p>Um einen Snapshot zu verwenden muss er gemountet werden. Das Mounten erfolgt mit dem Kommando:</p>
<pre class="brush:shell">ntdsutil "sn" "l a" "mo 10" "q" "q"</pre>
<p>10 gibt die Version an die sich auf die Nummer aus der Liste der Snapshots bezieht.</p>
<p>&nbsp;</p>
<p>Nach dem Mounten ist der Snapshot unter C:\$SNAP_201107141124_VOLUMEC$\ verfügbar. Der Name ist abhängig vom Snapshot.</p>
<p>Aus dem Snapshot können wir jetzt das gesicherte Active Directory parallel starten. Hierzu muss man in den Ordner C:\$SNAP_201107141124_VOLUMEC$\Windows\NTDS\ wechseln. Der Ordner kann abweichen je nachdem wo man die AD Informationen abgelegt hat.</p>
<p>Mit dem Tool dsamain lässt sich die Kopie parallel starten.</p>
<p><a href="http://www.lanbugs.de/wp-content/uploads/dsamain_mount.jpg"><img class="alignnone size-full wp-image-578" title="dsamain_mount" src="http://www.lanbugs.de/wp-content/uploads/dsamain_mount.jpg" alt="" width="675" height="340" /></a></p>
<p>Dem Tool dsamain werden 2 Parameter beim Start mitgegeben. Dem Parameter dbpath geben wir unser Active Directory aus dem Snapshot mit. Mit dem Parameter ldapport geben wir noch einen freien Port mit auf den wir uns dann mit einem LDAP Explorer oder mit der dsa.msc verbinden können. Per Default wird das AD aus dem Snapshot im Read Only Modus gestartet.</p>
<pre class="brush:shell">dsamain -dbpath ntds.dit -ldapport 6500</pre>
<p>Jetzt können wir uns mit der dsa.msc auf das gemountete AD verbinden.</p>
<p><a href="http://www.lanbugs.de/wp-content/uploads/dsa_connect.jpg"><img class="alignnone size-full wp-image-581" title="dsa_connect" src="http://www.lanbugs.de/wp-content/uploads/dsa_connect.jpg" alt="" width="320" height="360" /></a></p>
<p>Um unser Snapshot AD sehen zu können müssen wir uns lokal auf Port 6500 verbinden.</p>
<p>Hiezu auf die Domäne einen Rechtsklick und &#8220;Change Domain Controller&#8221; auswählen.</p>
<p><a href="http://www.lanbugs.de/wp-content/uploads/dsa_server.jpg"><img class="alignnone size-full wp-image-582" title="dsa_server" src="http://www.lanbugs.de/wp-content/uploads/dsa_server.jpg" alt="" width="630" height="428" /></a></p>
<p>In diesem Fenster muss bei &lt;Type a Directory Server name[:port] here&gt; localhost:6500 eingetragen werden.</p>
<p><a href="http://www.lanbugs.de/wp-content/uploads/dsa_server_local.jpg"><img class="alignnone size-full wp-image-583" title="dsa_server_local" src="http://www.lanbugs.de/wp-content/uploads/dsa_server_local.jpg" alt="" width="278" height="70" /></a></p>
<p>Das ganze mit Ok bestätigen.</p>
<p><a href="http://www.lanbugs.de/wp-content/uploads/dsa_ro.jpg"><img class="alignnone size-full wp-image-584" title="dsa_ro" src="http://www.lanbugs.de/wp-content/uploads/dsa_ro.jpg" alt="" width="783" height="557" /></a></p>
<p>Wir sind jetzt mit dem Snapshot AD verbunden und können alles ansehen. Öffnet man ein Objekt stellt man fest das die Objekte, wie oben bereits erwähnt, Read Only sind.</p>
<p>Natürlich kann man auf dieses gemountete AD auch mit anderen Tools wie ldifde, csvde, usw. arbeiten.</p>
<p>Nach der Arbeit sollte man den Snapshot noch unmounten.</p>
<p><a href="http://www.lanbugs.de/wp-content/uploads/snap_unmount.jpg"><img class="alignnone size-full wp-image-585" title="snap_unmount" src="http://www.lanbugs.de/wp-content/uploads/snap_unmount.jpg" alt="" width="676" height="340" /></a></p>
<p>Der Unmount kann mit dem folgenden Befehl durchgeführt werden. Hier ist wieder die richtige Index ID einzugeben.</p>
<pre class="brush:shell">ntdsutil "sn" "l a" "un 10" "q" "q"</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.lanbugs.de/howtos/windows-tipps-tricks/windows-2008-active-directory-snapshot-erstellen-und-mounten/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Python Version von getadsmtp.pl</title>
		<link>http://www.lanbugs.de/howtos/linux/python-version-von-getadsmtp-pl/</link>
		<comments>http://www.lanbugs.de/howtos/linux/python-version-von-getadsmtp-pl/#comments</comments>
		<pubDate>Wed, 19 Jan 2011 10:39:14 +0000</pubDate>
		<dc:creator>bigmekk</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Postfix & Co.]]></category>

		<guid isPermaLink="false">http://www.lanbugs.de/?p=551</guid>
		<description><![CDATA[Übersetzung des AD Mailadressen Sammelskripts von Perl nach Python.
Download
#!/usr/bin/python

# getadsmtp.py
# Version 1.0
# The script is an translation from the orginal perl script getadsmtp.pl

# This script will pull all users' SMTP addresses from your Active Directory
# (including primary  [...]]]></description>
			<content:encoded><![CDATA[<p>Übersetzung des AD Mailadressen Sammelskripts von Perl nach Python.</p>
<p><a href="http://www.lanbugs.de/downloads/">Download</a></p>
<pre class="brush:py">#!/usr/bin/python

# getadsmtp.py
# Version 1.0
# The script is an translation from the orginal perl script getadsmtp.pl

# This script will pull all users' SMTP addresses from your Active Directory
# (including primary and secondary email addresses) and list them in the
# format "user@example.com OK" which Postfix uses with relay_recipient_maps.
# Be sure to double-check the path to python above.

# This requires python-ldap to be installed.  To install python-ldap on debian based systems,
# at a shell type "apt-get install python-ldap" or "sudo apt-get install python-ldap"

import os, sys, ldap

# Enter the path/file for the output
valid_addresses = "/etc/postfix/example_recipients"

# Enter the FQDN of your Active Directory domain controllers below
dc1="dc01.example.com"
dc2="dc02.example.com"

# Enter the LDAP container for your userbase.
# The syntax is CN=Users,dc=example,dc=com
# This can be found by installing the Windows 2000 Support Tools
# then running ADSI Edit.
# In ADSI Edit, expand the "Domain NC [domaincontroller1.example.com]" &amp;
# you will see, for example, DC=example,DC=com (this is your base).
# The Users Container will be specified in the right pane as
# CN=Users depending on your schema (this is your container).
# You can double-check this by clicking "Properties" of your user
# folder in ADSI Edit and examining the "Path" value, such as:
# LDAP://domaincontroller1.example.com/CN=Users,DC=example,DC=com
# which would be hqbase="cn=Users,dc=example,dc=com"
# Note:  You can also use just hqbase="dc=example,dc=com"
hqbase="cn=Users,dc=example,dc=com"

# Enter the username &amp; password for a valid user in your Active Directory
# with username in the form cn=username,cn=Users,dc=example,dc=com
# Make sure the user's password does not expire.  Note that this user
# does not require any special privileges.
# You can double-check this by clicking "Properties" of your user in
# ADSI Edit and examining the "Path" value, such as:
# LDAP://domaincontroller1.example.com/CN=user,CN=Users,DC=example,DC=com
# which would be $user="cn=user,cn=Users,dc=example,dc=com"
# Note: You can also use the UPN login: "user@example.com"
user="cn=user,cn=Users,dc=example,dc=com"
passwd="password"

try:
  l = ldap.initialize("ldap://%s" %(dc1))
  l.set_option(ldap.OPT_REFERRALS, 0)
  l.protocol_version = 3
  l.simple_bind_s(user, passwd)

except ldap.LDAPError, e:
  try:
    l = ldap.initialize("ldap://%s" %(dc2))
    l.set_option(ldap.OPT_REFERRALS, 0)
    l.protocol_version = 3
    l.simple_bind_s(user, passwd)

  except ldap.LDAPError, e:
    print "Error connecting to specified domain controllers\n"
    sys.exit()

# Play around with this to grab objects such as Contacts, Public Folders, etc.
# A minimal filter for just users with email would be:
# filter = "(&amp;(sAMAccountName=*)(mail=*))"
filter = "(&amp; (mailnickname=*) (| (&amp;(objectCategory=person)(objectClass=user)(!(homeMDB=*))(!(msExchHomeServerName=*)))(&amp;(objectCategory=person)(objectClass=user)(|(homeMDB=*)(msExchHomeServerName=*)))(&amp;(objectCategory=person)(objectClass=contact))(objectCategory=group)(objectCategory=publicFolder)(objectClass=msExchDynamicDistributionList) ))"

attrs = ["proxyAddresses"]
scope = ldap.SCOPE_SUBTREE

r = l.search(hqbase, scope, filter, attrs)
type,a = l.result(r)
result_set = []

for x in a:
  name,attrs = x
  if hasattr(attrs, 'has_key') and attrs.has_key('proxyAddresses'):
    proxyAddresses = attrs['proxyAddresses']
    for y in proxyAddresses:
      result_set.append("%s OK" %(y.replace("smtp:","").replace("SMTP:","")))

# Add additional restrictions, users, etc. to the output file below.
#result_set.append("user@example.com OK")
#result_set.append("user1@example.com 550 User unknown.")
#result_set.append("bad.example.com 550 User does not exist.")

#######################################################################
# Build file ...
output = file(valid_addresses,'w')

for line in result_set:
  output.write("%s\n" %(line))

output.close()
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.lanbugs.de/howtos/linux/python-version-von-getadsmtp-pl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

