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
     1 \documentclass[a4paper,10pt]{article}
     2 \usepackage[utf8x]{inputenc}
     3 \usepackage{a4wide}
     4 \usepackage{graphicx}
     5 \usepackage{eurosym}
     6 \usepackage[T1]{fontenc}
     7 \usepackage{latexsym}
     8 \usepackage{textcomp}
     9 \usepackage{fancybox}
    10 \usepackage{microtype}
    11 \usepackage{listings}
    12 \usepackage{setspace}
    13 \usepackage{color}
    14 \usepackage{comment}
    15 
    16 \linespread{1.1}
    17 \parskip=4pt
    18 
    19 \begin{document}
    20 
    21 \title{OpenSecurity Installer zu Version 1.0 \\
    22     \large Howto zum Bau einer OpenSecurity 1.0 Release.
    23 }
    24 
    25 \author{Oliver Maurhart\\
    26 AIT Austrian Institute of Technology
    27 }
    28 
    29 \maketitle
    30 
    31 \section{Werkzeuge}
    32 
    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.
    34 
    35 
    36 \section{Verfahren}
    37 
    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.
    39 
    40 \begin{itemize}
    41 
    42 \item welche Verzeichnisse zu erstellen sind.
    43 \item welche Dateien wohin zu kopieren sind.
    44 \item welche Registry Einträge erstellt werden müssen.
    45 \item welche Icons uns Programmpunkte in das Startmenü oder am Desktop aufgenommen müssen.
    46 \item sowie welche Programme nach der Installation oder vor der Deinstallation ablaufen müssen.
    47 
    48 \end{itemize}
    49 
    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.
    51 
    52 Der InnoSetup Compiler wird mit dieser Konfigurationsdatei gestartet und über ein GUI kann anhand dieser Einstellungen ein Setup.exe erzeugt werden.
    53 
    54 Neben den Registryeinträgen, Startmenüänderungen sowie dem Ablaufen einer Reihe von Post-Install Programmen ist der Hauptbestandteil einer Installation
    55 
    56 \begin{enumerate}
    57 
    58 \item Das Kopieren von Dateien an eine bestimmte Stelle im Zielsystem.
    59 
    60 \item Das Ändern der Zugriffs- und Ausführungsrechte der kopierten Dateien im Zielsystem.
    61 
    62 \end{enumerate}
    63 
    64 \subsection{Dateilayout}
    65 
    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):
    67 
    68 \begin{verbatim}
    69 OpenSecurity
    70 |-- Apache License, Version 2.0.txt
    71 |-- bin
    72 |   |-- ...
    73 |   `-- vmmanager.pyw
    74 |-- cygwin64
    75 |   |-- bin
    76 |   |-- ...
    77 |   `-- var
    78 |-- install
    79 |   |-- fix_cygwin_paths.bat
    80 |   `-- initial_vm.sh
    81 |-- Lizenz.txt
    82 |-- log
    83 |-- python27
    84 |   |-- content.txt
    85 |   |-- DLLs
    86 |   |-- Lib
    87 |   |-- libs
    88 |   |-- python.exe
    89 |   |-- python27.dll
    90 |   |-- pythonw.exe
    91 |   |-- qt.conf
    92 |   `-- Scripts
    93 |-- systemprofile
    94 |   |-- .VirtualBox
    95 |   |   `-- VirtualBox.xml
    96 |   `-- VirtualBox VMs
    97 |       `-- SecurityDVM
    98 |           |-- SecurityDVM.vbox
    99 |           `-- SecurityDVM.vmdk
   100 `-- systemprofile-IKT
   101     |-- .VirtualBox
   102     |   `-- VirtualBox.xml
   103     `-- VirtualBox VMs
   104         `-- SecurityDVM
   105             |-- SecurityDVM.vbox
   106             `-- SecurityDVM.vmdk
   107 \end{verbatim}
   108 
   109 Die wesentlichsten Verzeichnisse sind dabei:
   110 
   111 \begin{itemize}
   112 
   113 \item \texttt{bin}: dies beinhaltet den OpenSecurity Core Code.
   114 
   115 \item \texttt{cygwin64}: hier ist die Cygwin64 Installation, welche von OpenSecurity verwendet wird.
   116 
   117 \item \texttt{python27}: das ist die Python 2.7 Installation, welche von OpenSecurity verwendet wird.
   118 
   119 \item Lizenzdateien.
   120 
   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.
   122 
   123 \end{itemize}
   124 
   125 
   126 \subsection{Registry}
   127 
   128 OpenSecurity schreibt diese Einträge in die Registry:
   129 
   130 \begin{itemize}
   131 
   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.
   133 \item \textbf{HKLM{\textbackslash}SOFTWARE{\textbackslash}OpenSecurity{\textbackslash}LogServerUrl}: HTTP RESTful URL des OpenSecurity LogServer.
   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.
   135 \item \textbf{HKLM{\textbackslash}SOFTWARE{\textbackslash}OpenSecurity{\textbackslash}ImageUrl}: Download-URL für VM-Images zum Importieren/Updaten der VM-Images.
   136 \item \textbf{HKLM{\textbackslash}SYSTEM{\textbackslash}CurrentControlSet{\textbackslash}services{\textbackslash}USBSTOR}: Wert ``4'' zum Deaktivieren des Windows USB-Mass-Storage Treibers.
   137 
   138 
   139 \end{itemize}
   140 
   141 
   142 
   143 \subsection{Postinstall}
   144 
   145 Nach der Installation führt das Setup diese Schritte durch:
   146 
   147 \begin{enumerate}
   148 
   149 \item Rebase der Cygwin64 installation. Das stellt die Suchpfade der Cygwin DLLs korrekt.
   150 \item Fix der Cygwin Pfad in der /etc/fstab.
   151 \item Cygwin Umgebung erzeugen durch einmaliges Ausführen einer Bash.
   152 \item Firewall Regeln für OpenSecurity im System eintragen.
   153 \item Installation des OpenSecurity Service.
   154 \item Starten des OpenSecurity Service.
   155 \item Starten des OpenSecurity Tray Icons.
   156 
   157 \end{enumerate}
   158 
   159 
   160 
   161 \section{Schlußbemerkung}
   162 
   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.
   164 
   165 
   166 \end{document}