#!/bin/sh export DATE="15.8.2005" export TITLE="Verwaltung: Opennet" . ${0%/*}/cgi-bin-pre.sh cat<<EOF

# Verwaltung: OpenVPN

EOF if [ "$REQUEST_METHOD" = "POST" ]; then read QUERY_STRING fi if [ -z "$QUERY_STRING" ]; then # presets (if set, user will not be able to change the value) # those values are repeated on bottom (this is not nice, I know) openssl_countryName="de" openssl_provinceName="Mecklenburg-Vorpommern" openssl_localityName="Rostock" openssl_organizationalUnitName="users" cat<<EOF

## Status

EOF if [ -f /tmp/openvpn_msg.txt ];then echo "
" else echo "
" fi echo "
" echo "
Tunnel active |  | Tunnel inactive |  |
" if [ -f /etc/openvpn/opennet_user/on_aps.csr ];then echo "
Zertifikatanfrage (CSR) vorhanden |  | herunterladen
" elif ! [ -f /etc/openvpn/opennet_user/on_aps.key ] && ! [ -f /etc/openvpn/opennet_user/on_aps.crt ]; then echo "
Zertifikatanfrage (CSR) fehlt |
" fi echo "
" if [ -f /etc/openvpn/opennet_user/on_aps.key ];then echo "
" else echo "
" fi echo "
Schlüssel vorhanden |  | herunterladen | Schlüssel fehlt |
" if [ -f /etc/openvpn/opennet_user/on_aps.crt ];then echo "
" else echo "
" fi cat<<EOF
Zertifikat vorhanden |  | herunterladen | Zertifikat fehlt |

EOF if [ -f /etc/openvpn/opennet_user/on_aps.csr ] && ! [ -f /etc/openvpn/opennet_user/on_aps.crt ]; then echo "Schicke die Zertifikatanfrage (CSR) und nur diese Datei an csr@opennet-initiative.de, um ein Zertifikat zu erhalten." fi #if ! [ -f /tmp/ap_XX.csr ]; then cat<<EOF

## Schlüssel-Verwaltung

EOF if [ -f /etc/openvpn/opennet_user/on_aps.key ] && [ -f /etc/openvpn/opennet_user/on_aps.crt ]; then cat<<EOF anzeigen EOF fi cat<<EOF

Zertifikat (*.crt) oder neuen geheimen Schlüssel (*.key) auf den Accesspoint laden

EOF if [ -f /etc/openvpn/opennet_user/on_aps.key ] && [ -f /etc/openvpn/opennet_user/on_aps.crt ]; then cat<<EOF
EOF fi cat<<EOF EOF #else cat<<EOF

## Schlüssel-Erstellung

EOF if [ -f /etc/openvpn/opennet_user/on_aps.key ] && [ -f /etc/openvpn/opennet_user/on_aps.crt ]; then cat<<EOF anzeigen EOF fi cat<<EOF

Staat: |
Landesname: |
Ort: |
eigener Name: |
Nutzergruppe: |
Accesspoint-Name: |
email-adresse: |
Geheimen Schlüssel und Anfrage zur Zertifizierung (CSR) generieren: |

EOF if [ -f /etc/openvpn/opennet_user/on_aps.key ] && [ -f /etc/openvpn/opennet_user/on_aps.crt ]; then cat<<EOF
EOF fi cat<<EOF EOF #fi cat<
EOF echo "

# " if [ -f /etc/openvpn/opennet_user/on_aps.key ]; then echo "Geheimer Schlüssel (Datei on_aps.key im Verzeichnis /etc/openvpn/opennet_user/) auf dem Accesspoint schon vorhanden.
" fi if [ -f /etc/openvpn/opennet_user/on_aps.csr ]; then echo "Anfrage zur Zertifizierung (Datei on_aps.csr im Verzeichnis /etc/openvpn/opennet_user/) auf dem Accesspoint schon vorhanden.
" fi echo "Was soll ich machen?
" echo "

" cat<<EOF

Ein neuer Key, verbunden mit einer Anfrage zur Zertifizierung kann nur erstellt werden, wenn der vorhandene Key bzw. die vorhandene Anfrage zur Zertifizierung gelöscht wird/werden. Dies sollte nur in wenigen Fällen nötig sein. Wenn Du den geheimen Schlüssel vorher nicht heruntergeladen hast, ist dieser unwiederbringlich verloren, das Zertifikat, sofern du es schon beantragt hast, wertlos. Soll der geheime Schlüssel und/oder die Anfrage zur Zertifizierung gelöscht werden? EOF if [ -f /etc/openvpn/opennet_user/on_aps.crt ]; then echo " (Da das aufgespielte Zertifkat dann auch nicht mehr zum neuen Schlüssel passt, wird dieses gleichfalls gelöscht)" fi cat<<EOF

