%
% afick.tex
% Last Update: $Id$
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Kapitel Automx %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Achtung: Dateien muessen mit latin1-Encoding gespeichert werden!
% Attention: Files must be saved using latin1 encoding!
%

\chapter{Das afick-Paket}

\section{Die Einleitung}

    Das afick-Paket (\url{http://afick.sourceforge.net/}) stellt das
    AFICK-Sicherheitswerkzeug (Another File Integrity ChecKer) zur
    Verf"ugung, welches es erlaubt "Anderungen im Dateisystem zu
    "uberwachen und so Systemkompromittierungen zu erkennen.


\section{Die Funktionen}

    Das afick-Paket besteht aus folgender Komponente:

    \begin{itemize}
        \item afick - Das afick-Werkzeug.\\
              (\url{http://afick.sourceforge.net/})
    \end{itemize}


\section{Die Voraussetzungen}

    Zur Nutzung des Programms wird ein installiertes Perl-Programmpaket
    ben"otigt.


\section{Die Installation}

    Das afick-Paket wird "uber das Setup-Men"u installiert. Wird
    eine "altere Paketversion vorgefunden, so wird diese deinstalliert
    bevor die neuen Programmdateien installiert werden.


\section{Das Men"u im Setup-Programm}

    Das Men"u im Setup-Programm ist wie folgt aufgebaut:

    \begin{itemize}
        \item View documentation: Anzeigen der Dokumentation
        \item Edit configuration: Bearbeiten der Konfiguration
        \item Initialize database: Initialisieren der Datenbank
        \item Compare database: Vergleich der Datenbank
        \item Update database: Vergleich und Aktualisierung der Datenbank
        \item View log file: Die Logmeldungen anzeigen
        \item View error file: Die Fehlermeldungen anzeigen
        \item Return: Untermen"u verlassen

    \end{itemize}

    Die Men"upunkte d"urften selbsterkl"arend sein, da sie keinerlei weitere
    Eingaben erwarten. Aus diesem Grund wird auf deren Funktion nicht weiter
    eingegangen.


\section{Die "Anderung der Konfiguration}

    Die Konfiguration kann "uber den Men"upunkt 'Edit configuration'
    ge"andert werden. Standardm"a"sig wird der Editor aufgerufen, der in
    der Environment-Konfiguration "uber die Variable 'EDITOR' festgelegt
    wurde. Nachdem der Editor beendet wurde wird abgefragt, ob die
    Konfiguration aktiviert werden soll. Wird dies best"atigt, werden "uber
    ein Skript die Anpassungen umgehend wirksam gemacht.


\section{Die Konfigurationsdatei}

    In der Konfigurationsdatei, die "uber das Men"u zug"anglich ist, sind
    folgende Parameter vorhanden; wer sie von Hand editieren will findet
    sie unter /etc/config.d/afick.


\section{Die Parameter}

\begin{description}
%% JED - show this description only in the help file
 %  \config{AFICK\_DO\_DEBUG (Optionaler Parameter)}{AFICK\_DO\_DEBUG}{AFICKDODEBUG}
 %      Um den Debug-Modus zu aktivieren muss diese Parameter
 %      lediglich auf den Wert `yes' gestellt werden, die Einstellung
 %      `no' deaktiviert den Debug-Modus.
 %
 %      G"ultige Werte: yes, no
 %
 %      Standardeinstellung: \texttt{AFICK\_DO\_DEBUG='no'}

    \config{START\_AFICK}{START\_AFICK}{STARTAFICK}
        F"ur die Aktivierung des afick-Dienstes muss diese Variable
        lediglich auf den Wert `yes' gestellt werden. Die Einstellung
        'no' deaktiviert den afick-Dienst.

        G"ultige Werte: yes, no

        Standardeinstellung: \texttt{START\_AFICK='no'}

    \config{AFICK\_EXCLUDE\_PREFIX}{AFICK\_EXCLUDE\_PREFIX}{AFICKEXCLUDEPREFIX}
        "Uber diesen Parameter k"onnen auf Wunsch Pr"afixe von Dateien
        festgelegt werden, welche von der Pr"ufung des Dateisystemes
        ausgeschlossen werden. Mehrere Pr"afixe werden jeweils durch
        ein Leerzeichen voneinander getrennt.

        Standardm"a"sig sind keine Dateipr"afixe definiert.

        G"ultige Werte: leer, default, Dateipr"afixe

        Standardeinstellung: \texttt{AFICK\_EXCLUDE\_PREFIX='default'}

    \config{AFICK\_EXCLUDE\_SUFFIX}{AFICK\_EXCLUDE\_SUFFIX}{AFICKEXCLUDESUFFIX}
        "Uber diesen Parameter k"onnen auf Wunsch Suffixe von Dateien
        festgelegt werden, welche von der Pr"ufung des Dateisystemes
        ausgeschlossen werden. Mehrere Suffixe werden jeweils durch
        ein Leerzeichen voneinander getrennt.

        Standardm"a"sig sind folgende Dateipr"afixe definiert:
        log, LOG, html, htm, HTM, txt, TXT, xml, hlp, pod, chm, tmp,
        old, bak, fon, ttf, TTF, bmp, BMP, jpg, JPG, gif, png, ico,
        wav, WAV, mp3, avi

        G"ultige Werte: leer, default, Dateisuffixe

        Standardeinstellung: \texttt{AFICK\_EXCLUDE\_SUFFIX='default'}

    \config{AFICK\_EXCLUDE\_REGEXP}{AFICK\_EXCLUDE\_REGEXP}{AFICKEXCLUDEREGEXP}
        "Uber diesen Parameter k"onnen auf Wunsch regul"are Ausdr"ucke
        festgelegt werden, auf deren Basis Dateien von der Pr"ufung
        des Dateisystemes ausgeschlossen werden. Mehrere regul"are
        Ausdr"ucke werden jeweils durch ein Leerzeichen voneinander
        getrennt.

        Standardm"a"sig sind keine regul"aren Ausdr"ucke definiert.

        G"ultige Werte: leer, default, regul"are Ausdr"ucke

        Standardeinstellung: \texttt{AFICK\_EXCLUDE\_REGEXP='default'}

    \config{AFICK\_SEND\_REPORT}{AFICK\_SEND\_REPORT}{AFICKSENDREPORT}
        "Uber diesen Parameter kann der regelm"a"sige Versand eine
        Pr"ufreports aktiviert werden.

        G"ultige Werte: yes, no

        Standardeinstellung: \texttt{AFICK\_SEND\_REPORT='no'}

    \config{AFICK\_SEND\_REPORT\_ADDR}{AFICK\_SEND\_REPORT\_ADDR}{AFICKSENDREPORTADDR}
        "Uber diesen Parameter werden eine oder mehrere E-Mail-Adressen
        angegeben an welche ein erstellter Pr"ufreport gesandt werden
        soll.

        G"ultige Werte: eine oder mehrere E-Mail-Adressen

        Beispiel: \texttt{AFICK\_SEND\_REPORT\_ADDR='root@local.lan'}

    \config{AFICK\_SEND\_REPORT\_VERBOSE}{AFICK\_SEND\_REPORT\_VERBOSE}{AFICKSENDREPORTVERBOSE}
        "Uber diesen Parameter wird festgelegt, ob ein ausf"uhrlicher
        oder verk"urzter Pr"ufreport versandt werden soll.

        G"ultige Werte: yes, no

        Standardeinstellung: \texttt{AFICK\_SEND\_REPORT\_VERBOSE='no'}

    \config{AFICK\_ARCHIVE\_RETENTION}{AFICK\_ARCHIVE\_RETENTION}{AFICKARCHIVERETENTION}
        "Uber diesen Parameter wird festgelegt wie mit den erstellten
        Archivdatei umgegangen werden soll. Der Wert `keep' legt fest,
        dass generell keine Archivdateien gel"oscht werden sollen.
        Alternativ kann ein Zahlenwert, gefolgt von der gew"unschten
        Einheit, `d' (days), `w' (weeks), `m' (months) und `y' (years).

        G"ultige Werte: keep, Zahlenwert+Einheit

        Beispiel: \texttt{AFICK\_ARCHIVE\_RETENTION='2w'}

        Standardeinstellung: \texttt{AFICK\_ARCHIVE\_RETENTION='keep'}

    \config{AFICK\_ALIAS\_N}{AFICK\_ALIAS\_N}{AFICK\_ALIASN}
        "Uber diesen Parameter wird die Anzahl der Aliasdefinitionen
        festgelegt.

        G"ultige Werte: Zahlenwert

        Standardeinstellung: \texttt{AFICK\_ALIAS\_N='7'}

    \config{AFICK\_ALIAS\_x\_ACTIVE}{AFICK\_ALIAS\_x\_ACTIVE}{AFICKALIASxACTIVE}
        "Uber diesen Parameter wird der aktuelle Datensatz aktiviert
        bzw. deaktiviert.

        G"ultige Werte: yes oder no

        Standardeinstellung: \texttt{AFICK\_ALIAS\_1\_ACTIVE='yes'}

    \config{AFICK\_ALIAS\_x\_COMMENT}{AFICK\_ALIAS\_x\_COMMENT}{AFICKALIASxCOMMENT}
        "Uber diesen Parameter kann ein Kommentar eingegeben werden,
        welcher einzig der Beschreibung dieses Datensatzes dient.

        G"ultige Werte: beliebiger Text

        Beispiel: \texttt{AFICK\_ALIAS\_x\_COMMENT='beschreibender Text'}

    \config{AFICK\_ALIAS\_x\_NAME}{AFICK\_ALIAS\_x\_NAME}{AFICKALIASxNAME}
        "Uber diesen Parameter wird der gew"unschte Aliasname festgelegt.

        G"ultige Werte: Aliasname

        Beispiel: \texttt{AFICK\_ALIAS\_1\_NAME='DEV'}

    \config{AFICK\_ALIAS\_x\_ACTION}{AFICK\_ALIAS\_x\_ACTION}{AFICKALIASxACTION}
        "Uber diesen Parameter wird festgelegt, welche Datei- oder
        Verzeichnisattribute gepr"uft werden sollen. Die einzelnen
        Attribute werden mittels der Trennzeichen `+' (aktivieren)
        oder `-' (deaktivieren) verkn"upft. Folgende Optionen
        stehen zur Verf"ugung:

        \begin{verbatim}
a : atime             i   : inode            s      : size
b : number of blocks  md5 : md5 checksum     sha1   : sha-1 checksum
c : ctime             m   : mtime            sha256 : sha-256 checksum
d : device            n   : number of links  sha512 : sha-512 checksum
g : group             p   : permissions      u      : user
        \end{verbatim}

        G"ultige Werte: Kombination aus den zuvor genannten Angaben

        Beispiel: \texttt{AFICK\_ALIAS\_1\_ACTION='p+n'}

    \config{AFICK\_PATH\_FILE\_N}{AFICK\_PATH\_FILE\_N}{AFICK\_PATH\_FILE\_N}
        "Uber diesen Parameter wird die Anzahl der Datei- oder
        Verzeichnisdefinitionen festgelegt.

        G"ultige Werte: Zahlenwert

        Standardeinstellung: \texttt{AFICK\_PATH\_FILE\_N='26'}

    \config{AFICK\_PATH\_FILE\_x\_ACTIVE}{AFICK\_PATH\_FILE\_x\_ACTIVE}{AFICKPATHFILExACTIVE}
        "Uber diesen Parameter wird der aktuelle Datensatz aktiviert
        bzw. deaktiviert.

        G"ultige Werte: yes oder no

        Standardeinstellung: \texttt{AFICK\_PATH\_FILE\_1\_ACTIVE='yes'}

    \config{AFICK\_PATH\_FILE\_x\_COMMENT}{AFICK\_PATH\_FILE\_x\_COMMENT}{AFICKPATHFILExCOMMENT}
        "Uber diesen Parameter kann ein Kommentar eingegeben werden,
        welcher einzig der Beschreibung dieses Datensatzes dient.

        G"ultige Werte: beliebiger Text

        Beispiel: \texttt{AFICK\_PATH\_FILE\_x\_COMMENT='beschreibender Text'}

    \config{AFICK\_PATH\_FILE\_x\_ACTION}{AFICK\_PATH\_FILE\_x\_ACTION}{AFICKPATHFILExACTION}
        "Uber diesen Parameter wird festgelegt, wie mit der angegebenen
        Datei oder dem angegebenen Verzeichnis verfahren werden soll.

        \hinweis{Bei Verwendung des Wertes `singledir' bitte auch die
            Details unter dem Parameter\jump{AFICKPATHFILExNAME}
            {AFICK\_PATH\_FILE\_x\_NAME} beachten.}

        Folgende Optionen stehen zur Verf"ugung:

        \begin{verbatim}
            scan      - Die angegebene Datei oder das Verzeichnis wird
                        geprueft.
            skip      - Die angegebene Datei oder das Verzeichnis wird
                        nicht geprueft.
            singledir - Es wird nur das angegebene Verzeichnis geprueft.
        \end{verbatim}

        G"ultige Werte: scan, skip, singledir

        Beispiel: \texttt{AFICK\_PATH\_FILE\_1\_ACTION='scan'}

    \config{AFICK\_PATH\_FILE\_x\_NAME}{AFICK\_PATH\_FILE\_x\_NAME}{AFICKPATHFILExNAME}
        "Uber diesen Parameter wird der absolute Datei- oder Verzeichnispfad
        angegeben f"ur den die gew"unschte Aktion ausgef"uhrt werden soll.

        \achtung{Wurde der Parameter \jump{AFICKPATHFILExACTION}
            {AFICK\_PATH\_FILE\_x\_ACTION} auf den Wert `singledir'
            gesetzt, so kann "uber die Pfadangabe weiter Einfluss auf
            die Art der Pr"ufung genommen werden. Ended die Pfadangabe
            mit einem `/' (Slash), so werden nur das Verzeichnis selbst
            und die darin enthaltenen Dateien gepr"uft, nicht aber
            Unterverzeichnisse. Ohne einen finalen Slash werden nur
            das Verzeichnis, nicht aber die darin enthaltenen Dateien
            und Unterverzeichnisse gepr"uft.}

        G"ultige Werte: absoluter Datei- oder Verzeichnispfad

        Beispiel: \texttt{AFICK\_PATH\_FILE\_1\_NAME='/usr/bin'}

    \config{AFICK\_PATH\_FILE\_x\_ALIAS\_NAME}{AFICK\_PATH\_FILE\_x\_ALIAS\_NAME}{AFICKPATHFILExALIASNAME}
        "Uber diesen Parameter wird der Aliasname festgelegt, welcher auf die
        zu pr"ufenden Dateiattribute referenziert.

        G"ultige Werte: Aliasname

        Beispiel: \texttt{AFICK\_PATH\_FILE\_1\_ALIAS\_NAME='DIR'}

    \config{AFICK\_CHECK\_CRON}{AFICK\_CHECK\_CRON}{AFICKCHECKCRON}
        "Uber diesen Parameter wird die zyklische Pr"ufung des Dateisystems
        aktiviert.

        G"ultige Werte: yes, no

        Standardeinstellung: \texttt{AFICK\_CHECK\_CRON='yes'}

    \config{AFICK\_CHECK\_CRON\_SCHEDULE}{AFICK\_CHECK\_CRON\_SCHEDULE}{AFICKCHECKCRONSCHEDULE}
        "Uber diesen Parameter wird festgelegt zu welchem Zeitpunkt bzw.
        in welchem Intervall eine Systempr"ufung durchgef"uhrt werden soll.
        Die f"unf Teilparameter haben dabei folgende Bedeutung:

        1 - Minuten, 2 - Stunden, 3 - Tag des Monats, 4 - Monat, 5 - Wochentag

        D.h. bei Verwendung der Standardeinstellung wird zweimal t"aglich
        um 01:00h und 13:00h eine Systempr"ufung durchgef"uhrt. Wer n"aheres
        "uber die verwendete Befehlssyntax erfahren m"ochte, sollte "uber
        eine Internet-Suchmaschine nach 'man' und 'crontab' suchen.

        G"ultige Werte: Crontab-spezifischer Parametereintrag

        Standardeinstellung: \texttt{AFICK\_CHECK\_CRON\_SCHEDULE='0 1/12 * * *'}
\end{description}
