Grundlagen der Serverkonfiguration

Mit der Zuweisung eines virtuellen oder dedizierten Linuxservers erhalten Sie eine IP Adresse und SSH-Zugangsdaten. SSH steht für "Secure Shell" und ermöglicht eine sichere Verbindung zu Ihrem Server. Während SSH meist auf Linux-Sytemen vorinstalliert ist, wird unter Windows ein entsprechender Client, beispielsweise PuTTY, benötigt. Unter Linux wird eine Verbindung zum Server mittels

ssh xx.xx.xx.xx -l user

aufgebaut. Dabei steht xx.xx.xx.xx für die IP des Servers und statt "user" muss der Benutzername (Wenn es sich um einen gerade eingerichteten Server handelt meist "root") eingetragen werden. Bei der Eingabeaufforderung des Passworts wird dieses nicht angezeigt und es erscheinen auch keine Sternchen.

Nach dem ersten erfolgreichen Login sollte das Root-Passwort geändert, ein neuer Benutzer eingerichtet und der SSH-Login für Root gesperrt werden.

Passwort des Root-Nutzers ändern

Das Passwort des aktuell eingeloggten Benutzers wird mit dem Befehl "passwd" geändert:

root@alia:/$ passwd
Changing password for root.
(current) UNIX password:
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

Einrichten eines neuen Benutzers

Das Einrichten eines neuen Benutzers geschieht mithilfe des Befehls "adduser". Soll zum Beispiel der Benutzer "jean" angelegt werden, wird der folgende Befehl genutzt:

adduser jean

Der dann folgenden Ausgabe kann entnommen werden welcher Gruppe der neue Benutzer hinzugefügt wird (bei obigem Befehl wird eine Gruppe erstellt die genauso heisst wie der Benutzer) und wo sich das "Heimatverzeichnis" des Benutzers befindet (bei obigem Befehl handelt es sich um /home/jean). Ausserdem wird nach einem neuen Passwort gefragt, welches zweimal eingegeben werden muss. Anschliessend können weitere Informationen wie der vollständige Name und die Telefonnummer des Benutzers hinterlegt werden.

Wechseln des Benutzers

Nach dem Anlegen des Benutzers kann mittels "su" zu diesem Benutzer gewechselt werden:

alia:/# su jean
jean@alia:/$ 

Mit dem Befehl "exit" wird die aktuelle Sitzung des Users "jean" verlassen und man ist wieder "root":

jean@alia:/$ exit
exit
alia:/# whoami
root
alia:/#

Der Befehl "whoami" zeigt also den aktuellen Benutzer an.

Deaktivieren des SSH-Zugriffs des Root-Users

Zu diesem Zeitpunkt sollte getestet werden ob ein SSH-Zugriff mit dem neuen Benutzer möglich ist und ob man sich mit diesem Benutzer zum Root-User machen kann. Hierzu wird eine weitere SSH Verbindung aufgebaut, diesmal mit dem Benutzernamen "jean" und dem gewählten Passwort. Nach erfolgreichem Login kann mit dem Befehl "su" und/oder dem Befehl "su -" wieder zum Root-User gewechselt werden.

