Tunnel HNA mit OpenWrt White Russian: Unterschied zwischen den Versionen
Kwm (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung  | 
				Kwm (Diskussion | Beiträge)  Keine Bearbeitungszusammenfassung  | 
				||
| Zeile 12: | Zeile 12: | ||
'''WAN-Default-Route''' entfernen in den Einstellungen WAN  | '''1. WAN-Default-Route''' entfernen in den Einstellungen WAN  | ||
Statische   | '''2. Statische Routen setzen''' im Bereich LAN  | ||
<pre>  | |||
85.214.81.232:255.255.255.255:x.x.x.x:0:vlan1 81.10.154.38: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   | |||
</pre>  | |||
x.x.x.x ist durch die IP zu ersetzen, welche vorher bei WAN bei '''WAN-Default-Route''' stand.  | '''x.x.x.x''' ist durch die IP zu ersetzen, welche vorher bei WAN bei '''WAN-Default-Route''' stand.  | ||
vlan1 ist in der Regel der WANPORT des Routers. Ist bei Deinem Gerät der WANPORT nicht vlan1, dann gib den entsprechenden Port an. Die   | vlan1 ist in der Regel der WANPORT des Routers. Ist bei Deinem Gerät der WANPORT nicht vlan1, dann gib den entsprechenden Port an.    | ||
Die 1 Route zeigt zum halleschen VPN-Server (freifunk-halle.net),    | |||
die 2 Route zeigt zum wels VPN-Server (wels.funkfeuer.at),  | |||
die 3 Route zeigt auf einen Zeit-Server,  | |||
die 4 Route zeigt auf einen Zeit-Server,  | |||
die 5 Route zeigt auf einen Zeit-Server,  | |||
die 6 Route zeigt auf einen DNS-Server.  | |||
'''3. ändern der Firewall''' /etc/'''local.fw''' und noch dises '''104.62.X.X''' auf Deine Node-IP-Adresse ändern.  | |||
<pre>  | |||
#!/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 INPUT -p tcp --dport 1195 -j ACCEPT  | |||
		iptables -I INPUT -p tcp --dport 1196 -j ACCEPT  | |||
		iptables -I INPUT -p udp --dport 1199 -j ACCEPT  | |||
		iptables -I POSTROUTING -t nat -o tap+ -s 192.168.1.0/24 -j SNAT --to-source 104.62.X.X  | |||
	;;  | |||
	stop)  | |||
		for i in $MACS; do  | |||
			iptables -D FORWARD -m mac --mac-source $i -j DROP  | |||
		done  | |||
	;;  | |||
esac  | |||
</pre>  | |||
'''4. ändern der DNS-Abfrage''' /etc/init.d/'''S60dnsmasq''' ''(S = starten | Zahl = Startreihenfolge)''  | |||
<pre>  | |||
#!/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=104.62.28.36  | |||
server=104.62.28.35  | |||
server=104.62.2.131  | |||
server=104.62.1.129  | |||
server=104.62.16.1  | |||
server=104.62.16.37  | |||
##############################################  | |||
# new ff root server ips (internet)  | |||
##############################################  | |||
server=85.214.81.232  | |||
server=81.10.154.38  | |||
##############################################  | |||
# 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  | |||
</pre>  | |||
'''5. ändern der Zeit-Abfrage''' /etc/init.d/'''S92rdate''' ''(S = starten | Zahl = Startreihenfolge)''  | |||
<pre>  | |||
#!/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  | |||
</pre>  | |||
Version vom 27. Mai 2013, 19:26 Uhr
A c h t u n g noch nicht getestet!!!
Getestet es geht so nicht !!!
1. WAN-Default-Route entfernen in den Einstellungen WAN
2. Statische Routen setzen im Bereich LAN
85.214.81.232:255.255.255.255:x.x.x.x:0:vlan1 81.10.154.38: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
x.x.x.x ist durch die IP zu ersetzen, welche vorher bei WAN bei WAN-Default-Route stand.
vlan1 ist in der Regel der WANPORT des Routers. Ist bei Deinem Gerät der WANPORT nicht vlan1, dann gib den entsprechenden Port an. Die 1 Route zeigt zum halleschen VPN-Server (freifunk-halle.net), die 2 Route zeigt zum wels VPN-Server (wels.funkfeuer.at), die 3 Route zeigt auf einen Zeit-Server, die 4 Route zeigt auf einen Zeit-Server, die 5 Route zeigt auf einen Zeit-Server, die 6 Route zeigt auf einen DNS-Server.
3. ändern der Firewall /etc/local.fw und noch dises 104.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 INPUT -p tcp --dport 1195 -j ACCEPT iptables -I INPUT -p tcp --dport 1196 -j ACCEPT iptables -I INPUT -p udp --dport 1199 -j ACCEPT iptables -I POSTROUTING -t nat -o tap+ -s 192.168.1.0/24 -j SNAT --to-source 104.62.X.X ;; stop) for i in $MACS; do iptables -D FORWARD -m mac --mac-source $i -j DROP done ;; esac
4. ä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=104.62.28.36
server=104.62.28.35
server=104.62.2.131
server=104.62.1.129
server=104.62.16.1
server=104.62.16.37
##############################################
# new ff root server ips (internet)
##############################################
server=85.214.81.232
server=81.10.154.38
##############################################
# 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
5. ä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