Kategori Netzwerk

SSH via VPN, HTTP und co. via default route

Freitag, November 28th, 2014

Um einen Host hinter einer Firewall zu administrieren habe ich ein VPN zwischen den beiden Punkten aufgebaut. Um aber den ausgehenden Netzwerktraffic, der über die Firewall läuft, testen zu können brauchte ich eine Routing via Ports. Genau genommen wollte ich Port 22 durch den VPN Tunnel und den HTTP traffic über das Standard Gateway routen.
asyncrones-routing

Zuerst braucht man eine separate routing table in unserem Fall foo
echo "1 foo" >> /etc/iproute2/rt_tables

In diese routing Tabelle legen wir zuerst eine default route ab
ip route add table foo default dev vpn

Dann braucht man eine rule zum die angibt wann die foo routing Tabelle verwendet werden soll.
ip rule add fwmark 1 table foo

Nun kommen wir zur Auswahl der Pakete, die anders geroutet werden sollen. Dies geschieht über die mangle table. Hier werden die einzelnen Pakte über fwmarks markiert.
iptables -t mangle -A OUTPUT -d 203.0.113.80/32 -p tcp -m tcp --dport 22 -j MARK --set-xmark 0x1/0xffffffff

Damit der Kernel auch die ausgehenden Pakete richtig benennt, werden alle Pakete die über das VPN geroutet werden nun auf die source Adresse des VPNs umgeschrieben.
Dies ist notwendig, da der Kernel beim bestimmen der Absenderadresse unserer TCP Verbindung die firewall Konfiguration bei der Bestimmung der ausgehenden route nicht verarbeitet.
iptables -t nat -A POSTROUTING ! -s 10.8.0.2/32 -o vpn -j SNAT --to-source 10.8.0.2