Nun muss der Root-Login ausgeschaltet werden, weil dies andernfalls ein sehr großes Sicherheitsrisiko darstellen könnte (Der Root-User ist der Administrator in einem Linux-System und hat alle Rechte; er kann das komplette System löschen -> Hat eine unberechtigte Person Root-Zugriff ist also das komplette System kompromitiert; während wenn eine unberechtigte Person Zugriff auf den Benutzer "jean" erhaelt, nur die Dateien des Benutzers jean (also in /home/jean) betroffen sind -> Aus diesem Grund sollte es auch vermieden werden Datenbank- und/oder Root-Zugangsdaten im Heimatverzeichnis eines Benutzers mit SSH Zugriff zu speichern.

Der SSH-Zugang des Users Root wird in der Datei /etc/ssh/sshd_config ausgeschaltet. Dort findet sich ein Eintrag:

PermitRootLogin yes

Dieser muss auf "no" geändert werden. Dies geht entweder mit einem Editor wie "vi" oder direkt mittels "sed":

sed -i 's/PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_config

Mithilfe von grep kann getestet werden ob das Ersetzen geklappt hat:

jean@alia:~$ grep "PermitRootLogin" /etc/ssh/sshd_config
PermitRootLogin yes

Nach der Änderung ist ein Neustart des SSH-Servers notwendig; dies geschieht mittels:

/etc/init.d/sshd restart

Es macht auch Sinn den Port des SSH-Servers aus Sicherheitsgründen auf einen anderen nicht-standard Port zu ändern; Dies wird im Artikel Grundverständnis für Serversicherheit näher erläutert.

Initiales Update

Es bietet sich an, zunächst ein Update des Systems durchzuführen. Bei Debian also:

apt-get update
apt-get dist-upgrade

Hierbei macht "dist-upgrade" ein Update der Distribution (Aktualisiert somit auf die nächste stabile Version) während ein "upgrade" die Version des Systems beibehalten würde und nur die vorhandenen Pakete aktualisiert.

Netzwerk

Sofern Ihnen mehrere IP Adressen oder IP Netze zugewiesen wurden, müssen diese von Hand konfiguriert werden. Die Haupt-IP-Adresse ist bereits via DHCP vorkonfiguriert.

IPv4

Unter Linux hat jedes Netzwerkinterface einen eindeutigen Namen; meist eth0 für die erste und eth1 für die zweite Netzwerkkarte. Mithilfe des Programms "ifconfig" lassen sich vorkonfigurierte Interfaces anzeigen:

eth0      Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx
inet addr:xx.xx.xx.xx  Bcast:xx.xx.xx.xx  Mask:255.255.255.224
inet6 addr: fe80::218:51ff:fe1e:e535/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:100469206 errors:0 dropped:0 overruns:0 frame:0
TX packets:133743209 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:15911285869 (14.8 GiB)  TX bytes:138565514170 (129.0 GiB)

Dabei entspricht "inet addr" der IP-Adresse, Bcast dem Broadcast und Mask der Netmask. Die HWaddr entspricht der MAC-Adresse der Netzwerkkarte. Wenn Ihnen ein Netz von IPs zugewiesen wurde, Ihnen aber nicht bekannt ist welche IPs das Netz umfasst, hilft das Programm "ipcalc" dieses kann mittels apt-get install ipcalc installiert werden und bekommt als Parameter das vom Rechenzentrum zugewiesene Netz.

Angenommen Ihnen wurde das Netz 192.168.2.0/27 zugewiesen (Bei diesem Netz handelt es sich nur um ein Beispiel) ergibt sich:

jean@alia:~$ ipcalc 192.168.2.0/27
Address:   192.168.2.0          11000000.10101000.00000010.000 00000
Netmask:   255.255.255.224 = 27 11111111.11111111.11111111.111 00000
Wildcard:  0.0.0.31             00000000.00000000.00000000.000 11111
=>
Network:   192.168.2.0/27       11000000.10101000.00000010.000 00000
HostMin:   192.168.2.1          11000000.10101000.00000010.000 00001
HostMax:   192.168.2.30         11000000.10101000.00000010.000 11110
Broadcast: 192.168.2.31         11000000.10101000.00000010.000 11111
Hosts/Net: 30                    Class C, Private Internet

Die kleinste Nutzbare IP entspricht HostMin+1, da die HostMin Adresse zeitgleich meist der Gateway und somit nicht nutzbar ist. Das heisst:

  • Gateway = 192.168.2.1
  • Nutzbare IPs = 192.168.2.2 bis 192.168.2.30
  • Netmask = 255.255.255.224
  • Broadcast = 192.168.2.31

Einrichten einer weiteren IP-Adresse

Bitte Beachten Sie: Wenn Sie vorhaben eine Virtualisierungstechnik wie OpenVZ oder KVM zu nutzen, ist es nicht notwendig sämtliche IPs eines Netzes auf dem Host-System einzurichten. Es bietet sich bei verschiedenen IP Netzen aber auf Grund des Routings an, wenn aus jedem IP Netz eine IP Adresse auf dem Host eingerichtet ist. Das heißt, wenn Sie einen IP-Bereich 84.200.240.x haben und einen IP-Bereich 84.200.250.x, sollten Sie aus beiden Bereichen mindestens eine IP Adresse auf dem Host eingerichtet haben - Die IPs der virtuellen-Systeme werden von der Virtualisierungstechnik konfiguriert.

Mit Hilfe von "ifconfig" lässt sich zunächst zu Testzwecken eine weitere IP Adresse einrichten. Wenn alle IPs über das vorhandene Interface (eth0) gehen sollen, muss für jede IP ein weiteres Interface eth0:x angelegt werden. Angenommen die Haupt IP 192.168.2.2 ist eingerichtet und die zweite IP 192.168.2.3 soll nun hinzugefügt werden:

ifconfig eth0:1 192.168.2.3 netmask 255.255.255.224 broadcast 192.168.2.31 up

Mittels ifconfig eth0:1 lässt sich prüfen, ob das Anlegen geklappt hat:

jean@alia:~$ ifconfig eth0:1
eth0:1    Link encap:Ethernet  Hardware Adresse 20:cf:30:f0:31:1a
inet Adresse:192.168.2.3  Bcast:192.168.2.31  Maske:255.255.255.224
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metrik:1

Nun muss mittels ping getestet werden ob diese IP von außen erreichbar ist. Wenn ja, sollte die IP fest in die Konfiguration eingetragen werden. Dies geschieht in der Datei /etc/network/interfaces

IPv6

Im Unterschied zum älteren IPv4 besteht eine IPv6 Adresse aus 128 Bit statt nur aus 32 Bit. Dargestellt wird sie in Gruppen zu je 4 hexadezimalen Zeichen, die durch Doppelpunkte getrennt sind. Genau wie unter IPv4 kann die IPv6 Konfiguration in der /etc/network/interfaces Datei eingesehen und geändert werden.

iface eth0 inet6 static
address fe80:4401::3     # Kurzform von fe80:4401:0000:0000:0000:0000:0000:0003
netmask 64         # Anstelle von ffff:ffff:ffff:ffff:0000:0000:0000:0000
gateway fe80:4401::1

Natürlich kann die IPv6 Adresse genauso über DHCP zugewiesen werden.

Mehrere Netzwerkkarten

Bei der Installation von Ubuntu-Server (und einigen anderen Distributionen) ist es derzeit so, dass sich in den udev Regeln nur eine Zeile für eth0 befindet (dies kann von Server zu Server anders sein) -> Wodurch ein Device den richtigen Namen (ethX) bekommt und alle weiteren Devices Namen wie "p260p1" oder "em0". Da dies durchaus verwirrend sein kann, werden zwei weitere udev Regeln in /etc/udev/rules.d/70-persistent-net.rules erstellt.

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*",
 ATTR{address}=="00:1e:67:65:77:a1", ATTR{dev_id}=="0x0", ATTR{type}=="1",
 KERNEL=="eth*", NAME="eth1"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*",
 ATTR{address}=="00:1e:67:65:77:a0", ATTR{dev_id}=="0x0", ATTR{type}=="1",
 KERNEL=="eth*", NAME="eth2"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*",
 ATTR{address}=="68:05:ca:0e:ab:ec", ATTR{dev_id}=="0x0", ATTR{type}=="1",
 KERNEL=="eth*", NAME="eth0"

Der Part "ATTR{address}==" muss entsprechend angepasst werden. Die Adresse bekommt man bei deutschem locale mittels:

ifconfig em0 | grep Hard

oder

dmesg | grep eth

Hier wird bewusst darauf geachtet, dass die zusätzliche Netzwerkkarte eth0 ist, während die beiden onBoard Netzwerkkarten eth1 und eth2 sind. Das heisst:

  • eth0 -> e1000 -> dritte Netzwerkkarte (geht an den Switch 192.x.x.x)
  • eth1 -> igb -> onBoard Netzwerkkarte (server zu server 10.x.x.x)
  • eth2 -> igb -> onBoard Netzwerkkarte (server zu server 10.x.x.x)

Bei diesem Setup sind im Server drei Netzwerkkarten, davon 2 onBoard. Die beiden onBoard Karten sind per Cross-Over mit einem zweiten Server direkt verbunden.

Bridges

Grundsätzlich ist eine Bridge notwendig, damit virtuelle Instanzen eine direkte Verbindung ins Internet haben. Dafür muss lediglich ein Interface für "br0" in der /etc/network/interfaces angelegt und unter "bridge_ports" das Netzwerkdevice, welches die Verbindung ins externe Netz hat, eingetragen werden. In diesem Fall eth0.

bridge_stp sollte dabei wann immer möglich eingeschaltet sein. Dies kann jedoch zu Problemen führen wenn DHCP in den virtuellen Instanzen genutzt werden soll. STP steht für Spanning Tree Protokol und sorgt für optimales routing und bietet auch Ausfallsicherheit. Das heisst: Nur ausschalten wenn wirklich notwendig.

Zur Konfiguration von Bridges werden die bridge-utils benötigt, welche sich mittels:

apt-get install bridge-utils

installieren lassen.

Die Netzwerkkarte welche für die bridge genutzt wird muss in der Netzwerkkonfiguration (/etc/network/interfaces) auf iface xxx inet manual gestellt werden und ein vorangestelltes allow xxx haben. Nicht auto xxx. Beispiel:

allow eth0
iface eth0 inet manual

Den Zustand der Bridge kann man mittels brctl show prüfen, dort sollte eth0 bzw das netzwerk device auftauchen, welches für die Bridge genutzt werden soll:

root@alia:~# brctl show
bridge name	bridge id		STP enabled	interfaces
br0		8000.6805ca0eabec	yes		eth0

Komplettes Beispiel des Netzwerk-Konfigurations-Files (/etc/network/interfaces) mit eth1:

# The primary network interface
allow eth1
iface eth1 inet manual

iface br0 inet static
address 192.168.22.229
netmask 255.255.255.0
network 192.168.22.0
broadcast 192.168.22.255
gateway 192.168.22.2
bridge_hw 68:05:ca:0e:ab:ec
bridge_ports eth1
bridge_stp on
bridge_maxwait 0
dns-nameservers 192.168.22.1 192.168.21.3

Die Angabe der Hardware-Mac-Adresse ist hier durchaus wichtig; andernfalls kann es zu Problemen mit virtuellen Systemen kommen.

Bonding

Beim Bonding werden mehrere Netzwerk-Devices zu einem zusammengefasst um Ausfallsicherheit und/oder bessere Lastverteilung zu erreichen. Es gibt mehrere Modes, die interessanten sind 0, 4 und 6. Optimal wäre der vierte Mode, welcher allerdings einen speziellen Switch benötigt. In diesem Beispiel wird mode 0 benutzt.

  • Mode 0 (balance-rr) Round-robin Policy: Übertragt Pakete über alle im Bonding enthaltene NICs. Dieser Modus bietet Lastverteilung und Redundanz.
  • Mode 4 (802.3ad) IEEE 802.3ad Dynamic link aggregation. Erstellt ein Bonding mit NICs gleicher Geschwindigkeit und Duplex-Einstellungen. Der Switch muss Trunks nach 802.3ad unterstützen.
  • Mode 5 (balance-tlb) Adaptive transmit load balancing: Ausgehender Verkehr wird, abhängig von der Last, über alle NICs verteilt. Eingehender Verkehr wird von der jeweiligen NIC empfangen. Fällt eine NIC aus, übernimmt eine andere NIC im Bonding die Mac-Adresse der ausgefallenen Karte.
  • Mode 6 (balance-alb) Adaptive load balancing: Wie balance-tlb, aber mit einer Lastverteilung für IPv4 Traffic. Dazu werden ausgehende ARP Anfragen manipuliert und jedes Mal eine andere Mac-Adresse einer NIC im Bonding verwendet.

Zunächst muss ein Device namens bond0 angelegt werden, welches die Netzwerkkarten gelistet hat, welche für das bonding genutzt werden sollen, den mode, sowie weitere Einstellungen. Ausserdem muss für das Bonding "ifenslave" installiert werden. Dies geschieht mittels:

apt-get install ifenslave
auto eth0
iface eth0 inet manual
bond-master bond0
 
auto eth2
iface eth2 inet manual
bond-master bond0
 
iface bond0 inet static
address 10.0.0.20
netmask 255.255.255.0
network 10.0.0.0
broadcast 10.255.255.255
gateway 10.0.0.20
dns-nameservers 10.0.0.20
bond-slaves eth0 eth2
bond-mode 0
bond-miimon 100
bond-updelay 200
bond-downdelay 200

Ausserdem muss beim bonding eine Datei für das bonding-module angelegt werden:

alias netdev-bond0 bonding
options bonding mode=0 miimon=100

Und "bonding" zu den Modulen hinzugefügt werden:

root@alia:~# cat /etc/modules
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
 
loop
lp
rtc
bonding

Um dies manuell ohne einen Neustart des Systems einzusetzen würde man nun das Modul laden und dann das bond0 device einschalten:

modprobe bonding
ifup bond0

Prüfen ob das ganze geklappt hat, lässt sich mittels:

root@alia:~# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
 
Bonding Mode: load balancing (round-robin)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 200
Down Delay (ms): 200
 
Slave Interface: eth2
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:1e:67:65:77:a1
Slave queue ID: 0
 
Slave Interface: eth0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:1e:67:65:77:a0
Slave queue ID: 0

Beispielhaft die komplette Konfiguration für das Bonding:

# The loopback network interface
auto lo bond0
iface lo inet loopback
 
auto eth0
iface eth0 inet manual
bond-master bond0
 
#auto eth1
auto eth2
iface eth2 inet manual
bond-master bond0
 
iface bond0 inet static
address 10.0.0.20
netmask 255.255.255.0
network 10.0.0.0
broadcast 10.255.255.255
gateway 10.0.0.20
dns-nameservers 10.0.0.20
#hwaddress ether 00:C0:F0:1F:37:B4
bond-slaves eth0 eth2
bond-mode 0
bond-miimon 100
bond-updelay 200
bond-downdelay 200

Nähere Informationen zum Thema IPv6 finden Sie hier:

 

Hotline
 
Hotline des Rechenzentrums

Fragen? Rufen Sie uns an!
Montag - Freitag 10:00 - 19:00 Uhr

+49 69 - 900 180 - 0

 
Aktionen & News
 

Dedizierte Supermicro Xeon Server - ab 70,00 Euro

Angebote

 

Zweiter Standort
 
Hotline des Rechenzentrums

Erfahren Sie mehr über unseren zweiten Standort in der Hanauer Landstrasse in Frankfurt am Main.

mehr erfahren

Zertifizierungen
 
TüV geprüftes Rechenzentrum
ISO 27001 zertifiziertes Rechenzentrum
ISO 9001 zertifiziertes Rechenzentrum


Knowledge Base
 

Hilfreiche Artikel zum Thema Netzwerk, Server & IT.

mehr erfahren


Galerie
 

Sehen Sie sich in einem virtuellen Rundgang in unserem Rechenzentrum um:

Niederspannungshauptverteilung Unterbrechungsfreie Strom Versorgung
Kaltwassererzeuger Bereitstellung individueller SAT-Dienstleistungen


100% Ökostrom
 
100% Öko-Strom