Posts tagged HowTo

DNS Einträge für den Apple OS X Server

Da ich in der letzten Zeit immer mal wieder etwas zum Apple OS X Mountain Lion Server geschrieben habe, hat mich gestern folgende Frage erreicht: Welche Domain SRV Einträge sollten vorgenommen werden.

Das ist recht einfach zu beantworten, hängt aber doch sehr stark vom Use Case ab! Das mindeste sind die Einträge für caldav, caldavs, _carddav und _carddavs

Das ganze sieht dann ungefähr so aus:
_caldav._tcp SRV 0 1 8008 HOST.DOMAIN.TLD
_caldavs._tcp SRV 0 1 8443 HOST.DOMAIN.TLD
_carddav._tcp SRV 0 1 8008 HOST.DOMAIN.TLD
_carddavs._tcp SRV 0 1 8443 HOST.DOMAIN.TLD

Zusätzlich habe ich noch folgende Einträge extern publiziert:
_http._tcp SRV 0 1 80 HOST.DOMAIN.TLD
_http._tls._tcp SRV 0 1 443 HOST.DOMAIN.TLD
_https._tcp SRV 0 1 443 HOST.DOMAIN.TLD
_imap._tcp SRV 0 1 143 HOST.DOMAIN.TLD
_imaps._tcp SRV 0 1 993 HOST.DOMAIN.TLD
_ldap._tcp SRV 0 1 389 HOST.DOMAIN.TLD
_ldaps._tcp SRV 0 1 636 HOST.DOMAIN.TLD
_pop3._tcp SRV 0 1 110 HOST.DOMAIN.TLD
_pop3s._tcp SRV 0 1 995 HOST.DOMAIN.TLD
_smtp._tcp SRV 0 1 25 HOST.DOMAIN.TLD
_submission._tcp SRV 0 1 587 HOST.DOMAIN.TLD
_xmpp-client._tcp SRV 0 1 5222 HOST.DOMAIN.TLD
_xmpp-server._tcp SRV 0 1 5269 HOST.DOMAIN.TLD

Im Intranet (Und wirklich nur da, publiziere ich folgendes:
_ssh._tcp SRV 0 1 22 HOST.DOMAIN.TLD
_kerberos-master._udp SRV 0 1 88 HOST.DOMAIN.TLD
_kerberos-adm._tcp SRV 0 1 749 HOST.DOMAIN.TLD
_kerberos._udp SRV 0 1 88 HOST.DOMAIN.TLD
_kpasswd._udp SRV 0 1 464 HOST.DOMAIN.TLD
_kerberos TXT "DOMAIN.TLD"
kerberos CNAME HOST.DOMAIN.TLD

Wer mehrere Open Directory Server im Einsatz hat, der sollte hier auf jeden Fall einen Eintrag für ALLE vornehmen.

Wer mit Microsoft Clients (Outlook) arbeitet und Autodiscover nutzen möchte, der wird noch folgendes haben wollen (Intern und ggf. extern):
_autodiscover._tcp SRV 0 1 443 HOST.DOMAIN.TLD

Wenn aus der Domain Mail versendet werden soll, rate ich aber auf jeden Fall noch zum publizieren von SPF Records:
DOMAIN.TLD SPF "v=spf1 +a +mx XXX ~all"
DOMAIN.TLD SPF "spf2.0/pra +a +mx XXX ~all"
DOMAIN.TLD TXT "v=spf1 +a +mx XXX ~all"
DOMAIN.TLD TXT "spf2.0/pra +a +mx XXX ~all"

MySQL: Converting InnoDb tables to MyISAM

Today i installed a plugin that use a InnoDb! But i want too use MyISAM. After some tests, i figured out, that the following command helps:
ALTER TABLE ENGINE=MyISAM

In my case:
ALTER TABLE wp_nxs_log ENGINE=MyISAM
Works great!!!

If you want to convert from MyISAM to InnoDb, the command is the other way around:
ALTER TABLE
ENGINE=InnoDb

Roundcube Installation auf OS X Mountain Lion Server

Ich habe gerade auf bewoelkt.net eine Howto veröffentlicht: Roundcube Installation auf OS X Mountain Lion Server

Apple hat das Webmail (Roundcube) als Bestandteil vom neuen Mountain Lion Server gestrichen. Ich persönlich gehe immer noch davon aus, dass es an der GPL Lizenzierung liegt… Aber das ist unbestätigt.

Hier eine kuze Anleitung wie man als Administrator wieder ein Roundcube installieren kann und zum laufen kriegt.

Wer also wieder ein Webmail Interface für seinen OS X Mountain Lion Server braucht, der kann sich hier bedienen.

Auch wenn man kein Webmail braucht, kann das Manage Sieve interessant sein, denn damit können relativ einfach Dovecot Regeln (Rules) vom Enduser eingetragen werden. Das habe ich persönlich mehr vermisst als die eigentliche Webmail Funktion ;-)

