Oneliner: Unterschied zwischen den Versionen

Aus dem IServ-Wiki
Zur Navigation springen Zur Suche springen
(+squidGuard testen, ob eine bestimmte URL von einem bestimmten Rechner aus erreichbar ist)
 
(32 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 +
== Benutzer/Gruppen ==
 
; Die Gruppen mit den meisten Mitgliedern auflisten
 
; Die Gruppen mit den meisten Mitgliedern auflisten
 
<cmdpre>
 
<cmdpre>
Zeile 4: Zeile 5:
 
</cmdpre>
 
</cmdpre>
  
 +
; Benutzer auflisten, deren Account länger als 20 Zeichen ist (Grenze von Windows 7)
 +
<rootpre>
 +
psql -Atc 'select length(act) as length, act from users where length(act) > 20 order by length'
 +
</rootpre>
 +
 +
== System ==
 
; Aktuelleren Kernel (> 2.6.30) auf Lenny-Servern installieren
 
; Aktuelleren Kernel (> 2.6.30) auf Lenny-Servern installieren
 
<rootpre>
 
<rootpre>
Zeile 9: Zeile 16:
 
</rootpre>
 
</rootpre>
  
; Downloads auflisten lassen, die die DSL-Bandbreite des Servers verstopfen
+
; initramfs entpacken
 
<cmdpre>
 
<cmdpre>
tail -f /var/log/apache2/access.log | awk '{if ($10 > 1000000) { print $10 "\t" $7}}'
+
cd
 +
mkdir initrd
 +
cd initrd
 +
zcat /boot/my-initramfs.cpio.gz | (while true; do cpio -i -d -H newc --no-absolute-filenames || exit; done)
 
</cmdpre>
 
</cmdpre>
  
; initrd entpacken
+
; initramfs packen
 
<cmdpre>
 
<cmdpre>
cd
 
mkdir initrd
 
 
cd initrd
 
cd initrd
zcat /boot/my-initramfs.cpio.gz | (while true; do cpio -i -d -H newc --no-absolute-filenames || exit; done)
+
find | cpio -H newc -o | bzip2 -c > /boot/my-initramfs.cpio.bz2
 +
</cmdpre>
 +
 
 +
; Pakete finden, die in ihrer aktuellen Version nicht herunterladbar sind<ref>Ja, der Hack ist so dreckig, wie er aussieht. Quelle: [http://us.generation-nt.com/bug-579603-aptitude-archive-now-matches-installed-removed-not-purged-packages-help-197739221.html]</ref>
 +
<cmdpre>
 +
aptitude search '?narrow(?not(?archive("^[^now]{3}.*$")),?version(CURRENT))'
 +
</cmdpre>
 +
 
 +
== Spamfilter ==
 +
; SpamAssassin-Statistiken ausgeben
 +
<rootpre>
 +
HOME=/var/lib/spamassassin sudo -u debian-spamd sa-learn --dump magic
 +
</rootpre>
 +
 
 +
; Mail vom Spamfilter untersuchen lassen
 +
<rootpre>
 +
cat mail.txt | spamassassin-test -D
 +
</rootpre>
 +
 
 +
== Netzwerk/Internet ==
 +
; Downloads auflisten lassen, die die DSL-Bandbreite des Servers verstopfen
 +
<cmdpre>
 +
tail -f /var/log/apache2/access.log | awk '{if ($10 > 1000000) { print $10 "\t" $7}}'
 
</cmdpre>
 
</cmdpre>
 +
 +
; Mails auflisten lassen, die die DSL-Bandbreite des Servers verstopfen
 +
<rootpre>
 +
grep '<=' /var/log/exim4/mainlog | perl -ne '/ S=(\d+)/; if ($1 > 2000000) { print $_ }' | awk '{print $3}' | while read i; do exigrep $i /var/log/exim4/mainlog; done
 +
</rootpre>
  
 
; squidGuard testen, ob eine bestimmte URL von einem bestimmten Rechner aus erreichbar ist
 
; squidGuard testen, ob eine bestimmte URL von einem bestimmten Rechner aus erreichbar ist
Zeile 31: Zeile 66:
 
</filepre>
 
</filepre>
 
Liefert eine leere Zeile, wenn die Seite abgerufen werden darf.
 
Liefert eine leere Zeile, wenn die Seite abgerufen werden darf.
 +
 +
; Fortlaufende IP-Ranges in die Rechnerverwaltung eintragen und freischalten
 +
<rootpre>
 +
for i in $(seq -f '%02g' 1 39); do psql -tc "INSERT INTO hosts (name, room, ip, display, route) VALUES ('VerwaltungWLAN-$i', 'Verwaltung', '192.168.10.160'::INET + $i, false, true);"; done
 +
/usr/lib/iserv/newhosts
 +
</rootpre>
 +
 +
; Port 25 überwachen, um Spambots zu finden (Interface und IP vom IServ ggf. anpassen)
 +
<rootpre>
 +
tshark -pl -t ad -i eth0 "port 25 and not host 10.0.0.1" -R smtp | tee smtp.log
 +
</rootpre>
 +
 +
; DNSChanger-infizierte Rechner im Netzwerk finden (Interface ggf. anpassen)
 +
<rootpre>
 +
tshark -pl -t ad -i eth0 "dst net 85.255.112.0/20 or dst net 67.210.0.0/20 or dst net 93.188.160.0/21 or dst net 77.67.83.0/24 or dst net 213.109.64.0/20 or dst net 64.28.176.0/20" | tee dnschanger.log
 +
</rootpre>
 +
 +
; /etc/udev/rules.d/70-persistent-net.rules neu generieren
 +
<rootpre>
 +
udevadm trigger --action=add --subsystem-match=net --verbose
 +
</rootpre>
 +
 +
; Accounts auflisten, die in den letzten 24 Stunden unverschlüsselte Protokolle (IMAP, SMTP, FTP, POP3) verwendet haben<ref><code>smbd</code> ({{WP|Samba (Software)|Samba|de}}) ist bewusst ausgenommen, da die Übertragung dort konzeptbedingt nur unverschlüsselt erfolgen kann.</ref>
 +
{{Wichtig|'''Datenschutz:''' Dies sollte nur in Absprache mit Schulleitung und Personalrat von einem Administrator angewendet werden, da die Abfrage persönliche Daten zum Verhalten eines Benutzers erfasst!}}
 +
<rootpre>
 +
psql -c "SELECT DISTINCT(act) FROM session_log WHERE encrypted = false AND service != 'smbd' AND login > now() - '24 hours'::interval"
 +
</rootpre>
 +
 +
== Datenbank ==
 +
; In psql die Tabellen auflisten, die den meisten Speicher belegen
 +
<filepre>
 +
SELECT nspname || '.' || relname AS "relation",
 +
    pg_size_pretty(pg_total_relation_size(C.oid)) AS "total_size"
 +
  FROM pg_class C
 +
  LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace)
 +
  WHERE nspname NOT IN ('pg_catalog', 'information_schema')
 +
    AND C.relkind <> 'i'
 +
    AND nspname !~ '^pg_toast'
 +
  ORDER BY pg_total_relation_size(C.oid) DESC
 +
  LIMIT 20;
 +
</filepre>
 +
 +
; In psql Rechner auflisten, deren Namen sich nur durch Groß- und Kleinschreibung unterscheiden
 +
<filepre>
 +
SELECT name,mac,ip FROM hosts WHERE LOWER(name) IN
 +
  (SELECT LOWER(name) FROM HOSTS GROUP BY LOWER(name) HAVING COUNT(*) > 1);
 +
</filepre>
 +
 +
; IP-Bereich migrieren (IPs entsprechend anpassen; anschließend /usr/lib/iserv/newhosts ausführen)
 +
<filepre>
 +
UPDATE hosts SET ip = ip & '0.0.0.255' | '10.0.3.0' WHERE ip << '192.168.100.0/24' AND ip & '0.0.0.255' | '10.0.3.0' NOT IN (SELECT ip FROM hosts);
 +
</filepre>
 +
 +
== Windows ==
 +
; RDP anschalten
 +
<cmdpre>
 +
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
 +
</cmdpre>
 +
 +
=== Windows 7 ===
 +
; System-Ereignisprotokoll in der Konsole ausgeben (Nur die 10 neuesten Ereignisse, mit Details)
 +
<cmdpre>
 +
wevtutil /rd:true /c:10 /f:text qe system
 +
</cmdpre>
 +
; Anwendung-Ereignisprotokoll in der Konsole ausgeben (Nur die 10 neuesten Ereignisse, mit Details)
 +
<cmdpre>
 +
wevtutil /rd:true /c:10 /f:text qe application
 +
</cmdpre>
 +
 +
=== Windows XP ===
 +
; System-Ereignisprotokoll in der Konsole ausgeben (Alle Ereignisse, ohne Details)
 +
<cmdpre>
 +
cscript %systemroot%\system32\eventquery.vbs /l system
 +
</cmdpre>
 +
; System-Ereignisprotokoll in der Konsole ausgeben (Nur die 10 neuesten Ereignisse, mit Details)
 +
<cmdpre>
 +
cscript %systemroot%\system32\eventquery.vbs /l system /r 10 /v
 +
</cmdpre>
 +
; Anwendung-Ereignisprotokoll in der Konsole ausgeben (Nur die 10 neuesten Ereignisse, mit Details)
 +
<cmdpre>
 +
cscript %systemroot%\system32\eventquery.vbs /l application /r 10 /v
 +
</cmdpre>
 +
Manchmal auch:
 +
<cmdpre>
 +
cscript %systemroot%\system32\eventquery.vbs /l anwendung /r 10 /v
 +
</cmdpre>
 +
 +
{{Fußnoten}}
  
 
[[Kategorie:Spickzettel]]
 
[[Kategorie:Spickzettel]]

Aktuelle Version vom 10. Mai 2017, 16:48 Uhr

Benutzer/Gruppen

Die Gruppen mit den meisten Mitgliedern auflisten
befehl
cat /etc/group | perl -ne 'my @p = split(/:/, $_); print scalar (split(/,/, $p[3])) . " " . $p[0] . "\n";' | sort -n | tail
Benutzer auflisten, deren Account länger als 20 Zeichen ist (Grenze von Windows 7)
root
psql -Atc 'select length(act) as length, act from users where length(act) > 20 order by length'

System

Aktuelleren Kernel (> 2.6.30) auf Lenny-Servern installieren
root
aptitude install -t lenny-backports linux-image-2.6-686-bigmem
initramfs entpacken
befehl
cd
mkdir initrd
cd initrd
zcat /boot/my-initramfs.cpio.gz | (while true; do cpio -i -d -H newc --no-absolute-filenames || exit; done)
initramfs packen
befehl
cd initrd
find | cpio -H newc -o | bzip2 -c > /boot/my-initramfs.cpio.bz2
Pakete finden, die in ihrer aktuellen Version nicht herunterladbar sind[1]
befehl
aptitude search '?narrow(?not(?archive("^[^now]{3}.*$")),?version(CURRENT))'

Spamfilter

SpamAssassin-Statistiken ausgeben
root
HOME=/var/lib/spamassassin sudo -u debian-spamd sa-learn --dump magic
Mail vom Spamfilter untersuchen lassen
root
cat mail.txt | spamassassin-test -D

Netzwerk/Internet

Downloads auflisten lassen, die die DSL-Bandbreite des Servers verstopfen
befehl
tail -f /var/log/apache2/access.log | awk '{if ($10 > 1000000) { print $10 "\t" $7}}'
Mails auflisten lassen, die die DSL-Bandbreite des Servers verstopfen
root
grep '<=' /var/log/exim4/mainlog | perl -ne '/ S=(\d+)/; if ($1 > 2000000) { print $_ }' | awk '{print $3}' | while read i; do exigrep $i /var/log/exim4/mainlog; done
squidGuard testen, ob eine bestimmte URL von einem bestimmten Rechner aus erreichbar ist
befehl
echo "http://rotten.com 192.168.0.51/- - GET" | squidGuard

Liefert folgende Ausgabe, wenn die Seite gesperrt ist:

datei
302:http://mein-iserv.de/idesk/inet/block.php?grp=porn&url=http://rotten.com 192.168.0.51/- - GET

Liefert eine leere Zeile, wenn die Seite abgerufen werden darf.

Fortlaufende IP-Ranges in die Rechnerverwaltung eintragen und freischalten
root
for i in $(seq -f '%02g' 1 39); do psql -tc "INSERT INTO hosts (name, room, ip, display, route) VALUES ('VerwaltungWLAN-$i', 'Verwaltung', '192.168.10.160'::INET + $i, false, true);"; done
/usr/lib/iserv/newhosts
Port 25 überwachen, um Spambots zu finden (Interface und IP vom IServ ggf. anpassen)
root
tshark -pl -t ad -i eth0 "port 25 and not host 10.0.0.1" -R smtp | tee smtp.log
DNSChanger-infizierte Rechner im Netzwerk finden (Interface ggf. anpassen)
root
tshark -pl -t ad -i eth0 "dst net 85.255.112.0/20 or dst net 67.210.0.0/20 or dst net 93.188.160.0/21 or dst net 77.67.83.0/24 or dst net 213.109.64.0/20 or dst net 64.28.176.0/20" | tee dnschanger.log
/etc/udev/rules.d/70-persistent-net.rules neu generieren
root
udevadm trigger --action=add --subsystem-match=net --verbose
Accounts auflisten, die in den letzten 24 Stunden unverschlüsselte Protokolle (IMAP, SMTP, FTP, POP3) verwendet haben[2]
Datenschutz: Dies sollte nur in Absprache mit Schulleitung und Personalrat von einem Administrator angewendet werden, da die Abfrage persönliche Daten zum Verhalten eines Benutzers erfasst!
root
psql -c "SELECT DISTINCT(act) FROM session_log WHERE encrypted = false AND service != 'smbd' AND login > now() - '24 hours'::interval"

Datenbank

In psql die Tabellen auflisten, die den meisten Speicher belegen
datei
SELECT nspname || '.' || relname AS "relation",
    pg_size_pretty(pg_total_relation_size(C.oid)) AS "total_size"
  FROM pg_class C
  LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace)
  WHERE nspname NOT IN ('pg_catalog', 'information_schema')
    AND C.relkind <> 'i'
    AND nspname !~ '^pg_toast'
  ORDER BY pg_total_relation_size(C.oid) DESC
  LIMIT 20;
