Kategorie: Ubuntu

Ubuntu Snap mit Proxy

Wenn man Ubuntu Snap hinter einem Proxy betreiben will, muss man die Einstellung für Snap hinterlegen.

sudo vim /etc/environment

http_proxy="http://BENUTZER:PASSWORD@proxy.hostname.de:8080/"
https_proxy="http://BENUTZER:PASSWORD@proxy.hostname.de:8080/"

sudo apt install snapd

Mit dem Befehl systemctl kann man die Einstellungen von dem Dienst ändern.

sudo systemctl edit snapd.service

Jetzt kann man die Einstellung für den Proxy hinterlegen.

[Service]
EnvironmentFile=/etc/environment

Die Einstellungen werden in dem Verzeichnis /etc/systemd/system/snapd.service.d/override.conf gespeichert.

Nach dem Neustart von dem Dienst kann man den Proxy verwenden.

sudo systemctl daemon-reload
sudo systemctl restart snapd.service

Jetzt kann es los gehen. Als Beispiel installieren wir VLC.

sudo snap find vlc
sudo snap install vlc

Die Anwendung VLC liegt jetzt für die Start bereit.

/snap/bin/vlc

Die De-Installation ist auch nicht schwer.

sudo snap remove vlc

NFS und Windows Share unter Ubuntu mounten

Um unter Ubuntu auf eine Windows Freigabe zugreifen zu können, ist die Installation von Samba notwendig.

sudo apt-get install samba-client samba-common cifs-utils

Zum prüfen der Freigaben, kann man diesen Befehl verwenden.

smbclient -L SERVER

Um die Freigabe zu Mounten kann man den Mount Befehl verwenden.

sudo mount -t cifs -o USERNAME //SERVER/SHARE /mnt

Will man die Einstellung im System speichern, sind zwei Einträge notwendig.

sudo vim /etc/fstab

//SERVER/SHARE /mnt cifs credentials=/root/.smbcredentials,iocharset=utf8,_netdev 0 0

Sollte die Freigabe mit einem Passwort geschützt sein, kann man die Zugangsdaten für ein Auto-Mount speichern.

sudo vim /root/.smbcredentials

username=USERNAME
password=PASSWORD

Nun kann man das Mount so durchführen.

sudo mount /mnt

Für ein NFS Share ist diese Installation notwendig.

sudo apt-get install nfs-common

Zeigt die NFS Shares an.

showmount -e SERVER

Um die NFS Freigabe zu Mounten kann man den Mount Befehl verwenden.

sudo mount -t nfs SERVER:/SHARE /mnt

Will man die Einstellung im System speichern, sind diese Einträge notwendig.

sudo vim /etc/fstab

SERVER:/SHARE /mnt nfs defaults,_netdev 0 0

Ubuntu 16.04 mit ZFS

Ab Ubuntu 16.04 (Kernel 4.4) wird auch ZFS mit geliefert. Hier will ich zeigen, wie man ZFS installiert und nutzt.

sudo apt-get install zfsutils-linux

Nach der Installation sollte ZFS als Kernel Modul geladen sein.

lsmod |grep zfs

Mit den Tool „zpool“ kann man sich die Volumes und den Status von ZFS anzeigen lassen.

sudo zpool list
sudo zpool status

2GB Volume erstellen in Image-Datei

dd if=/dev/zero of=/home/user/example.img bs=1M count=2048
sudo zpool create mypool /home/user/example.img

ZFS Raid1 (mirror) Volume mit zwei Festplatten erstellen

sudo zpool create mypool mirror /dev/sdb /dev/sdc

ZFS Raid5 (strip parity) Volume mit 4 Festplatten erstellen

sudo zpool create mypool raidz /dev/sdb /dev/sdc /dev/sdd /dev/sde

ZFS Raid6 (double parity) Volume mit 5 Festplatten erstellen

sudo zpool create example raidz2 /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf

Volume löschen

sudo zpool destroy mypool

ZFS 10GByte File System erstellen und Kompression setzen

sudo zfs create mypool/projects
sudo zfs set quota=10G mypool/projects
sudo zfs set compression=on mypool/projects

ZFS File System anzeigen

sudo zfs list

ZFS File System löschen

sudo zfs destroy mypool/tmp

ZFS Snapshots erstellen und anzeigen (read only)

sudo zfs snapshot -r mypool/projects@snap1
sudo zfs list -t snapshot

ZFS Snapshot zurück rollen

sudo zfs rollback mypool/projects@snap1

ZFS Snapshot löschen

sudo zfs destroy mypool/projects@snap1

ZFS Clone erstellen (writeable copy)

Ein Clone ist eine beschreibare Kopie von einem Snapshot.

