Zum Inhalt

Monat: November 2013

Sender-IP blocken mit Postfix

smtpd_recipient_restrictions in der main.cf erweitern

smtpd_recipient_restrictions=
permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination,
reject_unauth_pipelining,
reject_non_fqdn_recipient,
    check_client_access cidr:/etc/postfix/ip-block

IP-Adressen in das oben referenzierte File schreiben:

echo "62.27.38.63 REJECT Spammer muessen in der Hoelle schmoren." >> /etc/postfix/ip-block

ip-block DB erstellen und Postfix neu starten:

postmap /etc/postfix/ip-block

/etc/init.d/postfix restart

Leave a Comment

HOWTO: Windows Server 2008/2012 Backups/VSS-Fehler debuggen

Ein schönes Beispiel um zu zeigen, wie man Windows Backup-Fehler generell debuggen kann, gültig für Windows Server 2008 und neuer (entspricht den Client-Betriebssystemen Vista und neuer):

(1) FEHLERBESCHREIBUNG

Log des Sicherungsprogramms meldet:
The backup operation stopped before completing.
Detailed error: ERROR – A Volume Shadow Copy Service operation error has occurred: (0x800423f4)
The writer experienced a non-transient error. If the backup process is retried, the error is likely to reoccur.

Die sog. VSS Writer sammeln Daten von der Festplatte, MSSQL, IIS, Exchange, und so weiter ein und schreiben die jeweiligen Daten(-banken) in einem konsistenten Stand ins Backup, übrigens werden die meistens auch bei Drittanbieter-Software verwendet (Acronis, BackupExec, etc…)

(2) WER IST DER SCHULDIGE?

Infos darüber, welches VSS-Writer-Modul den Fehler erzeugt, findet man in der Konsole mit "VSSADMIN LIST WRITERS"

Writer name: 'SqlServerWriter'
Writer Id: {a65faa63-5ea8-4ebc-9dbd-a0c4db26912a}
Writer Instance Id: {4fb3be04-8d39-4fc4-9b39-dd6abe6061a9}
State: [8] Failed
Last error: Non-retryable error

Ergo: irgendwas mit SQL.

(3) EIN BISSCHEN GENAUER, BITTE

Die Windows-Ereignisanzeige (am besten schaut man immer zuerst bei den "Administrativen Ereignissen", da bekommt man nur Warnungen und Fehler) sagt zum Zeitpunkt, als das Backup abgebrochen ist:

Source: SQLWRITER
EventID: 8193
SQL writer error: Unexpected error calling routine
IClientVirtualDevice::GetCommand. hr = 0x80770004.

sowie viele dutzende:

Source: MSSQL$MSSQLSERVER2008
EventID: 3041
BACKUP failed to complete the command BACKUP DATABASE MSSQL047.
Check the backup application log for detailed messages.

Ein kurzer Blick nach den beiden Event-IDs und dem Fehlercode 0x80770004 bringt einen dazu, dass es wohl um kaputte Datenbanken geht, die wegen einer Eigenschaft "AutoClose = True" kaputt gehen, gerade auf hektisch befahrenen MSSQL-Servern.

(4) DIE PROBLEMLÖSUNG

Microsoft sagt dazu, es sei "Best Practice", die AutoClose Property abzuschalten. AutoClose bringt den SQL-Server dazu, die Datenbank beim disconnect des letzten Clienst die Daten auf die Festplatte zu schreiben. Verbindet wieder ein Client, wird die DB wieder geöffnet, und wieder geschlossen, und auf, und zu, und BUMM.

siehe:
http://blogs.msdn.com/b/buckwoody/archive/2009/06/24/sql-server-best-practices-autoclose-should-be-off.aspx

Das ist nicht nur anspruchsvoll für die DB, sondern macht auch jegliche Caching-Versuche zunichte. Der Server sollte halt bei deaktiviertem AutoClose nicht hart abgeschalten werden.

Schnell das MSSQLMS (Microsoft SQL Server Management Studio) gestartet, als Administrator eingeloggt, "New Query", und mit folgender Abfrage betroffene Datenbanken gesucht:

