Benutzer-Werkzeuge

Webseiten-Werkzeuge


ubuntu:18-04_server_install

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
ubuntu:18-04_server_install [2019/02/07 23:50] – [Firewall] Installation Sebastian Hetzelubuntu:18-04_server_install [2019/06/27 23:02] (aktuell) – [Reaktivierung von ifupdown] Deaktivierung weiterer Dienst Sebastian Hetzel
Zeile 3: Zeile 3:
 An dieser Stelle ist das Basis-Setup bereits durchgeführt. An dieser Stelle ist das Basis-Setup bereits durchgeführt.
  
 +**Hinweis zur Ubuntu-18.04-Installations-CD / ISO:** \\ Wird das Setup auf Deutsch umgestellt, dann ist es nicht möglich, manuell eine IP-Konfiguration während des Setups zu definieren. Dies scheint ein Bug zu sein, da die Möglichkeit bei der Installation mit der Locale "EN-US" besteht!
 +===== APT-Paketserver =====
 +
 +Ändert die APT-Quelle von den regionalen Paketserver auf die Hauptserver von Ubuntu.
 +
 +<code>
 +# sed -i 's|http://de.|http://|g' /etc/apt/sources.list
 +</code>
 +===== Nervig: SSH Connection timeout =====
 +
 +Man editiere /etc/ssh/sshd_config
 +
 +<file | /etc/ssh/sshd_config>
 +[...]
 +ClientAliveInterval 60
 +ClientAliveCountMax 15
 +[...]
 +</file>
 +
 +Der Wert ''ClientAliveInterval'' gibt an, in welchen Zeitabständen der Server KeepAlive-Anfragen an den Client sendet in Sekunden. ''ClientAliveCountMax'' definiert, wie oft er dies tut, bevor die Verbindung wegen Inaktivität getrennt wird.
 +
 +<code>
 +60 sec * 15 = 900 sec
 +900 sec / 60 = 15 min
 +</code>
 +===== Bug: "Failed to connect to https://changelogs.ubuntu.com/meta-release-lts"  =====
 +
 +<code>
 +Failed to connect to https://changelogs.ubuntu.com/meta-release-lts. Check your Internet connection or proxy settings
 +</code>
 +
 +{{:ubuntu:motd_upgrade_message_error.png?|}}
 +
 +Was ist zu tun? - Folgende Befehle mit Root-Rechten ausführen:
 +
 +<code>
 +rm /var/lib/ubuntu-release-upgrader/release-upgrade-available
 +/etc/update-motd.d/91-release-upgrade
 +</code>
 ===== Netzwerkkonfiguration ===== ===== Netzwerkkonfiguration =====
  
Zeile 23: Zeile 62:
 ===== Reaktivierung von ifupdown ===== ===== Reaktivierung von ifupdown =====
  
-Um netplan zu deaktivieren / deinstallieren, muss lediglich das Paket ifupdown installiert werden:+Um netplan.io zu deaktivieren, muss lediglich das Paket ifupdown installiert werden. **Die Deinstallation von netplan.io ist nicht empfehlenswert**, insbesondere dann nicht, wenn die Deaktivierung via SSH vorgenommen wird. Nach der Deinstallation ist ein Zugriff via IP nicht mehr möglich. Es muss auf die Konsole ausgewichen werden!
  
 <code> <code>
Zeile 56: Zeile 95:
 systemctl stop systemd-resolved.service systemctl stop systemd-resolved.service
 systemctl mask systemd-resolved.service systemctl mask systemd-resolved.service
 +</code>
 +
 +<code>
 +systemctl disable systemd-networkd-wait-online.service
 +systemctl stop systemd-networkd-wait-online.service
 +systemctl mask systemd-networkd-wait-online.service
 </code> </code>
  
 <code>reboot</code> <code>reboot</code>
 +
 +===== IPv6 abschalten =====
 +
 +<file | /etc/sysctl.conf>
 +[...]
 +#disable ipv6
 +net.ipv6.conf.all.disable_ipv6 = 1
 +net.ipv6.conf.default.disable_ipv6 = 1
 +net.ipv6.conf.lo.disable_ipv6 = 1
 +</file>
  
 ===== NTP Client ===== ===== NTP Client =====
Zeile 197: Zeile 252:
  
 ==== Installation ==== ==== Installation ====
-Die Pakete "iptables-persistent" und "netfilter-persistent" stehen in direkter Abhängigkeit.+ 
 +Die Pakete "''iptables-persistent''" und "''netfilter-persistent''" stehen in direkter Abhängigkeit und müssen daher beide installiert werden.
  
 <code> <code>
