Service Konfiguration
- E-Mail bei Linux Updates
- E-Mail Benachrichtigung bei SSH Login
- Port von sendmail ändern
- SSH Root Login verbieten
- Apache - Error 404 "Objekt nicht gefunden"
E-Mail bei Linux Updates
Einleitung
In Linux kannst du mit Hilfe von Apticron automatisiert E-Mail Benachrichtigungen versenden wenn Updates verfügbar sind. Du kannst dort auch einstellen das du informiert werden möchtest, selbst wenn keine Updates verfügbar sind.
Einrichtung
Im ersten Schritt verbindest du dich mit deinem Server damit du Konsolenzugriff hast. Dort aktualisierst du einmal die Paketquellen und installierst mögliche Updates.
sudo apt update && sudo apt upgrade -y
Im nächsten Schritt installierst du Apticron und sendmail auf deinem Rechner.
sudo apt install apticron sendmail -y
Als nächstes kopierst du die Konfigurationsdatei in das Apticron Verzeichnis damit du diese modifizieren kannst.
sudo cp /usr/lib/apticron/apticron.conf /etc/apticron/apticron.conf
Diese Konfigurationsdatei öffnest du in einem Editor deiner Wahl, ich verwende dazu nano.
nano /etc/apticron/apticron.conf
In dieser Datei gibst du Parameter an wie die E-Mail aussehen soll, welche Absender Adresse er verwenden soll und wer der Empfänger ist.
# apticron.conf
#
# The values set in /etc/apticron/apticron.conf will override the settings
# in this file.
#
# Set EMAIL to a space separated list of addresses which will be notified of
# impending updates. By default the root account will be notified.
#
EMAIL="<empfänger>@<domain>"
#
# Set DIFF_ONLY to "1" to only output the difference of the current run
# compared to the last run (ie. only new upgrades since the last run). If there
# are no differences, no output/email will be generated. By default, apticron
# will output everything that needs to be upgraded.
#
# DIFF_ONLY="1"
#
DIFF_ONLY="0"
#
# Set LISTCHANGES_PROFILE if you would like apticron to invoke apt-listchanges
# with the --profile option. You should add a corresponding profile to
# /etc/apt/listchanges.conf
#
# LISTCHANGES_PROFILE="apticron"
#
# By default apt-listchanges is run with no profile
#
LISTCHANGES_PROFILE=""
#
# From hostname manpage: "Displays all FQDNs of the machine. This option
# enumerates all configured network addresses on all configured network interâ€
# faces, and translates them to DNS domain names. Addresses that cannot be
# translated (i.e. because they do not have an appropriate reverse DNS
# entry) are skipped. Note that different addresses may resolve to the same
# name, therefore the output may contain duplicate entries. Do not make any
# assumptions about the order of the output."
#
# By default only the first FQDN is used
#
# ALL_FQDNS="1"
ALL_FQDNS="0"
#
# Set SYSTEM if you would like apticron to use something other than the output
# of "hostname -f" for the system name in the mails it generates. This option
# overrides the ALL_FQDNS above.
#
# SYSTEM="foobar.example.com"
#
SYSTEM="<FQDN>"
#
# Set IPADDRESSNUM if you would like to configure the maximal number of IP
# addresses apticron displays. The default is to display 1 address of each
# family type (inet, inet6), if available.
#
IPADDRESSNUM="1"
#
# Set IPADDRESSES to a whitespace separated list of reachable addresses for
# this system. If unset or empty, apticron will try to work these out using
# the "ip" command.
#
# IPADDRESSES="192.0.2.1 2001:db8:1:2:3::1"
#
IPADDRESSES=""
#
# Set NOTIFY_HOLDS="0" if you don't want to be notified about new versions of
# packages on hold in your system. The default behavior is downloading and
# listing them as any other package.
#
# NOTIFY_HOLDS="0"
#
NOTIFY_HOLDS="1"
#
# Set NOTIFY_NEW="0" if you don't want to be notified about packages which
# are not installed in your system. Yes, it's possible! There are some issues
# related to systems which have mixed stable/unstable sources. In these cases
# apt-get will consider for example that packages with "Priority:
# required"/"Essential: yes" in unstable but not in stable should be installed,
# so they will be listed in dist-upgrade output. Please take a look at
# http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=531002#44
#
# NOTIFY_NEW="0"
#
NOTIFY_NEW="1"
#
# Set NOTIFY_NO_UPDATES="1" if you want to be notified when there are no
# new versions. This is useful to assure you that apticron works well.
# By default notifications will be sent only when new versions are available.
#
# NOTIFY_NO_UPDATES="1"
#
NOTIFY_NO_UPDATES="1"
#
# Set CUSTOM_SUBJECT if you want to replace the default subject used in
# the notification e-mails. This may help filtering/sorting client-side e-mail.
# If you want to use internal vars please use single quotes here. Ex:
CUSTOM_SUBJECT='[apticron] $SYSTEM: $NUM_PACKAGES package update(s)'
#
# CUSTOM_SUBJECT=""
#
# Set CUSTOM_NO_UPDATES_SUBJECT if you want to replace the default subject used
# in the no update notification e-mails. This may help filtering/sorting
# client-side e-mail.
# If you want to use internal vars please use single quotes here. Ex:
CUSTOM_NO_UPDATES_SUBJECT='[apticron] $SYSTEM: no updates'
#
# CUSTOM_NO_UPDATES_SUBJECT=""
#
# Set CUSTOM_FROM if you want to replace the default sender by changing the
# 'From:' field used in the notification e-mails.
#
CUSTOM_FROM="<sender>@<domain>"
# Set GPG_ENCRYPT="1" if you want to encrypt the mail being send to
# $EMAIL. apticron will use gpg and the public key of the recipient to encrypt
# the mail. Please note that the $EMAIL value above can't be an alias, since
# gpg will trust it to encrypt the message.
#
GPG_ENCRYPT="0"
Apticron verwendet immer die Datei im /etc/apticron Verzeichnis wenn diese existiert. Sonst nutzt er die aus dem /usr/lib/apticron Verzeichnis.
Wenn du überprüfen möchtest ob Apticron funktioniert, setze folgenden Befehl ab.
sudo apticron
E-Mail Benachrichtigung bei SSH Login
Einleitung
Wenn wir einen Linux Server absichern wollen, gehört eine stetige Kontrolle aus Sicherheitsgründen auch dazu. Hier konfigurieren wir eine E-Mail Benachrichtigung die abgesendet wird sobald sich jemand per SSH auf dem Server einloggt.
Durchführung
Zuerst müssen wir das Paket s-nail installieren.
sudo apt install s-nail -y
Im zweiten Schritt erstellen wir ein Skript welches ausgeführt wird sobald sich jemand auf dem Server einloggt.
nano /opt/skripte/ssh-login.sh
Dort fügen wir folgenden Inhalt ein, das Skript kann natürlich auch gerne angepasst werden.
#!/bin/bash
echo "----------------------------------------------------------------"
echo "Login auf $(hostname) am $(date +%Y-%m-%d) um $(date +%H:%M)"
echo "Benutzer: $USER"
echo "----------------------------------------------------------------"
pinky
Jetzt verändern wir die Datei /etc/profile und fügen dort den Aufrufer des Skriptes hinzu
/opt/skripte/ssh-login.sh | mailx -s "SSH Login auf <server>" <empfänger>@<domain>
Als letztes passen wir noch die Berechtigungen des Skriptes an.
sudo chmod 755 /opt/skripte/ssh-login.sh
Die E-Mails werden jetzt bei einer Anmeldung automatisch an die entsprechende E-Mail Adresse versendet.
Port von sendmail ändern
Einleitung
Manchmal stößt man auf folgendes Problem: Auf einem Server läuft ein Mailserver, z.B. in einem Docker Container und dazu möchte man mit sendmail ggf. Mails versenden. Dazu müssen wir den Port von sendmail verändern.
Anwendung
Zuerst verbinden wir uns mit unseren Server damit wir Konsolenzugriff haben. Dort öffnen wir mit einem Editor unserer Wahl die Konfigurationsdatei.
sudo nano /etc/mail/sendmail.mc
Dort suchen wir nach folgenden Zeilen:
dnl DAEMON_OPTIONS(`Family=inet6, Name=MTA-v6, Port=smtp, Addr=::1')dnl
DAEMON_OPTIONS(`Family=inet, Name=MTA-v4, Port=smtp, Addr=127.0.0.1')dnl
Dort ersetzt du smtp durch die Port Nummer deiner Wahl.
dnl DAEMON_OPTIONS(`Family=inet6, Name=MTA-v6, Port=25000, Addr=::1')dnl
DAEMON_OPTIONS(`Family=inet, Name=MTA-v4, Port=25000, Addr=127.0.0.1')dnl
Als nächstes lässt du dir die Konfigurationsdatei neu erstellen.
sudo m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
Und als letztes startest du sendmail neu, dann sollte dein sendmail jetzt den neuen Port verwenden.
sudo systemctl restart sendmail
SSH Root Login verbieten
Einleitung
Damit wir einen sicheren Linux Server haben, können wir den Root Zugang über SSH auf unserem Server deaktivieren. Wenn Server angegriffen werden, wird zuerst immer der root Benutzer verwendet da dieser auf jedem System eingerichtet ist und volle Berechtigungen hat.
Login deaktivieren
Um den Root Login zu deaktivieren, müssen wir die Konfigurationsdatei des SSH Services editieren. Dazu navigieren wir in das Verzeichnis vom SSH Dienst.
cd /etc/ssh
Dort öffnen wir mit dem Editor unserer Wahl die Konfigurationsdatei.
nano sshd_config
Dort müssen wir nach PermitRootLogin suchen. Wir müssen dort eine Raute vor den Eintrag hinzufügen damit dieser aus kommentiert ist.
Dann starten wir den SSH Server neu.
sudo systemctl restart ssh
Jetzt ist kein Login als Root mehr möglich!
Stelle vorher sicher das ein weiterer Benutzer angelegt ist, mit dem man sich weiterhin am Server anmelden kann.
Apache - Error 404 "Objekt nicht gefunden"
Einleitung
In diesem Beitrag erläutere ich kurz, wie wir das Problem mit dem Apache Fehler 404 "Objekt nicht gefunden", beheben können. Das Problem kann mehrere Ursachen habe, aber diese, die mir aktuell untergekommen sind, zähle ich hier auf.
Fehler beheben
1. Berechtigungen falsch gesetzt
Ein Fehler kann es sein, dass es nicht möglich ist aufgrund fehlender Berechtigungen die Webserver Dateien anzuzeigen. Zu Testzwecken können wir ruhig mal die Berechtigung auf 777 setzen. In Produktivumgebungen sollten die Berechtigungen so gesetzt werden, dass nur die Berechtigungen eingeräumt werden, welche benötigt werden.
Zu den, wie oben angegebenen Testzwecken kann man es mit diesen Berechtigungen mal ausprobieren, ob es dann funktioniert.
chmod 777 -R /pfad/zum/webroot
Wir können dann auch noch den Besitzer der Dateien / Ordner ändern. Apache verwendet Standard-gemäß den Benutzer www-data. Diesem Benutzer werden wir gleich die Besitzerrechte des Ordners verpassen. Dieser kann dann alles mit dem Verzeichnis anstellen.
chown -R www-data:www-data /pfad/zum/webroot
2. Fehlende .htaccess Datei
Ein kleiner, aber dennoch tragischer Fehler kann eine fehlende .htaccess Datei sein. Manchmal kann es bei einem Kopiervorgang vorkommen, dass wir vergessen die .htaccess Datei mitzukopieren. Falls diese fehlt, kann der Webserver manchmal Webserver Dateien nicht öffnen oder PHP-Skripte ausführen.
Die .htaccess Datei enthält Anweisungen für den Apache-Webserver. Ohne diese Datei kann ein Apache Webserver z.B. nicht mit Redirects umgehen.