Po zabawie z grupami okazało się, że niektórzy użytkownicy nie mogą wysyłać poczty przez linuxowy serwer SMTP.

W logach AD wszystko było w porządku, użytkownicy się uwierzytelniani i generalnie luz malina, do tego IMAP i POP3 działały bez problemu. Za to w logach Linux pojawiało się AUTH_FAIL i nie bardzo było wiadomo o co chodzi. Debug na Linux powiedział, że datagram Kerberos jest za długi a dokładniej serwer Kerberos odpowiadał komunikatem KRB_ERR_RESPONSE_TOO_BIG. Ponoć coś takiego dzieje się jak użytkownik jest w dużej liczbie grup, jednak u nas problem pojawiał się dla niektórych członków pewnej grupy.

Rozwiązanie, którego wyszukanie zajęło Pstrykowi pół dnia:

  1. Ustawić KRB5 tak żeby używał tylko TCP co teoretycznie powinno rozwiązać problem.
    W pliku krb5.conf należy wpisać
    udp_preference_limit = 1
    Jednak mimo tego Linux cały czas usiłował przesyłać datagramy UDP zamiast pakietów TCP :o przez co cały czas Windows odpowiadało KRB_ERR_RESPONSE_TOO_BIG
  2. Zwiększyć na Windowsowym serwerze Kerberos maksymalny rozmiar datagramu UDP
    HKLMSystemCurrentControlSetServicesKdc
    Dopisać REG_DWORD MaxDatagramReplySize i wpisać mu odpowiednio dużą wartość (my wpisaliśmy 10000 – standardowo jest to 2000)
  3. Restart Windows i cieszyć się, że działa :)

Wada: nie róbcie tego na kiepskich łączach bo Kerberos się zagubi jak mu będą ginąć datagramy. U nas to stoi w wydzielonym VLAN do kerberosa pomiędzy serwerem poczty a kontrolerem domeny więc nie ma tego problemu.

Nie ma linków popierających bo to kompilacja dużej liczby artykułów :)
BTW na połączeniu Mac OS X – AD problem też występuje