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}