1. Overview

1.1. Ziel

Erlernen von Netzwerkaufbau und die Dokumentation des Aufbaus. Auch in der Zukunft werden wir so etwas benötigen. Falls der Fall eintritt, dass wir ein Netzwerk aufbauen und es jemand anderes Warten muss, kann derjenige nicht verstehen, wie das Netzwerk aufgebaut ist.

Bei dem Aufbau des Netzwerkes wurde sehr auf Sicherheit geachtet. Daher ist z.B auf jeden der Container ebenfalls auch eine Firewall installiert.

1.1.1. FCAPS

  • FAULT management:

  • configuration

  • accounting

  • performance

  • security

Bei unserem Netzwerk haben wir den Fokus vor allem auf Security gelegt. Daher haben wir jedem Container mit Firewalls ausgestattet, und ebenfalls automatische updates aktiviert.

Dies hilft allerdings nicht bei Fault management, und kann sogar zu mehr Downtime führen, dies nehmem wir allerdings in kauf, und würden, (wenn wir mehr Zeit hätten), ein monitoring aufsetzen, dass diese Probleme feststellt und uns informiert, damit wir schnell eingreifen können. Die Container könnten (wenn fertig konfiguriert) in einem HA cluster laufen, worduch diese sehr ausfallsicher sind.

Die Konfigurationen wurden ebenfalls auf Sicherheit ausgelegt, und in der Dokumentation ergänzt.

Auf die Performance wurde geachtet, indem großteils Container verwendetet werden, die effizienter als VMs laufen, allerdings wurde Sicherheit über Performance gestellt.

Backups werden automatisch von Proxmox erstellt, was dies einfach und schnell macht, auf einen alten Stand zurückzugehen.

Um die Performance kümmerns sich Prof. Wagner und Thomas Himmelbauer (Sysadmin), indem Sie uns den Proxmox Server zur Verfügung stellen.

Accounting gibt es in der Schulumgebung nicht wirklich, außer die Benotung.

1.1.2. Router Aufsetzung

Beim Auszug wird ein neues Netzwerk aufgebaut, um es richtig aufbauen zu können und verstehen was passiert, ist dieses Projekt sehr wichtig.

1.1.3. PFSense / Proxy / UFW

Um Firewalls zu verstehen und um ein Netzwerk sicherzumachen, haben wir drei verschiedene Firewalls eingebaut. PFSense ist eine VM und der Proxy befindet sich in einem Container. UFW ist die interne Firewall, die wir in allen Maschinen außer Router und PFSense verwenden.

1.2. IP-Adressen

Die IP-Adressen der CT und Vms:

  • Router: 10.9.8.214

  • Router außen: 10.9.8.250

  • Pi-Hole: 10.9.8.209

  • Ngnix: 10.9.8.210

  • Lubuntu: 10.9.8.211

  • Pfsense: 10.9.8.212

  • Pfsense außen: 10.9.8.251

  • Proxy: 10.9.8.213

1.3. Aufbau des Netzwerkes

TheLastNetwork

1.4. SSH

eine SSH Verbindung sollte jederzeit mit allen der Instanzen möglich sein:

Diese läuft bei allen Maschinen auf Port 2022

ssh user@<IP_ADDR> -p 2022
SSH ist nicht verfügbar auf: PFSense

2. Grundausstattung

Es wurden (bis auf die Lubuntu installation) Debian Container verwendet aus folgenden Gründen:

  • Effizienter als Virtuelle Machienen

  • Bereits Erfahrung im Arbeiten mit Debian

Diese sind wie folgt hardwaretechnisch ausgestattet:

  • 2 CPU threads (für Parallelisierung)

  • 512 MB Arbeitsspeicher

  • 1 - 2 Netzwerkinterfaces

  • 4 / 8 GB Boot drive

Jeder der einzelnen virtuellen Maschinen / Container hat eine gewisse Grundausstattung, und dazu gehören:

2.1. SSH

Eine SSH Verbindung kann jederzeit zu allen Containern und Vms aufgebaut werden. Dies ermöglicht schnelles und effizientes Arbeiten.

Installation von SSH:

sudo apt-get update
sudo apt install && apt upgrade -y

sudo apt install openssh-server
sudo systemctl enable ssh
sudo systemctl start ssh

vi /etc/ssh/sshd_config

Diese wird dann noch mit passenden Einstellungen konfiguriert.

SSH kann allerdings bereits mit der default Configuration funktionieren.

ssh <USERNAME>@<HOST>

# z.B:

ssh test@10.0.0.8 -p 2022

Um den Port umzulegen, muss dies auch in systemctl umconfiguriert werden:

nano /lib/systemd/system/ssh.socket

# Dort die folgende Line Abändern:

ListenStream=22 (1)
1 22 mit neuem Port ersezten!

Wenn dies nicht erledigt wird, started der ssh Server oft nicht automatisch. Dieser läuft allerdings leider in keinen Fehler, sondern wird einfach als "loaded" angezeigt, was zur Verwirrung führen kann.

2.2. UFW

Alle Ports wurden mithilfe von UFW gesichert und abgedreht. Pings werden zukünftig ebenfalls ausgeschaltet.

Die benötigten Ports sind dann allerdings freigegeben, sodass z.B die SSH-Verbindungen funktionieren.

Diese können mit folgendem Befehl eingesehen werden:

