Anmeldung Registrierung
Auto Hell Dunkel
Erweiterte Suche
  1. Startseite
  2. Podcasts
  3. IT-Berufe-Podcast Podcast
  4. Der eigene Webserver (Teil 3: Linux-Paketverwaltung) – Anwendungsentwickler-Podcast #90
Der eigene Webserver (Teil 3: Linux-Paketverwaltung) – Anwendungsentwickler-Podcast #90

Der eigene Webserver (Teil 3: Linux-Paketverwaltung) – Anwendungsentwickler-Podcast #90

IT-Berufe-Podcast vor 9 Jahren
Zu Sammlung hinzufügen

Du hast noch keine Sammlungen.

Herunterladen (rechte Maustaste) Teilen Fundstellen Kommentare
0:00
34:02
Einige Tipps zur Paketverwaltung unter Linux gibt es in der
neunzigsten Episode des Anwendungsentwickler-Podcasts. TL;DR
Nachdem ich SSH abgesichert habe, richte ich meinen Linux-Webserver
mit hilfreichen Werkzeugen für die Kommandozeile ein und halte die
Konfiguration mit Git fest. Du erfährst, wie du laufende Dienste
und offene Ports prüfst, damit du überflüssige Pakete entfernen
kannst. Mit regelmäßigen Updates schließt du bekannte
Sicherheitslücken; ein nächtlicher Cronjob kann dich auf neue
Paketversionen hinweisen. Kapitelmarken [00:00:00] Einführung in
die Paketverwaltung auf dem eigenen Server [00:01:10] SSH vor
weiteren Arbeiten absichern [00:02:30] Dateien mit wget
herunterladen [00:03:38] Webseiten mit dem Textbrowser Lynx
aufrufen [00:05:39] Dateien mit locate finden und den Index
aktualisieren [00:08:10] DNS-Einträge mit dig prüfen [00:09:13]
Konfigurationsdateien mit Git versionieren [00:10:10] Werkzeuge
unter Debian installieren [00:10:28] Änderungen durch Paketupdates
mit Git nachvollziehen [00:11:50] Das Verzeichnis /etc mit Git
sichern [00:13:31] Überflüssige Dienste und Pakete entfernen
[00:15:09] Dateien verschlüsselt mit SCP übertragen [00:16:14]
Telnet und Samba auf dem Webserver prüfen [00:18:08] Offene Ports
mit netstat untersuchen [00:19:02] Den eigenen Server mit Nmap
scannen [00:20:46] Bekannte Ports und bewusst freigegebene Dienste
[00:21:54] Laufende Prozesse mit ps prüfen [00:22:49] Grenzen der
Prozessprüfung bei Rootkits [00:23:43] Prozesse mit kill beenden
[00:24:55] Paketlisten und installierte Pakete aktualisieren
[00:26:47] Sicherheitslücken durch regelmäßige Updates schließen
[00:27:59] Nächtliche Updateprüfung und E-Mail-Benachrichtigung
[00:28:36] Updates automatisieren und häufig durchführen [00:30:02]
Ausblick auf die Firewall und weitere Serverthemen [00:31:16]
Shownotes und Newsletter [00:32:07] Historische Hörbuchaktion und
Checklisten zur Abschlussprüfung [00:32:53] Linux mit dem Kofler
vertiefen Inhalt Hilfreiche Tools installieren wget: Download von
Dateien über die Kommandozeile lynx: Browser für die Kommandozeile
locate: Suchwerkzeug analog zu Everything (bereits erwähnt in Die
hilfreichsten (Windows-)Tools für Softwareentwickler) dnsutils:
enthält dig für DNS-Anfragen git: Versionsverwaltung (siehe
Einführung in die Versionsverwaltung mit Git (Teil 1)) /etc
versionieren! cd /etc && git init . && git add -A
&& git commit -m "Initial commit" Ungenutzte
Pakete/Programme deinstallieren und Dienste ausschalten FTP,
Telnet, Samba mit netstat oder nmap nach offenen Ports scannen mit
ps -ef nach laufenden Prozessen suchen Pakete aktualisieren apt-get
update && apt-get upgrade Literaturempfehlungen Wie schon
in den letzten beiden Wochen ist die "Linux-Bibel" von Michael
Kofler* mein einziger Literaturtipp. *(direkt beim Rheinwerk-Verlag
bestellen*) Links Permalink zu dieser Podcast-Episode RSS-Feed des
Podcasts vServer bei 1blu* Top 30 Nmap Command Examples For
Sys/Network Admins Offene Ports und Anwendungen finden mit netstat,
lsof und nmap 10 Linux DIG Command Examples for DNS Lookup
apt-get(8) - Linux man page ps(1): report snapshot of current
processes - Linux man page Zusammenfassung SSH zuerst absichern Ich
beginne bei einem neuen Webserver mit SSH, bevor ich weitere
Software installiere. Wenn dabei der Zugang verloren geht, lässt
sich das System über das Backend des Hosters neu installieren, ohne
dass bereits mehrere Stunden Arbeit in anderen Diensten stecken.
Für meine weiteren Schritte funktioniert die Anmeldung mit einem
Public Key, wobei SSH auf einem anderen Port als 22 läuft. Root
werde ich nach der Anmeldung über su. Die SSH-Konfiguration kannst
du mit einem vorhandenen Texteditor wie vi oder nano bearbeiten.
Werkzeuge für die Kommandozeile installieren Auf meinem
Linux-Server arbeite ich ausschließlich über die Kommandozeile.
Dafür installiere ich folgende Pakete: wget: Mit wget URL lädst du
eine Datei herunter, die anschließend lokal auf der Festplatte
liegt. Webanwendungen wie WordPress lade ich als Quellcode
herunter, damit ich selbst bestimmen kann, wie ich sie konfiguriere
und aktualisiere. Lynx: Der Textbrowser erlaubt dir, direkt auf dem
Server Webseiten aufzurufen oder den lokalen Webserver zu testen.
Über Links kannst du auch Downloads starten. Wie gut sich eine
Seite bedienen lässt, hängt unter anderem davon ab, ob sie
barrierefrei aufgebaut ist. locate: Das Werkzeug findet Dateien
anhand einer zuvor aufgebauten Datenbank. Mit updatedb erstellst
beziehungsweise erneuerst du diesen Index. Wenn sich der
Dateibestand verändert, muss die Datenbank erneut eingelesen
werden. Dafür kannst du einen nächtlichen Cronjob einrichten oder
den Befehl manuell ausführen. dnsutils: Unter Debian enthält dieses
Paket das Werkzeug dig, mit dem du DNS-Einträge abfragen kannst,
etwa MX-Records für Mailserver. Ich prüfe damit die
DNS-Konfiguration meiner Domains und suche nach Fehlern. Git: Damit
halte ich die Stände meiner Konfigurationsdateien lokal fest und
kann später nachvollziehen, was sich geändert hat. Unter Debian
installierst du diese Pakete mit einem Befehl: bash apt-get install
wget lynx locate dnsutils git Die Konfiguration mit Git festhalten
Bevor ich am System weiterarbeite, lege ich für /etc ein lokales
Git-Repository an. Ein Remote-Repository ist dafür entbehrlich. Den
ersten funktionsfähigen Stand hältst du so fest: bash cd /etc git
init . git add -A git commit -m "Initial commit" Auch vor
Paketupdates committe ich den aktuellen Stand. Pakete können beim
Aktualisieren Konfigurationsdateien verändern, etwa weil neue
Parameter hinzukommen oder bisherige Einstellungen angepasst
werden. Mit git diff siehst du anschließend, welche Änderungen in
deinen versionierten Dateien aufgetreten sind, und kannst
entscheiden, welche du übernehmen möchtest. Falls beim Bearbeiten
etwas schiefgeht, lassen sich ältere Stände wiederherstellen. Mit
git checkout -- . kannst du Änderungen an bereits versionierten
Dateien auf den zuletzt festgehaltenen Stand zurücksetzen.
Überflüssige Dienste entfernen Je nach gewähltem Serverimage sind
bereits Dienste installiert, die du für deinen Webserver gar nicht
brauchst. Ich entferne solche Pakete, weil erreichbare Dienste
zusätzliche Angriffsmöglichkeiten bieten. Prüfe insbesondere diese
Pakete: FTP: Ein ungeschützter FTP-Server überträgt Daten
unverschlüsselt. Wenn du einen öffentlichen FTP-Dienst betreiben
möchtest, musst du ihn entsprechend absichern. Telnet: Die
Shell-Verbindung läuft unverschlüsselt. Für den Zugang zu meinem
Server verwende ich SSH. Samba: Damit lassen sich unter Linux
Freigaben für ein Windows-Netzwerk bereitstellen. Auf meinem
Webserver entferne ich Samba, sofern es dort keinen vorgesehenen
Zweck erfüllt. Dateien übertrage ich per SCP über die vorhandene
SSH-Verbindung. Unter Windows kannst du dafür beispielsweise WinSCP
verwenden. Dabei stehen dir die Zugangsdaten beziehungsweise
Schlüssel deines SSH-Zugangs zur Verfügung, während die Dateien
verschlüsselt übertragen werden. Offene Ports und laufende Prozesse
prüfen Mit netstat schaust du nach, welche Verbindungen bestehen
und auf welchen Ports dein Server lauscht. Gehe die Liste durch und
prüfe bei jedem Dienst, ob du ihn kennst und nach außen anbieten
möchtest. Zu Beginn sollten der eingerichtete SSH-Zugang und die
von dir ausdrücklich vorgesehenen Dienste erreichbar sein. Bekannte
Beispiele sind HTTP auf Port 80 und SMTP auf Port 25. Für einen
Portscan installiere ich bei Bedarf Nmap. Das Werkzeug kann deinen
eigenen Server auf offene Ports prüfen und anhand der Antworten
erkennen, welche Dienste dahinterstehen. Solche Prüfungen lassen
sich auch später im laufenden Betrieb wiederholen. Mit ps -ef
erhältst du eine Liste der laufenden Prozesse aller Benutzer:innen.
Unbekannte Einträge solltest du untersuchen, wobei Linux selbst
zahlreiche notwendige Systemprozesse ausführt. Auch vergessene
Tests oder noch laufende Skripte können dabei auffallen. Zum
Beenden eines Prozesses dient kill PID. Der Prozess erhält dabei
zunächst die Aufforderung, sich zu beenden. Mit kill -9 PID
erzwingst du sein Ende. Rootkits können sich vor Prozesslisten
verstecken, sodass diese Prüfung allein keinen verlässlichen
Nachweis für ein schadsoftwarefreies System liefert. Pakete
regelmäßig aktualisieren Unter Debian führe ich die Befehle in
dieser Reihenfolge aus: bash apt-get update apt-get upgrade apt-get
update fragt die eingerichteten Paketquellen ab und speichert die
verfügbaren Versionen in lokalen Paketlisten. Danach vergleicht
apt-get upgrade diese Angaben mit den installierten Paketen und
bietet neuere Versionen zum Installieren an. Updates enthalten
unter anderem Sicherheitspatches. Bei einem direkt aus dem Internet
erreichbaren Server können bekannte Lücken in veralteter Software
für Angriffe ausgenutzt werden. Ich lasse deshalb mindestens einmal
pro Nacht einen Cronjob nach neuen Paketversionen suchen. Wenn
Updates verfügbar sind, bekomme ich eine E-Mail und führe das
Upgrade anschließend selbst aus. Du kannst auch das Aktualisieren
automatisieren. Durch häufige Updates bleiben Änderungen an der
Konfiguration überschaubar und lassen sich zeitnah bearbeiten.
Weiterführende Inhalte Als nächstes Thema habe ich die Firewall
vorgesehen. Wenn du deinen eigenen Server administrierst, gehört
auch dazu, dich tiefer mit Linux zu beschäftigen. Dafür empfehle
ich den Kofler, die im Podcast als Linux-Bibel bezeichnete
Fachlektüre. Die Shownotes stehen unter
anwendungsentwicklerpodcast.de/90. Über meinen Newsletter erhältst
du wöchentlich Informationen und Links, auch von meinen IT-Azubis,
sowie kostenlose Checklisten für die Abschlussprüfung. Die erwähnte
Aktion mit 20 Prozent Rabatt auf mein Hörbuch zum Fachgespräch
bezog sich auf die Veröffentlichung am 30. Januar 2017 und die
beiden folgenden Tage. Transkription der gesamten Episode
Automatisch erzeugte Transkription der Episode [0:00] Herzlich
Willkommen zum Anwendungsentwickler-Pod
Episode melden