SELECT * FROM sys.databases WHERE DATABASEPROPERTYEX (name, 'IsAutoClose') = 1

Die Datenbanken kann man nun mit rechtsklick auf die Datenbank -> Eigenschaften -> Optionen -> AutoClose = false entsprechend konfigurieren.

Manche Datenbanken quittieren das mit einem Fehler 9001, da hilft es die DB offline und online zu nehmen. Die Ursache dafür ist genau der Datenbankdefekt, der durch die angeschaltene AutoClose Option beursacht wurde.

Hint: Microsoft hat ab *irgendeiner* Version (eine neuere als die, an der ich sitze) AutoClose = off direkt in das CREATE DATABASE Statement als Standardwert implementiert. Besser spät als nie.

(5) AUFRÄUMARBEITEN

Hat man alle Datenbanken richtig konfiguriert, werden die kaputten DBs noch repariert. Das kann man sich klicken, schneller geht's aber mit folgendem Query:

SQL-Kung Fu für "ich habe kein Backup aber will alle Datenbanken jetzt sofort reparieren":

MSSQL 2005 und früher:
exec sp_MSforeachDB 'DBCC CHECKDB ("?") WITH ALL_ERRORMSGS, DATA_PURITY'

MSSQL 2008 und später:
exec sp_MSforeachDB 'DBCC CHECKDB ("?") WITH ALL_ERRORMSGS, EXTENDED_LOGICAL_CHECKS, DATA_PURITY'

Danach startet man das Backup und freut sich auf das nächste Problem 🙂

Leave a Comment

Kein Remotedesktop zu Windows 7 oder Windows Server 2008 möglich nach Update-Installation

Im Window 2667402 und (das auch im SP1 enthalten ist) gibt es einen Bug:

Nach dessen Installation ist der Remotedesktop-Dienst gestoppt und jedes Mal wenn man ihn starten will, stürzt er ab.

"Faulting application name: svchost.exe_TermService, version: 6.1.7600.16385, time stamp: 0x4a5bc3c1

Faulting module name: rdpcorekmts.dll, version: 6.1.7600.16952, time stamp: 0x4f1f9e66
Exception code: 0xc0000005
Fault offset: 0x000000000000a793
Faulting process id: 0xabc
Faulting application start time: 0x01cd4a68213a1459
Faulting application path: C:\Windows\System32\svchost.exe
Faulting module path: C:\Windows\system32\rdpcorekmts.dll

Abhilfe:

  • Remotedesktop-Dienste stoppen
  • Update 2667402 deinstallieren
  • Update 2667402 wieder installieren
  • Remotedesktop-Dienste starten

Kein Witz! Hier noch die Download-Links:

Für Windows 7: http://www.microsoft.com/en-us/download/details.aspx?id=29145

Für Windows Server 2008 R2: http://www.microsoft.com/en-us/download/details.aspx?id=29169

Der dazugehörige Knowledge Base Artikel: http://support.microsoft.com/kb/2667402

 

Leave a Comment

Plesk 11.5: FollowSymLinks or SymLinksIfOwnerMatch is off

Stößt man in Plesk 11.5 in

/var/www/vhosts/domainname/statistics/logs/error_log

auf den Fehler

Options FollowSymLinks or SymLinksIfOwnerMatch is off which implies that RewriteRule directive is forbidden

gibt es eine sehr einfache Abhilfe:

  • /etc/apache2/mods-enabled/dir.conf im Texteditor öffnen (auf manchen Systemen auch /etc/httpd/mods-enabled/dir.conf)
  • tausche in der Zeile die mit DirectoryIndex beginnt die Wörter index.pl und index.php
  • fertig.

Also z.B. vorher:

DirectoryIndex at_domains_index.html index.html index.cgi index.pl index.php index.xhtml index.htm index.shtml index.cfm

nachher:

DirectoryIndex at_domains_index.html index.html index.cgi index.php index.pl index.xhtml index.htm index.shtml index.cfm

Leave a Comment