Benutzer-Werkzeuge

Webseiten-Werkzeuge


know-how:tools

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Nächste ÜberarbeitungBeide Seiten der Revision
know-how:tools [2021/01/12 14:46] – [crunch] ccknow-how:tools [2021/02/04 09:53] – [checkDNSEntriesLDAP] cc
Zeile 1: Zeile 1:
 ====== Need to have ====== ====== Need to have ======
 +
 +===== checkDNSEntriesLDAP =====
 +  * Active Directory auf seine Konsistenz überprüfen - forward lookup und reverse lookup der Einträge sollten übereinstimmen
 +  * Getestet auf: Ubuntu 18.04 
 +  * Pakete erforderlich: php , php-ldap , php-mbstring
 +  * **Achtung** ich benutze hier bewusst die tls verschüsselte Variante von ldap d.h. ldaps - die CA von der das Zertifikat für den AD Server unterschrieben wurde befindet sich unter **/usr/share/ca-certificates/** und wurde mit **dpkg-reconfigure ca-certififcates** ins System "integriert" auch der Hostname stimmt mit dem Hostnamen aus den Zertifikatsinfos überein
 +
 +
 +  * **/usr/local/bin/checkDNSEntriesLDAP.php**
 +<code>
 +<?php
 +
 +$server = "ldaps://AD_SERVER:636";
 +//domain user to connect to LDAP
 +$user = "STANDARD_USER_DOMAIN@DOMAIN_ACTIVE_DIRECTORY";
 +//user password
 +$passwd = "PASSWORD_STANDARD_USER_DOMAIN";
 +
 +//zB: OU=EDV1,OU=Workstations,OU=Ressourcen,OU=VirtualSchool,DC=schule,DC=intern
 +$dn = array(0=>"DN_NAME_LDAP_PFAD1",1=>"DN_NAME_LDAP_PFAD2");
 +
 +
 +$search="(objectClass=computer)";
 +
 +
 +$errDNS=0;
 +$countAll=0;
 +$okDNS=0;
 +
 +for ($j=0; $j<count($dn); $j++)
 +{
 +        $ds=ldap_connect($server);
 +       $r=ldap_bind($ds, $user , $passwd);
 +
 + $sr=ldap_search($ds, $dn[$j], $search, array(0=>"dNSHostName",1=>"distinguishedName"));
 +
 + $data = ldap_get_entries($ds, $sr);    
 +       
 +
 +         $countAll+=$data["count"];
 +
 + for ($i=0; $i<$data["count"]; $i++) 
 + {
 +
 +
 + if(isset($data[$i]["dnshostname"][0]))
 + {
 +
 + $ip=gethostbyname($data[$i]["dnshostname"][0]);
 + if($ip!=$data[$i]["dnshostname"][0])
 + {
 +
 + $reverseLookup=gethostbyaddr($ip);
 +
 + if(mb_strtolower($reverseLookup) != mb_strtolower($data[$i]["dnshostname"][0]) )
 + {
 +
 + echo "FAIL Hostname: ".$data[$i]["dnshostname"][0]." IP: ".$ip." Reverse: ".$reverseLookup."\n";
 +                       $errDNS++;
 +
 + }
 + else
 + {
 + $okDNS++;
 + }
 +
 +
 +
 + }
 + else
 + {
 + echo "FAIL NO-IP Entry: ".$data[$i]["dnshostname"][0]."\n";
 +                $errDNS++;
 + }
 +
 + }
 + else
 + {
 + echo "FAIL NO DNSHostname: ".$data[$i]["distinguishedName"][0]."\n";
 + $errDNS++;
 + }
 +
 +
 + }
 +
 + ldap_close($ds);
 +}
 +
 +echo "Summary:\n";
 +echo "All Computer objects found: ".$countAll."\n";
 +echo "All Computer objects ok: ".$okDNS."\n";
 +echo "Consistency integrity: ";
 +printf("%.2f \n",(($okDNS/$countAll)*100));
 +echo "Errors computer count: ".$errDNS."\n";
 +echo "OU's that i looked for :\n";
 +print_r($dn);
 +
 +echo "\n";
 +
 +
 +?>
 +
 +</code>
  
 ===== mac-switchport ===== ===== mac-switchport =====
know-how/tools.txt · Zuletzt geändert: 2024/02/26 10:30 von cc