„Der eigene Webserver (Teil 3: Linux-Paketverwaltung) – Anwendungsentwickler-Podcast #90“

Worum geht es? Danach fragen wir noch nach dem Grund.

Teilen

Mein Archiv

Deine Privatkopie der Folgen, die du nicht verlieren willst.

Podcast-Folgen verschwinden. Feeds werden auf die letzten Episoden gekürzt, Hoster räumen alte Dateien ab, Formate wechseln den Anbieter und lassen ihr Archiv zurück. Mit „Mein Archiv“ sichert podcast.de die Folgen deiner Podcasts für dich — angefangen bei den ältesten, denn die sind zuerst weg.

  • Deine gesicherten Folgen bleiben hörbar, auch wenn das Original offline geht.
  • Auch Folgen, die im heutigen Feed gar nicht mehr stehen — podcast.de kennt sie noch.
  • Herunterladen bleibt möglich, solange die Folge beim Podcaster liegt. Der zählt seine Abrufe wie bisher.
Startet bald

Sei beim Start von Mein Archiv dabei

Mein Archiv ist fast fertig. Trag dich ein, dann bekommst du eine E-Mail, sobald es losgeht – und bist von Anfang an dabei. Wir schreiben dir nur zum Start, keine Werbung, keine Weitergabe deiner Daten.

Du bekommst zuerst eine Bestätigungsmail. Abmelden geht jederzeit. Datenschutz