Basics

Server Zeit einstellen

Die aktuellen Settings können so angezeigt werden:

timedatectl status

Die gewünschten NTP Server können in diesem File (getrennt mit einem Leerschlag) eingetragen werden:

vi /etc/systemd/timesyncd.conf
[Time]
#NTP=
#FallbackNTP=ntp.ubuntu.com
NTP=swisstime.ethz.ch 0.ch.pool.ntp.org 1.ch.pool.ntp.org 2.ch.pool.ntp.org

und Service restarten:

sudo service systemd-timesyncd restart

Jetzt noch die Zeitzone setzen. Die verfügbaren Zonen kann man so auflisten:

timedatectl list-timezones

jetzt noch setzen:

sudo timedatectl set-timezone Europe/Zurich

Nun ist es wie gewünscht eingerichtet und die Settings bleiben auch nach einem reboot erhalten:

$ timedatectl status
Local time: Fre 2018-06-29 16:31:38 CEST
Universal time: Fre 2018-06-29 14:31:38 UTC
RTC time: Fre 2018-06-29 14:31:38
Time zone: Europe/Zurich (CEST, +0200)
Network time on: yes
NTP synchronized: yes
RTC in local TZ: no

Bash Aliases einrichten

vi ~/.bash_aliases
# aliase sind eine einfache Möchkeit sich Tipparbeit
# zu sparen.
alias sudo='sudo '
alias nxctl='/usr/local/etc/init.d/nginx'
alias phpctl='/usr/local/etc/init.d/php-fpm'
alias cs='cvs status | grep Status | grep -v Up-to'
alias df='df -k'
alias dir='ls -aglF'
alias l='last | more'
alias ll='ls -aglF'
alias cd..='cd ..'
alias ..='cd ..'
alias ...='cd ../..'
alias whois.at='whois -h whois.nic.at'
alias whois.ch='whois -h whois.nic.ch'
alias whois.eu='whois -h whois.ripe.net'
alias whois.ns='whois -h whois.networksolutions.com'
alias whois.swinog='whois -h whois.swinog.ch'
alias whois.us='whois -h whois.nic.us'
alias whois.rs='whois -h rs.internic.net'
alias whois.info='whois -h whois.afilias.net'
alias whois.biz='whois -h whois.nic.biz'
alias whois.de='whois -h whois.denic.de'
alias cdname='cd /etc/namedb/secondary'
alias cdmail='cd /etc/mail'
alias rcsendmail='/etc/init.d/sendmail'
alias vi='vim'
alias rz='/usr/local/bin/lrz -ce'
alias sz='/usr/local/bin/lsz'
alias viewtar='tar -ztvf'

 

Locale hinzufügen

Beim Erscheinen folgender – oder ähnlicher – Warnmeldung, muss noch die entsprechende Locale hinzugefügt werden:

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LC_PAPER = "de_CH.UTF-8",
LC_ADDRESS = "de_CH.UTF-8",
LC_MONETARY = "de_CH.UTF-8",
LC_NUMERIC = "de_CH.UTF-8",
LC_TELEPHONE = "de_CH.UTF-8",
LC_IDENTIFICATION = "de_CH.UTF-8",
LC_MEASUREMENT = "de_CH.UTF-8",
LC_TIME = "de_CH.UTF-8",
LC_NAME = "de_CH.UTF-8",
LANG = "en_US.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to a fallback locale ("en_US.UTF-8").

Das geht einfach mit folgendem Befehl:

sudo locale-gen de_CH
sudo locale-gen de_CH.UTF-8

Dann noch Locale updaten:

sudo update-locale

User erstellen

adduser <username>

User SUDO Berechtigung geben

sudo adduser <username> sudo

Hostname ändern

sudo hostnamectl set-hostname <neuerhostname>

DynDNS aktivieren

