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