Orga, Bürokraten, Administratoren
792
Bearbeitungen
(→Überprüfen: Link Diskussion) |
Seth0r (Diskussion | Beiträge) (erste Stichpunkte zum Server aufsetzen) |
||
Zeile 141: | Zeile 141: | ||
== Server aufsetzen == | == Server aufsetzen == | ||
Die Potsdam-VPN Server sind als [[virtueller Router|virtuelle Router]] auf Hedy-Basis aufgesetzt. | |||
=== Firmware kompilieren === | |||
Da die OpenVPN-Server Funktionalität im Standart-Hedy nicht enthalten ist, muss die Firmware mit einigen Änderungen selbst kompiliert werden. | |||
Git-Repository clonen: | |||
git clone -b Hedy-1.0.2 https://github.com/freifunk-berlin/firmware.git hedy-1.0.2 | |||
cd hedy-1.0.2 | |||
configs/common.config ergänzen: | |||
CONFIG_OPENVPN_openssl_ENABLE_SMALL=n | |||
CONFIG_OPENVPN_openssl_ENABLE_SERVER=y | |||
CONFIG_OPENVPN_openssl_ENABLE_OCC=y | |||
Da wir OpenVPN auf jeden Fall brauchen, bauen wir das gleich im default Image mit ein. | |||
packages/default.txt ergänzen: | |||
luci-app-openvpn | |||
openvpn-openssl | |||
Kaffeepause, mit Kuchen ;-) | |||
make -j4 TARGET=x86-generic | |||
In firmwares/x86-generic/default/ liegt anschließend eine hedy-1.0.2-alpha-*-x86-generic-combined-ext4.img.gz. | |||
Diese kann man auspacken mit: | |||
zcat firmwares/x86-generic/default/hedy-1.0.2-alpha-*-x86-generic-combined-ext4.img.gz > hedy-1.0.2.img | |||
Das Image kann dann für einen [[virtueller Router|virtuellen Router]] benutzt werden. | |||
=== virtuellen Router einrichten === | |||
=== Hostsystem einrichten === | |||
==== Netzwerk, Routing und Firewall ==== | |||
/etc/network/interfaces | |||
auto brffvpn | |||
iface brffvpn inet static | |||
bridge_ports none | |||
address 172.22.255.1 | |||
netmask 255.255.255.0 | |||
/etc/iproute2/rt_tables | |||
100 ffvpn | |||
101 ffvpn-default | |||
/etc/iptables/rules.v4 | |||
*filter | |||
-A INPUT -p udp -m udp --dport 25551 -j ACCEPT | |||
-A INPUT -p udp -m udp --dport 25552 -j ACCEPT | |||
-A INPUT -p udp -m udp --dport 25553 -j ACCEPT | |||
-A FORWARD -i brffvpn -o tap0 -s 172.22.255.0/24 -d 10.0.0.0/24 -m conntrack --ctstate DNAT -j VPNIN | |||
-A FORWARD -i tun5 -o brffvpn -d 172.22.255.0/24 -j ACCEPT | |||
-A FORWARD -o tun5 -i brffvpn -s 172.22.255.0/24 -j ACCEPT | |||
-A FORWARD -i '''eth0''' -o brffvpn -d 172.22.255.2 -j ACCEPT | |||
-A FORWARD -o '''eth0''' -i brffvpn -s 172.22.255.2 -j ACCEPT | |||
... | |||
*nat | |||
:PORTFW - [0:0] | |||
-A PREROUTING -i '''eth0''' -j PORTFW | |||
-A PORTFW -p udp --dport 1195 -j DNAT --to-destination 172.22.255.2 | |||
-A PORTFW -p tcp --dport 25522 -j DNAT --to-destination 172.22.255.2:22 | |||
-A PORTFW -p tcp --dport 25543 -j DNAT --to-destination 172.22.255.2:443 | |||
==== Qemu-Script ==== | |||
#!/bin/bash | |||
USER=pdmvpn | |||
DISK=/home/pdmvpn/pdmvpn_b_hedy.img | |||
ME=vpn-b | |||
MYPORT=25552 | |||
CONA="dst=vpn-a.freifunk-potsdam.de,srcport=25551,src=${ME}.freifunk-potsdam.de,dstport=${MYPORT}" | |||
#CONB="dst=vpn-b.freifunk-potsdam.de,srcport=25552,src=${ME}.freifunk-potsdam.de,dstport=${MYPORT}" | |||
CONC="dst=vpn-c.freifunk-potsdam.de,srcport=25553,src=${ME}.freifunk-potsdam.de,dstport=${MYPORT}" | |||
if [ "$1" = "start" ]; then | |||
$0 run > /home/pdmvpn/pdmvpn.log 2>&1 & | |||
echo $! > /home/pdmvpn/pdmvpn.pid | |||
elif [ "$1" = "stop" ]; then | |||
kill `cat /home/pdmvpn/pdmvpn.pid` | |||
kill `cat /home/pdmvpn/pdmvpn_qemu.pid` | |||
elif [ "$1" = "run" ]; then | |||
while true; do | |||
qemu-system-i386 \ | |||
-runas $USER \ | |||
-pidfile /home/pdmvpn/pdmvpn_qemu.pid \ | |||
-no-reboot \ | |||
-net nic -net bridge,br=brffvpn \ | |||
-net nic,vlan=2 -net l2tpv3,vlan=2,$CONA,udp,rxsession=0xffffffff,txsession=0xffffffff,counter \ | |||
-net nic,vlan=3 -net l2tpv3,vlan=3,$CONC,udp,rxsession=0xffffffff,txsession=0xffffffff,counter \ | |||
-nographic \ | |||
-hda $DISK \ | |||
-serial unix:/home/pdmvpn/pdmvpn.console,server,nowait \ | |||
-monitor file:/home/pdmvpn/pdmvpn.mon | |||
sleep 5 | |||
done | |||
elif [ "$1" = "console" ]; then | |||
echo "Press CTRL-D to exit." | |||
socat stdin,raw,echo=0,escape=0x04 "unix-connect:/home/pdmvpn/pdmvpn.console" | |||
fi | |||
==== ExpressVPN ==== | |||
/etc/openvpn/expressvpn.sh | |||
#!/bin/bash | |||
ip route flush table ffvpn | |||
ip route flush table ffvpn-default | |||
ip route add $route_network_1/$route_netmask_1 via $route_gateway_1 table ffvpn | |||
ip route add default via $route_gateway_1 table ffvpn-default | |||
ip route add 172.22.255.0/24 dev brffvpn scope global table ffvpn | |||
ip route add 10.22.0.0/16 via 172.22.255.10 table ffvpn | |||
ip rule del prio 99 | |||
ip rule del prio 100 | |||
ip rule del prio 101 | |||
ip rule del prio 102 | |||
ip rule del prio 110 | |||
ip rule del prio 111 | |||
ip rule add prio 99 from 172.22.255.2 table main | |||
ip rule add table ffvpn iif tun5 prio 100 | |||
ip rule add table ffvpn iif brffvpn prio 101 | |||
ip rule add table ffvpn-default iif brffvpn prio 102 | |||
ip rule add prio 110 iif tun5 prohibit | |||
ip rule add prio 111 iif brffvpn prohibit | |||
[[Kategorie:Technik]] | [[Kategorie:Technik]] | ||
[[Kategorie:Netz]] | [[Kategorie:Netz]] |