Da dieser Server nur als Cloudspeicher genutzt wird, brauche ich keine Fixe IP. Stattdessen arbeite ich mit DynDNS damit ich trotzdem einfach und schnell von zuhause aus aus drauf zugreifen kann.

Als erstes muss man sich bei einem Dynamic DNS Provider registrieren. Ich nutze den kostenlosen Service von afraid.org

Jetzt die Software installieren, die dem Provider mitteilt, welche IP Adresse wir haben:

sudo apt-get install ddclient

Nun den Provider auswählen. Da afraid.org nicht in der Liste ist: „other“ wählen

Server: freedns.afraid.orgProtokoll=freedns
login=<afraid.org_username>
password=<afraid.org_passwort>
Network Interface: ens3
DynDNS Domain Name: somedomain.dyn.domain.xy

Nun müsste der Server bereits über somedomain.dyn.domain.xy erreichbar sein.

Config File noch anpassen:

sudo cat /etc/ddclient.conf

Hier noch hinzufügen, wie oft er checken soll:

daemon=60 # alle 60 sekunden checken

Config testen:

sudo ddclient -daemon=0 -debug -verbose -noquiet

Status anzeigen

sudo /etc/init.d/ddclient status

Client restarten

sudo /etc/init.d/ddclient restart

Manchmal muss man das Update auch forcieren, dass kann man so

/usr/sbin/ddclient --force

das kann man übrigens auch in einen Cronjob packen, sollte es öfters Probleme geben mit dem Daemon.

VLAN Installieren / einrichten

sudo apt-get install vlan

Nun einrichten und konfigurieren wie hier im Einzelabschnitt beschrieben. Also z.B.

sudo ifconfig ens4 10.0.0.5 netmask 255.255.255.0 vlan 1 vlandev ens4

Um config dauerhaft zu speichern, also auch nach reboot:

sudo vi /etc/network/interfaces

folgendes hinzufügen

# VLAN network interface
auto ens4
iface ens4 inet static
address 10.0.0.5
netmask 255.255.255.0
vlan-raw-device ens4

 

Laufwerke aktivieren

So lassen sich die hinzugefügten Disks auflisten:

$ lsblk 
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 253:0 0 10G 0 disk
└─vda1 253:1 0 10G 0 part /
vdb 253:16 0 5G 0 disk
vdc 253:32 0 50G 0 disk

vdb und vdc sind noch nicht gemountet.

Mounting Point finden:

sudo fdisk -l

Neue Partition erstellen:

sudo fdisk /dev/vdb

Ist es eine neue Disk, kannst du gleich so vorgehen

  • n – für neue Partition
  • p – für primäre Partition
  • default für Partitionsnummer (1)
  • default für First Sector
  • default für Last Sector
  • w – um die Änderungen zu speichern

Nun das gleiche noch für die andere Disk machen (/dev/vdc)

Jetzt die Disk(s) formatieren:

sudo mkfs /dev/vdb -t ext4
sudo mkfs /dev/vdc -t ext4

Mountpoint erstellen

sudo mkdir /optsudo mount /dev/vdb /opt -t ext4

Jetzt noch die zweite Disk, in meinem Fall ist es ein Verzeichnis vom ecoDMS Server, das ich auf eine separate Partition legen möchte:

sudo mkdir -p /opt/ecodms/data
sudo mount /dev/vdc /opt/ecodms/data -t ext4

Die Disks sind jetzt ready:

cloudsigma@testserver:~$ df -h

Filesystem Size Used Avail Use% Mounted on
udev 981M 0 981M 0% /dev
tmpfs 201M 3.2M 197M 2% /run
/dev/vda1 9.8G 2.4G 6.9G 26% /
tmpfs 1001M 0 1001M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 1001M 0 1001M 0% /sys/fs/cgroup
tmpfs 201M 0 201M 0% /run/user/1000
/dev/vdb 4.8G 10M 4.6G 1% /opt
/dev/vdc 50G 52M 47G 1% /opt/ecodms/data

