# Mailserver
**Verantwortliche:**
Stefan Miljevic, Leo Gruber
**Aufgaben:**
1. Jeder Server soll eine Web-Oberfläche zur Netzwerk/Server Überwachung zur Verfügung stellen (z.B. Nagios, Icinga, Zabbix).
**Verwendete Software und Pakete:**
1. Nagios Core
**Kurze Beschreibung:**
Nagios ist eine OpenSource - Software zum Monitoring von Netzwerkdiensten und der Netzwerkinfrastruktur. Nagios bietet dazu eine umfangreiche Sammlung von Tools und Plugins, welche das Erstellen beliebiger Überwachungs- und Benachrichtigungsfunktionen ermöglichen. Mithilfe der Weboberfläche können die gesammelten Daten abgefragt werden.
**Vorraussetzungen:**
Instanzen erstellt und .pem Key ist auf den jeweiligen Windowsrechnern vorhanden.
## Verbindungsaufbau zur Instanz
1. Kopieren des .pem Files in das Ubuntu Subsystem in das Verzeichnis /etc/ssh
2. Berechtigungen anpassen: `sudo chmod 400 "keyname.pem"`
3. Verbindung aufbauen: `sudo ssh -i "keyname.pem" ubuntu@IP-ADDRESS`
--> Der Connection-String ist bei der Instanz unter *Actions > Connect zu finden*
## Installation
Die folgenden Schritte müssen auf allen Instanzen durchgeführt werden.
### Schritt 1 - Vorrausgesetzte Pakete installieren
1. Apache und PHP installieren:
```
$ sudo apt-get update
$ sudo apt-get install wget build-essential unzip openssl libssl-dev
$ sudo apt-get install apache2 php libapache2-mod-php php-gd libgd-dev
```
### Schritt 2 - Nagios Benutzer erstellen
1. Neues Benutzerkonto für Nagios im System erstellen:
`$ sudo adduser nagios`
2. Neue Gruppe erstellen für Nagios Setup "nagcmd":
`$ sudo groupadd nagcmd`
4. Benutzer "nagios" zu der erstellten Gruppe und zu der Apache Gruppe hinzufügen:
```
$ sudo usermod -a -G nagcmd nagios
$ sudo usermod -a -G nagcmd www-data
```
### Schritt 3 - Nagios Core installieren
1. Nagios Core Files herunterladen:
```
$ cd /opt/
$ sudo wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.4.5.tar.gz
$ sudo tar xzf nagios-4.4.5.tar.gz
```
2. Nagios installieren mit make:
```
$ cd nagios-4.4.5
$ sudo ./configure --with-command-group=nagcmd
$ sudo make all
$ sudo make install
$ sudo make install-init
$ sudo make install-daemoninit
$ sudo make install-config
$ sudo make install-commandmode
$ sudo make install-exfoliation
```
3. Eventhandler Skripte kopieren, welche Eventtrigger hinzufügen:
```
$ sudo cp -R contrib/eventhandlers/ /usr/local/nagios/libexec/
$ sudo chown -R nagios:nagios /usr/local/nagios/libexec/eventhandlers
```
## Konfiguration
### Schritt 1 - Apache aufsetzen
1. Apache Konfigurationsdatei für den Nagios Server erstellen:
`$ sudo vi /etc/apache2/conf-available/nagios.conf`
2. In das erstellte File folgeden Text einfügen:
```
ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin"
<Directory "/usr/local/nagios/sbin">
Options ExecCGI
AllowOverride None
Order allow,deny
Allow from all
AuthName "Restricted Area"
AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd.users
Require valid-user
</Directory>
Alias /nagios "/usr/local/nagios/share"
<Directory "/usr/local/nagios/share">
Options None
AllowOverride None
Order allow,deny
Allow from all
AuthName "Restricted Area"
AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd.users
Require valid-user
</Directory>
```
3. Benutzerkonto "nagiosadmin" erstellen und Passwort zuweisen:
`$ sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin`
4. Apache konfigurieren und neustarten:
```
$ sudo a2enconf nagios
$ sudo a2enmod cgi rewrite
$ sudo service apache2 restart
```
### Schritt 2 - Nagios Plugins installieren
1. Nagios Plugins Source herunterladen und entpacken:
```
$ cd /opt
$ sudo wget http://www.nagios-plugins.org/download/nagios-plugins-2.2.1.tar.gz
$ sudo tar xzf nagios-plugins-2.2.1.tar.gz
$ cd nagios-plugins-2.2.1
```
2. Nagios Plugins installieren:
```
$ sudo ./configure --with-nagios-user=nagios --with-nagios-group=nagios --with-openssl
$ sudo make
$ sudo make install
```
### Schritt 3 -Einstellungen überprüfen
1. Nagios Installation und Konfigurationsfile überprüfen:
```
$ sudo /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
$ sudo service nagios start
```
2. Nagios konfigurieren, sodass Nagios automatisch startet beim Hochfahren
`$ sudo systemctl enable nagios`
### Schritt 4 -AWS Security Group aktualisieren
1. In der AWS Konsole zu Security Groups navigieren.
2. Bei der Security Group der jeweiligen Instanz folgende Inbound Rule hinzufügen:
* Type: HTTP
* Protocol: TCP
* Port Range: 80
* Source: Anywhere
### Jetzt ist Nagios unter http://IP-Adresse/nagios erreichbar.
## Zugriff
1. Instanz starten
2. Durch das Klicken auf die Instanz können die Details angezeigt werden, dort dann die Public IP Adresse entnehmen.
3. Unter http://IP-Adresse/nagios kann man nun auf die Weboberfläche der Instanz zugreifen.
4. Mit den Credentials einloggen:
* Username: nagiosadmin
* Passwort: bif3c1_20
## Quellen
* https://sysadminxpert.com/step-by-step-method-for-installing-nagios-in-amazon-linux/ (20.01.20)
* https://tecadmin.net/install-nagios-monitoring-server-on-ubuntu/ (20.01.20)