PowerShell und Exchange ActiveSync II

Gestern habe ich ja wiedermal einen Artikel zum Thema PowerShell und ActiveSync gepostet. Kurz später kam die Frage was man damit noch so alles machen könnte.

Na ja, es ist “nur” ein PowerShell Snippet! Also kann damit eine Menge gemacht werden :)

Ein nützliches Anwendungsbeispiel: Geräte mit alter Software suchen und die User anschreiben und bitten ein Update einzuspielen!

Suchen wir also mal mal alle iDevices mit einer iOS Version kleiner als 5.0.1 (Also die aktuell neueste):
$Addresses = $Devices | ?{$_.DeviceUserAgent -notlike "*801.306"} | %{$_.Identity.SmtpAddress} | Get-Unique
Das gibt eine Email Liste aus. Wichtig für User (Wie mich) mit mehr als einem Device ist hier natürlich der | Get-Unique! Sonst bekommen diese User mehr als eine Mail ;-)

Diese Liste kann dann einfach direkt aus einem beliebigen Maier angeschrieben werden. Aber Moment: Das geht sich auch direkt aus PowerShell:
# Change the variables to fit your needs and environment.
# variables: Server, Port, Subject, Body and From
# Keep in mind to change the version string to, the actual version is 5.0.1 (801.306)
$Addresses = $Devices | ?{$_.DeviceUserAgent -notlike "*801.306"} | %{$_.Identity.SmtpAddress} | Get-Unique
$SMTPServer = "mailer.hochwald-it.local"
$SMTPPort = 25
$Subject = "Please Update your iDevice"
$Body = "You should update your iDevice as soon as possible."
$From = "mobile.support@hochwald-it.local"
#
# Send an e-mail to each e-mail address in $Addresses
$Addresses | % {
$Mail = (New-Object System.Net.Mail.smtpclient($SMTPserver, $SMTPport))
$Mail.Send($From, $_, $Subject, $Body)
$Mail = $null
}

Der aktuell Version String kann jeweils auf dem Exchange Server abgefragt werden. Oder wenn du selbst das aktuellste Device hast in deinem Outlook Web Access (ECP).

Eine komplette Anleitung ztu den ActiveSync Befehlen der Powershell sind auf der TechNet website zu finden.

Kalender Sync Probleme mit iDevices und Exchange 2010

Ich habe aktuell den Fall, dass iDevices (iPhone und iPad) mit iOS 4.x und iOS 5.0.1 immer wieder Probleme mit dem Sync vom Exchange 2010 Kalender haben. Irgendwas geht da mit Exchange Active Sync (EAS) schief. Meist äussert es sich so, dass die Termine vom Exchange einfach nicht mehr auf dem iDevice synchronisiert werden.

Als bester Workaround kann auf dem iDevice einfach der Kalender deaktiviert und wieder aktiviert werden.

Das ist natürlich übel:

  1. Der Enduser muss das machen!
  2. Termine die auf dem iPhone eingetragen wurden sind dann natürlich weg!

Hin und wieder ist der Exchange Kalender auf zerschossen!

Interessant ist dann natürlich der “Exchange Calendar Repair Assistant“.

Der Dienst sollte dann erstmal für alle User ausgeschaltet werden! Warum? Ganz einfach wir wollen den ja erstmal nur auf die Benutzer anwenden die aktuell Probleme haben:
get-mailbox -server SERVERNAME -resultsize Unlimited | Set-Mailbox -CalendarRepairDisabled $true

Für einzelne User kann er dann wie folgt eingeschaltet werden:
Set-Mailbox -Identity USER.UPN -CalendarRepairDisabled $false

Den Dienst sollte man dann natürlich planen, damit dieser auch regelmäßig auf dem Exchange Server ausgeführt wird:
Set-MailboxServer -Identity SERVERNAME -CalendarRepairWorkCycle 1.00:00:00 -CalendarRepairWorkCycleCheckpoint 1.00:00:00

Der “Exchange Calendar Repair Assistant” schreibt seine Logfiles nach:
C:Program FilesMicrosoftExchange ServerV14LoggingCalendar Repair Assistant

