1.1 Binary file installer/OpenSecurity-Installer.pdf has changed
2.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2.2 +++ b/installer/OpenSecurity-Installer.tex Wed Jan 21 13:56:57 2015 +0100
2.3 @@ -0,0 +1,166 @@
2.4 +\documentclass[a4paper,10pt]{article}
2.5 +\usepackage[utf8x]{inputenc}
2.6 +\usepackage{a4wide}
2.7 +\usepackage{graphicx}
2.8 +\usepackage{eurosym}
2.9 +\usepackage[T1]{fontenc}
2.10 +\usepackage{latexsym}
2.11 +\usepackage{textcomp}
2.12 +\usepackage{fancybox}
2.13 +\usepackage{microtype}
2.14 +\usepackage{listings}
2.15 +\usepackage{setspace}
2.16 +\usepackage{color}
2.17 +\usepackage{comment}
2.18 +
2.19 +\linespread{1.1}
2.20 +\parskip=4pt
2.21 +
2.22 +\begin{document}
2.23 +
2.24 +\title{OpenSecurity Installer zu Version 1.0 \\
2.25 + \large Howto zum Bau einer OpenSecurity 1.0 Release.
2.26 +}
2.27 +
2.28 +\author{Oliver Maurhart\\
2.29 +AIT Austrian Institute of Technology
2.30 +}
2.31 +
2.32 +\maketitle
2.33 +
2.34 +\section{Werkzeuge}
2.35 +
2.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.
2.37 +
2.38 +
2.39 +\section{Verfahren}
2.40 +
2.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.
2.42 +
2.43 +\begin{itemize}
2.44 +
2.45 +\item welche Verzeichnisse zu erstellen sind.
2.46 +\item welche Dateien wohin zu kopieren sind.
2.47 +\item welche Registry Einträge erstellt werden müssen.
2.48 +\item welche Icons uns Programmpunkte in das Startmenü oder am Desktop aufgenommen müssen.
2.49 +\item sowie welche Programme nach der Installation oder vor der Deinstallation ablaufen müssen.
2.50 +
2.51 +\end{itemize}
2.52 +
2.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.
2.54 +
2.55 +Der InnoSetup Compiler wird mit dieser Konfigurationsdatei gestartet und über ein GUI kann anhand dieser Einstellungen ein Setup.exe erzeugt werden.
2.56 +
2.57 +Neben den Registryeinträgen, Startmenüänderungen sowie dem Ablaufen einer Reihe von Post-Install Programmen ist der Hauptbestandteil einer Installation
2.58 +
2.59 +\begin{enumerate}
2.60 +
2.61 +\item Das Kopieren von Dateien an eine bestimmte Stelle im Zielsystem.
2.62 +
2.63 +\item Das Ändern der Zugriffs- und Ausführungsrechte der kopierten Dateien im Zielsystem.
2.64 +
2.65 +\end{enumerate}
2.66 +
2.67 +\subsection{Dateilayout}
2.68 +
2.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):
2.70 +
2.71 +\begin{verbatim}
2.72 +OpenSecurity
2.73 +|-- Apache License, Version 2.0.txt
2.74 +|-- bin
2.75 +| |-- ...
2.76 +| `-- vmmanager.pyw
2.77 +|-- cygwin64
2.78 +| |-- bin
2.79 +| |-- ...
2.80 +| `-- var
2.81 +|-- install
2.82 +| |-- fix_cygwin_paths.bat
2.83 +| `-- initial_vm.sh
2.84 +|-- Lizenz.txt
2.85 +|-- log
2.86 +|-- python27
2.87 +| |-- content.txt
2.88 +| |-- DLLs
2.89 +| |-- Lib
2.90 +| |-- libs
2.91 +| |-- python.exe
2.92 +| |-- python27.dll
2.93 +| |-- pythonw.exe
2.94 +| |-- qt.conf
2.95 +| `-- Scripts
2.96 +|-- systemprofile
2.97 +| |-- .VirtualBox
2.98 +| | `-- VirtualBox.xml
2.99 +| `-- VirtualBox VMs
2.100 +| `-- SecurityDVM
2.101 +| |-- SecurityDVM.vbox
2.102 +| `-- SecurityDVM.vmdk
2.103 +`-- systemprofile-IKT
2.104 + |-- .VirtualBox
2.105 + | `-- VirtualBox.xml
2.106 + `-- VirtualBox VMs
2.107 + `-- SecurityDVM
2.108 + |-- SecurityDVM.vbox
2.109 + `-- SecurityDVM.vmdk
2.110 +\end{verbatim}
2.111 +
2.112 +Die wesentlichsten Verzeichnisse sind dabei:
2.113 +
2.114 +\begin{itemize}
2.115 +
2.116 +\item \texttt{bin}: dies beinhaltet den OpenSecurity Core Code.
2.117 +
2.118 +\item \texttt{cygwin64}: hier ist die Cygwin64 Installation, welche von OpenSecurity verwendet wird.
2.119 +
2.120 +\item \texttt{python27}: das ist die Python 2.7 Installation, welche von OpenSecurity verwendet wird.
2.121 +
2.122 +\item Lizenzdateien.
2.123 +
2.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.
2.125 +
2.126 +\end{itemize}
2.127 +
2.128 +
2.129 +\subsection{Registry}
2.130 +
2.131 +OpenSecurity schreibt diese Einträge in die Registry:
2.132 +
2.133 +\begin{itemize}
2.134 +
2.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.
2.136 +\item \textbf{HKLM{\textbackslash}SOFTWARE{\textbackslash}OpenSecurity{\textbackslash}LogServerUrl}: HTTP RESTful URL des OpenSecurity LogServer.
2.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.
2.138 +\item \textbf{HKLM{\textbackslash}SOFTWARE{\textbackslash}OpenSecurity{\textbackslash}ImageUrl}: Download-URL für VM-Images zum Importieren/Updaten der VM-Images.
2.139 +\item \textbf{HKLM{\textbackslash}SYSTEM{\textbackslash}CurrentControlSet{\textbackslash}services{\textbackslash}USBSTOR}: Wert ``4'' zum Deaktivieren des Windows USB-Mass-Storage Treibers.
2.140 +
2.141 +
2.142 +\end{itemize}
2.143 +
2.144 +
2.145 +
2.146 +\subsection{Postinstall}
2.147 +
2.148 +Nach der Installation führt das Setup diese Schritte durch:
2.149 +
2.150 +\begin{enumerate}
2.151 +
2.152 +\item Rebase der Cygwin64 installation. Das stellt die Suchpfade der Cygwin DLLs korrekt.
2.153 +\item Fix der Cygwin Pfad in der /etc/fstab.
2.154 +\item Cygwin Umgebung erzeugen durch einmaliges Ausführen einer Bash.
2.155 +\item Firewall Regeln für OpenSecurity im System eintragen.
2.156 +\item Installation des OpenSecurity Service.
2.157 +\item Starten des OpenSecurity Service.
2.158 +\item Starten des OpenSecurity Tray Icons.
2.159 +
2.160 +\end{enumerate}
2.161 +
2.162 +
2.163 +
2.164 +\section{Schlußbemerkung}
2.165 +
2.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.
2.167 +
2.168 +
2.169 +\end{document}