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}