Firmware:VPN/DS9: Unterschied zwischen den Versionen

Aus Freifunk Rheinland e.V.
Zur Navigation springen Zur Suche springen
(Änderung 109 von Yrthy (Diskussion) rückgängig gemacht.)
Keine Bearbeitungszusammenfassung
 
(10 dazwischenliegende Versionen von 9 Benutzern werden nicht angezeigt)
Zeile 3: Zeile 3:
== Einrichtung ==
== Einrichtung ==


* VPN-Zugang besorgen bei nomaster
* VPN-Zugang beim [[Vereinsvorstand]] besorgen, falls nicht schon geschehen


* per SSH auf dem Router einloggen
* per SSH auf dem Router einloggen
Zeile 10: Zeile 10:
Folgendes Zertifikat auf dem Router unter /etc/openvpn/ds9.ca ablegen:
Folgendes Zertifikat auf dem Router unter /etc/openvpn/ds9.ca ablegen:


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


* Config anlegen
* Config anlegen


Per "vi /etc/openvpn/ds9.conf"
Per "vi /etc/openvpn/ds9.conf"
Inhalt:
Inhalt:
client
<pre>
remote 78.47.11.70
client
comp-lzo
script-security 2
dev tunff
remote ds9.freifunk-rheinland.net
remote-cert-tls server
route-nopull
ca /etc/openvpn/ds9.ca
comp-lzo
auth-user-pass /etc/openvpn/ds9.txt
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
</pre>


* Passwort-Datei anlegen:
* Passwort-Datei anlegen:
Zeile 56: Zeile 62:


* VPN Konfiguration in UCI aktivieren.
* VPN Konfiguration in UCI aktivieren.
  uci set openvpn.custom_config.enable=1
  uci set openvpn.custom_config.enabled=1
  uci set openvpn.custom_config.config=/etc/openvpn/ds9.conf
  uci set openvpn.custom_config.config=/etc/openvpn/ds9.conf
  uci commit openvpn
  uci commit openvpn
Zeile 64: Zeile 70:
Per "vi /etc/firewall.user"
Per "vi /etc/firewall.user"


  #openvpn
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 br-mesh -o tunff -j ACCEPT
  iptables -I FORWARD -i tunff -o br-mesh -j ACCEPT
  iptables -I FORWARD -i tunff -o br-mesh -j ACCEPT
Zeile 70: Zeile 87:
  iptables -A INPUT -i tunff -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
  iptables -A INPUT -i tunff -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
  iptables -A INPUT -i tunff -j REJECT
  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.
Wenn man den Router nicht restarten möchte müssen die Befehle auch einmal ausgeführt werden.

Aktuelle Version vom 1. September 2013, 14:39 Uhr

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