the other side of life
HowTo
Linux routing basics
Aug 27th
You getting from your ISP a subnet like this 172.30.26.16/28,
and your router has the ip 172.30.26.17 !
You need to enable the ip forwarding in the kernel
sysctl -w net.ipv4.ip_forward=1
And we need to enable proxy arp! This is necessary because your router must answer all arp request for hosts other than itself
sysctl -w net.ipv4.conf.eth0.proxy_arp=1 sysctl -w net.ipv4.conf.eth1.proxy_arp=1
Edit your /etc/sysctl.conf !
net.ipv4.ip_forward = 1 net.ipv4.conf.eth0.proxy_arp = 1 net.ipv4.conf.eth1.proxy_arp = 1
If your router has no external ip on the internal nic, you need to setup routes like
route add -host 172.30.26.20 gw 192.168.10.20 eth1

Ubuntu PHP hardening with Suhosin
Jul 28th
Ubuntu includes the php suhosin patches….
Install suhosin extension
aptitude install php5-suhosin
/etc/php5/{apache2,cli,cgi}/php.ini
; suhosin parameters suhosin.executor.include.max_traversal = 4 suhosin.executor.disable_eval = On suhosin.executor.disable_emodifier = On suhosin.mail.protect = 2 suhosin.sql.bailout_on_error = On
Restart apache
service apache2 restart
Sometimes it could be necessary to set suhosin.session.encrypt to off for some login scripts.
How to delete a command from the bash history / Hide an command from the bash history
Feb 14th
Hide an command from the bash history:
Start a terminal and try
wget user:passwd@ftp.example.com/secret.tar.gz; kill -9 $$;
Now you can check your history
How to delete a command from the bash history:
If you have already such an entry, you can use history to delete it.
history # [...] # 849 uname -a # 850 wget user:passwd@ftp.example.com/secret.tar.gz # 851 ping blog.devnu11.net # [...]
Now you can delete your history with history -d 850 this line.
history -d 850
And see…
history # [...] # 849 uname -a # 850 history # 851 ping blog.devnu11.net # [...]
Or simply add a blank before the command
$ wget user:passwd@ftp.example.com/secret.tar.gz
ZTE MF637 unter Ubuntu
Jan 9th
Um den ZTE MF637 oder auch T-Mobile W’n'W Stick Fusion unter Ubuntu zum laufen zubekommen, braucht man den Stick (leider) nur einmal auf einem Windows installieren – sprich die Treiber, und sich dann via Hyperterminal auf den Diagnose Port zuverbinden und folgendes Kommando ausführen:
AT+ZCDRUN=8
Damit wird der Autostart vom Stick, also das virtuelle CD-ROM am Anfang, deaktiviert !
Geht mit 9.08, 9.10 usw.
DD-WRT PPPoE Passthrough (on WRT54G)
Dec 29th
For a PPPoE Passthrough on DD-WRT, enable jffs and do the following steps on a *nix-based system
cd /tmp;
wget http://kamikaze.openwrt.org/8.09.1/brcm-2.4/packages/rp-pppoe-relay_3.10-1_mipsel.ipk;
tar zxf rp-pppoe-relay_3.10-1_mipsel.ipk;
tar zxf data.tar.gz;
scp usr/sbin/pppoe-relay root@:/tmp/
Start the relay agent on the router
/tmp/pppoe-relay -S vlan1 -C br0
Now you can start your pppoe client on your notebook.
Tested with a WRT54G and DD-WRT v23 !
XEN: clocksource/0 Time went backwards
Jul 7th
Everybody know about these sweet line(s):
clocksource/0: Time went backwards: delta=-5802595381342 shadow=440273248432 offset=11586903
To prevent this, add this line to your sysctl.conf
xen.independent_wallclock=1
Next is, to add
extra="clocksource=jiffies"
to the config of your XEN domain (like /srv/xen/build.conf).
After all this, you can reboot the vm’s or to get it working for your current kernel config type this in each vm:
sysctl -p
echo "jiffies" > /sys/devices/system/clocksource/clocksource0/current_clocksource
At the moment i only know this from debian-based systems.
Debian Lenny – OCF Resource Agent o2cb Bug
Mar 27th
Lenny Stable ? Ohne RC-Bugs ? Im heartbeat Paket hat sich ein kleiner Fehler versteckt (ist schon gemeldet).
Wenn ihr versucht, mit heartbeat eine ocfs2 Resource via o2cb zumanagen, wird das nicht gehen
Der Grund ist, dass ein $ vergessen wurde im OCF Resource Script (Zeile 314). Folge ist, dass die ocfs2/o2cb Resource nicht startet.
Hier ist ein Patch zum selber fixen.
*** /tmp/test/ocf_o2cd.patch
--- usr/lib/ocf/resource.d/heartbeat/o2cb 2009-01-22 06:58:49.000000000 +0100
+++ /usr/lib/ocf/resource.d/heartbeat/o2cb 2009-03-24 15:56:28.000000000 +0100
@@ -311,7 +311,7 @@
;;
esac
-RCO2CB=INITDIR/o2cb
+RCO2CB=$INITDIR/o2cb
# RCO2CB=/etc/init.d/o2cb
if [ ! -x $RCO2CB ]; then
Hier zum Download ocf_o2cb.patch.
OCFS2 @ Debian Lenny/Squeeze V2 [Update]
Mar 9th
Auf Lenny und Squeeze kann man schon länger wieder normal OCFS2 installieren bzw. die Module werden nun auch beim Start geladen. Wenn ich das richtig mitbekommen habe, wurde das OCFS2 Paket auch an einen anderen Maintainer übergeben.
root@srv ~ [0] > aptitude install ocfs2-tools
und wer es braucht auch die GUI dazu
root@srv ~ [0] > aptitude install ocfs2console
Ob es mit den drbd8-Modulen noch Probleme gibt kann ich erst nächste Woche sagen.
Update:
Die drbd8 Module lassen sich nun auch wieder ohne Probleme installieren via
root@srv ~ [0] > aptitude install drbd8-modules-2.6-686
installieren. Aber leider nur Version 8.0.14 – aktuell ist 8.3.0 bzw 8.3.1rc1 – schade, da ist selbst ein SLES11 aktueller (noch).
OCFS2 @ Debian Lenny
Nov 10th
Da die ocfs2-tools aus dem testing (Lenny) Repository enfernt wurden, muss man auf die Sourcen von etch oder sid zurück greifen. Beide sind lange nicht mehr aktuell, aber funktionieren _fast_ ohne Probleme.
Ich habe die ocfs2-tools aus etch installiert und dabei bemerkte ich, dass zwei wichtige Module nicht geladen wurden ! Damit beim Start OCFS zu Verfügung steht, muss man zwei Zeilen hinzufügen in der /etc/init.d/o2cb !
Den String LOAD_ACTION suchen und folgende zwei Zeilen hinzufügen.
"load_module ocfs"
"load_module jbd"
Reboot, fertig.
freeRADIUS & DD-WRT mit WPA2 und Windows XP – Teil 2
Sep 16th
So nach dem wir nun dem freeRADIUS EAP & TLS u.s.w beigebracht haben, können wir nun den Router konfigurieren. In meinem Fall ist das das Linksys WRT54GL mit DD-WRT v24.
Als erstes Loggen wir uns auf dem Router ein. Klicken dann auf Wireless und dann auf Wireless Security. Dort wählen wir WPA2 Enterprise aus. Nun müssen wir unseren Server eintragen, wo wir gerade freeRADIUS installiert haben. Desweiteren brauchen wir das RADIUS Shared Secret. Hier denken wir uns ein Passwort aus. Diese müssen wir später in die Konfiguration des freeRADIUS Servers eintragen. Port und Key Renewal Interval können wir so belassen. Fertig – der Router fragt nun immer den Radius-Server wenn sich ein Client anmelden möchte. Teilweise muss man den WPA Algorithms auf TKIP umstellen. Zum Anfang können wir es auch machen und stellen es später dann wieder AES um. TKIP unterstützen eigentlich alle WLAN-Karten, und somit haben wir für den Anfang schon ein Fehlerpunkt ausgeräumt.
Wenn jemand schon ein CA hat, sollte jetzt für den User und den Server Zertifikate ausstellen. Sollte noch keine CA ( Certificate Authority ) vorhanden sein, erstellen wir uns nun ein. Wir wechseln in der Verzeichnis /usr/lib/ssl/misc und dort passen wir den Eintrag CATOP=./devnu11CA entsprechend unseren Vorstellungen an. Wenn wir fertig sind, reicht ein Aufruf von ./CA.sh -newca im Verzeichnis. Alle Fragen beantwortet ? Dann können wir mit
openssl req -new -nodes -keyout server.key.pem -out server.req.pem
den Request für das Zertifikat vom Server erstellen. Nur nur signieren und wir haben das Zertifikat für den Server.
openssl ca -out server.cert.pem -infiles ./server.req.pem
hier werden wir nun nach der Passphrase gefragt, die wir beim erstellen unserer CA eingetippt haben. Das gleich machen wir nun für den Client.
openssl req -new -nodes -keyout rmichel.key.pem -out rmichel.req.pem
openssl ca -out rmichel.cert.pem -infiles ./rmichel.req.pem
Das server.cert.pem und das cacert.pem kopieren wir nun nach /etc/freeradius/certs. Dort ändern wir den Besitzer mit
chown root:freerad *.pem
und ändern auch die Zugriffsrechte auf 440 mit
chmod 440 *.pem
Jetzt sind wir fast fertig. Nun müssen wir noch den freeRADIUS einrichten. Dazu nach /etc/freeradius/certs wechseln und
openssl dhparam -check -text -5 512 -out dh
dd if=/dev/urandom of=random count=2
ausführen. Beides dient der TLS Verschlüsselung. Danach editieren wir dann die /etc/freeradius/clients.conf und fügen die folgenden Zeilen hinzu
client 192.168.26.254/24 {
secret = passwort
shortname = wrt54gl
nastype = other
}
Hier ist steht die IP Adresse des WLAN Accesspoints, das RADIUS Shared Secret was wir schon im Accesspoint eingetragen haben und noch ein Alias. Dann öffnen wir die /etc/freeradius/eap.conf. Nun passen wir folgende EInträge an
default_eap_type = tls
private_key_file = ${certdir}/server.key.pem
certificate_file = ${certdir}/server.cert.pem
CA_file = ${cadir}/cacert.pem
Damit sollte der RADIUS-Server fertig sein. Einfach mal mit freeradius -X testen ob der Server startet (Sollte er eigentlich
)
Nun müssen wir noch fix unser Client-Zertifikat in das PKCS12-Format umwandeln mit
openssl pkcs12 -nodes -export -in rmichel.cert.pem -inkey rmichel.key.pem -out rmichel.cert.p12 -clcerts
Das müsst ihr zusammen mit dem cacert.pem auf einen USB-Stick kopieren oder gleich auf den Windows Rechner. Das war’s ! Wir sind mit dem RADIUS-Server fertig.
Nun sind wir auf dem Windows-Rechner, und starten über Start->Ausführen->mmc die Microsoft-Mangment-Console, kurs mmc. Dort auf Datei->Snap-In hinzufügen und dann auf Hinzufügen…. Dann nach unten Scrollen und Zertifikate hinzufügen und Eigenes Benutzerkonto auswählen. Jetzt fügen wir das cacert.pem mit Rechtsklick auf Vertrauenswürdige Stammzertifizierungsstellen->Alle Aufgabe->Importieren ein. Das USERNAME.cert.pem über Rechtsklick Eigene Zertifikate->Alle Aufgabe->Importieren und hier fragt Windows nach der Passpharse.
Lediglich das passende WLAN muss noch eingerichtet werden. Auf Start->Einstellungen->Netzwerkverbindungen->Drahtlose Netzwerkverbindung Rechtsklick und Verfügbare drahtlose Netzwerke anzeigen. Im Infofenster Drahtlosnetzwerk für Heim- bzw. kleines Firmennetzwerk einrichten anklicken. Nun tragen Sie die SSID ein, und stellen WPA2 ein. Datenverschlüsselung TKIP und der EAP-Typ auf Smartcard oder anderes Zertifikat einstellen. Wenn alles geklappt hat sollten wir jetzt in der Ausgabe von freeRADIUS (welches wir ja mit freeradius -X gestarten haben) eine paar Meldungen sehen, und auf dem Windows-Client eine erfolgreich verbunden WLAN-Verbindung.
Done.
Bei Fragen einfach ein Kommentar hinterlassen. Ich werde versuchen zuhelfen
