Benutzer-Werkzeuge

Webseiten-Werkzeuge


know-how:tools

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
know-how:tools [2020/05/14 16:28]
cc [Einfache Zeitaufzeichnung]
know-how:tools [2021/04/24 16:03] (aktuell)
cc [hping3]
Zeile 1: Zeile 1:
 ====== Need to have ====== ====== Need to have ======
 +
 +===== wipe =====
 +  * In meinem Fall im Einsatz bei einer Live PXE Debian Variante um Rechner zu wipen die nicht mehr gebraucht werden
 +  * **Achtung** Löscht alle Platten die gefunden werden (!)
 +
 +  * **wipe.sh**
 +<code>
 +#!/bin/bash
 +
 +GRACE_TIME="10"
 +TIMES_OVERWRITE="2"
 +
 +while (($GRACE_TIME > 0)) ; do 
 +
 + sleep 1
 +
 + ((GRACE_TIME--))
 +
 +done
 +
 +HARDDISKS=$(lsblk -p -d -n -l -o NAME,TYPE | grep -i disk | awk '{print $1}')
 +
 +echo "MACHINE: "
 +
 +echo "--------------------"
 +
 +dmidecode --type '1'
 +
 +echo "--------------------"
 +
 +procCount=0
 +
 +for CURRENT_HARDDISK in $HARDDISKS ; do 
 +
 +
 + echo "Harddisk - $CURRENT_HARDDISK - Debug below"
 +
 + echo "-------------------------"
 +
 + for i in $(seq 1 $TIMES_OVERWRITE ) ; do 
 +
 + dd if=/dev/zero of=$CURRENT_HARDDISK bs=16M 2>&1 &
 + # https://stackoverflow.com/questions/356100/how-to-wait-in-bash-for-several-subprocesses-to-finish-and-return-exit-code-0 
 +
 + pids[${procCount}]=$!
 +
 + ((procCount++))
 +
 +
 + done
 +
 +
 +
 + echo "-------------------------"
 +
 +done
 +
 +# https://stackoverflow.com/questions/356100/how-to-wait-in-bash-for-several-subprocesses-to-finish-and-return-exit-code-0 
 +echo "Process Count Waiting: $procCount"
 +
 +for pid in "${pids[*]}" ;
 +do
 + wait $pid
 + done
 +
 +sync
 +</code>
 +
 +===== 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 =====
 +  * Für HPE1950 Serie / damit es möglich wird herauszufinden auf welchem Port und Switch bestimmte MAC Adressen gefunden werden
 +
 +  * **mac-switchport.sh IP_Switch MAC_Address** 
 +
 +<code>
 +#!/bin/bash
 +
 +function bailout
 +{
 + echo -en "ERROR: $1\n";
 + exit 2;
 +}
 +
 +function run_ips
 +{
 + exit_codes=0
 +
 + for i in $SWITCHES_IPS ;
 + do
 +           $0 $i "$1" ;
 +    exit_codes=$(($exit_codes + $?))
 + done
 +
 +       exit $exit_codes
 +}
 +
 +
 +function usage 
 +{
 + echo -en "Usage: $0 ip-address-switch  mac-address e.g. 00:75:2d:ee:5e:11\n";
 + echo -en "Usage: export SWITCHES_IPS="ip1 ip2 ip3" then $0 mac-address e.g. 00:75:2d:ee:5e:11\n";
 + exit 1;
 +}
 +
 +OID_INTERFACE_AND_MAC="1.3.6.1.2.1.17.4.3.1.2"
 +
 +which cut > /dev/null || bailout "command cut not found!"
 +
 +which snmpwalk > /dev/null || bailout "command snmpwalk not found! Debian/Ubuntu package: snmp"
 +
 +which xargs > /dev/null || bailout "command xargs not found!"
 +
 +which sed > /dev/null || bailout "command sed not found!"
 +
 +which printf > /dev/null || bailout "command printf not found!"
 +
 +
 +[[ -n "$SWITCHES_IPS" ]] && [[ $# == 1 ]] && run_ips $1
 +
 +[[ $# != 2 ]] && usage 
 +
 +
 +ip="$1"
 +mac="$2"
 +IFS=$'\n'
 +
 +echo $mac | grep -q -P "^([0-9a-fA-F]{2}:){5}[0-9a-fA-F]{2}$" 
 +
 +[[ $? != 0 ]] && bailout "Not a correct MAC address format: $mac \n I need two digit  hex mac address  e.g. 00:1f:11:32:7f:1f"
 +
 +while read line ; 
 +do 
 + mac_found=$(echo $line | cut -d"=" -f 1 | cut -d"." -f 12,13,14,15,16,17 | tr . ' ' | xargs  printf '%02x:' | sed 's/\(.*\):/\1 /')
 +
 +       
 +        echo $mac_found | grep -q -i --fixed-strings $mac
 +
 +        if [ $? == "0" ]
 + then
 +            interface_found=$(echo $line | cut -d":" -f 2 | tr -d ' ' )
 +     number_macs=$(snmpwalk -v 1 -Os -c public "$ip" "$OID_INTERFACE_AND_MAC" | grep -c "^.*INTEGER: $interface_found$")
 +     echo "SUCCESS;$ip;$mac;$interface_found;$number_macs"
 +     exit 0
 + fi
 +
 +
 +done  < <( snmpwalk -v 1 -Os -c public "$ip" "$OID_INTERFACE_AND_MAC" )
 +
 +echo "ERROR;$ip;$mac;0;0"
 +exit 1
 +</code>
 +
 +
 ===== Roadworker-Start OpenVPN ===== ===== Roadworker-Start OpenVPN =====
   * Ich möchte eine Roadworker OpenVPN Datei mit verschlüsseltem Private Key in der XFCE GUI starten nach dem Login   * Ich möchte eine Roadworker OpenVPN Datei mit verschlüsseltem Private Key in der XFCE GUI starten nach dem Login
 +
 +  * XFCE Startup nach dem Einloggen:
 +
 +{{:know-how:startup-xfce-roadworker-vpn.png?400|}}
  
  
Zeile 41: Zeile 300:
 </code> </code>
  
 +  * **Achtung: ** bei Debian Buster ist gksudo/gksu nicht mehr in den Repositories vorhanden
 +  * Openvpn Aufruf als Root :
 +<code>
 +pkexec --user root openvpn --daemon --writepid /tmp/roadworker.pid --config /home/urnilxfgbez/openvpn/roadworker.conf --askpass $temp_file
 +
 +</code>
 ===== Einfache Zeitaufzeichnung ===== ===== Einfache Zeitaufzeichnung =====
   * Benötigt wird zenity / dateutils    * Benötigt wird zenity / dateutils 
Zeile 253: Zeile 518:
  
 For detailed information see the manual. For detailed information see the manual.
 +</code>
 +  * **Uptime** bei tcp-timestamps ermitteln / ist **keine exakte Wissenschaft**
 +  * https://floatingoctothorpe.uk/2018/detecting-uptime-from-tcp-timestamps.html
 +<code>
 +hping3 --count 2 --syn --destport 22 --tcp-timestamp 10.0.23.245
 +HPING 10.0.23.245 (eth0 10.0.23.245): S set, 40 headers + 0 data bytes
 +len=56 ip=10.0.23.245 ttl=64 DF id=0 sport=22 flags=SA seq=0 win=65160 rtt=7.6 ms
 +  TCP timestamp: tcpts=1138723235
 +
 +len=56 ip=10.0.23.245 ttl=64 DF id=0 sport=22 flags=SA seq=1 win=65160 rtt=3.5 ms
 +  TCP timestamp: tcpts=1138724235
 +  HZ seems hz=1000
 +  System uptime seems: 13 days, 4 hours, 18 minutes, 44 seconds
 +
 +
 +--- 10.0.23.245 hping statistic ---
 +2 packets transmitted, 2 packets received, 0% packet loss
 +round-trip min/avg/max = 3.5/5.6/7.6 ms
 +
 </code> </code>
  
Zeile 274: Zeile 558:
  
  
 +===== reptyr =====
 +  * zB: vim Session wieder herstellen / wenn die SSH Verbindung abbricht / Programm mit PID zum aktuellen terminal "ziehen"
 +<code>
 +man Auszug
 +"reptyr  is a utility for taking an existing running program and attach‐ing it to a new terminal"
 +
 +apt-get install reptyr
 +
 +
 +reptyr PID
 +
 +</code>
 ===== crunch ===== ===== crunch =====
   * Wordlists erstellen unter bestimmten Kriterien   * Wordlists erstellen unter bestimmten Kriterien
know-how/tools.1589466519.txt.gz · Zuletzt geändert: 2020/05/14 16:28 von cc