# CentOS Server Installieren ganz normal Nach der Installation: Hostnamen festlegen `hostnamectl set-hostname centos-server.linux.local` ## Netzwerkkonfiguration Es gibt skripte mit denen die Netzwerkkonfigurationen vorgenommen werden können. `/etc/sysconfig/network-scripts` Konfigdatei: ifcfg-eth0 (Kann unterschiedlich heißen) in der Datei steht unter ONBOOT = no dadurch wird der DHCP beim Boot nicht geladen. um die neuen Einstellungen zu aktivieren muss man den service neu starten. `service network restart` ### Statische IP-Adresse einstellen ifcfg-eth0 ``` BOOTPROTO=static IPADDR=172.16.1.25 NETMASK=255.255.255.0 GATEWAY=172.16.1.1 #DEFROUTE=yes (auskommentieren) #IPV6 (auskommentieren) ``` ### DNS Server Anlegen /etc/resolf.conf ``` nameserver 8.8.8.8 ``` ## Pfadparameter `which cat` gibt den Parameter zu dem Programm zurück. Damit kann man nachschauen, wo programme gespeichert werden. ### Umgebgungsvariablen `$PATH` ### Umgebungsvariable anpassen `export PATH=$PATH:~/bin` Setzt die Variable auf den bisherigen Inhalt plus `~/bin`

Diese Variable werden nur Temporär gespeichert

Damit auch überall die Umgebungsvariablen verwendet werden geht man folgendermaßen vor: Ein Terminal hat **Startup files** in der das abgespeichert werden kann. `.bashrc` muss umb den Befehl `export PATH=$PATH:~/bin` erweitert werden. Dann funktionert das überall. ## Paketmanager in CentOs wird **Yum** als Paketmanager verwendet ``` yum install htop # Paketquelle aktualisieren # Weiteres Reposotry yum install epel-release yum remove htop yum downgrade htop # Vorherige version yum search php # suchen yum install https://abc.npm # Damit kann man direkt von einer Website eine Datei installieren ``` ## Texteditoren ### Nano
**Tastenkombination****Beschreibung**
Strg + gHilfe
Strg + kAusschneiden
Strg + UEinfügen
Strg + WSuchen
ALT + aMarkieren
ALT + URückgängig
ALT + Y Highlighting ausschalten
**Nano Anpassen** /etc/nanorc (global) Für den jeweiligen Benutzer kann man im Homeverzeichnis eine datei erstellen und Einstellungen vornehmen: .nanorc - set regexp (Reguläre expressions beim suchen verwenden) - .\* um Wildcards zu verwenden **Syntax Highlighting** In CentOs muss das Highlighting durch Einkommentieren in der Datei: /etc/nanorc aktiviert werden ### Vim
**Tasten****Beschreibung**
iEinfügen (Bearbeiten)
AEinfügen am ende der Zeile
oNeue Zeile einfügen
OÜber dem Corser eine neue Zeile einfügen
ddlöscht eine ganze Zeile
3 ddlöscht 3 Zeilen auf einmal
uRückgängig machen
vVisual Mode: Markieren
dMarkierten bereich ausschneiden
p oder P zum einfügen
yKopieren
:set number Zeigt die Zeilennummer an
:set nonumberZeilennummern ausblenden
:set nocperweiterter Modus
**Erweiterte Funktionen**
:3Springt in die Zeile
GSpring in die Letze Zeile
0 (null)Springt zum ersten Zeichen einer Zeile
:xSpeichern und schließen
/gulu n N Suchen nach gulu zum nächsten suchergebnis zum vorherigen Suchergebnis
:set ignorecaseGroß und Kleinschreibung bei der Suche ignorieren
Die wichtigsten Grundeinstellungen vornehmen: `/home/benutzer/.vimrc` erstellen - set nocp - set number - set ignorecase Bessere vim version **sudo install vim-runtime** **sudo install vim-gnome** (Starten mit gvim) ## Shell-Umgebung Dateien die die Shell konfiigurieren: - /etc/profile - /etc/bash.bashrc oder /etc/bashrc ### Variable erstellen ``` GREETING="Hallo Welt" echo $GREETING # Globale Variable erstellen export GREETINGE="Hallo Welt" echo $GREETINGE # mit env kann man sich Umgebungsvariablen erstellen # Variable entfernen unset GREETINGE ``` ## Standardprogramme `update-alternatives --get-selections` (anzeigen) `sudo update-alternatives --config editor` (Editor bearbeiten) ## Benutzerverwaltung
**Befehl****Beschreibung**
sudo useradd asterixBenutzer hinzufügen (nicht ideal, kein Homelaufwerk)
sudo useradd -m -s /bin/bash -c "Kommentar" obelixBenutzer erstellen -m erstellt ein Homeverzeichnis -s legt die Standard Shell fest -c Erstellt einen Kommentar, im normalfall der Name
sudo passwd asterixErstellt ein Passwort für Asterix
sudo cp -r /etc/skel /home/asterixDas Standard-Homeverzeichnis befindet sich in /etc/skel mit dem befehl wird das Verzeichnis erstellt
sudo chown -R asterix:asterix /home/asterixDas Homelaufwerk dem Nutzer asterix zuordnen
sudo usermod -s /bin/bash -c "kommentar" asterix Um die restlichen Anpassungen vorzunehmen. Sie Erstellung obelix
**adduser falbala** user erstellen mit Optionen /etc/adduser.conf
**deluser --remove-all-files falbala**User löschen mit optionen
### Benutzerinformationen `/etc/passwd` Loginname:Passwort:User-ID:GruppenID:Kommentar:Home-verz.:Login-Shell **Passwort** wird abgespeichert in `/etc/shadow` Loginname:Hashwert(InklusiveSalt):LetztePasswortänderung:Min.anzahl.Passwortänderung:maxanzahl.passwortänderungen:Warnungpasswortablauf::: **Shadow besser ansehen** `chage -l asterix` Asterix anzeigen lassen ### Gruppen `/etc/login.defs` alle Gruppen sind zu finden in `/etc/group`
Befehl
groupszeigt an in welcher gruppe der Benutzer ist
groups hermann asterix
idZeigt den User an
grep hermann /etc/groupZeigt an in welchen Gruppen der User ist
groupadd projekt\_zaubertrankerstellt eine neue Gruppe
groupdell projekt\_zaubertranklöscht die Gruppe
groupadd -g 20000 projekt\_zaubertrankerstellt eine Gruppe mit der ID 20000
groupadd projekt\_hinkelsteinwenn schon gruppen ids angelegt sind, dann wird die id ab 20000 aufgezählt
usermod -G projekt\_zaubertrank asterixfügt asterix der Gruppe hinzu
usermod -g 10000 -G projekt\_zaubertrank idefixfügt idefix zu Gruppe praktikanten und Zaubertrank hinzu g gibt die Hauptgruppe an G gibt weitere Gruppen an
## Dateien und Verzeichnisse ### Befehle zum anzeigen von Verzeichnissen
`ls -a`Zeigt auch versteckte Dateien an
`ls -F`Zeigt an um welche Einträge es sich handelt / Verzeichnis \* Ausführbare Datei
`ls -t`Nach Änderung sortieren
`ls -r `Rückwärts sortieren
`ls -R`Gesamtes Verzeichnis anzeigen
`ls -d`Verzeichnisse anzeigen
`ls -ld /projekte`Zeigt einen Eintrag genau an
### Links
`ln liste.txt liste-hardlink.txt`Erstellt einen Link liste-hardlink.txt auf die Datei liste.txt
`ln -s /projekte/projekt_zaubertrank/zutaten/liste.txt liste-absolut`erstellt einen link liste-absolut auf die Datei liste (softlink)
### Archive
.tarTape-Archiver ist ein Unkomprimiertes Archiv
`bunzip2 firefox.tar.bz2` `bzip2 -d ` Datei Entpacken
`bzip2 firefox.tar`Datei Komprimieren
`gzip -d firefox.tar.gz`Datei entpacken
`tar -xf firefox.tar`Datei entpacken
`tar -cf datei1.pdf datei2.pdf`Dateien zu einem Archiv zusammenfügen (cf = create file)
`tar -czf firefox-gzip.tar.gz firefox` `tar -cjf firefox-gzip.tar.bz2 firefox` Pakt den Ordner firefox in ein Archiv und komprimiert mit gzip komprimierung mit bz2
`tar -xzf firefox-gzip.tar.gz` `tar -xjf firefox-zip.tar.bz2` Entpacken der jeweiligen Archive
### Zugriffsrechte
`groupadd`Gruppe hinzufügen
`/etc/group`Gruppen bearbeiten
`chown miraculix:zaubertrank projekt_zaubertrank`Verzeichniseigentümer ändern
`chmod u=rwx,g+w,o-rx /projekte/projekt_zaubertrank`Besitzer: Alle rechte Gruppe erhält zusätzlich schreibrechte Welt werden lese und Ausführungsrechte entzogen
`chmod o= /projekte/projekt_zaubertrank`Welt werden alle Rechte entzogen
r = 4 w = 2 x = 1 chmod 750 User alles / gruppe lesen und ausführen / alle nix chmod 644 user lesen und schreiben / gruppe alle lesen
chown -R um rekursiv zu ändern
### Finden
`ls "02 - Erste Schritte"/`Pfad anzeigen
`ls *`Zeigte alle unterodner und dateien im aktuellen Ordner an
`ls \*/\.\.txt`Zeigt alle dateien mit Fhem in allen unterordnern an.
`find . -name "*.js"`findet im aktuellen Pfad alles was im Namen ".js" enthält
`find . -size +1M`findet alle Dateien die größer als 1 Megabyte sind
`find . -size +1M -and -name "*skype*"`
`find . -name "*.JPG" -delete`findet alle Bilder und löscht sie (-iname wenn die groß und kleinschreibnung ignoriert werden soll)
`find . -maxdepth 1 -and -name "*.jpg" -or -name "*.cr3"`Dadurch wird nur der aktuelle Ordner durchsucht
`find . -iname "ubuntu*.iso" 2>/dev/null`
`locate "*fhem*"`Parameter: -i Groß und kleinschreibung
`sudo updatedb`Datenbank von locate updaten
`locate -i --regex "ubuntu(.*).ISO"`reguläre ausdrücke
`grep "money" *`suche nach money im Ordner \*
`grep -E -i 'Subject:(.*)money' *`Sucht nach allem was Subject: irgendewas Money beinhaltet
### Ersetzen mit dem Programm sed kann man inhalt in datein ersetzen
`sed 's/Welt/Linux/' hallo.txt`Ersetzt den Text Welt durch Linux s = ersetzen
`sed 's/Welt/Linux/g' hallo.txt`g = ersetzt alles (global)
mit dem Parameter -i wird die änderung **gespeichert**
`sed "3d" hallo.txt`Entfernt die 3. Zeile $d entfernt die letzte Zeile 2,3d entfernt Zeile 2 und 3 '/CentOS/d' entfernt Zeilen in denen CentOS vorkommt
`sed -n 's/Ubuntu/Kubuntu/p' hallo.text`zeigt nur die änderungen auf der Konsole an. p = Zeigt Änderungen an -n = Zeigt den ganzen text nicht an
### Reguläre audrücke
`sed -n 's/model/m/p' /proc/cpuinfo`ersetzt Model durch m in der cpuinfo datei
`sed -n -E 's/model(\s*):(\s)//p' /proc/cpuinfo`
`sed -n -E 's/model name(\s*):(.*)@(.*)/\2/p' /proc/cpuinfo`\\2 ersetzt den entfernten text mit der 2. Klammer
Ausdrücke generieren: [https://regexr.com](https://regexr.com) ## Bootloader bearbeiten Datei die zu bearbeiten ist: /etc/default/grub grub\_timeout = Startmenü anzeigen Änderungen übernehmen mti dem Befehl ``` grub-mkconfig -o /boot/grub/grub.cfg ```

CentOS

``` grub2-set-default 1 # setzt den Default wert auf 1 grub2-mkconfig -o /boot/grub2/grub.cfg ``` ## Partitionierung
/devGerätedateien
fdisk -l /dev/sdaFdisk erstellt partitionen in MBR
fdisk /dev/sdb p n p w (schreibt die Änderung auf die Platte) Neue Partition erstellen Speicherplatz festlegen: +2G erstellt eine 2 Gigabyte große
gdisk /dev/sdb o n mit Gdisk kann man GPT erstellen erstellen einer neuen GPT Partitionstabelle neue Partition anlegen
gdisk -l /dev/sdb zum überprüfen der Festplatte
### Dateisysteme
ext4Standard für Linux
btrfsStandard für Suse. Schnell aber fehleranfällig
xfsAlt, stabil
zfsLeistungsfähiges für Servern
ntfsMicrosoft
`blkid -o list`Zeigt die Festplatten mit id an
`lsblk `Übersicht über festplatten und partionen
##### Dateiformate erstellen
`parted -l /dev/sdb`Partitionen anschauen
`mkswap /dev/sdb6`Swap bereich erstellen (Auslagerungspartition)
`swapon /dev/sdb6`Swap aktivieren
`cat /proc/swaps`anzeigen welche partition als swap verwendet wird
`mkfs.ext4 /dev/sdb1`Formatieren in Ext4
`mkfs -t ext3 /dev/sdb2`Formatieren in ext3 (andere schreibweise)
`mkfs.xfs /dev/sdb4`bei xfs muss vorher mit `apt install xfsprogs `das programm dafür installiert werden
##### Partitionen überprüfen
fsck /dev/sdb1Prüfung der Partion. (Nur möglich, wenn nicht eingehängt)
fsk -f /dev/sdb1Gleichzeitige Reparatur bei Fehlern und detailiertere Ausgabe
##### Mounten
`mount -t xfs /dev/sdb5 /gulugulu`mountet laufwerk im -t (Type) xfs mit der Partition sdb5 im Ordner /gulugulu
`umount`Unmounten von Laufwerken
`mount /dev/sdb1 /gulugulu`Ext4 wird automatisch erkannt und muss nicht angegeben werden.
`/etc/fstab`**Automatische** Mountpunkte festlegen Typ: ext4, auto, swap Optionen: defaults, rw,auto,relatime (man mount)
`mount -a `Einstellung von fstab übernehmen
### Speicherplatz
`df `Diskfree
`df -h`Human readable
`du -h `Diskusage
`du -h /etc`Ordner anzeigen
`du -ha /etc`Alle Dateien anzeigen
`sudo du -h / | sort -h `Sortiert die Plattennutzung nach Größe
`sudo du -h / 2>&1 | sort -hr | head -n5`Die 5 größten Ordner anzeigen
**Festplattenanalyse als Admin starten** `sudo baobab` ## Logical Volume Manager (LVM)
`apt install lvm2`Unter Ubuntu installieren
`fdisk -l `Datenträger überprüfen
`pvcreate /dev/sdb1` `pvcreate /dev/sdb2` Physical Volume create
`pvs` übersicht
`vgcreate system /dev/dsb1 /dev/sdc1` Volume Group erstellen
`vgs` Volume Groups übersicht
`lvcreate -L3g -n home system` Logical Volume erstellen -L3g = Größe 3 GB -n = Name aus der Gruppe System
`lvs` Logical Volumes Übersicht
**Logical Volumes formatieren und mounten**
`mkfs.ext4 /dev/system/home` das Logical Volume in ext4 formatieren
`mount /dev/system/home /home` das Volumen mounten
**Erweitern**
`vgextend storage /dev/sdc3` dabei wird die Volume Group storage um eine weitere Partition erweitert
`umount /video` Vor dem einbinden muss das Volume unmounted werden
`lvresize -L 9g /dev/storrage/video` Die Größe wird auf 9 GB festgelegt. mit -L +4g kann das Volume um 4 GB erweitert werden. (besser nicht verwenden)
`resize2fs /dev/storage/video 9g` Dateisystem anpassen
`mount /dev/storage/video /video` Zum einhängen
## USB-Speichersticks
`lsusb`Alle angeschlossenen USB-Sticks anzeigen lassen
`usb-devices`Details anzeigen
`dmesg`gibt Kernel Informationen aus
## Netzwerk-Kommunikation

**Wireshark installieren** Vorher Gnome Desktop installieren mit `yum groupinstall GNOME-Desktop` GUI als Default einstellen: `systemctl set-default graphical.target` Wirehark als root starten aus dem Terminal: `wireshark &`

### VLSM und CIDR Variable Length Subnet Mask Classless Inter-Domain Routing ### ARP und MAC-Adressen

Wireshark-Mitschnitt: Capture Filter: host 192.168.1.15 and (arp or icmp) um ping oder ARP mitzuschneiden

`arp -d 192.168.1.15` löscht den Arp-Cache zu der Adresse `arp -a` Arp-Cache anzeigen `netstat -nr` Anzeige der Routing Tabelle ### TCP und UDP

**Aktive Ports anzeigen lassen** `sudo netstat -tlpn` zeigt alle Ports an

Alle Ports sind zu finden unter `nano /etc/services` ### IPv6
## Netzwerkeinstellungen ``` ip a # IP-Adressen anszeigen ip l # Interfaces ip r # Routingtabelle ip n # ARP-Einträge ss -t # Alle TCP verbindungen route -n # Routingtabelle in numerischer Darstellung sudo netstat -tulpn # Zeigt alle TCP/UDP verbindungen an # Viele infos zusammengefasst nmcli dev show ``` ### DNS Resolver Ist der Lokale DNS eintrag Bearbeitung unter `/etc/resolf.conf` ### IP-Konfiguration im Terminal
`/etc/network/interfaces`\# Einstellungen der Interfaces
`/etc/netplan`hier wird bestimmt wer die Konfiguration verwaltet renderer: ist das Gerät was das Netzwerk verwaltet
`nmcli`Konfiguration vor nehmen
`nmcli connection edit Kabelgebundene Verbindung 1`um das Interface Kabelgebundenen Verbindung 1 zu bearbeiten
`> help`hilfe
`> print`anzeigen
`> remove ipv4.addresses` `> set ipv4.addresses 192.168.1.111/24` ipv4 adresse festlegen
`> set ipv4.gateway 192.168.1.1` Gateway ändern
`> remove ipv4.dns` `> set ipv4.dns 8.8.8.8` DNS speidchern
`> save` Speichern
`> quit` Beenden
`nmcli connection down Kabelgebundene Verbindung 1` `nmcli connection up Kabelgebundene Verbindung 1` Initialisieren
**CentOS**
`cd /etc/libvirt/qemu/networks/autostart` wenn hier ein Link drin ist, dann ist das ein Interface was CentOS zu virtualisierungszwecken benötigt. Diese kann man löschen mit Beispielhaft: rm default.xml Nach einem Neustart sind die Verbindungen nicht mehr vorhanden
`cd /etc/sysconfig/network-scripts/` beinhaltet die Netzwerkkonfiguration
`nano ifcfg-enp0s3`
`nmcli connection modify enp0s3 ipv4.addresses 192.168.1.120/24 ipv4.gateway 192.168.1.200 ipv4.dns 8.8.8.8` Damit werden die Parameter gesetzt
`nmcli connection down enp0s3`
`nmcli connection up enp0s3`
`nmcli connection mod enp0s3 ipv4.method manual` um von Dynamisch auf Statisch umzuschalten
`nmcli dev` Anzeigen der Netzwerkverbindungen
### DNS Auflösung Eigentlich mit nslookup. Das ist aber abgekündigt. Der Nachfolder ist host
`host www.google.de` gibt das gleich wie nslookup wieder.
`host -t ns google.de` zeigt den zuständigen dns server an
host 8.8.8.8
**DIG**Umfangreicher lals host
dig www.google.de
dig @8.8.8.8 google.de ns
dig @192.168.1.254 8.8.8.8 Eigenen DNS SErver abfragen
/etc/hosts in der Datei kann man locale Namensauflösungen hinterlegen 127.0.0.1 [www.gulugulu.com](https://www.gulugulu.com) gulugulu (Adresse und alias eingetragen) ### Hostnamen festlegen
uname -nHostnamen anzeigen
uname -a zeigt alles an
hostname -f fgdn wird aus /etc/hosts übernommen
nano /etc/hostshier den namen anpassen bsp: 192.168.1.3 mint.hp mint
nano /etc/hostnamemint
hostname -F /etc/hostname
**Moderne variante**
hostnamectlzeigt alle sachen an
hostnamectl set-hostname "Ubuntu Desktop"Hostname ändern
## Statische Routen
`ip route add 172.16.20.128/25 via 192.168.1.1 dev eth0`Route festlegen des ausgehenden Interfaces
`route add -net 172.16.20.128 netmask 255.255.255.0 gw 192.168.1.1`
route -nzeigt an welche da
**Kann in Ubuntu über die GUI in IPv4 unter Strecken eingetragen werden**172.16.20.0 | 25 | 192.168.1.20
nmcli conn edit Kabelgebundene Verbindung
> print ipv4.routes: zeigt die routen an
> set ipv4.routes 10.10.10.0/24 192.168.1.1Bereich und Gateway
> save
> quit
nmcli conn down Kabelbebundene Verbindung 1
nmcli conn up Kabelgebundene Verbindung 1
## DHCP Server und Cent Os Installieren von DHCP ``` yum install dhcp -y ``` Sind im Server mehrere Netzwerkkarten vorhanden, binden wir den dhcp-Server an ein Interface. Dazu tragen wir in der **/etc/sysconfig/dhcpd** folgende Option ein: ``` # vim /etc/sysconfig/dhcpd ``` ``` # Command line options here DHCPDARGS=eth0 ``` ### Konfigurationsdatei bearbeiten Anschließend wird die Konfigurationsdatei unter **/etc/dhcpd.conf** entsprechend den eigenen Anforderungen angelegt. ``` # vim /etc/dhcp/dhcpd.conf ```
1. [/etc/dhcp/dhcpd.conf](https://dokuwiki.nausch.org/doku.php/centos:dhcp_c6?do=export_code&codeblock=1 "Schnipsel herunterladen")
``` subnet 10.0.10.0 netmask 255.255.255.192 { option routers 10.0.10.1; option subnet-mask 255.255.255.192; option nis-domain "nausch.org"; option domain-name "nausch.org"; option domain-search "dmz.nausch.org", "intra.nausch.org", "nausch.org"; option domain-name-servers 10.0.10.1; option time-offset -18000; # Eastern Standard Time option ntp-servers 10.0.10.1; option log-servers 10.0.10.1; range dynamic-bootp 10.0.10.50 10.0.10.62; default-lease-time 21600; max-lease-time 43200; } host pml010010 { hardware ethernet 00:22:68:5C:A4:8A; fixed-address 10.0.10.10; } ``` ### DHCP-Konfiguration überprüfen Bevor wir nun unseren DHCP-Server das erste mal starten, überprüfen wir unsere Konfiguration mit: ``` # service dhcpd configtest ``` ``` Syntax: OK ``` ### DHCP-Server starten Den ersten Start unseres DHCP-Server nehmen wir wie folgt vor. ``` # service dhcpd start ``` ``` dhcpd starten: [ OK ] ``` ## Fehlersuche im Netzwerk
1. Ping 8.8.8.8 2. ip a 3. ping default\_gateway 4. route -n
**routen bearbeiten** ``` sudo ip route del default via 192.168.1.1 sudo ip route add default via 192.168.1.254 # Diese Einstellung ist nicht dauerhaft ``` 5\. traceroute 8.8.8.8 6\. ip n zeigt neighbors an