Natürlich ist es nützlich hin und wieder mal nachzusehen für welche User der “Exchange Calendar Repair Assistant” aktiviert ist:
get-mailbox -server SERVERNAME -Filter "CalendarRepairDisabled -eq `$false" -ResultSize unlimited

Auf Technet ist ein Skript von Jan Egil Ring zu finden um iDevices zu identifizieren. Das Skript zeigt alle iDevices die am Exchange bekannt sind.
Damit könnte man sich eine Liste erstellen um das auf alle User anzuwenden die ein iDevice haben.

Aber wer das ganze nicht per Skript machen will der kann ein vorhandenes Mobile Device Management (MDM) nutzen um die entsprechenden Geräte bzw. die verwendeten Softwarestände zu filtern.
Wer kein Mobile Device Management hat, der kann das ganze natürlich per PowerShell auch auf den Exchange Servern machen!

Wer wissen will welche Clients mit welchen Versionen Verbunden sind, der kann folgendes machen:
Get-ActiveSyncDeviceStatistics -Mailbox blye | ft DeviceType, DeviceUserAgent, LastSuccessSync

Wer einfach nur Zaheln zu den entsprechenden Devices möchte:
$Mailboxes = Get-Mailbox -RecipientTypeDetails UserMailbox –ResultSize Unlimited `-Filter {HiddenFromAddressListsEnabled -eq $false}
$Devices = $Mailboxes | %{Get-ActiveSyncDeviceStatistics -Mailbox $_.Identity}

Wer aber nur die iDevices (iPhone, iPad und iPod) haben will:
$Devices = $Mailboxes | %{Get-ActiveSyncDeviceStatistics -Mailbox $_.Identity} | `?{$_.DeviceType -like "iP*" -and $_.LastSuccessSync -gt (Get-Date).AddDays(-30)}
P.S.: Hier werden nur aktive (In den letzten 30 Tagen) ausgegeben, wer das nicht möchte, der kann natürlich den “-and $_.LastSuccessSync -gt (Get-Date).AddDays(-30)” weglassen!

Natürlich kann es Sinnvoll sein User mit bestimmten Geräten zu finden. Apple Devices sind relativ einfach zu filtern.

Hier die mir bekannten Active Sync iDevice Kennungen:
iPhone4C1 = 4S
iPhone3C3 = 4 (Verizon)
iPhone3C1 = 4
iPhone2C1 = 3Gs
iPhone1C2 = 3G
iPad2C3 = iPad 2 (Verizon)
iPad2C2 = iPad 2 (WiFi + 3G)
iPad2C1 = iPad 2 (WiFi)
iPad1C1 = iPad
iPod2C1 = iPod Touch 2
iPod3C1 = iPod Touch 3
iPod4C1 = iPod Touch 4

Ein Beispiel wäre das blockieren von iPhone 4S Geräten:
Get-ActiveSyncDevice –filter { DeviceUserAgent –like "Apple-iPhone4C1/*"} | Remove-ActiveSyncDevice –Confirm:$false

Oder auch iPod Geräten:
Get-ActiveSyncDevice –filter { DeviceUserAgent –like "Apple-iPod2C1/*"} | Remove-ActiveSyncDevice –Confirm:$false
Get-ActiveSyncDevice –filter { DeviceUserAgent –like "Apple-iPod3C1/*"} | Remove-ActiveSyncDevice –Confirm:$false
Get-ActiveSyncDevice –filter { DeviceUserAgent –like "Apple-iPod4C1/*"} | Remove-ActiveSyncDevice –Confirm:$false

Und es könnte auch ein bestimmte Geräte/Software Kombination blockiert werden:
Get-ActiveSyncDevice –filter { DeviceUserAgent –like "iPhone2C1/901.528800004"} | Remove-ActiveSyncDevice –Confirm:$false
Dieses Beispiel blockiert den Exchange Active Sync Zugriff von allen iPhone 3Gs mit dem iOS Release 901.528800004, also 5.0 (9A5302b) Developer Preview 6 ;-)

Version string:
901.404 = 5.0.1
901.335 = 5.0
901.334 = 5.0 (GM Release of iOS 5)
812.1 = 4.3.5
811.3 = 4.3.4 (Verizon iPad2)
811.2 = 4.3.4
810.3 = 4.3.3 (Verizon iPad2)
810.2 = 4.3.3
808.8 = 4.3.2 (Verizon iPad 2)
808.7 = 4.3.2
807.4 = 4.3.1
806.191 = 4.3 (iPad 2)
806.190 = 4.3