Potsdam-VPN: Unterschied zwischen den Versionen

4.469 Bytes hinzugefügt ,  29. Juni 2018
erste Stichpunkte zum Server aufsetzen
(→‎Überprüfen: Link Diskussion)
(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]]
770

Bearbeitungen