Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
B
bs
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Peter Gerwinski
bs
Commits
7be9d963
Commit
7be9d963
authored
2 months ago
by
Benedikt Wildenhain
Browse files
Options
Downloads
Patches
Plain Diff
Versuchsdokumentation
parent
0abf4112
Branches
Branches containing commit
No related tags found
No related merge requests found
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
20250407/bs-20250407.pdf
+0
-0
0 additions, 0 deletions
20250407/bs-20250407.pdf
20250407/bs-20250407.tex
+151
-0
151 additions, 0 deletions
20250407/bs-20250407.tex
with
151 additions
and
0 deletions
20250407/bs-20250407.pdf
+
0
−
0
View file @
7be9d963
No preview for this file type
This diff is collapsed.
Click to expand it.
20250407/bs-20250407.tex
+
151
−
0
View file @
7be9d963
...
...
@@ -87,4 +87,155 @@
\endgroup
\clearpage
\begin{center}
\Large\textbf
{
Versuchsskizze
}
\par\medskip
\end{center}
\begin{enumerate}
\item
Für eine Verbindung zwischen mehreren Geräten gibt es diverse Möglichkeiten:
\begin{itemize}
\item
Ethernet (IEEE 802.3), bei typischen aktuellen PCs max. 1-10 GBit/s möglich, bei Verbindung von zwei Geräten mittels Kabel
(ab Gigabit ist hier kein Crossover-Kabel notwendig), bei mehr Geräten mit Hub oder Switch (im einfachsten Fall,
sofern keine Segmentierung gewünscht). Unter Linux erscheinen die dann als Gerät
{
\em
eth0, eth1,
\dots
}
oder
{
\em
enp
\dots
}
(für PCI-Geräte) oder
{
\em
enx
}
(für Geräte mit USB-Anbindung), zur Benennung gibt es Details unter
\url
{
https://systemd.io/PREDICTABLE
_
INTERFACE
_
NAMES/#what-precisely-has-changed-in-v197
}
und
\url
{
https://www.freedesktop.org/software/systemd/man/latest/systemd.net-naming-scheme.html
}
\item
Wireless-LAN (IEEE 802.11), theoretisch bei idealen Bedingungen Übertragung im Gigabit/s-Bereich möglich, aber ein
geteiltes Medium und meist geringere Datenraten erreichbar. Hier wird typischerweise ein Access-Point zur Verbindung mehrerer Geräte benutzt,
unter Linux erscheinen die Geräte z.
\,
B.
\
als
{
\em
wlan0
}
oder
{
\em
wlp0s20f3
}
.
\item
Verbindung zweier Geräte per USB-C (USB3.2: maximal 20 GBit/s, USB4: maximal 80 GBit/s), erscheint
unter Linux z.
\,
B.
\
als
{
\em
thunderbolt0
}
.
\item
Jeder Netzwerkadapter erhält vom Hersteller einer eindeutige Hardwareadresse, die normalerweise nicht verändert
wird.
\end{itemize}
{
\em
Im Praxiversuch wurden Ethernet und USB-C verwendet.
}
Damit Rechner (ohne Router oder über ein Point-to-Point-Protokoll) miteinander sprechen können, müsssen sie sich im
selben
\href
{
https://de.wikipedia.org/wiki/Subnetz
}{
Subnetz
}
befinden. Die Subnetzmaske bzw. Präfixlänge gibt an,
wieviele Bits der IP-Adressen der Netzwerkteil sind, der Rest unterscheidet die einzelnen Hosts innerhalb eines Netzes,
so ist z.B. bei der IPv4-Adresse
{
\em
192.168.54.73/24
}
der Netzwerkteil 24 Bit lang und der Hostteil 32-24=8 Bit lang,
die Hosts dürfen sich also nur in der letzten 8-Bit-Zahl unterscheiden. Zur Vergabe einer IP-Adresse gibt es mehrere
Möglichkeiten:
\begin{itemize}
\item
Manuelle Vergabe: Temporär z.B. mit
\lstinline
[style=cmd]
{
sudo ip addr add 198.51.100.1/30 dev enp0s31f6
}
oder
dauerhift mittels Network-Manager (entweder graphisch oder über
\lstinline
[style=cmd]
{
nmcli connection add con-name Beispielnetz type ethernet ifname enp0s31f6 ipv4.addresses 198.51.100.1/30
}
\item
Vergabe per
\href
{
https://de.wikipedia.org/wiki/Dynamic
_
Host
_
Configuration
_
Protocol
}{
DHCP
}
(insb. bei IPv4
verbreitet): Ein oder mehrere Server vergeben auf Anfrage IP-Adressen und informieren über die Adresse des
Default-Gateways,
typischerweise werden auch Zusatzinformationen, wie z.B. die Subnetzmaske, DNS-Server und die Gültigkeitsdauer der
DHCP-Adresse mitgeliefert. Eine IPv4-Adresse kann z.B. temporär per
\lstinline
[style=cmd]
{
dhclient -eth0
}
oder
dauerhaft per
\lstinline
[style=cmd]
{
nmcli connection add con-name Beispielnetz type ethernet ifname enp0s31f6 ipv4.method auto ipv4.link-local disabled
}
(mit explizit deaktiviertem Fallback auf
{
\em
link-lokal
}
-Adressen) konfiguriert werden.
\item
Automatische Auswahl einer lokalen Adresse (bei IPv6 üblich, bei IPv4 eher als Fallback, falls kein DHCP-Server
erreichbar ist). Relevant sind hierfür insb.
\href
{
https://datatracker.ietf.org/doc/html/rfc3927
}{
Dynamic Configuration of IPv4 Link-Local Addresses
}
bzw.
\href
{
https://en.wikipedia.org/wiki/IPv6#Stateless
_
address
_
autoconfiguration
_
(SLAAC)
}{
SLAAC
}
. Der Rechner wählt
selbstständig eine Adresse aus dem Bereich 169.254.0.0/16 (IPv4) bzw. ff02::/16 (IPv6) aus und überprüft mittels
Address Resolution Protocol (IPv4), ob diese noch nicht verwendet wird (und wählt ggf.
\
eine andere Adresse), bei
IPv6 wird diese von der Hardware-Adresse abgeleitet und ist dadurch automatisch eindeutig. Explizite Konfiguration
unter IPv4 z.
\,
B.
\
mittels
\lstinline
[style=cmd]
{
nmcli connection add con-name Beispielnetz type ethernet ifname enp0s31f6 ipv4.method link-local
}
,
bei IPv6 wird eine lokale Adresse zwingend benötigt.
\item
Eigenständige Auswahl einer globalen IPv6-Adresse mittels SLAAC und des
\href
{
https://en.wikipedia.org/wiki/Neighbor
_
Discovery
_
Protocol
}{
Neighbor Discovery Protocol
}
: Übliche
Vorgehensweise bei IPv6, hierfür müssen im Netzwerk entsprechende
{
\em
Router Advertisements
}
verteilt werden, unter
Linux mittels
\lstinline
[style=cmd]
{
radvd
}
.
\end{itemize}
{
\em
Im Praxisversuch wurde IPv4 mit
{
\em
link-local
}
-Adresse verwendet.
}
\item
Die per Kabel verbundenen Rechner konnten sich untereinander per
\lstinline
[style=cmd]
{
ping
}
-Kommando kontaktieren,
wobei ein Rechner auf Grund einer aktiven Firewall zunächst nicht antwortete. Mittels
\lstinline
[style=cmd]
{
ip neighbour
}
und
\lstinline
[style=cmd]
{
wireshark
}
konnte aber dennoch überprüft werden, dass dieser Rechner tatsächlich auf
{
\em
arp
}
-Requests antwortete (per IPv6 wäre stattdessen NDP benutzt worden). Auch lies sich per
\lstinline
[style=cmd]
{
wireshark
}
beobachten, wie mittels
{
\em
arp
}
überprüft wurde, ob die gewählte IPv4-Adresse noch
frei war.
\item
Mittels
\lstinline
[style=cmd]
{
nc -l -p 1234
}
wurde ein Chat-Dienst bereit gestellt und mittels
\lstinline
[style=cmd]
{
nc 169.254.4.2 1234
}
wurde eine Verbindung zu diesem aufgebaut.
\item
Als Serverdienst wurde ein SSH-Server eingesetzt, über
\lstinline
[style=cmd]
{
ssh 169.254.4.2
}
konnte ein
Verbindungsaufbau durchgeführt werden, alternativ ist auch mittels
\lstinline
[style=cmd]
{
nc 169.254.4.2 22
}
eine
Verbindung aufgebaut werden, welche mit einer Meldung der Art
\lstinline
[style=cmd]
{
SSH-2.0-OpenSSH
_
9.9p2 Debian-2
}
beantwortet wurde und fortgeführt wurde, wenn über den Netcat-Client eine entsprechend aufgebaute Nachricht übermittelt
wurde (getestet durch Copy-and-Paste der initialen Nachricht).
\item
Geeignete Dienste für einen Test wären
{
\em
HTTP
}
oder
{
\em
SMTP
}
, entsprechende Dialoge sehen folgendermaßen aus:
Webseitenabruf per HTTP:
\begin{lstlisting}
[language=sh]
nc -C www.cvh-server.de 80
GET / HTTP/1.1
Host: www.cvh-server.de
HTTP/1.1 302 Found
Date: Thu, 10 Apr 2025 08:51:22 GMT
Server: Apache/2.4.62 (Debian)
Strict-Transport-Security: max-age=15768000; includeSubDomains
Location: https://www.cvh-server.de/
Content-Length: 293
Content-Type: text/html; charset=iso-8859-1
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>302 Found</title>
</head><body>
<h1>Found</h1>
<p>The document has moved <a href="https://www.cvh-server.de/">here</a>.</p>
<hr>
<address>Apache/2.4.62 (Debian) Server at www.cvh-server.de Port 80</address>
</body></html>
\end{lstlisting}
E-Mailversand per (E)SMTP (Hinweis: Auch wenn Sie hier früher quasi beliebige Absenderdaten eintragen konnten, überprüfen
einige Mailserver inzwischen, ob Ihre Absenderdaten zu Ihrem E-Mailaccount passen, auch gibt es Verfahren wie
\href
{
https://en.wikipedia.org/wiki/DomainKeys
_
Identified
_
Mail
}{
DKIM
}
,
\href
{
https://en.wikipedia.org/wiki/Sender
_
Policy
_
Framework
}{
SPF
}
und
\href
{
https://en.wikipedia.org/wiki/DMARC
}{
DMARC
}
mit denen überprüft werden kann, ob ein Mailserver berechtigt ist, Mails für eine bestimmte Domain zu erzeugen bzw.
\
weiterzuleiten.)
\begin{lstlisting}
$
nc
-
C localhost
25
220
rechnername ESMTP Exim
4
.
98
.
2
Thu,
10
Apr
2025
11
:
06
:
28
+
0200
EHLO localhost
250
-
rechnername Hello localhost
[
::
1
]
250
-
SIZE
52428800
250
-
LIMITS MAILMAX
=
1000
RCPTMAX
=
50000
250
-
8
BITMIME
250
-
PIPELINING
250
-
PIPECONNECT
250
-
CHUNKING
250
-
STARTTLS
250
-
PRDR
250
HELP
MAIL FROM: praxisversuch@localhost.cvh
-
server.de
250
OK
RCPT TO: bwildenhain@cvh
-
server.de
250
Accepted
DATA
354
Enter message, ending with "." on a line by itself
Subject: Bitte schicken Sie uns Ihre PIN zu
From: support@badbank.example.org
To: bwildenhain@cvh
-
server.de
Bitte Senden Sie uns umgehendend Ihre PIN fuer Ihr Online
-
Banking zu um Ihr Konto zu verifizieren.
.
250
OK id
=
1
u
2
nsR
-
000000006
Ck
-
3
mZP
quit
221
rechnername closing connection
\end
{
lstlisting
}
\end
{
enumerate
}
\end
{
document
}
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment