Firmware:VPN/DS9

Aus Freifunk Rheinland e.V.
Zur Navigation springen Zur Suche springen

In diesem Beispiel wird ein Benutzerkonto bei DS9 genutzt.

Einrichtung

  • per SSH auf dem Router einloggen


Folgendes Zertifikat auf dem Router unter /etc/openvpn/ds9.ca ablegen:

-----BEGIN CERTIFICATE-----
MIID7DCCA1WgAwIBAgIJAKi66ix+0cwqMA0GCSqGSIb3DQEBBQUAMIGrMQswCQYD
VQQGEwJERTEMMAoGA1UECBMDTlJXMRQwEgYDVQQHEwtEdWVzc2VsZG9yZjEgMB4G
A1UEChMXRnJlaWZ1bmsgUmhlaW5sYW5kIGUuVi4xFDASBgNVBAsTC1ZQTiB0ZXN0
aW5nMQwwCgYDVQQDEwNkczkxDDAKBgNVBCkTA2RzOTEkMCIGCSqGSIb3DQEJARYV
bm9tYXN0ZXJAY2hhb3Nkb3JmLmRlMB4XDTEyMTIxMDE2MTcwOFoXDTIyMTIwODE2
MTcwOFowgasxCzAJBgNVBAYTAkRFMQwwCgYDVQQIEwNOUlcxFDASBgNVBAcTC0R1
ZXNzZWxkb3JmMSAwHgYDVQQKExdGcmVpZnVuayBSaGVpbmxhbmQgZS5WLjEUMBIG
A1UECxMLVlBOIHRlc3RpbmcxDDAKBgNVBAMTA2RzOTEMMAoGA1UEKRMDZHM5MSQw
IgYJKoZIhvcNAQkBFhVub21hc3RlckBjaGFvc2RvcmYuZGUwgZ8wDQYJKoZIhvcN
AQEBBQADgY0AMIGJAoGBAL0W05y7iOOI75B+iJIWzHKV7Qs9SGG1jICGZDNYBs98
0KsxkHjeOE1ier2r/t5kJefW/GhOo0eqrWLJrLw7z1G6AKm0fxjPgeiuO7kgCAzU
hHydC9yW/eM5NDYxq7hep3PlmtMuELOCsJr0K9/Osx3GxD3yhi+QRO6ftApEYY+n
AgMBAAGjggEUMIIBEDAdBgNVHQ4EFgQUpOCOm8Tgv5x2rx/A1nP11uwGyuowgeAG
A1UdIwSB2DCB1YAUpOCOm8Tgv5x2rx/A1nP11uwGyuqhgbGkga4wgasxCzAJBgNV
BAYTAkRFMQwwCgYDVQQIEwNOUlcxFDASBgNVBAcTC0R1ZXNzZWxkb3JmMSAwHgYD
VQQKExdGcmVpZnVuayBSaGVpbmxhbmQgZS5WLjEUMBIGA1UECxMLVlBOIHRlc3Rp
bmcxDDAKBgNVBAMTA2RzOTEMMAoGA1UEKRMDZHM5MSQwIgYJKoZIhvcNAQkBFhVu
b21hc3RlckBjaGFvc2RvcmYuZGWCCQCouuosftHMKjAMBgNVHRMEBTADAQH/MA0G
CSqGSIb3DQEBBQUAA4GBAIZLqR9IXiYA9OjurY9W0w09jqX2wqsI+XGCCxs2vxcC
oIcI5pSPZUrlMlxuR9CK1loiknll8JLTJ2et8E8KRrH6Lxbqa9UO97zvVoPEBH3q
YmoZmUWHno6leNjbnXNP5DVKs2VGV6GqqMZQdN9JrE76DECsXKd9goOCCTIdPAwe
-----END CERTIFICATE-----
  • Config anlegen

Per "vi /etc/openvpn/ds9.conf" Inhalt:

client
script-security 2
remote ds9.freifunk-rheinland.net
route-nopull
comp-lzo
dev tunff
remote-cert-tls server
ca /etc/openvpn/ds9.ca
up /etc/openvpn/tunff-up.sh
down /etc/openvpn/tunff-down.sh
auth-user-pass /etc/openvpn/ds9.txt
  • Passwort-Datei anlegen:

Die Datei besteht nur aus zwei Zeilen, Name und Passwort. Per "vi /etc/openvpn/ds9.txt"

username
passwort
  • VPN Konfiguration in UCI aktivieren.
uci set openvpn.custom_config.enabled=1
uci set openvpn.custom_config.config=/etc/openvpn/ds9.conf
uci commit openvpn
  • Firewall anpassen.

Per "vi /etc/firewall.user"

get_iface () {
        local interface=$1
        local iface=$(uci get network.$interface.ifname)
        local type=$(uci -q get network.$interface.type)
        [ "bridge" = "$type" ] && iface="br-$interface"
        echo $iface
}

# Wan Interface
wan_iface=$(get_iface wan)

# OpenVPN Traffic forwarden und masquerading aktivieren
iptables -I FORWARD -i br-mesh -o tunff -j ACCEPT
iptables -I FORWARD -i tunff -o br-mesh -j ACCEPT
iptables -t nat -A POSTROUTING -o tunff -j MASQUERADE
iptables -A INPUT -i tunff -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i tunff -j REJECT
# Traffic vom Mesh über das normale Wan-Interface unterbinden
iptables -D FORWARD -i br-mesh -o $wan_iface -j ACCEPT
iptables -I FORWARD -i br-mesh -o $wan_iface -j DROP

Wenn man den Router nicht restarten möchte müssen die Befehle auch einmal ausgeführt werden.

  • openvpn beim Booten automatisch starten lassen
/etc/init.d/openvpn enable
  • Den Tunnel starten
/etc/init.d/openvpn start
  • ggf. Router neu starten
reboot

Diverse Befehle

  • Dienst neu starten
/etc/init.d/openvpn stop
/etc/init.d/openvpn start