Aufgrund der komplexität der Firewall beim Router musste die Firewall dort aktuell deaktiviert werden. An einer Lösung wird gearbeitet.

sudo ufw status

# ports freigeben:

sudo ufw allow 22(1)
1 Portnummer

2.3. Sudo

Da dies mit Debian nicht mehr vorinstalliert ist, wurde dies einfach auf die Container hinzugefügt. Dies vereinfacht das zukünftige Anlegen und Arbeiten mit Benutzer.

apt install sudo

2.4. Unattended upgrades:

Unattended upgrades wurde installiert, dass der Server updates automatisch installiert.

Installieren:

sudo apt install unattended-upgrades apt-listchanges bsd-mailx

Configurieren:

sudo dpkg-reconfigure -plow unattended-upgrades
# dann auf "yes"

sudo vim /etc/apt/apt.conf.d/50unattended-upgrades

#Unkommentieren von folgenden Lines:

Unattended-Upgrade::Mail "mctom.spdo@gmail.com";

Unattended-Upgrade::Automatic-Reboot "true";

# -----

sudo vim /etc/apt/listchanges.conf

#Config:

email_address=mctom.spdo@gmail.com

Testen der Configuration:

sudo unattended-upgrades --dry-run

2.5. User

erstellen eines neuen Users:

sudo adduser user

hinzufügen zur Sudogruppe:

usermod -aG sudo user

3. Router

Am Router CT sind 2 Netzwerkarten angebracht. Jeder der einen Netzwerkkarten befindet sich in einem Netzwerk.

Damit der Container zwischen diesen zwei Interfaces routet, muss dieser configure werden:

Dazu muss man einfach das folgende File editieren:

vi /etc/sysctl.conf

net.ipv4.ip_forward = 1 (1)
echo 1 > /proc/sys/net/ipv4/ip_forward (2)
reboot (3)
1 Diese Zeile auskommentieren
2 Da Debian dies standardmäßig ausgeschalten hat, müssen wir dies einschalten
3 Man könnte ebenfalls gewisse Teile reloaden, allerdings ist in diesem Fall ein reboot schneller, ale dies zu recherchieren.

4. DNS

Als DNS wurde PI-hole verwendet.

Zum Installieren wurde einfach der die offizielle Dokumentation verwendet:

Das Passwort für das Webinterface wurde ebenfalls auf das Standartpasswort geändert. Hierfür wurde folgender Befehl verwendet:

pihole -a -p

5. Webserver

Nginx wurde als Webserver verwendet. Derzeit ist dort allerdings nur die Standard webpage gehostet.

Eine eigene Seite hat derzeit keine Priorität und wird aktuell nach hinten verschoben.

6. Lubuntu

Eine VM mit Lubuntu Desktop wurde eingerichtet, und in das Netzwerk eingebunden. Zu dieser kann jederzeit eine SSH oder RDP Verbindung aufgebaut werden

Der Bildschirmschoner sollte deaktiviert werden, denn dies kann Rechenleistung verschwenden.

6.1. RDC

Auf Lubuntu wurde eine RDC (Remote Desktop Connection) eingerichtet, sodass hier ebenfalls ein schnelles und einfaches Arbeiten möglich ist.

Hierfür wurde XRDP verwendet:

sudo apt install xrdp

Dies wurde ebenfalls konfiguriert und eingerichtet.

Die remote Verbindung kann dann einfach mit den folgenden Daten aufgebaut werden:

IP: 10.9.8.211
Username: thelast
Password: <PASSWORD>

6.2. SSH

Die SSH Verbindung wurde gleich wie bei allen anderen Maschinen eingerichtet.

7. PFSense

Da PFSense ein eigenes ISO benötigt, und dieses nicht einfach auf einem normalen Linux laufen kann, wurde dies beim Prof. Angefragt, da wir dies nicht selbst auf den Server hochladen dürfen.

Da das ISO bereits auf dem Server zur verfügung steht, wurde bereits damit begonnen, dieses zu installieren und fertig zu machen. In der nächsten Stunde ist geplant, daran weiterzuarbeiten.

Installation:

Für die Installation von PFSense werden zwei Netzwerkkarten benötigt, denn eine wird für das normale Netzwerk verwendet und die andere Karte wird für ein internes Vlan verwendet.

vtnet0 → Netzwerkkarte für das externe Netzwerk

pfsense 1
pfsense 2

pfsense 3

Das Webinterface wurde auf den Port 2022 umgelegt.

8. Proxy

Der Proxy CT wurde angelegt und vorbereitet, an einer Proxy installation wird aktuell noch gearbeitet.

Installations Schritte
sudo apt-get update

sudo apt-get install squid
Konfiguration
sudo nano /etc/squid/squid.conf
Für mehr Information und Konfigurationen

https://phoenixnap.com/kb/setup-install-squid-proxy-server-ubuntu

9. PfSense firewall

Als erstes wurde Lubuntu in das PFSense Netzwerk verbunden, damit wir eine Verbindung zu dem grafischen Userinterface aufbauen können.

Dazu wurde auf Proxmox eine neue Netzwerkbridge angelegt und diese mit den folgenden ip - Adressen belegt:

IP: 192.168.1.30/24
DG: 192.168.1.1 (IP von PFSENSE)

Dann kann eine Verbindung zu dem Netzwerkinterface aufgebaut werden.