Ersteinrichtung eines Fedora 22 Servers

Einführung

Wenn Sie sich zum ersten Mal bei einem neuen Fedora 22 anmelden, kann es nicht als Produktionssystem verwendet werden. Es werden eine Reihe von Schritten empfohlen, um die Firewall anzupassen und zu sichern, z. B. das Aktivieren einer Firewall.

Dieses Tutorial zeigt Ihnen, wie Sie einer Neuinstallation eines Fedora 22-Servers ein besseres Sicherheitsprofil verleihen und einsatzbereit sind.

Voraussetzungen

Um diesem Tutorial zu folgen, benötigen Sie:

  • Ein Fedora 22-Tröpfchen mit Root-SSH-Schlüsseln.

Sie können dies Abschnitt des SSH-Schlüssel-Tutorials zum Erstellen von Schlüsseln, wenn Sie nicht über diese verfügen, und https://www.digitalocean.com/community/tutorials/how-to-configure-ssh-key-based-authentication-on-a -linux-server # wie-Sie-Ihren-öffentlichen-Schlüssel-beim-Erstellen-Ihres-Servers-einbetten [dieser Abschnitt] des gleichen Tutorials, um Ihren SSH-Schlüssel automatisch in das Root-Konto Ihres Servers einzubetten, wenn Sie Ihr Droplet erstellen.

Schritt 1 - Erstellen eines Standardbenutzerkontos

Melden Sie sich zuerst als * root * bei Ihrem Server an.

ssh root@

Der Betrieb als Root stellt ein Sicherheitsrisiko dar. In diesem Schritt richten wir ein sudo-Benutzerkonto ohne Rootberechtigung ein, das für System- und andere Computeraufgaben verwendet werden kann. Der in diesem Tutorial verwendete Benutzername ist * sammy *, Sie können jedoch einen beliebigen Namen verwenden.

Geben Sie zum Hinzufügen des Benutzers Folgendes ein:

adduser

Geben Sie mit dem folgenden Befehl ein sicheres Kennwort für den Benutzer an. Sie werden aufgefordert, das Passwort zweimal einzugeben.

passwd

Fügen Sie dann den Benutzer der Radgruppe hinzu, die ihm Sudo-Berechtigungen verleiht.

gpasswd -a  wheel

Melden Sie sich von Ihrem Server ab und fügen Sie Ihren SSH-Schlüssel dem neuen Benutzerkonto hinzu, indem Sie Folgendes auf Ihrem lokalen Computer ausführen.

ssh-copy-id @

Weitere Informationen zum Kopieren Ihrer SSH-Schlüssel von Ihrem lokalen Computer auf Ihren Server finden Sie unter https://www.digitalocean.com/community/tutorials/how-to-configure-ssh-key-based-authentication-on -a-linux-server # Kopieren-eines-öffentlichen-Schlüssels-auf-Ihren-Server [dieser Abschnitt] des SSH-Tutorials.

Melden Sie sich abschließend als neuer Benutzer ohne Rootberechtigung bei sudo an. Sie werden nicht zur Eingabe eines Passworts aufgefordert, da dieses Konto jetzt über SSH-Schlüssel verfügt.

ssh @

Schritt 2 - Deaktivieren der Root-Anmeldung und der Kennwortauthentifizierung

In diesem Schritt werden SSH-Anmeldungen durch Deaktivieren der Stammanmeldungen und der Kennwortauthentifizierung sicherer.

Zum Bearbeiten der Konfigurationsdateien müssen Sie einen Texteditor installieren. Wir werden + nano + verwenden, aber Sie können das verwenden, was Ihnen am besten gefällt.

Wenden Sie zunächst verfügbare Updates an, indem Sie Folgendes verwenden:

sudo dnf update

Dann, um + nano + zu installieren, geben Sie ein:

sudo dnf install -y nano

Öffnen Sie nun die Konfigurationsdatei des SSH-Daemons zum Bearbeiten.

sudo nano /etc/ssh/sshd_config

Suchen Sie in dieser Datei nach der Direktive "+ PermitRootLogin ". Entfernen Sie das Kommentarzeichen (dh entfernen Sie das Anfangszeichen " # +") und setzen Sie es auf "* no *".

PermitRootLogin no

Suchen Sie in ähnlicher Weise nach der Direktive "+ PasswordAuthentication +" und setzen Sie sie ebenfalls auf "* no *".

PasswordAuthentication no

Speichern und beenden Sie die Datei und laden Sie die Konfiguration erneut, um die Änderungen zu übernehmen.

sudo systemctl reload sshd

Wenn jemand versucht, sich jetzt als * root * anzumelden, sollte die Antwort "+ Berechtigung verweigert (publickey, gssapi-keyex, gssapi-with-mic) +" lauten.

[[step-3-­--configuring-the-time-zone]] === Schritt 3 - Konfigurieren der Zeitzone

In diesem Schritt erfahren Sie, wie Sie die Systemuhr auf Ihre lokale Zeitzone einstellen. Die Standarduhr ist auf UTC eingestellt.

Alle bekannten Zeitzonen befinden sich im Verzeichnis + / usr / share / zoneinfo / +. Schauen Sie sich die Dateien und Verzeichnisse in + / usr / share / zoneinfo / + an.

