installer/OpenSecurity-Installer.tex
author Oliver Maurhart <oliver.maurhart@ait.ac.at>
Wed, 21 Jan 2015 13:52:24 +0100
changeset 59 9d9d88344944
permissions -rw-r--r--
added howto installer documentation
oliver@59
     1
\documentclass[a4paper,10pt]{article}
oliver@59
     2
\usepackage[utf8x]{inputenc}
oliver@59
     3
\usepackage{a4wide}
oliver@59
     4
\usepackage{graphicx}
oliver@59
     5
\usepackage{eurosym}
oliver@59
     6
\usepackage[T1]{fontenc}
oliver@59
     7
\usepackage{latexsym}
oliver@59
     8
\usepackage{textcomp}
oliver@59
     9
\usepackage{fancybox}
oliver@59
    10
\usepackage{microtype}
oliver@59
    11
\usepackage{listings}
oliver@59
    12
\usepackage{setspace}
oliver@59
    13
\usepackage{color}
oliver@59
    14
\usepackage{comment}
oliver@59
    15
oliver@59
    16
\linespread{1.1}
oliver@59
    17
\parskip=4pt
oliver@59
    18
oliver@59
    19
\begin{document}
oliver@59
    20
oliver@59
    21
\title{OpenSecurity Installer zu Version 1.0 \\
oliver@59
    22
    \large Howto zum Bau einer OpenSecurity 1.0 Release.
oliver@59
    23
}
oliver@59
    24
oliver@59
    25
\author{Oliver Maurhart\\
oliver@59
    26
AIT Austrian Institute of Technology
oliver@59
    27
}
oliver@59
    28
oliver@59
    29
\maketitle
oliver@59
    30
oliver@59
    31
\section{Werkzeuge}
oliver@59
    32
oliver@59
    33
OpenSecurity verwendet zum Bau der Setup Installationsdateien den Inno Setup Compiler 5.5.5 (a) von Jordan Russel und Martijn Laan. Dieses Tool kann von der Seite http://www.innosetup.com frei bezogen werden.
oliver@59
    34
oliver@59
    35
oliver@59
    36
\section{Verfahren}
oliver@59
    37
oliver@59
    38
InnoSetup verwendet eine Konfigurationsdatei, welche durch den Suffix ``.iss'' erkennbar ist. Diese Konfigurationsdatei enthält Anweisungen und Pascal-Code für den Setup Compiler wie bsp.
oliver@59
    39
oliver@59
    40
\begin{itemize}
oliver@59
    41
oliver@59
    42
\item welche Verzeichnisse zu erstellen sind.
oliver@59
    43
\item welche Dateien wohin zu kopieren sind.
oliver@59
    44
\item welche Registry Einträge erstellt werden müssen.
oliver@59
    45
\item welche Icons uns Programmpunkte in das Startmenü oder am Desktop aufgenommen müssen.
oliver@59
    46
\item sowie welche Programme nach der Installation oder vor der Deinstallation ablaufen müssen.
oliver@59
    47
oliver@59
    48
\end{itemize}
oliver@59
    49
oliver@59
    50
OpenSecurity verfügt dabei über eine ``OpenSecurity.iss'' welche das reguläre, öffentlich Setup beschreibt. Eine ``OpenSecurity-IKT.iss'' enthält divergierende Werte, welche speziell auf den Bedarfsträger IKT Linz zugeschnitten wurden.
oliver@59
    51
oliver@59
    52
Der InnoSetup Compiler wird mit dieser Konfigurationsdatei gestartet und über ein GUI kann anhand dieser Einstellungen ein Setup.exe erzeugt werden.
oliver@59
    53
oliver@59
    54
Neben den Registryeinträgen, Startmenüänderungen sowie dem Ablaufen einer Reihe von Post-Install Programmen ist der Hauptbestandteil einer Installation
oliver@59
    55
oliver@59
    56
\begin{enumerate}
oliver@59
    57
oliver@59
    58
\item Das Kopieren von Dateien an eine bestimmte Stelle im Zielsystem.
oliver@59
    59
oliver@59
    60
\item Das Ändern der Zugriffs- und Ausführungsrechte der kopierten Dateien im Zielsystem.
oliver@59
    61
oliver@59
    62
\end{enumerate}
oliver@59
    63
oliver@59
    64
\subsection{Dateilayout}
oliver@59
    65
oliver@59
    66
OpenSecurity verwendet dabei relativ zum Pfad der Konfigurationsdatei dieses Dateilayout, welches nahezu 1:1 in das Zielsystem (C:{\textbackslash}Program Files) kopiert wird (Anm.: bei ``bin'', ``cygwin64'' und ``python27'' wird nur die 1 Verzeichnisebene dargestellt):
oliver@59
    67
oliver@59
    68
\begin{verbatim}
oliver@59
    69
OpenSecurity
oliver@59
    70
|-- Apache License, Version 2.0.txt
oliver@59
    71
|-- bin
oliver@59
    72
|   |-- ...
oliver@59
    73
|   `-- vmmanager.pyw
oliver@59
    74
|-- cygwin64
oliver@59
    75
|   |-- bin
oliver@59
    76
|   |-- ...
oliver@59
    77
|   `-- var
oliver@59
    78
|-- install
oliver@59
    79
|   |-- fix_cygwin_paths.bat
oliver@59
    80
|   `-- initial_vm.sh
oliver@59
    81
|-- Lizenz.txt
oliver@59
    82
|-- log
oliver@59
    83
|-- python27
oliver@59
    84
|   |-- content.txt
oliver@59
    85
|   |-- DLLs
oliver@59
    86
|   |-- Lib
oliver@59
    87
|   |-- libs
oliver@59
    88
|   |-- python.exe
oliver@59
    89
|   |-- python27.dll
oliver@59
    90
|   |-- pythonw.exe
oliver@59
    91
|   |-- qt.conf
oliver@59
    92
|   `-- Scripts
oliver@59
    93
