Add initial LaTeX document for server hardening tutorial
- Created main.tex with document structure and title page - Added step_01.tex detailing server hardening steps for Ubuntu 24.04 - Included table of contents and sections for SSH setup, system updates, and security measures - Introduced code listings for commands and configurations - Generated main.pdf, main.out, main.toc, and main.synctex.gz files
This commit is contained in:
+253
@@ -0,0 +1,253 @@
|
||||
\documentclass[a4paper,12pt,parskip=half]{scrartcl}
|
||||
|
||||
% ============================================
|
||||
% SPRACHE & ZEICHENSATZ
|
||||
% ============================================
|
||||
\usepackage[utf8]{inputenc}
|
||||
\usepackage[T1]{fontenc}
|
||||
\usepackage[ngerman]{babel}
|
||||
|
||||
% ============================================
|
||||
% PROFESSIONELLE SCHRIFTEN (Serifenlos)
|
||||
% ============================================
|
||||
\usepackage{FiraSans} % Fira Sans für Text UND Überschriften
|
||||
\renewcommand*\familydefault{\sfdefault} % Als Standardschrift setzen
|
||||
\usepackage[scaled=0.9]{FiraMono} % Fira Mono für Code
|
||||
\usepackage{microtype}
|
||||
|
||||
% ============================================
|
||||
% KEIN ERZWUNGENER VERTIKALER AUSGLEICH
|
||||
% ============================================
|
||||
\raggedbottom
|
||||
|
||||
% ============================================
|
||||
% ABSTAND VOR/NACH ÜBERSCHRIFTEN ANPASSEN
|
||||
% ============================================
|
||||
% Hier kannst du die Abstände vor und nach section, subsection, subsubsection einstellen
|
||||
\RedeclareSectionCommand[
|
||||
beforeskip=0.5cm, % <-- ABSTAND VOR \section (höhere Zahl = mehr Platz)
|
||||
afterskip=0.3cm % <-- ABSTAND NACH \section (höhere Zahl = mehr Platz)
|
||||
]{section}
|
||||
|
||||
\RedeclareSectionCommand[
|
||||
beforeskip=0.3cm, % <-- ABSTAND VOR \subsection
|
||||
afterskip=0.2cm % <-- ABSTAND NACH \subsection
|
||||
]{subsection}
|
||||
|
||||
\RedeclareSectionCommand[
|
||||
beforeskip=0.2cm, % <-- ABSTAND VOR \subsubsection
|
||||
afterskip=0.1cm % <-- ABSTAND NACH \subsubsection
|
||||
]{subsubsection}
|
||||
|
||||
% ============================================
|
||||
% SEITENLAYOUT (Ränder oben/unten/links/rechts)
|
||||
% ============================================
|
||||
\usepackage[
|
||||
a4paper,
|
||||
left=2.5cm,
|
||||
right=2.5cm,
|
||||
top=0cm, % <-- ABSTAND OBEN (vom Blattrand zum Text)
|
||||
bottom=1cm, % <-- ABSTAND UNTEN (vom Blattrand zum Text)
|
||||
includehead,
|
||||
includefoot
|
||||
]{geometry}
|
||||
|
||||
\usepackage{amsmath}
|
||||
|
||||
% ============================================
|
||||
% FARBEN
|
||||
% ============================================
|
||||
\usepackage{xcolor}
|
||||
|
||||
\definecolor{codegreen}{rgb}{0,0.6,0}
|
||||
\definecolor{codegray}{rgb}{0.5,0.5,0.5}
|
||||
\definecolor{codepurple}{rgb}{0.58,0,0.82}
|
||||
\definecolor{backcolour}{rgb}{0.95,0.95,0.92}
|
||||
\definecolor{darkblue}{rgb}{0,0,0.6}
|
||||
\definecolor{orange}{rgb}{1,0.5,0}
|
||||
\definecolor{red}{rgb}{0.8,0,0}
|
||||
\definecolor{blue}{rgb}{0,0,0.8}
|
||||
|
||||
% ============================================
|
||||
% CODE-LISTINGS
|
||||
% ============================================
|
||||
\usepackage{listings}
|
||||
\usepackage{textcomp}
|
||||
|
||||
\lstset{
|
||||
backgroundcolor=\color{backcolour},
|
||||
basicstyle=\ttfamily\footnotesize,
|
||||
breakatwhitespace=false,
|
||||
breaklines=true,
|
||||
captionpos=b,
|
||||
keepspaces=true,
|
||||
numbers=left,
|
||||
numbersep=5pt,
|
||||
showspaces=false,
|
||||
showstringspaces=false,
|
||||
showtabs=false,
|
||||
tabsize=2,
|
||||
frame=single,
|
||||
framerule=0.5pt,
|
||||
rulecolor=\color{codegray},
|
||||
xleftmargin=1em,
|
||||
xrightmargin=1em,
|
||||
% UMLAUTE IN LISTINGS
|
||||
literate=
|
||||
{Ö}{{\"O}}1
|
||||
{Ä}{{\"A}}1
|
||||
{Ü}{{\"U}}1
|
||||
{ß}{{\ss}}1
|
||||
{ö}{{\"o}}1
|
||||
{ä}{{\"a}}1
|
||||
{ü}{{\"u}}1
|
||||
}
|
||||
|
||||
% ============================================
|
||||
% SPRACHDEFINITIONEN MIT FARBEN
|
||||
% ============================================
|
||||
\lstdefinelanguage{CSharp}{
|
||||
keywords={abstract,as,async,await,base,bool,break,byte,case,catch,char,checked,class,const,continue,decimal,default,delegate,do,double,else,enum,event,explicit,extern,false,finally,fixed,float,for,foreach,goto,if,implicit,in,int,interface,internal,is,lock,long,namespace,new,null,object,operator,out,override,params,private,protected,public,readonly,record,ref,return,sbyte,sealed,short,sizeof,stackalloc,static,string,struct,switch,this,throw,true,try,typeof,uint,ulong,unchecked,unsafe,ushort,using,var,virtual,void,volatile,while,init,required,global},
|
||||
keywordstyle=\color{blue}\bfseries,
|
||||
sensitive=true,
|
||||
morecomment=[l]{//},
|
||||
morecomment=[s]{/*}{*/},
|
||||
commentstyle=\color{codegreen}\itshape,
|
||||
string=[b]",
|
||||
stringstyle=\color{codepurple},
|
||||
morestring=[b]'
|
||||
}
|
||||
|
||||
\lstdefinelanguage{TypeScript}{
|
||||
keywords={break,case,catch,class,const,continue,debugger,default,delete,do,else,enum,export,extends,false,finally,for,function,if,import,in,instanceof,new,null,return,super,switch,this,throw,true,try,typeof,var,void,while,with,as,implements,interface,let,package,private,protected,public,static,yield,async,await,from,of,type,extends,string,number,boolean,any,undefined},
|
||||
keywordstyle=\color{blue}\bfseries,
|
||||
sensitive=true,
|
||||
morecomment=[l]{//},
|
||||
morecomment=[s]{/*}{*/},
|
||||
commentstyle=\color{codegreen}\itshape,
|
||||
string=[b]',
|
||||
stringstyle=\color{codepurple},
|
||||
morestring=[b]"
|
||||
}
|
||||
|
||||
\lstdefinelanguage{JavaScript}{
|
||||
keywords={break,case,catch,class,const,continue,debugger,default,delete,do,else,export,extends,false,finally,for,function,if,import,in,instanceof,new,null,return,super,switch,this,throw,true,try,typeof,var,void,while,with,let,static,yield,async,await,from,of},
|
||||
keywordstyle=\color{blue}\bfseries,
|
||||
sensitive=true,
|
||||
morecomment=[l]{//},
|
||||
morecomment=[s]{/*}{*/},
|
||||
commentstyle=\color{codegreen}\itshape,
|
||||
string=[b]',
|
||||
stringstyle=\color{codepurple},
|
||||
morestring=[b]"
|
||||
}
|
||||
|
||||
\lstdefinelanguage{JSON}{
|
||||
showstringspaces=false,
|
||||
string=[b]",
|
||||
stringstyle=\color{codepurple},
|
||||
comment=[l]{//},
|
||||
moredelim=[l][\color{blue}\bfseries]{"},
|
||||
moredelim=[l][\color{blue}\bfseries]{:}
|
||||
}
|
||||
|
||||
\lstdefinelanguage{YAML}{
|
||||
keywords={true,false,null},
|
||||
keywordstyle=\color{blue}\bfseries,
|
||||
sensitive=true,
|
||||
comment=[l]{\#},
|
||||
commentstyle=\color{codegreen}\itshape,
|
||||
string=[b]",
|
||||
stringstyle=\color{codepurple},
|
||||
moredelim=[l][\color{orange}]{\&},
|
||||
moredelim=[l][\color{orange}]{*},
|
||||
moredelim=**[il][\color{blue}]{:}
|
||||
}
|
||||
|
||||
\lstdefinelanguage{Bash}{
|
||||
keywords={cd,mkdir,git,pnpm,dotnet,nano,tree,rm,cat,docker,ls,head,which,node,npm,alias,echo,export},
|
||||
keywordstyle=\color{blue}\bfseries,
|
||||
sensitive=false,
|
||||
morecomment=[l]{\#},
|
||||
commentstyle=\color{codegreen}\itshape,
|
||||
string=[b]",
|
||||
stringstyle=\color{codepurple}
|
||||
}
|
||||
|
||||
\lstdefinelanguage{Dockerfile}{
|
||||
keywords={FROM,ENV,ARG,COPY,ADD,RUN,CMD,ENTRYPOINT,EXPOSE,VOLUME,WORKDIR,USER,LABEL,MAINTAINER,STOPSIGNAL,HEALTHCHECK,SHELL},
|
||||
keywordstyle=\color{blue}\bfseries,
|
||||
sensitive=true,
|
||||
comment=[l]{\#},
|
||||
commentstyle=\color{codegreen}\itshape,
|
||||
string=[b]",
|
||||
stringstyle=\color{codepurple}
|
||||
}
|
||||
|
||||
\lstdefinelanguage{CSS}{
|
||||
keywords={color,background,background-color,margin,padding,font-family,font-weight,font-size,line-height,text-decoration,text-align,border,border-bottom,border-radius,display,flex,justify-content,align-items,box-sizing,cursor,width,max-width,height,list-style,outline,white-space,word-wrap,overflow,position,top,left,right,bottom,transform,transition,animation,opacity},
|
||||
keywordstyle=\color{blue}\bfseries,
|
||||
sensitive=true,
|
||||
morecomment=[l]{//},
|
||||
morecomment=[s]{/*}{*/},
|
||||
commentstyle=\color{codegreen}\itshape,
|
||||
string=[b]",
|
||||
stringstyle=\color{codepurple},
|
||||
moredelim=[s][\color{orange}]{:}{;},
|
||||
alsodigit={-}
|
||||
}
|
||||
|
||||
% ============================================
|
||||
% HYPERLINKS
|
||||
% ============================================
|
||||
\usepackage[
|
||||
colorlinks=true,
|
||||
linkcolor=darkblue,
|
||||
urlcolor=blue
|
||||
]{hyperref}
|
||||
|
||||
% ============================================
|
||||
% TABELLEN
|
||||
% ============================================
|
||||
\usepackage{array}
|
||||
\usepackage{booktabs}
|
||||
\usepackage{multirow}
|
||||
|
||||
% ============================================
|
||||
% TITELSEITE
|
||||
% ============================================
|
||||
\title{
|
||||
\Huge\textbf{Todo App}\\[0.3cm]
|
||||
\Large Eine Lern-Anwendung für Softwarearchitektur\\[0.3cm]
|
||||
\large Vom Quick \& Dirty zur Clean Architecture
|
||||
}
|
||||
\author{Robert Bretz}
|
||||
\date{\today}
|
||||
|
||||
\begin{document}
|
||||
|
||||
% ============================================
|
||||
% TITELSEITE
|
||||
% ============================================
|
||||
\maketitle
|
||||
\thispagestyle{empty}
|
||||
\clearpage
|
||||
|
||||
% ============================================
|
||||
% INHALTSVERZEICHNIS
|
||||
% ============================================
|
||||
\tableofcontents
|
||||
\thispagestyle{empty}
|
||||
\clearpage
|
||||
|
||||
% ============================================
|
||||
% KAPITEL EINBINDEN
|
||||
% ============================================
|
||||
\input{step_01.tex}
|
||||
|
||||
% Weitere Kapitel folgen hier:
|
||||
% \input{step_02.tex}
|
||||
% \input{step_03.tex}
|
||||
% ...
|
||||
|
||||
\end{document}
|
||||
Reference in New Issue
Block a user