
oliver@59: \documentclass[a4paper,10pt]{article}
oliver@59: \usepackage[utf8x]{inputenc}
oliver@59: \usepackage{a4wide}
oliver@59: \usepackage{graphicx}
oliver@59: \usepackage{eurosym}
oliver@59: \usepackage[T1]{fontenc}
oliver@59: \usepackage{latexsym}
oliver@59: \usepackage{textcomp}
oliver@59: \usepackage{fancybox}
oliver@59: \usepackage{microtype}
oliver@59: \usepackage{listings}
oliver@59: \usepackage{setspace}
oliver@59: \usepackage{color}
oliver@59: \usepackage{comment}
oliver@59: 
oliver@59: \linespread{1.1}
oliver@59: \parskip=4pt
oliver@59: 
oliver@59: \begin{document}
oliver@59: 
oliver@59: \title{OpenSecurity Installer zu Version 1.0 \\
oliver@59:     \large Howto zum Bau einer OpenSecurity 1.0 Release.
oliver@59: }
oliver@59: 
oliver@59: \author{Oliver Maurhart\\
oliver@59: AIT Austrian Institute of Technology
oliver@59: }
oliver@59: 
oliver@59: \maketitle
oliver@59: 
oliver@59: \section{Werkzeuge}
oliver@59: 
oliver@59: 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: 
oliver@59: 
oliver@59: \section{Verfahren}
oliver@59: 
oliver@59: 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: 
oliver@59: \begin{itemize}
oliver@59: 
oliver@59: \item welche Verzeichnisse zu erstellen sind.
oliver@59: \item welche Dateien wohin zu kopieren sind.
oliver@59: \item welche Registry Einträge erstellt werden müssen.
oliver@59: \item welche Icons uns Programmpunkte in das Startmenü oder am Desktop aufgenommen müssen.
oliver@59: \item sowie welche Programme nach der Installation oder vor der Deinstallation ablaufen müssen.
oliver@59: 
oliver@59: \end{itemize}
oliver@59: 
oliver@59: 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: 
oliver@59: Der InnoSetup Compiler wird mit dieser Konfigurationsdatei gestartet und über ein GUI kann anhand dieser Einstellungen ein Setup.exe erzeugt werden.
oliver@59: 
oliver@59: Neben den Registryeinträgen, Startmenüänderungen sowie dem Ablaufen einer Reihe von Post-Install Programmen ist der Hauptbestandteil einer Installation
oliver@59: 
oliver@59: \begin{enumerate}
oliver@59: 
oliver@59: \item Das Kopieren von Dateien an eine bestimmte Stelle im Zielsystem.
oliver@59: 
oliver@59: \item Das Ändern der Zugriffs- und Ausführungsrechte der kopierten Dateien im Zielsystem.
oliver@59: 
oliver@59: \end{enumerate}
oliver@59: 
oliver@59: \subsection{Dateilayout}
oliver@59: 
oliver@59: 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: 
oliver@59: \begin{verbatim}
oliver@59: OpenSecurity
oliver@59: |-- Apache License, Version 2.0.txt
oliver@59: |-- bin
oliver@59: |   |-- ...
oliver@59: |   `-- vmmanager.pyw
oliver@59: |-- cygwin64
oliver@59: |   |-- bin
oliver@59: |   |-- ...
oliver@59: |   `-- var
oliver@59: |-- install
oliver@59: |   |-- fix_cygwin_paths.bat
oliver@59: |   `-- initial_vm.sh
oliver@59: |-- Lizenz.txt
oliver@59: |-- log
oliver@59: |-- python27
oliver@59: |   |-- content.txt
oliver@59: |   |-- DLLs
oliver@59: |   |-- Lib
oliver@59: |   |-- libs
oliver@59: |   |-- python.exe
oliver@59: |   |-- python27.dll
oliver@59: |   |-- pythonw.exe
oliver@59: |   |-- qt.conf
oliver@59: |   `-- Scripts
oliver@59: |-- systemprofile
oliver@59: |   |-- .VirtualBox
oliver@59: |   |   `-- VirtualBox.xml
oliver@59: |   `-- VirtualBox VMs
oliver@59: |       `-- SecurityDVM
oliver@59: |           |-- SecurityDVM.vbox
oliver@59: |           `-- SecurityDVM.vmdk
oliver@59: `-- systemprofile-IKT
oliver@59:     |-- .VirtualBox
oliver@59:     |   `-- VirtualBox.xml
oliver@59:     `-- VirtualBox VMs
oliver@59:         `-- SecurityDVM
oliver@59:             |-- SecurityDVM.vbox
oliver@59:             `-- SecurityDVM.vmdk
oliver@59: \end{verbatim}
oliver@59: 
oliver@59: Die wesentlichsten Verzeichnisse sind dabei:
oliver@59: 
oliver@59: \begin{itemize}
oliver@59: 
oliver@59: \item \texttt{bin}: dies beinhaltet den OpenSecurity Core Code.
oliver@59: 
oliver@59: \item \texttt{cygwin64}: hier ist die Cygwin64 Installation, welche von OpenSecurity verwendet wird.
oliver@59: 
oliver@59: \item \texttt{python27}: das ist die Python 2.7 Installation, welche von OpenSecurity verwendet wird.
oliver@59: 
oliver@59: \item Lizenzdateien.
oliver@59: 
oliver@59: \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: 
oliver@59: \end{itemize}
oliver@59: 
oliver@59: 
oliver@59: \subsection{Registry}
oliver@59: 
oliver@59: OpenSecurity schreibt diese Einträge in die Registry:
oliver@59: 
oliver@59: \begin{itemize}
oliver@59: 
oliver@59: \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: \item \textbf{HKLM{\textbackslash}SOFTWARE{\textbackslash}OpenSecurity{\textbackslash}LogServerUrl}: HTTP RESTful URL des OpenSecurity LogServer.
oliver@59: \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: \item \textbf{HKLM{\textbackslash}SOFTWARE{\textbackslash}OpenSecurity{\textbackslash}ImageUrl}: Download-URL für VM-Images zum Importieren/Updaten der VM-Images.
oliver@59: \item \textbf{HKLM{\textbackslash}SYSTEM{\textbackslash}CurrentControlSet{\textbackslash}services{\textbackslash}USBSTOR}: Wert ``4'' zum Deaktivieren des Windows USB-Mass-Storage Treibers.
oliver@59: 
oliver@59: 
oliver@59: \end{itemize}
oliver@59: 
oliver@59: 
oliver@59: 
oliver@59: \subsection{Postinstall}
oliver@59: 
oliver@59: Nach der Installation führt das Setup diese Schritte durch:
oliver@59: 
oliver@59: \begin{enumerate}
oliver@59: 
oliver@59: \item Rebase der Cygwin64 installation. Das stellt die Suchpfade der Cygwin DLLs korrekt.
oliver@59: \item Fix der Cygwin Pfad in der /etc/fstab.
oliver@59: \item Cygwin Umgebung erzeugen durch einmaliges Ausführen einer Bash.
oliver@59: \item Firewall Regeln für OpenSecurity im System eintragen.
oliver@59: \item Installation des OpenSecurity Service.
oliver@59: \item Starten des OpenSecurity Service.
oliver@59: \item Starten des OpenSecurity Tray Icons.
oliver@59: 
oliver@59: \end{enumerate}
oliver@59: 
oliver@59: 
oliver@59: 
oliver@59: \section{Schlußbemerkung}
oliver@59: 
oliver@59: 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: 
oliver@59: 
oliver@59: \end{document}




