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
Letzte Überarbeitung Beide Seiten der Revision
know-how:tools [2020/05/14 16:28]
cc [Einfache Zeitaufzeichnung]
know-how:tools [2021/04/24 16:03]
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 
 +  * 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.txt · Zuletzt geändert: 2021/04/24 16:03 von cc