sudo zfs snapshot -r mypool/projects@snap1
sudo zfs clone mypool/projects@snap1 mypool/projects-clone

ZFS Send / Receive (Backup / Restore) erstellen

Ein Snapshot erstellen und an eine Datei senden

sudo zfs snapshot -r mypool/projects@snap2
sudo zfs send mypool/projects@snap2 > ~/projects-snap.zfs

Ein Snapshot zurück schreiben.

sudo zfs receive -F mypool/projects-copy < ~/projects-snap.zfs

Weitere Information zu ZFS Ditto Blocks, ZFS Deduplication, ZFS Pool Scrubbing und ZFS compression finden Sie im Wiki ZFS.

ZFS kann mit LXD genutzt werden.

sudo apt-get install lxd

Nach der Installation können wir LXD konfigurieren.

sudo ldx init

Name of the storage backend to use (dir or zfs): zfs
Create a new ZFS pool (yes/no)? yes
Name of the new ZFS pool: lxd
Would you like to use an existing block device (yes/no)? no
Size in GB of the new loop device (1GB minimum): 2
Would you like LXD to be available over the network (yes/no)? no 
LXD has been successfully configured.

Jetzt erstellen wir einen Container und starten ihn.

sudo lxc launch ubuntu:14.04 my-ubuntu

Monitoring für das Terminal und Konsole

Heute möchte ich einige nützliche Tools für das Realtime-Monitoring in der Text-Console vorstellen. Die häufisten Fragen sind die Auslastung der CPU, Festplatte und des Netzwerk. Dafür gibt es folgende Tools.

htop – CPU / Auslastung / Prozesse Monitoring
iotop – Input/Output HDD Monitoring
iftop – Netzwerk Monitoring

sudo apt-get install htop iotop iftop

NetworkManager entfernen

Wenn man vom NetworkManager zurück zu Network wecheln will, sind drei Schritt aus zu führen.

sudo service NetworkManager stop
sudo service network start
sudo apt-get remove NetworkManager

Erstellen Sie auch die Konfiguration für Network.

sudo vim /etc/network/interfaces

auto lo
iface lo inet loopback
 
auto eth0
iface eth0 inet dhcp

NetworkManager ohne GUI verwalten

Wenn man den NetworkManager (NM) ohne eine GUI verwenden will, kann man das Programm nmcli verwenden.

nmcli device status
nmcli device show eth0
nmcli connection show
nmcli general

Es ist auch möglich die Verbindung zu trennen und zu ändern.

nmcli device [connect/disconnect] eth0

Die Einstellung werden gespeichert im Verzeichnis /etc/NetworkManager/system-connections/.

sudo vim /etc/NetworkManager/system-connections/Kabelnetzwerkverbindung

[connection]
id=Kabelnetzwerkverbindung
uuid=245e5-2e4f-25ef-4c55-56ede3
type=ethernet
permissions=
secondaries=
timestamp=1453713048
 
[ethernet]
duplex=full
mac-address=F0:DE:F1:XX:XX:XX
 
[ipv4]
method=auto
 
[ipv6]
ip6-privacy=0
method=auto

Ubuntu – Systemd Netzwerknamen

Seit der Umstellung auf Systemd haben sich die Namen der Netzwerk-Adapter geändert. Die Schnittstellt hatte früher den Namen „eth0“, „eth1“ und heißt jetzt zum Beispiel „enp0s5“. Der Aufbau der Namen folgt einem Standard.

Der Aufbau ist wie folgt:

Two character prefixes based on the type of interface:
en -- Ethernet
sl -- serial line IP (slip)
wl -- wlan
ww -- wwan
 
Type of names:
 
b<number>                          -- BCMA bus core number
c<bus_id>                          -- CCW bus group name
o<index>[d<dev_port>]              -- on-board device index number
s<slot>[f<function>][d<dev_port>]  -- hotplug slot index number
x<MAC>                             -- MAC address
 
p<bus>s<slot>[f<function>][d<dev_port>]  -- PCI geographical location
p<bus>s<slot>[f<function>][u<port>][..][c<config>][i<interface>]  -- USB port number chain

Das Beispiel „enp0s5“ ist eine Ethernet Karte PCI am Bus 0 Slot 5.

Doch wie kann man diese Namen finden, wenn man eine Karte neu installiert hat?

Der Befehl ifconfig mit der Option -a zeigt all Netzwerk-Geräte an, auch wenn Sie noch nicht konfiguriert sind.

ifconfig -a
lshw -class network

Will man den Namen ändern in „eth0“ so muß mann eine UDev Regel hinzufügen. Ersetzen Sie die MAC Adresse und den Namen mit den Daten aus Ihrem System.