|-- systemprofile
oliver@59
    94
|   |-- .VirtualBox
oliver@59
    95
|   |   `-- VirtualBox.xml
oliver@59
    96
|   `-- VirtualBox VMs
oliver@59
    97
|       `-- SecurityDVM
oliver@59
    98
|           |-- SecurityDVM.vbox
oliver@59
    99
|           `-- SecurityDVM.vmdk
oliver@59
   100
`-- systemprofile-IKT
oliver@59
   101
    |-- .VirtualBox
oliver@59
   102
    |   `-- VirtualBox.xml
oliver@59
   103
    `-- VirtualBox VMs
oliver@59
   104
        `-- SecurityDVM
oliver@59
   105
            |-- SecurityDVM.vbox
oliver@59
   106
            `-- SecurityDVM.vmdk
oliver@59
   107
\end{verbatim}
oliver@59
   108
oliver@59
   109
Die wesentlichsten Verzeichnisse sind dabei:
oliver@59
   110
oliver@59
   111
\begin{itemize}
oliver@59
   112
oliver@59
   113
\item \texttt{bin}: dies beinhaltet den OpenSecurity Core Code.
oliver@59
   114
oliver@59
   115
\item \texttt{cygwin64}: hier ist die Cygwin64 Installation, welche von OpenSecurity verwendet wird.
oliver@59
   116
oliver@59
   117
\item \texttt{python27}: das ist die Python 2.7 Installation, welche von OpenSecurity verwendet wird.
oliver@59
   118
oliver@59
   119
\item Lizenzdateien.
oliver@59
   120
oliver@59
   121
\item \texttt{systemprofile}: Hier befindet sich das mitgelieferte VirtualBox image. Im Gegensatz zu den restlichen Dateien und Verzeichnissen wird diese Satz an Dateien in das Windows Systemverzeichnis kopiert. Konkret \texttt{C:{\textbackslash}Windows{\textbackslash}System32{\textbackslash}config{\textbackslash}systemprofile}. Dieser Inhalt dieser Verzeichnisse ist aus einer Live-Installation nach einem Update übernommen und angepasst worden. Im Besonderen ist die \texttt{VirtualBox.xml} Datei zu adaptieren und zu bereinigen.
oliver@59
   122
oliver@59
   123
\end{itemize}
oliver@59
   124
oliver@59
   125
oliver@59
   126
\subsection{Registry}
oliver@59
   127
oliver@59
   128
OpenSecurity schreibt diese Einträge in die Registry:
oliver@59
   129
oliver@59
   130
\begin{itemize}
oliver@59
   131
oliver@59
   132
\item \textbf{HKLM{\textbackslash}SOFTWARE{\textbackslash}Microsoft{\textbackslash}Windows{\textbackslash}CurrentVersion{\textbackslash}Run{\textbackslash}OpenSecurity Tray Icon}: Automatisches Starten des OpenSecurity Tray Icons bei Windows Anmeldung.
oliver@59
   133
\item \textbf{HKLM{\textbackslash}SOFTWARE{\textbackslash}OpenSecurity{\textbackslash}LogServerUrl}: HTTP RESTful URL des OpenSecurity LogServer.
oliver@59
   134
\item \textbf{HKLM{\textbackslash}SOFTWARE{\textbackslash}OpenSecurity{\textbackslash}Browser}: Vollständiger Pfad und Optionen des Internet Browsers in der VM für Sicheres Surfen.
oliver@59
   135
\item \textbf{HKLM{\textbackslash}SOFTWARE{\textbackslash}OpenSecurity{\textbackslash}ImageUrl}: Download-URL für VM-Images zum Importieren/Updaten der VM-Images.
oliver@59
   136
\item \textbf{HKLM{\textbackslash}SYSTEM{\textbackslash}CurrentControlSet{\textbackslash}services{\textbackslash}USBSTOR}: Wert ``4'' zum Deaktivieren des Windows USB-Mass-Storage Treibers.
oliver@59
   137
oliver@59
   138
oliver@59
   139
\end{itemize}
oliver@59
   140
oliver@59
   141
oliver@59
   142
oliver@59
   143
\subsection{Postinstall}
oliver@59
   144
oliver@59
   145
Nach der Installation führt das Setup diese Schritte durch:
oliver@59
   146
oliver@59
   147
\begin{enumerate}
oliver@59
   148
oliver@59
   149
\item Rebase der Cygwin64 installation. Das stellt die Suchpfade der Cygwin DLLs korrekt.
oliver@59
   150
\item Fix der Cygwin Pfad in der /etc/fstab.
oliver@59
   151
\item Cygwin Umgebung erzeugen durch einmaliges Ausführen einer Bash.
oliver@59
   152
\item Firewall Regeln für OpenSecurity im System eintragen.
oliver@59
   153
\item Installation des OpenSecurity Service.
oliver@59
   154
\item Starten des OpenSecurity Service.
oliver@59
   155
\item Starten des OpenSecurity Tray Icons.
oliver@59
   156
oliver@59
   157
\end{enumerate}
oliver@59
   158
oliver@59
   159
oliver@59
   160
oliver@59
   161
\section{Schlußbemerkung}
oliver@59
   162
oliver@59
   163
Die genauen Konkret Schritte (bsp. Eintragen des Log Servers) sind jedenfalls in den einzelnen ``.iss''-Dateien zum Nachlesen und können von den hier vorgestellten Inhalten durch Updates abweichen.
oliver@59
   164
oliver@59
   165
oliver@59
   166
\end{document}