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!