Jetzt noch in fstab eintragen, damit die Partitionen beim nächsten Boot sofort verfügbar sind:

sudo vi /etc/fstab

hinzufügen:

/dev/vdb /opt             ext4 defaults 0 0
/dev/vdc /opt/ecodms/data ext4 defaults 0 0

Ubuntu updaten

Update der Liste der Pakete

sudo apt-get update

Upgrade der installierten Pakete. Mit upgrade werden nur die bereits vorhandenen Pakete aktualisiert. Die Paketszusammenstellunge ändert sich nicht.

sudo apt-get upgrade

Upgrade der installierten Pakete. Mit dist-upgrade werden jedoch – falls nötig – auch Pakete entfernt oder neue hinzugefügt. Die Paketzusammenstellung kann sich mit diesem Befehl ändern.

sudo apt-get dist-upgrade

Upgrade der Ubuntu Version auf den nächsthöheren Ubuntu-Release:

sudo apt-get do-release-upgrade

Upgrade eines einzelnen Paketes

Update der Liste der Pakete

sudo apt-get update

Jetzt einzelnes Paket upgraden (zum Beispiel den ecodmsserver):

sudo apt install ecodmsserver

Automatische Updates aktivieren

Die Pakete lassen sich mit Ubuntu automatisch im Hintergrund aktualisieren. Es gibt verschiedene Ansätze dafür, unattended-upgrades ist aber der Weg, der offiziell empfohlen wird:

sudo apt-get install unattended-upgrades
sudo dpkg-reconfigure unattended-upgrades

Falls man Pakete hat, bei denen man das automatische Update deaktivieren möchte, kann man dies über die Blacklist machen. Weitere Informationen dazu gibts im offiziellen Manual.

Jetzt noch die Benachrichtigungen aktivieren:

sudo apt install apticron

und nach der Installation im File

sudo vi /etc/apticron/apticron.conf

die gewünschte Emailadresse eingeben unter:

EMAIL="root@domain.com"

Paketverwaltung

Paketliste updaten

Bevor man neue Pakete installiert/updatet, immer vorher die Paketliste aktualisieren.

sudo apt-get update

Paket finden

Wenn man ein Paket installieren möchte, wo man den Paketnamen nicht genau kennt, kann man dazu apt-cache search verwenden, um das Paket zu finden:

apt-cache search suchbegriff(e)

z.B.

apt-cache search php-cli

Paket installieren

sudo apt-get install <paketname>

Installierte Pakete anzeigen

dpkg -l

Schauen, ob z.B. php installiert ist:

dpkg -l | grep php

Paket Details anzeigen

Zeigt von bereits installierten Paketen Paketename/Version und Description an:

dpkg -l <paketname>

Listet alle Dateien auf, die von diesem Paket installiert wurden:

dpkg -L <paketname>

Informationen von noch nicht installierten Paketen anzeigen:

apt-cache show <paketname>

Pakete löschen

Folgender Befehl löscht ein Paket inkl. config Files.

sudo apt-get remove --purge Paketname

Aufräumen und Platz schaffen

Manchmal muss man im root / oder /var Verzeichnis Platz schaffen, da diese gerne an ihre Grenzen stossen. Das kann gefährlich werden; sollte die root Partition volllaufen, könnte das System nicht mehr starten. Meist liegt es an zu grossen Logfiles oder an veralteten / nicht mehr benötigten Installationspaketen.

Unbenötigte Pakete entfernen

Pakete entfernen, die von anderen Paketen (in Abhängigkeit) installiert wurden, jetzt aber nicht mehr benötigt werden:

sudo apt-get autoremove

.deb Dateien von Paketen entfernen, die nicht mehr installiert sind:

sudo apt-get autoclean

Entferne alle unbenutzten Abhängigkeiten

sudo apt-get clean

Für weitere Infos:

man apt-get

Riesiges /var/log/journal