sudo vim /etc/udev/rules.d/10-network.rules

SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="02:00:37:6f:ff:ff", KERNEL=="enp0s5", NAME="eth0"

Ändern Sie auch die Netzwerkeinstellungen und führen Sie einen Neustart durch.

sudo vim /etc/network/interfaces

auto eth0
#iface eth0 inet dhcp
iface eth0 inet static
address 10.0.0.100
netmask 255.255.255.0
gateway 10.0.0.1

Systemd – Journal beschränken

Das Journal wurde mit Systemd neu eingeführt und soll die Log-Dateien /var/log/syslog ersetzen. Die Daten werden in Form von Binärdaten gespeichert und nicht in ASCII Format.

Um den Speicherplatz zu prüfen kann man das Journal Control journalctl verwenden.

journalctl --disk-usage

Will man den Speicherplatz reduzieren, kann man den Speicherplatz angeben oder die Zeit. Alte Einträge werden dann bereinigt.

journalctl --vacuum-size=128M
journalctl --vacuum-time=4weeks

Will man den Speicherplatz dauerhaft begrenzen, so kann einen Eintrag in der Kondiguration hinzu gefügen.

sudo vim /etc/systemd/journald.conf

Storage=auto
SystemMaxUse=128M

sudo systemctl restart systemd-journald

Der Speicherort von Journal liegt im Verzeichnis /run/log/journal/[UUID]/. Die Dateien werden im Binärformat gespeichert und können nicht mit einem Editor geöffnet werden. Mit dem Befehl „strings“ ist es möglich die Daten zu lesen.

sudo apt-get install binutils
strings /run/log/journal/[UUID]/system.journal

Nach jedem Neustart wird Journal gelöscht. Will man das Journal behalten, erstellt man eine Verzeichnis.

sudo mkdir -p /var/log/journal/

Nach einem Neustart wird das Journal im Verzeichnis /var/log/journal/ gespeichert. Wenn das Verzeichnis gelöscht wird, dann wird es wieder nach jedem Neustart gelöscht.

sudo rm -r /var/log/journal/

Die Anzahl der Neustart kann man sich anzeigen lassen.

journalctl --list-boots

Schutz vor Brute-Force Angriffen

Mit dem Tool „fail2ban“ kann man Brute-Force Angriffe abwähren. Dabei wird die IP Adresse der Angreifer aus den Log-Dateien ermittelt und in der Firewall (iptable) gesperrt.

Die Installation aus dem Ubuntu Repositories erfolgt mit.

sudo apt-get install fail2ban

Nach der Installation ist der Schutz von SSH automatisch aktiviert.

sudo vim /etc/fail2ban/jail.conf

[DEFAULT]
# "ignoreip" can be an IP address, a CIDR mask or a DNS host
ignoreip = 127.0.0.1 192.168.178.0/24 office.example.de
bantime  = 1800
maxretry = 3
 
[ssh]
enabled = true
port    = ssh
filter  = sshd
logpath  = /var/log/auth.log
maxretry = 3
 
[apache]
enabled  = true
port     = http,https
filter   = apache-auth
logpath  = /var/log/apache*/*error.log
maxretry = 6

Nach Änderungen muß der Dienst neu gestartet werden.

sudo service fail2ban restart

Eine Kontrolle der Firewall (iptables) erfolgt mit diesem Kommando. Einträge werden in dem Chain „fail2ban“ hinterlegt.

sudo iptables -L

Das Tool fail2ban-client zeigt die Jails an.

sudo fail2ban-client status
sudo fail2ban-client status apache

Sperre für eine IP Adresse wieder aufheben.

sudo fail2ban-client set apache unbanip 123.123.123.123

Netzwerkübersicht von offenen Ports

Wer wissen will, welche Netzwerkanfragen auf dem System lauschen, kann den Befehl lsof verwenden.

Das Kommando kann aus dem Ubuntu Repository installiert werden.

sudo apt-get install lsof

Mit dem Parameter -i kann man sich einen Port anzeigen lassen.

sudo lsof -i [udp|tcp]:[port]
sudo lsof -i tcp:80

Der Parameter +d liste die offenen Files aus dem Verzeichnis.

sudo lsof +d /var/log/

Der Parameter -c / -p liste die offenen Files von einem Prozess.

sudo lsof -c apache2
sudo lsof -p 1234

Der Parameter -u liste die offenen Files von einem Benutzer.

sudo lsof -u otto

Eine andere Alternative ist das Tool netstat. Der Parameter „-l“ zeigt die offenen Ports an und Parameter „-a“ alle Verbindungen.

netstat -nlp

Copyright © 2024 Weiter.info

Theme von Anders Norén↑ ↑