In psql Rechner auflisten, deren Namen sich nur durch Groß- und Kleinschreibung unterscheiden
datei
SELECT name,mac,ip FROM hosts WHERE LOWER(name) IN
  (SELECT LOWER(name) FROM HOSTS GROUP BY LOWER(name) HAVING COUNT(*) > 1);
IP-Bereich migrieren (IPs entsprechend anpassen; anschließend /usr/lib/iserv/newhosts ausführen)
datei
UPDATE hosts SET ip = ip & '0.0.0.255' | '10.0.3.0' WHERE ip << '192.168.100.0/24' AND ip & '0.0.0.255' | '10.0.3.0' NOT IN (SELECT ip FROM hosts);

Windows

RDP anschalten
befehl
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f

Windows 7

System-Ereignisprotokoll in der Konsole ausgeben (Nur die 10 neuesten Ereignisse, mit Details)
befehl
wevtutil /rd:true /c:10 /f:text qe system
Anwendung-Ereignisprotokoll in der Konsole ausgeben (Nur die 10 neuesten Ereignisse, mit Details)
befehl
wevtutil /rd:true /c:10 /f:text qe application

Windows XP

System-Ereignisprotokoll in der Konsole ausgeben (Alle Ereignisse, ohne Details)
befehl
cscript %systemroot%\system32\eventquery.vbs /l system
System-Ereignisprotokoll in der Konsole ausgeben (Nur die 10 neuesten Ereignisse, mit Details)
befehl
cscript %systemroot%\system32\eventquery.vbs /l system /r 10 /v
Anwendung-Ereignisprotokoll in der Konsole ausgeben (Nur die 10 neuesten Ereignisse, mit Details)
befehl
cscript %systemroot%\system32\eventquery.vbs /l application /r 10 /v

Manchmal auch:

befehl
cscript %systemroot%\system32\eventquery.vbs /l anwendung /r 10 /v



  1. Ja, der Hack ist so dreckig, wie er aussieht. Quelle: [1]
  2. smbd (Icon Wikipedia De.gifSamba) ist bewusst ausgenommen, da die Übertragung dort konzeptbedingt nur unverschlüsselt erfolgen kann.