Logdaten können sehr viel Platz beanspruchen. Es kann daher Sinn machen, das journal zu begrenzen.

$ du -h /var/log/

12K /var/log/fsck
8.0K /var/log/dist-upgrade/20180914-0949
41M /var/log/dist-upgrade/20211227-1516
52K /var/log/dist-upgrade/20211227-1522
180K /var/log/dist-upgrade/20211227-1553
52K /var/log/dist-upgrade/20211227-1527
128K /var/log/dist-upgrade/20200307-1501
88K /var/log/dist-upgrade/20200307-1456
128K /var/log/dist-upgrade/20200307-1504
8.0K /var/log/dist-upgrade/20180914-0944
108K /var/log/dist-upgrade/20211227-1555
48M /var/log/dist-upgrade
180K /var/log/apt
92K /var/log/postgresql
8.0K /var/log/upgrade
4.0K /var/log/mrtg
4.0K /var/log/sysstat
19M /var/log/bind
4.0K /var/log/samba/cores/nmbd
4.0K /var/log/samba/cores/smbd
12K /var/log/samba/cores
44M /var/log/samba
4.0K /var/log/libvirt/qemu
4.0K /var/log/libvirt/lxc
4.0K /var/log/libvirt/uml
16K /var/log/libvirt
100K /var/log/unattended-upgrades
14M /var/log/installer/cdebconf
15M /var/log/installer
1.1G /var/log/journal/68a7f2b37d280272be323519595b5848
1.1G /var/log/journal
4.0K /var/log/private
4.0K /var/log/landscape
1.4G /var/log/

Du kannst das Journal entweder nach grösse oder nach Zeit begrenzen:

journalctl --vacuum-size=100M

Behält die letzten 100MB Daten

journalctl --vacuum-time=10d

Löscht alles, bis auf die letzten 10 Tage.

Um die Grössenbegrenzung dauerhaft zu konfigurieren, kann man dies im Config festhalten:

/etc/systemd/journald.conf

Für das obige Beispiel wären dies die entsprechenden Config Einträge:

Nach Filegrösse:

SystemMaxUse=100M

Nach Zeit:

MaxRetentionSec=10day

Nach der Config Änderung noch den Dienst neu starten:

sudo systemctl restart systemd-journald

/var/log/samba

In diesem Directory können auch tonnenweise Daten zu finden sein. Hier hilft folgendes Script:

for CLEAN in $(find /var/log/samba -type f)
do
echo "removing $CLEAN"
rm -rf $CLEAN
done

/var/spool/postfix/maildrop/

Wenn der Speicher voll ist und gleichzeitig ein Mailinglist Job läuft, bricht der Mailversand ab (no space left on device), da nichts mehr gecached werden kann. Gleichzeitig füllt sich noch die maildrop box mit allen unverschickten emails. Wenn wir also einfach keinen Speicher frei kriegen und die maildrop box knall voll ist mit mehrere GB Daten, kann folgendes helfen:

  • Postfix ausschalten
    service postfix stop
  • maildrop files auf eine andere platte schieben
    cd /var/spool/postfix/maildrop
    mv * /opt/postfix/TMP_maildrop
  • Postfix wieder starten
    service postfix start
  • Nun sollte es ja wieder Platz auf der Platte haben und Postfix auch wieder normal laufen (check mail.log)
    tail -f /var/log/mail.log
  • jetzt die Mailbox Files gestückelt wieder in den Originalfolder schieben (nach Anfangsbuchstabe gesammelt, wenn nur nur so 1000 übrig sind oder so, kann man dann alles schieben). Zuerst alles in kleinen Happen schieben, Logfiles gleichzeitig im Auge behalten.
    cd /opt/postfix/TMP_maildrop
    mv 3* /var/spool/postfix/maildrop/
    mv 2* /var/spool/postfix/maildrop/
    mv F* /var/spool/postfix/maildrop/
    etc…