Zum Schluss müssen wir das reverse path filtering ausschalten, damit die Entgegennahme der Pakete, deren Antwort an ein anderes Interface gehen würde, erlaubt werden.
echo 0 | tee /proc/sys/net/ipv4/conf/*/rp_filter

Freier XMPP Server

Sonntag, Januar 5th, 2014

5222
Für alle die noch keine XMPP (ehemals Jabber) Adresse bei einem freien Anbieter haben, möchte ich den Freien XMPP Server 5222.de vorstellen. Für alle Geeks unter uns, die Domain leitet sich vom offizielle XMPP Port 5222 ab. Benutzerkonten können ab sofort über einen XMPP Client erstellt werden.

AWS kann keine 10.000 Instanzen bereitstellen

Mittwoch, Dezember 25th, 2013

Da gibt Amazon einer der größten Anbieter von Cloud Infrastruktur immer so an: „Ob Sie einen virtuellen Server benötigen oder tausende, ob für einige wenige Stunden oder rund um die Uhr – Sie zahlen immer nur für das, was Sie auch wirklich nutzen.“ [1] aber das war wohl nix. Wir haben erst 1500 Instanzen angefragt und wollten nun auf 10.000 Instanzen aufstocken und folgende E-Mail erhalten:


ein Limit von 10,000 wurde nicht approved, das hatte ich ja bereits telefonisch erläutert warum dies für uns problematisch ist. Wir haben Ihr bestehendes Limit verdoppelt auf nun 3,000 Instanzen verteilt auf alle unsere Rechenzentren:


Quelle [1]: aws.amazon.com/de/what-is-aws/

iptables ICMP Typen

Montag, Dezember 9th, 2013

Um mal zu verdeutlichen welche ICMP Anfragen an meinen Server gestellt werden, habe ich folgende Typenbeschreibung als Kommentar in iptables ausgeben lassen.

iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT -m comment --comment "ICMP  Echo Reply"
#iptables -A INPUT -p icmp --icmp-type 1-2 -j ACCEPT -m comment --comment "ICMP  Reserved"
iptables -A INPUT -p icmp --icmp-type 3 -j ACCEPT -m comment --comment "ICMP  Destination Unreachable"
iptables -A INPUT -p icmp --icmp-type 4 -j ACCEPT -m comment --comment "ICMP  Source Quench"
iptables -A INPUT -p icmp --icmp-type 5 -j ACCEPT -m comment --comment "ICMP  Redirect"
iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT -m comment --comment "ICMP  Echo Request"
iptables -A INPUT -p icmp --icmp-type 9 -j ACCEPT -m comment --comment "ICMP  Router Advertisement"
iptables -A INPUT -p icmp --icmp-type 10 -j ACCEPT -m comment --comment "ICMP  Router Solicitation"
iptables -A INPUT -p icmp --icmp-type 11 -j ACCEPT -m comment --comment "ICMP  Time Exceeded"
iptables -A INPUT -p icmp --icmp-type 12 -j ACCEPT -m comment --comment "ICMP  Parameter Problem"
iptables -A INPUT -p icmp --icmp-type 13 -j ACCEPT -m comment --comment "ICMP  Timestamp (erleichtert die Zeitsynchronisation)"
iptables -A INPUT -p icmp --icmp-type 14 -j ACCEPT -m comment --comment "ICMP  Timestamp Reply"
iptables -A INPUT -p icmp --icmp-type 15 -j ACCEPT -m comment --comment "ICMP  Information Request"
iptables -A INPUT -p icmp --icmp-type 16 -j ACCEPT -m comment --comment "ICMP  Information Reply"
iptables -A INPUT -p icmp --icmp-type 17 -j ACCEPT -m comment --comment "ICMP  Address Mask Request"
iptables -A INPUT -p icmp --icmp-type 18 -j ACCEPT -m comment --comment "ICMP  Address Mask Reply"
iptables -A INPUT -p icmp --icmp-type 19 -j ACCEPT -m comment --comment "ICMP  Reserved (for Security)"
#iptables -A INPUT -p icmp --icmp-type 20-29 -j ACCEPT -m comment --comment "ICMP  Reserved (for Robustness Experiment)"
iptables -A INPUT -p icmp --icmp-type 30 -j ACCEPT -m comment --comment "ICMP  Traceroute"
iptables -A INPUT -p icmp --icmp-type 31 -j ACCEPT -m comment --comment "ICMP  Datagram Conversion Error"
iptables -A INPUT -p icmp --icmp-type 32 -j ACCEPT -m comment --comment "ICMP  Mobile Host Redirect"
iptables -A INPUT -p icmp --icmp-type 33 -j ACCEPT -m comment --comment "ICMP  Ursprünglich IPv6 Where-Are-You (ersetzt durch ICMPv6)"
iptables -A INPUT -p icmp --icmp-type 34 -j ACCEPT -m comment --comment "ICMP  Ursprünglich IPv6 I-Am-Here (ersetzt durch ICMPv6)"
iptables -A INPUT -p icmp --icmp-type 35 -j ACCEPT -m comment --comment "ICMP  Mobile Registration Request"
iptables -A INPUT -p icmp --icmp-type 36 -j ACCEPT -m comment --comment "ICMP  Mobile Registration Reply"
iptables -A INPUT -p icmp --icmp-type 37 -j ACCEPT -m comment --comment "ICMP  Domain Name Request"
iptables -A INPUT -p icmp --icmp-type 38 -j ACCEPT -m comment --comment "ICMP  Domain Name Reply"
iptables -A INPUT -p icmp --icmp-type 39 -j ACCEPT -m comment --comment "ICMP  SKIP"
iptables -A INPUT -p icmp --icmp-type 40 -j ACCEPT -m comment --comment "ICMP  Photuris"
iptables -A INPUT -p icmp --icmp-type 41 -j ACCEPT -m comment --comment "ICMP  ICMP messages utilized by experimental mobility protocols such as Seamoby"
#iptables -A INPUT -p icmp --icmp-type 42-255 -j ACCEPT -m comment --comment "ICMP  Reserved"

Mit iptables -L -vn kann man sich dann die anzahl ausgeben lassen.
Quelle: wikipedia.org

mtu ermittlung

Dienstag, November 19th, 2013

Hier habe ich mir mal ein Script geschrieben das die MTU ermittelt anhand der große von ICMP Typ 8 Nachrichten.

#!/bin/bash

mtu=0
for i in {8..15}; do
	t=$(($i*100))
	ping -M do -c 1 -s $t blog.chr.istoph.de >/dev/null || continue
	mtu=$t
	echo $mtu 
done

mt=$mtu
for i in {1..10}; do
	t=$(($i*10))	
	ping -M do -c 1 -s $(($t+$mt)) blog.chr.istoph.de >/dev/null || continue
	mtu=$(($t+$mt))
	echo $mtu
done

mt=$mtu
for t in {1..10}; do
	ping -M do -c 1 -s $(($t+$mt)) blog.chr.istoph.de >/dev/null || continue
	mtu=$(($t+$mt))
	echo $mtu
done

echo "MTU: $mtu"