Tunnel HNA mit OpenWrt White Russian: Unterschied zwischen den Versionen

Aus Freifunk Halle
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(15 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
'''Diese Beschreibung geht davon aus, das auf Deinem Linksys WRT54GL Router [http://www.freifunk-halle.net/firmware/v1.6/images/stable/hna/ OpenWrt White Russian] in der verlinkten Version installiert ist.  
'''Vorab:''' Grundsätzlich ist diese Freifunkfirmware und die passende Hartware auch heute noch zum Betrieb freier Netze geeignet, es ist aber die Technik aus der  
Anfangszeit von Freifunk.


Sowie die VPN-Tunnel zu den beiden VPN-Servern bestehen.'''
'''Diese Beschreibung geht davon aus, das auf Deinem Linksys WRT54GL Router [http://{{SERVERNAME}}/firmware/v1.6/images/stable/hna/ OpenWrt White Russian] in der verlinkten Version installiert ist.


* VPN-1-Server [http://104.62.1.129 104.62.'''1'''.129] | [http://freifunk-halle.net freifunk-halle.net]
Sowie die VPN-Tunnel zu den VPN-Servern bestehen.'''


* VPN-2-Server [http://104.62.4.129 104.62.'''4'''.129] | [http://freifunk-kanal13.de freifunk-kanal13.de]
* VPN-1-Server | [http://vpn1.freifunk-halle.org vpn1.freifunk-halle.org]  
 
* VPN-2-Server | [http://vpn2.freifunk-halle.org vpn2.freifunk-halle.org]
 
Anmerkung hinter vpn2.freifunk-halle.org sind mehrere Server vpn2a, vpn2b, vpn2c.
   
   
Nach den Änderungen musst Du Deinen Router neu starten.  
Nach den Änderungen musst Du Deinen Router neu starten.  
Zeile 16: Zeile 21:
'''1. OPENVPN'''  
'''1. OPENVPN'''  


Die Dateien für OPENVPN bekommst Du von [https://www.freifunk-halle.net/forum/memberlist.php?mode=viewprofile&u=361 3dfx].  
Die Dateien für OPENVPN bekommst Du von [https://{{SERVERNAME}}/forum/memberlist.php?mode=viewprofile&u=361 3dfx] oder [https://{{SERVERNAME}}/forum/memberlist.php?mode=viewprofile&u=770 kwm].  
Auf Deinem Freifunkrouter musst Du das Verzeichnis openvpn als Unterverzeichnis von /etc/ anlegen.
Auf Deinem Freifunkrouter musst Du das Verzeichnis openvpn als Unterverzeichnis von /etc/ anlegen.
In das Verzeichnis /etc/'''openvpn''' speicherst Du die Dateien für OPENVPN.  
In das Verzeichnis /etc/'''openvpn''' speicherst Du die Dateien für OPENVPN.  
Zeile 29: Zeile 34:




'''2. OLSR unterschiedliche Linkqualität''' für beide Gateway einstellen in  /etc/'''local.olsrd.conf''' 
'''2. ändern der DNS-Abfrage''' /etc/init.d/'''S60dnsmasq''' ''(S = starten | Zahl = Startreihenfolge)''
 
<pre>
# Add your addons (e.g. plugins) to olsrd.conf here,
# addons for interfaces in /etc/local.olsrd.conf-eth1
 
Interface "tap0" "tap1"
{
HelloInterval          5.0
HelloValidityTime      90.0
TcInterval              2.0
TcValidityTime          270.0
MidInterval            15.0
MidValidityTime        90.0
HnaInterval            15.0
HnaValidityTime        90.0
LinkQualityMult 104.62.1.129 1.0
LinkQualityMult 104.62.4.129 0.6
}
</pre>
 
 
'''3. ändern der DNS-Abfrage''' /etc/init.d/'''S60dnsmasq''' ''(S = starten | Zahl = Startreihenfolge)''


<pre>
<pre>
Zeile 84: Zeile 67:
# new ff root server ips (intranet)
# new ff root server ips (intranet)
##############################################
##############################################
server=104.62.28.36
server=10.62.28.36
server=104.62.28.35
server=10.62.28.35
server=104.62.2.131
server=10.62.2.131
server=104.62.16.1
server=10.62.16.1
server=104.62.16.37
server=10.62.16.37
##############################################
##############################################
# new ff root server ips (internet)
# new ff root server ips (internet)
##############################################
##############################################
server=85.214.81.232
server=134.255.239.79
server=81.10.154.38
server=178.254.31.83
server=178.254.31.83
##############################################
##############################################
Zeile 223: Zeile 205:




'''4. ändern der Zeit-Abfrage''' /etc/init.d/'''S92rdate''' ''(S = starten | Zahl = Startreihenfolge)''
'''3. ändern der Zeit-Abfrage''' /etc/init.d/'''S92rdate''' ''(S = starten | Zahl = Startreihenfolge)''


<pre>
<pre>
Zeile 260: Zeile 242:




'''5. Hinweis'''
'''4. Hinweis'''


Wir gehen in der Beschreibung davon aus, das Du einen '''DSL-Router''', einen '''Freifunk-Router''' und einen '''Internetzugang''' hast.  
Wir gehen in der Beschreibung davon aus, das Du einen '''DSL-Router''', einen '''Freifunk-Router''' und einen '''Internetzugang''' hast.  
Zeile 278: Zeile 260:




'''6. WAN-Default-Route''' entfernen in den Einstellungen WAN  
'''5. WAN-Default-Route''' entfernen in den Einstellungen WAN  


Öffne mit einem Webbrowser die Startseite Deines Freifunkrouters. Gehe auf Verwalten und melde Dich als '''root''' an. Dann gehe auf '''WAN'''.  
Öffne mit einem Webbrowser die Startseite Deines Freifunkrouters. Gehe auf Verwalten und melde Dich als '''root''' an. Dann gehe auf '''WAN'''.  
Zeile 293: Zeile 275:


Wenn in den WAN-Einstellungen die WAN-Default-Route nicht entfernt ist, geht der Internetverkehr wie bisher direkt ins Internet. Mit Eintrag WAN-Default-Route ist also alles wie bisher. Ohne diesen Eintrag und mit den hier beschriebenen Änderungen geht der Internetverkehr über den VPN-Server ins Internet.  
Wenn in den WAN-Einstellungen die WAN-Default-Route nicht entfernt ist, geht der Internetverkehr wie bisher direkt ins Internet. Mit Eintrag WAN-Default-Route ist also alles wie bisher. Ohne diesen Eintrag und mit den hier beschriebenen Änderungen geht der Internetverkehr über den VPN-Server ins Internet.  
1-129 Tunnel nach Schweden und 4-129 Tunnel nach Rumänien.




'''7. Statische Routen setzen''' im Bereich LAN
'''6. Statische Routen setzen''' im Bereich LAN




Öffne mit einem Webbrowser die Startseite Deines Freifunkrouters. Gehe auf Verwalten und melde Dich als '''root''' an. Dann gehe auf '''LAN'''.
Öffne mit einem Webbrowser die Startseite Deines Freifunkrouters. Gehe auf Verwalten und melde Dich als '''root''' an. Dann gehe auf '''LAN'''.


<pre>85.214.81.232:255.255.255.255:x.x.x.x:0:vlan1 178.254.31.83:255.255.255.255:x.x.x.x:0:vlan1  
<pre>   134.255.239.79:255.255.255.255:X.X.X.X:0:vlan1
192.53.103.108:255.255.255.255:x.x.x.x:0:vlan1 192.53.103.104:255.255.255.255:x.x.x.x:0:vlan1 128.138.140.44:255.255.255.255:x.x.x.x:0:vlan1  
    178.254.31.83:255.255.255.255:X.X.X.X:0:vlan1
8.8.8.8:255.255.255.255:x.x.x.x:0:vlan1
    62.141.46.39:255.255.255.255:X.X.X.X:0:vlan1
    188.68.48.88:255.255.255.255:X.X.X.X:0:vlan1  
    192.53.103.108:255.255.255.255:X.X.X.X:0:vlan1
    192.53.103.104:255.255.255.255:X.X.X.X:0:vlan1
    128.138.140.44:255.255.255.255:X.X.X.X:0:vlan1
    8.8.8.8:255.255.255.255:X.X.X.X:0:vlan1
    8.8.4.4:255.255.255.255:X.X.X.X:0:vlan1  
</pre>
</pre>


Zeile 310: Zeile 297:
vlan1 ist der WAN-Port des Freifunk-Routers.  
vlan1 ist der WAN-Port des Freifunk-Routers.  


Die 1 Route zeigt zum halleschen VPN-1-Server [http://freifunk-halle.net freifunk-halle.net] '''(Der Server bekommt bald eine neue IP-Adresse!)''',  
Die Routen zeigen auf vpn1, vpn2a, vpn2b, vpn2c, Zeit-Server, DNS-Server.
 
die 2 Route zeigt zum halleschen VPN-2-Server [http://freifunk-kanal13.de freifunk-kanal13.de] '''(IP-Adresse 178.254.31.83)''',
 
die 3, 4, 5 Route zeigt auf einen Zeit-Server,
 
die 6 Route zeigt auf einen DNS-Server.




'''8. ändern der Firewall''' /etc/'''local.fw''' und noch dises '''104.62.X.X''' auf Deine Node-IP-Adresse ändern.
'''7. ändern der Firewall''' /etc/'''local.fw''' und noch dises '''10.62.X.X''' auf Deine Node-IP-Adresse ändern.


<pre>
<pre>
Zeile 341: Zeile 322:
iptables -I FORWARD -o tap+ -j ACCEPT
iptables -I FORWARD -o tap+ -j ACCEPT


iptables -I POSTROUTING -t nat -o tap+ -s 192.168.1.0/24 -j SNAT --to-source 104.62.X.X
iptables -I POSTROUTING -t nat -o tap+ -s 192.168.1.0/24 -j SNAT --to-source 10.62.X.X





Aktuelle Version vom 4. August 2016, 10:52 Uhr

Vorab: Grundsätzlich ist diese Freifunkfirmware und die passende Hartware auch heute noch zum Betrieb freier Netze geeignet, es ist aber die Technik aus der Anfangszeit von Freifunk.

Diese Beschreibung geht davon aus, das auf Deinem Linksys WRT54GL Router OpenWrt White Russian in der verlinkten Version installiert ist.

Sowie die VPN-Tunnel zu den VPN-Servern bestehen.

Anmerkung hinter vpn2.freifunk-halle.org sind mehrere Server vpn2a, vpn2b, vpn2c.

Nach den Änderungen musst Du Deinen Router neu starten.

Zum Testen auf dem Router einloggen (z.B. PuTTY) und dann traceroute google.com eingeben.

Du kannst die Schritte mit den Programm Putty, WinSCP und einem Webbrowser (z.B. Firefox) abarbeiten.


1. OPENVPN

Die Dateien für OPENVPN bekommst Du von 3dfx oder kwm. Auf Deinem Freifunkrouter musst Du das Verzeichnis openvpn als Unterverzeichnis von /etc/ anlegen. In das Verzeichnis /etc/openvpn speicherst Du die Dateien für OPENVPN.

Jetzt muss OPENVPN noch in die Liste der zu startenden Dienste aufgenommen werden. Die Dienste welche automatisch gestartet werden, stehen im Verzeichnis /etc/init.d/ und beginnen mit einem S gefolgt von einer Zahl. Die Zahl bestimmt die Startreihenfolge.

Um OPENVPN auf Autostart zu stelle melde Dich als root mit einem Terminalprogramm (z.B. Putty) auf Deinem Freifunkrouter an und gib folgenden Befehl ein

ln -s /etc/init.d/openvpn /etc/init.d/S99openvpn

und bestätige mit Enter. Jetzt startet OPENVPN automatisch beim Starten des Routers.


2. ändern der DNS-Abfrage /etc/init.d/S60dnsmasq (S = starten | Zahl = Startreihenfolge)

#!/bin/sh

. /etc/functions.sh

write_config()
{

	WAN_DOMAIN_LOCAL=
	WAN_DOMAIN_DOMAIN=
	test -n "$WAN_DOMAIN" && WAN_DOMAIN_LOCAL="local=/.$WAN_DOMAIN/"
	test -n "$WAN_DOMAIN" && WAN_DOMAIN_DOMAIN="domain=$WAN_DOMAIN"

	cat>/var/etc/dnsmasq.conf<<EOF
# filter what we send upstream
#domain-needed
bogus-priv
filterwin2k

# To speed up ssh, all lookups throug dnsmasq
no-resolv

# allow /etc/hosts and dhcp lookups via *.lan
addn-hosts=/etc/local.hosts
$WAN_DOMAIN_LOCAL
$WAN_DOMAIN_DOMAIN
expand-hosts

##############################################
# new ff root server ips (intranet)
##############################################
server=10.62.28.36
server=10.62.28.35
server=10.62.2.131
server=10.62.16.1
server=10.62.16.37
##############################################
# new ff root server ips (internet)
##############################################
server=134.255.239.79
server=178.254.31.83
##############################################
# reverse dns
##############################################
server=8.8.8.8
server=8.8.4.4
##############################################


EOF

	IFS=\;
	for i in $WAN_DNS;do
		echo "server=$i">>/var/etc/dnsmasq.conf
	done

	unset IFS

	if [ -z "$WANOLSR" ]; then
		cat>>/var/etc/dnsmasq.conf<<EOF
# no dns queries from the wan
except-interface=$(nvram get wan_ifname)

EOF
	fi

	DHCPEND=$(nvram get dhcp_num)
	test -z "$DHCPEND" && DHCPEND=4
	if [ $DHCPEND -gt 0 ]; then
		DHCPLEASE=$(nvram get dhcp_lease)
		test -z "$DHCPLEASE" && DHCPLEASE=12h
		test "$DHCPLEASE" = "0" && DHCPLEASE=12h
		DHCPNET=$(echo $LANNET|cut -d'.' -f1-3)
		DHCPBEG=$(nvram get dhcp_start)
		DHCPBEG=${DHCPBEG##*.}
		test -z "$DHCPBEG" && DHCPBEG=100
		DHCPEND=$(( $DHCPBEG + $DHCPEND - 1 ))
		echo "dhcp-range=wired,$DHCPNET.$DHCPBEG,$DHCPNET.$DHCPEND,$LANMSK,$DHCPLEASE">>/var/etc/dnsmasq.conf
	else
		echo "no-dhcp-interface=$(nvram get lan_ifname)">>/var/etc/dnsmasq.conf
	fi

	WLDHCP=$(nvram get ff_wldhcp)
	IFS=\;
	for ENT in $WLDHCP; do
		NET=${ENT%[:,]*}
		MSK=${ENT#*[:,]}
		if [ -n "$NET" ] && [ -n "$MSK" ]; then
			DHCPLEASE=30m
			DHCPBEG=$(ipcalc -n $NET|cut -d'.' -f4)
			#DHCPBEG=$(( $DHCPBEG + 2 ))
			DHCPEND=$(ipcalc -b $NET|cut -d'.' -f4)
			#DHCPEND=$(( $DHCPEND - 1 ))
			DHCPNET=$(ipcalc -n $NET|cut -d'=' -f2|cut -d'.' -f1-3)
			echo "dhcp-range=wlnat,$DHCPNET.$DHCPBEG,$DHCPNET.$DHCPEND,$MSK,$DHCPLEASE">>/var/etc/dnsmasq.conf
		fi
	done

	WAN_HOSTNAME=$(nvram get wan_hostname)
	if test -n "$WAN_HOSTNAME" && test -n "$LANADR"; then
		echo "address=/$WAN_HOSTNAME/$LANADR">>/var/etc/dnsmasq.conf
		echo "address=/$WAN_HOSTNAME.$WAN_DOMAIN/$LANADR">>/var/etc/dnsmasq.conf
	fi

	cat>>/var/etc/dnsmasq.conf<<EOF
dhcp-leasefile=/var/run/dhcp.leases

# allow a /etc/ethers for static hosts
read-ethers

# other useful options:
#      subnet mask: dhcp-option=wired,1,255.255.255.0
# default route(s): dhcp-option=wired,3,192.168.1.1,192.168.1.2
#    dns server(s): dhcp-option=wired,6,192.168.1.1,192.168.1.2
#   broadcast addr: dhcp-option=wired,28,192.168.1.255
#   broadcast addr: dhcp-option=wlnat,28,172.31.255.255
EOF

	test -f /etc/local.dnsmasq.conf && cat>>/var/etc/dnsmasq.conf</etc/local.dnsmasq.conf
}

case $1 in
	start)
		# Compatibility with openwrt
		ln -sf /var/etc/resolv.conf /tmp/resolv.conf
		rm -f /var/etc/resolv.conf
		WAN_DNS=$(nvram get wan_dns)
		WAN_DOMAIN=$(nvram get wan_domain)
		# No DNS: Use well known DNS servers
		test -z "$WAN_DNS" && WAN_DNS="88.198.178.18;141.54.1.1;212.204.49.83;208.67.220.220;208.67.222.222"

		if [ "0" != "$(nvram get ff_dnsmasq)" ];then
			echo "Starting dnsmasq..."
			export NVRAM_wan_ifname
			export NVRAM_lan_ifname
			export NVRAM_lan_ifnames
			eval $(/usr/bin/netparam)
			write_config
			echo "search olsr">/var/etc/resolv.conf
			echo "nameserver 127.0.0.1">>/var/etc/resolv.conf

			/usr/sbin/dnsmasq
		else
			echo "Configure resolv..."
			:>/var/etc/resolv.conf
			IFS=\;
			for i in $WAN_DNS;do
				echo "nameserver $i">>/var/etc/resolv.conf
			done
			unset IFS
		fi
		test -n "$WAN_DOMAIN" && echo "search $WAN_DOMAIN">>/var/etc/resolv.conf
	;;
	stop)
		echo "Stopping dnsmasq..."
		killall dnsmasq
	;;
	restart)
		$0 stop
		$0 start
	;;
	*)
		echo "Usage: $0 start|stop|restart"
	;;
esac


3. ändern der Zeit-Abfrage /etc/init.d/S92rdate (S = starten | Zahl = Startreihenfolge)

#!/bin/sh
# Zeit und Datum Abgleich mit Zeitservern

ntp_pool="192.53.103.108 192.53.103.104 128.138.140.44 171.64.7.77 171.64.7.99 81.169.154.44"

test -n "$FAILSAFE" && exit
if [ ! -f ${0%/*}/*ntp* ]; then
	i=0
	while [ "$i" -le 6 ]; do
#		if [ -n "$(for t in main olsr 68; do ip route list exact 0/0 table $t; done)" ]; then
			sh -c "
				pool='$ntp_pool'
				i=0
				
				while [ \$i -lt 4 ]; do
					let i=\$i+1
					for n in \$pool; do
						rdate -s \$n 2>/dev/null 1>/dev/null && exit
						sleep 5
					done
				done
			"&			
			return
#		else 
#			let i=$i+1
#			sleep 30
#		fi
	done
fi


4. Hinweis

Wir gehen in der Beschreibung davon aus, das Du einen DSL-Router, einen Freifunk-Router und einen Internetzugang hast.

Die beiden Router haben jeweils einen WAN-Port (Weg Richtung Internet) und oft vier LAN-Ports (internes NETZ).

Der WAN-Port des Freifunk-Routers ist mit einem Netzwerkkabel mit einem Lan-Port des DSL-Routers zu verbinden.

Aus Sicht des DSL-Routers gehört der WAN-Port des Freifunk-Router zum lokalen Netz des DSL-Routers.

Aus Sicht des Freifunk-Routers gehört der LAN-Port des DSL-Router zum Internet.

Der DSL-Router ist für den Freifunk-Router das Gateway zum Internet.

Der Freifunk-Router muss am Wan-Port eine IP-Adresse aus dem LAN (lokalen Netz) des DSL-Router zugeteilt bekommen. Die IP-Adresse des DSL-Routers im LAN (lokales Netz) ist die Gateway IP für den Freifunk-Router.


5. WAN-Default-Route entfernen in den Einstellungen WAN

Öffne mit einem Webbrowser die Startseite Deines Freifunkrouters. Gehe auf Verwalten und melde Dich als root an. Dann gehe auf WAN.

Verwaltung: WAN 

WAN-Protokoll: WAN IP eintragen

WAN-Netzmaske: Netzmaske eintragen

WAN-Default-Route: hier nichts eintragen!

Wenn in den WAN-Einstellungen die WAN-Default-Route nicht entfernt ist, geht der Internetverkehr wie bisher direkt ins Internet. Mit Eintrag WAN-Default-Route ist also alles wie bisher. Ohne diesen Eintrag und mit den hier beschriebenen Änderungen geht der Internetverkehr über den VPN-Server ins Internet.


6. Statische Routen setzen im Bereich LAN


Öffne mit einem Webbrowser die Startseite Deines Freifunkrouters. Gehe auf Verwalten und melde Dich als root an. Dann gehe auf LAN.

    134.255.239.79:255.255.255.255:X.X.X.X:0:vlan1
    178.254.31.83:255.255.255.255:X.X.X.X:0:vlan1 
    62.141.46.39:255.255.255.255:X.X.X.X:0:vlan1 
    188.68.48.88:255.255.255.255:X.X.X.X:0:vlan1 
    192.53.103.108:255.255.255.255:X.X.X.X:0:vlan1
    192.53.103.104:255.255.255.255:X.X.X.X:0:vlan1
    128.138.140.44:255.255.255.255:X.X.X.X:0:vlan1
    8.8.8.8:255.255.255.255:X.X.X.X:0:vlan1
    8.8.4.4:255.255.255.255:X.X.X.X:0:vlan1 

x.x.x.x ist durch die IP zu ersetzen, welche Dein DSL-Router an den LAN-Ports hat.

vlan1 ist der WAN-Port des Freifunk-Routers.

Die Routen zeigen auf vpn1, vpn2a, vpn2b, vpn2c, Zeit-Server, DNS-Server.


7. ändern der Firewall /etc/local.fw und noch dises 10.62.X.X auf Deine Node-IP-Adresse ändern.

#!/bin/sh

# Place your firewall addons here or use /etc/local.fw-xxx

#MACS="00:00:01:00:00:01 0c:68:0b:02:a3:1e"

case $1 in
	start)
		for i in $MACS; do
			# You can also add "-I INPUT", but it is sufficient
			# to block forwarding, since the delinquent will get
			# the routing but no (internet) connectivity.
			iptables -I FORWARD -m mac --mac-source $i -j DROP
		done
		iptables -I INPUT -i tap+ -j ACCEPT
		iptables -I OUTPUT -o tap+ -j ACCEPT
		iptables -I FORWARD -i tap+ -j ACCEPT
		iptables -I FORWARD -o tap+ -j ACCEPT

		iptables -I POSTROUTING -t nat -o tap+ -s 192.168.1.0/24 -j SNAT --to-source 10.62.X.X


	;;
	stop)
		for i in $MACS; do
			iptables -D FORWARD -m mac --mac-source $i -j DROP
		done
	;;
esac