Add grml-stable repository tip, update debian packaging, drop .hgtags
[grml-tips.git] / grml_tips
index f833472..c62e22a 100644 (file)
--- a/grml_tips
+++ b/grml_tips
@@ -573,11 +573,15 @@ echo -e "s/\r//g" > dos2unix.sed; sed -f dos2unix.sed < dosfile > unixfile
 -- 
 Save live audio stream to file:
 
-% mplayer -ao pcm:file=$FILE
+% mplayer -ao pcm:file=$FILE $URL
+-- 
+Save live stream to file:
+
+% mplayer -dumpfile $FILE -dumpstream $STREAM
 
 or
 
-% mencoder mms://file.wmv -o $FILE -ovc copy -oac copy
+% mencoder mms://$URL -o $FILE -ovc copy -oac copy
 
 or
 
@@ -657,7 +661,7 @@ to get a list of all supported trees
 -- 
 Transfer your SSH public key to another host:
 
-% ssh-keygen   # if you don't have a key yet
+% ssh-keygen   # ssh-keygen / ssh-key-gen: if you don't have a key yet
 [...]
 % ssh-copy-id -i ~/.ssh/id_rsa.pub user@remote-system
 or
@@ -704,9 +708,9 @@ Write back the guessed table:
 Develop, test and use exploit code with the Metasploit Framework:
 
 cd /tmp
-wget http://framework-mirrors.metasploit.com/msf/downloader/framework-3.0.tar.gz
-unp framework-3.0.tar.gz
-cd framework-3.0
+wget http://spool.metasploit.com/releases/framework-3.2.tar.gz
+unp framework-3.2.tar.gz
+cd framework-3.2
 ./msfcli
 -- 
 Useful documentation:
@@ -1267,9 +1271,17 @@ via using grml nodma at the bootprompt.
 -- 
 Write a Microsoft compatible boot record (MBR) using ms-sys
 
-Write a Windows 2000/XP/2003 MBR to device:
+Write a Windows 2000/XP/2003 MBR to device:
 
 # ms-sys -m /dev/ice
+
+Notice: grab ms-sys from http://ms-sys.sourceforge.net/ - demo:
+
+ wget http://surfnet.dl.sourceforge.net/sourceforge/ms-sys/ms-sys-2.1.3.tgz
+ unp ms-sys-2.1.3.tgz
+ cd ms-sys-2.1.3
+ make
+ ./bin/ms-sys ...
 -- 
 Use a Vodafone 3G Datacard (UMTS) with Linux:
 
@@ -1311,6 +1323,10 @@ product ID when loading the usbserial module. Usage example:
 Bus 004 Device 008: ID 1199:6813 Sierra Wireless, Inc.
 
 # modprobe usbserial vendor=0x1199 product=0x6813
+
+To get a list of available providers execute:
+
+# gcom -s -d /dev/ttyUSB0 /usr/share/doc/gcom/examples/operator
 -- 
 hdparm - get/set hard disk parameters
 
@@ -2312,8 +2328,6 @@ host2% hg merge # merge changes into your working directory
 Set up a CGI server on your webserver:
 % cp hgwebdir.cgi ~/public_html/hg/index.cgi
 % $EDITOR ~/public_html/hg/index.cgi # adjust the defaults
-
-Mercurial repositories of grml can be found at http://hg.grml.org/
 -- 
 Download binary codecs for mplayer:
 
@@ -2651,7 +2665,8 @@ See: man grml-terminalserver + http://grml.org/terminalserver/
 -- 
 Debugging SSL communications:
 
-% openssl s_client -connect server.adress:993
+% openssl s_client -connect server.adress:993 > output_file
+% openssl x509 -noout -text -in output_file
 
 or
 
@@ -2714,7 +2729,7 @@ Enable shadow passwords:
 
 # shadowconfig on
 -- 
-Set up an IPv6 tunneln on grml:
+Set up an IPv6 tunnel on grml:
 
 # ipv6-tunnel start
 -- 
@@ -2847,6 +2862,12 @@ Create netboot package for grml-terminalserver:
 
 # sh /usr/share/doc/grml-terminalserver/examples/create-netboot
 -- 