Zeile 204: Zeile 260:
 </code> </code>
  
 +Ubuntu kommt von Hause aus mit dem Paket ''ufw'', ebenfalls eine auf iptables-basierende Firewall. Den Job übernimmt nun netfilter-persistent, daher deinstalliere ich es:
  
 +<code>
 +aptitude purge ufw
 +</code>
 +
 +==== Konfiguration / Regelwerk ====
 +
 +Um ein Regelwerk zu kreieren, empfehle ich, ein Bash-Skript mit iptables-Befehlen zu schreiben. Sobald dieses ausgeführt worden ist, muss das Regelwerk abgespeichert werden. Dies geschieht mit folgendem Befehl:
 +
 +<code>
 +netfilter-persistent save
 +</code>
 +
 +Netfilter erstellt nun unter ''/etc/iptables'' zwei Dateien, ''rules.v4'' und ''rules.v6''. Die Dateien add-blocked.ips sowie blocked.ips stammen von einem eigenen Erweiterungskript, mit dem sich IP-Adressen einfach einer Sperrliste hinzufügen lassen. Darauf werde ich hier nicht weiter eingehen.
 +
 +<code>
 +ll /etc/iptables/
 +insgesamt 24
 +drwxr-xr-x  2 root root 4096 Feb  7 23:47 ./
 +drwxr-xr-x 99 root root 4096 Feb  7 23:18 ../
 +-rwxr-xr-x  1 root root  742 Feb  7 23:43 add-blocked.ips*
 +-rw-r--r--  1 root root    0 Feb  7 23:18 blocked.ips
 +-rw-r-----  1 root root 4189 Feb  7 23:46 rules.v4
 +-rw-r-----  1 root root  183 Feb  7 23:46 rules.v6
 +</code>
 +
 +Die Firewall sollte nun bereits einsatzfähig sein.
 +
 +==== Logfile ====
 +
 +Dummerweise schreibt iptables das syslog voll, welches somit unübersichtlich wird. Mit Hilfe des rsyslogd leite ich die Ausgaben in eine eigene Datei um:
 +
 +<code>vi /etc/rsyslog.d/25-iptables.conf</code>
 +
 +Damit dieser Weg funktioniert, habe ich mittels des Parameters --log-prefix  von iptables der Ausgabe das Präfix "IPT:" hinzugefügt. Das könnnen wir uns als Filter zur Nutze machen.
 +
 +<file | /etc/rsyslog.d/25-iptables.conf>
 +:msg,contains,"IPT:" -/var/log/iptables.log
 +& ~
 +</file>
 +
 +Beim ersten Mal muss die Datei erstellt werden und mit Rechten für den rsyslogd versehen werden.
 +
 +<code>
 +touch /var/log/iptables.log
 +chown syslog.adm /var/log/iptables.log
 +</code>
 +
 +Die Änderungen werden erst nach einem Dienstneustart übernommen.
 +
 +<code>service rsyslog restart</code>
 +
 +Das Logfile wird schnell groß und sollter daher rotiert werden:
 +
 +<file | /etc/logrotate.d/iptables>
 +/var/log/iptables.log
 +{
 +        rotate 7
 +        daily
 +        missingok
 +        notifempty
 +        delaycompress
 +        compress
 +        create 640 syslog adm
 +        sharedscripts
 +}
 +</file>
 +
 +===== Fail2Ban =====
 +
 +Fail2Ban sollte meiner Meinung nach auf jeder Maschine laufen, die über SSH im Internet administriert wird. Natürlich ist die Absicherung weiterer Dienste wie SMTP, FTP, usw. ebenso sinnvoll.
 +
 +==== Installation und erste Konfiguration ====
 +
 +<code>
 +# aptitude install fail2ban
 +</code>
 +
 +<file >
 +[...]
 +
 +# "ignoreip" can be a list of IP addresses, CIDR masks or DNS hosts. Fail2ban
 +# will not ban a host which matches an address in this list. Several addresses
 +# can be defined using space (and/or comma) separator.
 +#ignoreip = 127.0.0.1/8 ::1
 +ignoreip = 127.0.0.1/8
 +
 +[...]
 +
 +# External command that will take an tagged arguments to ignore, e.g. <ip>,
 +# and return true if the IP is to be ignored. False otherwise.
 +#
 +# ignorecommand = /path/to/command <ip>
 +ignorecommand =
 +
 +# "bantime" is the number of seconds that a host is banned.
 +bantime  = 86400
 +
 +# A host is banned if it has generated "maxretry" during the last "findtime"
 +# seconds.
 +findtime  = 600
 +
 +# "maxretry" is the number of failures before a host get banned.
 +maxretry = 6
 +
 +[...]
 +
 +#
 +# JAILS
 +#
 +
 +#
 +# SSH servers
 +#
 +
 +[sshd]
 +enabled = true
 +# To use more aggressive sshd modes set filter parameter "mode" in jail.local:
 +# normal (default), ddos, extra or aggressive (combines all).
 +# See "tests/files/logs/sshd" or "filter.d/sshd.conf" for usage example and details.
 +#mode   = normal
 +port    = 4444
 +logpath = %(sshd_log)s
 +backend = %(sshd_backend)s
 +
 +[...]
 +</file>
 +==== IP entsperren ====
 +
 +<code>
 +# fail2ban-client set <JAIL> unbanip <IP>
 +</code>
ubuntu/18-04_server_install.1549579853.txt.gz · Zuletzt geändert: von Sebastian Hetzel

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki