Basics
- Server Zeit einstellen
- Bash Aliases einrichten
- Locale hinzufügen
- User erstellen
- User SUDO Berechtigung geben
- Hostname ändern
- DynDNS aktivieren
- VLAN Installieren / einrichten
- Laufwerke aktivieren
- Ubuntu updaten
- Paketverwaltung
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
.