ls /usr/share/zoneinfo/

Um die Uhr für die Verwendung der lokalen Zeitzone einzustellen, suchen Sie Ihr Land oder Ihr geografisches Gebiet in diesem Verzeichnis, suchen Sie die Zonendatei darunter und erstellen Sie eine symbolische Verknüpfung von dort zum Verzeichnis "+ / etc / localtime ". Wenn Sie sich beispielsweise im zentralen Teil der USA befinden und die Zeitzone * Central * oder * CST * ist, lautet die Zonendatei " / usr / share / zoneinfo / US / Central +".

Erstellen Sie eine symbolische Verknüpfung von Ihrer Zonendatei zu "+ / etc / localtime +".

sudo ln -sf /usr/share/zoneinfo/ /etc/localtime

Stellen Sie sicher, dass die Uhr jetzt auf die Ortszeit eingestellt ist, indem Sie die Ausgabe des Befehls "+ Datum +" anzeigen.

date

Die Ausgabe sieht ungefähr so ​​aus:

Wed Mar 25 14:41:20 CST 2015

Das * CST * in dieser Ausgabe bestätigt, dass es Zentralzeit ist.

Schritt 4 - Aktivieren einer Firewall

Auf einem neuen Fedora 22-Server ist keine Firewall-Anwendung aktiv. In diesem Schritt erfahren Sie, wie Sie die IPTables-Firewall-Anwendung aktivieren und sicherstellen, dass die Laufzeitregeln nach einem Neustart bestehen bleiben.

Das IPTables-Paket ist bereits installiert, aber um es zu aktivieren, müssen Sie das Paket + iptables-services + installieren.

sudo dnf install -y iptables-services

Anschließend können Sie IPTables aktivieren, damit es beim Start automatisch gestartet wird.

sudo systemctl enable iptables

Starten Sie als Nächstes IPTables.

sudo systemctl start iptables

IPTables auf Fedora 22 wird mit einem Standardregelwerk ausgeliefert. Eine dieser Regeln erlaubt SSH-Verkehr. Geben Sie Folgendes ein, um die Standardregeln anzuzeigen:

sudo iptables -L

Die Ausgabe sollte lauten:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
ACCEPT     icmp --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:ssh
REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Diese Regeln sind Laufzeitregeln und gehen verloren, wenn das System neu gestartet wird. Geben Sie Folgendes ein, um die aktuellen Laufzeitregeln in einer Datei zu speichern, damit sie nach einem Neustart bestehen bleiben:

sudo /usr/libexec/iptables/iptables.init save

Die Regeln werden nun in einer Datei mit dem Namen "+ iptables " im Verzeichnis " / etc / sysconfig +" gespeichert.

Schritt 5 (Optional) - Zulassen von HTTP- und HTTPS-Verkehr

In diesem Abschnitt erfahren Sie, wie Sie die Firewall-Regeln bearbeiten, um Dienste für die Ports 80 (HTTP) und 443 (HTTPS) zuzulassen.

Die Standardregeln für IPTables lassen standardmäßig SSH-Datenverkehr zu. HTTP und sein relativ sicherer Verwandter HTTPS sind jedoch Dienste, die von vielen Anwendungen verwendet werden. Möglicherweise möchten Sie daher zulassen, dass diese auch die Firewall passieren.

Öffnen Sie zum Fortfahren die Firewall-Regeldatei, indem Sie Folgendes eingeben:

sudo nano /etc/sysconfig/iptables

Sie müssen lediglich zwei Regeln hinzufügen, eine für Port 80 und eine für Port 443 nach der Regel für SSH-Verkehr (Port 22). Die roten Linien unten sind diejenigen, die Sie hinzufügen werden. Die Zeilen davor und danach sind für den Kontext enthalten, damit Sie leichter finden, wo Sie die neuen Regeln hinzufügen können.

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT


-A INPUT -j REJECT --reject-with icmp-host-prohibited

Starten Sie IPTables neu, um den neuen Regelsatz zu aktivieren.

sudo systemctl restart iptables

Schritt 6 (Optional) - Installieren von Mlocate

Der Befehl + locate + ist ein sehr nützliches Hilfsprogramm, um den Speicherort von Dateien im System zu ermitteln. Um beispielsweise eine Datei mit dem Namen * example * zu finden, geben Sie Folgendes ein:

locate example

Dadurch wird das Dateisystem gescannt und der oder die Speicherorte der Datei auf Ihrem Bildschirm gedruckt. Es gibt auch erweiterte Möglichkeiten, + locate + zu verwenden.

Um den Befehl auf Ihrem Server verfügbar zu machen, müssen Sie zuerst das Paket + mlocate + installieren.

sudo dnf install -y mlocate

Führen Sie dann den Befehl + updatedb + aus, um die Suchdatenbank zu aktualisieren.

sudo updatedb

Danach sollten Sie in der Lage sein, mit + locate + eine Datei nach Namen zu finden.

Fazit

Nach Abschluss des letzten Schritts sollte Ihr Fedora 22-Server konfiguriert, relativ sicher und einsatzbereit sein!