+To boot grml via network (PXE) check out grml-terminalserver:
+
+# grml-terminalserver
+
+See http://grml.org/terminalserver/ for more details.
+-- 
 Rotate pictures:
 
 Using the 'Orientation' tag of the Exif header, rotate
@@ -2889,3 +2910,235 @@ To remove the module from the blacklist again just invoke:
 
 or manually remove the entry from /etc/modprobe.d/grml.
 -- 
+Create a Debian package of a perl module:
+
+% dh-make-perl --cpan Acme::Smirch --build
+-- 
+The Magic SysRq Keys (SysReq or Sys Req, short for System Request):
+
+To reboot your system using the SysRq keys just hold down the Alt and
+SysRq (Print Screen) key while pressing the keys REISUB ("Raising
+Elephants Is So Utterly Boring").
+
+R = take the keyboard out of raw mode
+E = terminates all processes (except init)
+I = kills all processes (except init)
+S = synchronizes the disk(s)
+U = remounts all filesystems read-only
+B = reboot the system
+
+Notice: use O instead of B for poweroff.
+
+Or write the sequence to /proc/sysrq-trigger instead:
+
+# for i in r e i s u b ; do echo $i > /proc/sysrq-trigger ; done
+
+To enable or disable SysRq calls:
+
+# echo 0 > /proc/sys/kernel/sysrq
+# echo 1 > /proc/sys/kernel/sysrq
+
+See http://en.wikipedia.org/wiki/Magic_SysRq_key for more details.
+-- 
+Memtest / memcheck:
+
+Just boot your grml Live-CD with "memtest" to execute a memcheck/memtest
+with Memtest86+.
+-- 
+Tunnel TCP-Traffic through DNS using dns2tcp:
+
+Server-side:
+~~~~~~~~~~~~
+1. Create necessary DNS-Records:
+dnstun.example.com.     3600    IN      NS      host.example.com.
+dnstun.example.com.     3600    IN      A       192.168.1.1
+host.example.com.       3600    IN      A       192.168.1.1
+
+2. Configure dns2tcpd on host.example.com.:
+# cat /etc/dns2tcpd.conf 
+listen = 192.168.1.1          #the ip dns2tcpd should listen on
+port = 53                     #" port " " " "
+user = nobody
+chroot = /tmp
+domain = dnstun.example.com.  # the zone as specified inside dns
+ressources = ssh:127.0.0.1:22 # available resources
+
+3. Start the daemon:
+# cat > /etc/default/dns2tcp << EOF
+# Set ENABLED to 1 if you want the init script to start dns2tcpd.
+ENABLED=1
+USER=nobody
+EOF
+# /etc/init.d/dns2tcp start
+
+Client-side:
+~~~~~~~~~~~~
+You have two possibilities:
+- Use the DNS inside your network (DNS must allow resolving for external domains)
+# grep nameserver /etc/resolv.conf 
+nameserver 172.16.42.1
+# dns2tcpc -z dnstun.example.com 172.16.42.1
+Available connection(s) : 
+        ssh
+# dns2tcpc -r ssh -l 2222 -z dnstun.example.com 172.16.42.1 &
+Listening on port : 2222
+# ssh localhost -p 2222
+user@host.example.com:~#
+
+- Directly contact the endpoint (port 53 UDP must be allowed outgoing)
+# dns2tcpc -z dnstun.example.com dnstun.example.com
+Available connection(s) : 
+        ssh
+# dns2tcpc -r ssh -l 2222 -z dnstun.example.com dnstun.example.com &
+Listenning on port : 2222
+# ssh localhost -p 2222
+user@host.example.com:~#
+
+Notice: using 'ssh -D 8080 ..' you will get a socks5-proxy listening on
+localhost:8080 which you can use to tunnel everything through your "dns-uplink".
+-- 
+Configure a MadWifi device for adhoc mode:
+
+Disable the autocreation of athX devices:
+# echo "options ath_pci autocreate=none" > /etc/modprobe.d/madwifi
+
+Remove the autocreated device for now:
+# wlanconfig ath0 destroy
+
+Configuration in /etc/network/interfaces:
+
+iface ath0 inet static
+  madwifi-base wifi0
+  madwifi-mode adhoc
+  ...
+
+Hints:
+  - Do not use interface names without ending 0 (otherwise startup fails).
+  - Only chooss unique names for interfaces.
+-- 
+Find dangling symlinks using zsh:
+
+% ls **/*(-@)
+-- 
+Use approx with runit supervision
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Install the packages:
+# apt-get install approx runit
+
+Add user approxlog for the logging daemon:
+# adduser --system --home /nonexistent --no-create-home approxlog
+
+Create config directory:
+# mkdir /etc/sv/approx
+
+Use /var/run/sv.approx as supervise directory:
+# ln -s /var/run/sv.approx /etc/sv/approx/supervise
+
+# cat > /etc/sv/approx/run << EOF
+#!/bin/sh
+echo 'approx starting'
+exec approx -f 2>&1
+EOF
+
+You normally do not need a logging service for approx because it logs
+to syslog too. So just for completion:
+# mkdir -p /etc/sv/approx/log
+# ln -s /var/run/sv.approx.log /etc/sv/approx/log/supervise
+# cat > /etc/sv/approx/log/run << EOF
+#!/bin/sh
+set -e
+LOG="/var/log/approx"
+test -d "$LOG" || mkdir -p -m2750 "$LOG" && chown approxlog:adm "$LOG"
+exec chpst -uapproxlog svlogd -tt -v "$LOG"
+EOF
+
+Now activate the new approx service (will be started within 5s):
+# ln -s /etc/sv/approx/ /var/service/
+
+Make approx managed via runit available via init-script interface:
+# dpkg-divert --local --rename /etc/init.d/approx
+# ln -s /usr/bin/sv /etc/init.d/approx
+-- 
+Remote-reboot a grml system using SysRQ via /proc (execute as root):
+
+eject &>/dev/null
+umount -l /cdrom
+eject /dev/cdrom
+echo b > /proc/sysrq-trigger
+-- 
+Show what happens on /dev/sda0:
+
+# mount the debugfs to relay kernel info to userspace
+mount -t debugfs none /sys/kernel/debug
+
+# is a convenient wrapper arround blktrace and blkparse
+btrace /dev/sda0
+-- 
+Convert Flash to Avi:
+
+% ffmpeg -i input.flv output.avi
+-- 
+Usage example for cryptsetup / -luks encrypted partition on LVM:
+
+volume group name:   x61
+logical volume name: home
+
+echo "grml-crypt_home /dev/mapper/x61-home none luks" >> /etc/crypttab
+Start cryptdisks
+mount /dev/mapper/grml-crypt_home /mnt/test
+-- 
+fdisk/parted/... complains with something like
+'unable to open /dev/sda - unrecognised disk label'?!
+
+See http://grml.org/faq/#fdisk =>
+
+* use /sbin/fdisk.distrib from util-linux
+* switch to sfdisk, cfdisk,...
+* use parted's mklabel command (but please read the
+  parted manual before executing this command)
+-- 
+dmraid - support for SW-RAID / FakeRAID controllers
+like Highpoint HPT and Promise FastTrack
+
+Activate all software RAID sets discovered:
+# dmraid -ay
+
+Deactivates all active software RAID sets:
+# dmraid  -an
+
+Discover all software RAID devices supported on the system:
+# dmraid -r
+-- 
+Extract winmail.dat:
+
+List content:
+% ytnef winmail.dat
+
+Extract files to current directory:
+% ytnef -f . winmail.dat
+-- 
+Approx - Debian package proxy/cacher howto
+
+% apt-get install approx
+% echo 'debian  http://ftp.de.debian.org/debian' >>/etc/approx/approx.conf
+% Restart approx
+
+Add your new approx to sources.list
+
+eg.
+deb http://localhost:9999/debian  unstable  main contrib non-free
+
+use approx in grml-debootstrap like:
+% grml-debootstrap -r lenny -t /dev/sda1 -m http://127.0.0.1:9999/debian
+-- 
+Simple webserver with python:
+
+% python -m SimpleHTTPServer
+-- 
+Upgrade only packages from the grml-stable Debian repository:
+
+echo 'deb http://deb.grml.org/ grml-stable main' > /etc/apt/grml-stable.list
+apt-get -o Dir::Etc::SourceList=/etc/apt/grml-stable.list update
+apt-get upgrade
+--