installer/OpenSecurity-Installer.tex
changeset 59 9d9d88344944
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/installer/OpenSecurity-Installer.tex	Wed Jan 21 13:52:24 2015 +0100
     1.3 @@ -0,0 +1,166 @@
     1.4 +\documentclass[a4paper,10pt]{article}
     1.5 +\usepackage[utf8x]{inputenc}
     1.6 +\usepackage{a4wide}
     1.7 +\usepackage{graphicx}
     1.8 +\usepackage{eurosym}
     1.9 +\usepackage[T1]{fontenc}
    1.10 +\usepackage{latexsym}
    1.11 +\usepackage{textcomp}
    1.12 +\usepackage{fancybox}
    1.13 +\usepackage{microtype}
    1.14 +\usepackage{listings}
    1.15 +\usepackage{setspace}
    1.16 +\usepackage{color}
    1.17 +\usepackage{comment}
    1.18 +
    1.19 +\linespread{1.1}
    1.20 +\parskip=4pt
    1.21 +
    1.22 +\begin{document}
    1.23 +
    1.24 +\title{OpenSecurity Installer zu Version 1.0 \\
    1.25 +    \large Howto zum Bau einer OpenSecurity 1.0 Release.
    1.26 +}
    1.27 +
    1.28 +\author{Oliver Maurhart\\
    1.29 +AIT Austrian Institute of Technology
    1.30 +}
    1.31 +
    1.32 +\maketitle
    1.33 +
    1.34 +\section{Werkzeuge}
    1.35 +
    1.36 +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.
    1.37 +
    1.38 +
    1.39 +\section{Verfahren}
    1.40 +
    1.41 +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.
    1.42 +
    1.43 +\begin{itemize}
    1.44 +
    1.45 +\item welche Verzeichnisse zu erstellen sind.
    1.46 +\item welche Dateien wohin zu kopieren sind.
    1.47 +\item welche Registry Einträge erstellt werden müssen.
    1.48 +\item welche Icons uns Programmpunkte in das Startmenü oder am Desktop aufgenommen müssen.
    1.49 +\item sowie welche Programme nach der Installation oder vor der Deinstallation ablaufen müssen.
    1.50 +
    1.51 +\end{itemize}
    1.52 +
    1.53 +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.
    1.54 +
    1.55 +Der InnoSetup Compiler wird mit dieser Konfigurationsdatei gestartet und über ein GUI kann anhand dieser Einstellungen ein Setup.exe erzeugt werden.
    1.56 +
    1.57 +Neben den Registryeinträgen, Startmenüänderungen sowie dem Ablaufen einer Reihe von Post-Install Programmen ist der Hauptbestandteil einer Installation
    1.58 +
    1.59 +\begin{enumerate}
    1.60 +
    1.61 +\item Das Kopieren von Dateien an eine bestimmte Stelle im Zielsystem.
    1.62 +
    1.63 +\item Das Ändern der Zugriffs- und Ausführungsrechte der kopierten Dateien im Zielsystem.
    1.64 +
    1.65 +\end{enumerate}
    1.66 +
    1.67 +\subsection{Dateilayout}
    1.68 +
    1.69 +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):
    1.70 +
    1.71 +\begin{verbatim}
    1.72 +OpenSecurity
    1.73 +|-- Apache License, Version 2.0.txt
    1.74 +|-- bin
    1.75 +|   |-- ...
    1.76 +|   `-- vmmanager.pyw
    1.77 +|-- cygwin64
    1.78 +|   |-- bin
    1.79 +|   |-- ...
    1.80 +|   `-- var
    1.81 +|-- install
    1.82 +|   |-- fix_cygwin_paths.bat
    1.83 +|   `-- initial_vm.sh
    1.84 +|-- Lizenz.txt
    1.85 +|-- log
    1.86 +|-- python27
    1.87 +|   |-- content.txt
    1.88 +|   |-- DLLs
    1.89 +|   |-- Lib
    1.90 +|   |-- libs
    1.91 +|   |-- python.exe
    1.92 +|   |-- python27.dll
    1.93 +|   |-- pythonw.exe
    1.94 +|   |-- qt.conf
    1.95 +|   `-- Scripts
    1.96 +|-- systemprofile
    1.97 +|   |-- .VirtualBox
    1.98 +|   |   `-- VirtualBox.xml
    1.99 +|   `-- VirtualBox VMs
   1.100 +|       `-- SecurityDVM
   1.101 +|           |-- SecurityDVM.vbox
   1.102 +|           `-- SecurityDVM.vmdk
   1.103 +`-- systemprofile-IKT
   1.104 +    |-- .VirtualBox
   1.105 +    |   `-- VirtualBox.xml
   1.106 +    `-- VirtualBox VMs
   1.107 +        `-- SecurityDVM
   1.108 +            |-- SecurityDVM.vbox
   1.109 +            `-- SecurityDVM.vmdk
   1.110 +\end{verbatim}
   1.111 +
   1.112 +Die wesentlichsten Verzeichnisse sind dabei:
   1.113 +
   1.114 +\begin{itemize}
   1.115 +
   1.116 +\item \texttt{bin}: dies beinhaltet den OpenSecurity Core Code.
   1.117 +
   1.118 +\item \texttt{cygwin64}: hier ist die Cygwin64 Installation, welche von OpenSecurity verwendet wird.
   1.119 +
   1.120 +\item \texttt{python27}: das ist die Python 2.7 Installation, welche von OpenSecurity verwendet wird.
   1.121 +
   1.122 +\item Lizenzdateien.
   1.123 +
   1.124 +\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.
   1.125 +
   1.126 +\end{itemize}
   1.127 +
   1.128 +
   1.129 +\subsection{Registry}
   1.130 +
   1.131 +OpenSecurity schreibt diese Einträge in die Registry:
   1.132 +
   1.133 +\begin{itemize}
   1.134 +
   1.135 +\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.
   1.136 +\item \textbf{HKLM{\textbackslash}SOFTWARE{\textbackslash}OpenSecurity{\textbackslash}LogServerUrl}: HTTP RESTful URL des OpenSecurity LogServer.
   1.137 +\item \textbf{HKLM{\textbackslash}SOFTWARE{\textbackslash}OpenSecurity{\textbackslash}Browser}: Vollständiger Pfad und Optionen des Internet Browsers in der VM für Sicheres Surfen.
   1.138 +\item \textbf{HKLM{\textbackslash}SOFTWARE{\textbackslash}OpenSecurity{\textbackslash}ImageUrl}: Download-URL für VM-Images zum Importieren/Updaten der VM-Images.
   1.139 +\item \textbf{HKLM{\textbackslash}SYSTEM{\textbackslash}CurrentControlSet{\textbackslash}services{\textbackslash}USBSTOR}: Wert ``4'' zum Deaktivieren des Windows USB-Mass-Storage Treibers.
   1.140 +
   1.141 +
   1.142 +\end{itemize}
   1.143 +
   1.144 +
   1.145 +
   1.146 +\subsection{Postinstall}
   1.147 +
   1.148 +Nach der Installation führt das Setup diese Schritte durch:
   1.149 +
   1.150 +\begin{enumerate}
   1.151 +
   1.152 +\item Rebase der Cygwin64 installation. Das stellt die Suchpfade der Cygwin DLLs korrekt.
   1.153 +\item Fix der Cygwin Pfad in der /etc/fstab.
   1.154 +\item Cygwin Umgebung erzeugen durch einmaliges Ausführen einer Bash.
   1.155 +\item Firewall Regeln für OpenSecurity im System eintragen.
   1.156 +\item Installation des OpenSecurity Service.
   1.157 +\item Starten des OpenSecurity Service.
   1.158 +\item Starten des OpenSecurity Tray Icons.
   1.159 +
   1.160 +\end{enumerate}
   1.161 +
   1.162 +
   1.163 +
   1.164 +\section{Schlußbemerkung}
   1.165 +
   1.166 +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.
   1.167 +
   1.168 +
   1.169 +\end{document}