EOF else cat<<EOF

Erzeuge geheimen Schlüssel und Anfrage für Unterzeichnung (CSR). Bitte warten...

EOF echo "

    "

    openssl_countryName="de"
    openssl_provinceName="Mecklenburg-Vorpommern"
    openssl_localityName="Rostock"
    openssl_organizationalUnitName="users"

    openssl_countryName=$(unescape "$openssl_countryName"); export openssl_countryName
    openssl_provinceName=$(unescape "$openssl_provinceName"); export openssl_provinceName
    openssl_localityName=$(unescape "$openssl_localityName"); export openssl_localityName
    openssl_organizationName=$(unescape "$openssl_organizationName"); export openssl_organizationName
    openssl_organizationalUnitName=$(unescape "$openssl_organizationalUnitName"); export openssl_organizationalUnitName
    openssl_commonName=$(unescape "$openssl_commonName"); export openssl_commonName
    openssl_EmailAddress=$(unescape "$openssl_EmailAddress"); export openssl_EmailAddress

    openssl req -days 3650 -nodes -new -keyout /etc/openvpn/opennet_user/on_aps.key -out /etc/openvpn/opennet_user/on_aps.csr

    return_value=$?

    #openssl req -noout -text -in /etc/openvpn/opennet_user/on_aps.csr

    echo "

" cat<<EOF

EOF if [ $return_value = 0 ]; then echo "Schlüssel und CSR-Erstellung erfolgreich abgeschlossen." # blockiere Webfrontend zum Firmware-Update mv -f /www/cgi-bin/webif/upgrade.sh /www/cgi-bin/webif/upgrade.sh_bak 2>/dev/null cp -f /www/cgi-bin/webif/upgrade.sh_on /www/cgi-bin/webif/upgrade.sh 2>/dev/null else echo "Schlüssel und CSR-Erstellung fehlgeschlagen" fi cat<<EOF

EOF fi elif [ -n "$upload_force" ]; then cat<<EOF

EOF if [ -f /tmp/on_vpn_upload.key ]; then mv /etc/openvpn/opennet_user/on_aps.key /etc/openvpn/opennet_user/on_aps.key_bak echo "geheimer Schlüssel /etc/openvpn/opennet_user/on_aps.key wurde durch die hochgeladene Datei überschrieben" mv /tmp/on_vpn_upload.key /etc/openvpn/opennet_user/on_aps.key rm /etc/openvpn/opennet_user/on_aps.key_bak # blockiere Webfrontend zum Firmware-Update if ! [ -e /www/cgi-bin/webif/upgrade.sh_bak ]; then mv -f /www/cgi-bin/webif/upgrade.sh /www/cgi-bin/webif/upgrade.sh_bak 2>/dev/null ln -s /www/cgi-bin/webif/upgrade.sh_on /www/cgi-bin/webif/upgrade.sh 2>/dev/null fi elif [ -f /tmp/on_vpn_upload.crt ]; then mv /etc/openvpn/on_aps.crt /etc/openvpn/opennet_user/on_aps.crt_bak echo "Zertifikat /etc/openvpn/opennet_user/on_aps.crt wurde durch die hochgeladene Datei überschrieben" mv /tmp/on_vpn_upload.crt /etc/openvpn/opennet_user/on_aps.crt rm /etc/openvpn/opennet_user/on_aps.crt_bak fi cat<<EOF

EOF elif [ -n "$remove_key_csr" ]; then rm -f /etc/openvpn/opennet_user/on_aps.csr rm -f /etc/openvpn/opennet_user/on_aps.key rm -f /etc/openvpn/opennet_user/on_aps.crt # reaktiviere Webfrontend zum Firmware-Update if ! [ -f /etc/openvpn/opennet_ugw/on_ugws.key ]; then mv -f /www/cgi-bin/webif/upgrade.sh_bak /www/cgi-bin/webif/upgrade.sh 2>/dev/null fi cat<<EOF

Datei(-en) wurden gelöscht. Nun kann ein neuer geheimer Key generiert werden.

EOF elif [ -n "$openvpn_restart" ]; then cat<<EOF

Starte OpenVPN neu. Bitte warten...

EOF echo -n "

    "

    /etc/init.d/S60ntpclient start >/dev/null
    /etc/init.d/S80openvpn restart opennet_user
    echo "

" elif [ -n "$upload_abort" ]; then cat<<EOF

Es wurden keine Einstellungen geändert.

EOF fi fi . ${0%/*}/cgi-bin-post.sh