Netzwerk

Andere Geräte im selben Netzwerk anzegen

Um andere Geräte im selben Netz anzuzeigen, kann man nmap verwenden.

nmap installieren:

sudo apt-get install nmap

Als erstes benötigen wir nun unsere eigene IP Adresse. Diese kann man entweder per ifconfig oder ip addr auslesen:

$ ifconfig

eth0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether 40:61:86:2f:24:c1 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.115 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::5290:9e15:be63:e345 prefixlen 64 scopeid 0x20<link>
ether 40:61:86:2f:24:c0 txqueuelen 1000 (Ethernet)
RX packets 297279 bytes 387186266 (387.1 MB)
RX errors 0 dropped 29 overruns 0 frame 0
TX packets 147492 bytes 16966458 (16.9 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Lokale Schleife)
RX packets 9419 bytes 961834 (961.8 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 9419 bytes 961834 (961.8 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

– oder –

$ ip addr

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
link/ether 40:61:86:2f:24:c1 brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 40:61:86:2f:24:c0 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.115/24 brd 192.168.0.255 scope global dynamic noprefixroute eth1
valid_lft 84548sec preferred_lft 84548sec
inet6 fe80::5290:9e15:be63:e345/64 scope link noprefixroute
valid_lft forever preferred_lft forever

In diesem Beispiel lautet also meine IP Adresse 192.168.0.115. Und die Subnetmask ist 255.255.255.0 ( = /24).

Beispiel der IP Ranges:

  • 192.0.0.0/8 – beinhaltet das erste Segment (192.*)
  • 192.168.0.0/16 – beinhaltet die ersten zwei Segmente (192.168.*)
  • 192.168.0.0/24 – beinhaltet die ersten drei Segmente (192.168.0.*)
  • 192.168.0.115/32 – beinhaltet alle 4 Sekmente (192.168.0.115)

Wenn wir jetzt alle Geräte in unserem Subnet Scannen möchten, reicht ein:

sudo nmap -sn 192.168.0.0/24

Nun werden die IP Adressen von 192.168.0.0 – 192.168.0.255 gescannt. Mit der Option -sn macht man einen schnellen Scan – ohne Port Scan. Sudo ist für nmap grundsätzlich nicht notwendig, mit sudo werden allerdings detailliertere Informationen ausgegeben.

  • -sn (No port scan)
    This option tells Nmap not to do a port scan after host discovery, and only print out the available hosts that responded to the host discovery probes. This is often known as a „ping scan“, but you can also request that traceroute and NSE host scripts be run. This is by default one step more intrusive than the list scan, and can often be used for the same purposes.

Im oberen Beispiel wollte ich zum Beispiel die IP adresse vom NAS (QNAP Server) auslesen. Output von nmap:

Starting Nmap 7.80 ( https://nmap.org ) at 2021-12-28 13:16 CET
Nmap scan report for _gateway (192.168.0.1)
Host is up (0.0012s latency).
MAC Address: XX:XX:XX:XX:42:45 (Compal Broadband Networks)
Nmap scan report for 192.168.0.143
Host is up (0.00014s latency).
MAC Address: XX:XX:XX:XX:2B:D5 (Philips Lighting BV)
Nmap scan report for 192.168.0.165
Host is up (0.00014s latency).
MAC Address: XX:XX:XX:XX:45:51 (Tp-link Technologies)
Nmap scan report for 192.168.0.199
Host is up (0.00022s latency).
MAC Address: XX:XX:XX:XX:65:2F (Qnap Systems)
Nmap scan report for 192.168.0.227
Host is up (0.00012s latency).
MAC Address: XX:XX:XX:XX:47:F0 (Yealink(xiamen) Network Technology)
Nmap scan report for Black32 (192.168.0.115)
Host is up.
Nmap done: 256 IP addresses (6 hosts up) scanned in 2.16 seconds

 

.

nach oben