Shellinabox/Sicherheit: Unterschied zwischen den Versionen
| Zeile 7: | Zeile 7: | ||
== Shellinabox/Sicherheit == | == Shellinabox/Sicherheit == | ||
Shellinabox ermöglicht es Benutzern, sich mit ihrem Benutzernamen und Passwort anzumelden und gewährt ihnen Zugriff auf ihre Anmelde-Shell, genau wie beim SSH-Fernzugriff | |||
* Während Shellinabox für Systemadministratoren sehr praktisch ist, kann es für Hacker einen einfachen Einstiegspunkt bieten, wenn es nicht ordnungsgemäß gesichert ist | * Während Shellinabox für Systemadministratoren sehr praktisch ist, kann es für Hacker einen einfachen Einstiegspunkt bieten, wenn es nicht ordnungsgemäß gesichert ist | ||
| Zeile 17: | Zeile 14: | ||
* Im Folgenden werden fünf einfache Maßnahmen beschrieben, mit denen Sie die „Shellinabox-Sicherheit“ erhöhen können | * Im Folgenden werden fünf einfache Maßnahmen beschrieben, mit denen Sie die „Shellinabox-Sicherheit“ erhöhen können | ||
* Bevor wir beginnen, sollten Sie wissen, wie Shellinabox und Apache gestartet, gestoppt und neu gestartet werden | * Bevor wir beginnen, sollten Sie wissen, wie Shellinabox und Apache gestartet, gestoppt und neu gestartet werden | ||
Verwenden Sie die folgenden Befehle, um Shellinabox und Apache neu zu starten | |||
sudo service shellinabox reload | |||
sudo service apache2 reload | |||
Um zu erfahren, wie Shellinabox mithilfe einfacher und praktischer Aliase gestartet, gestoppt und neu gestartet werden kann, [https://www.smarthomebeginner.com/create-shortcut-to-commands-using-bashaliases-in-ubuntu/ siehe diesen Beitrag] | Um zu erfahren, wie Shellinabox mithilfe einfacher und praktischer Aliase gestartet, gestoppt und neu gestartet werden kann, [https://www.smarthomebeginner.com/create-shortcut-to-commands-using-bashaliases-in-ubuntu/ siehe diesen Beitrag] | ||
Version vom 17. November 2024, 12:05 Uhr
Sicherheit
Der Daemon verwendet Techniken zur Privilegientrennung, um Privilegien frühzeitig zu löschen. Er erkennt setuid-Flags und schränkt einige Vorgänge ein, wenn er als setuid-Anwendung gestartet wird.
Trotz dieser Sicherheitsfunktionen könnte ein Fehler dazu führen, dass ein entschlossener Angreifer erweiterte Berechtigungen erhält. Es wird daher dringend davon abgeraten, das setuid-Flag für die Binärdatei zu setzen.
Die erwartete Bereitstellung erfolgt über ein System-rc-Skript, das von /sbin/init gestartet wird. Für zusätzliche Sicherheit sollten die Optionen --group und --user verwendet werden, um zu einem dedizierten Benutzer zu wechseln.
Shellinabox/Sicherheit
Shellinabox ermöglicht es Benutzern, sich mit ihrem Benutzernamen und Passwort anzumelden und gewährt ihnen Zugriff auf ihre Anmelde-Shell, genau wie beim SSH-Fernzugriff
- Während Shellinabox für Systemadministratoren sehr praktisch ist, kann es für Hacker einen einfachen Einstiegspunkt bieten, wenn es nicht ordnungsgemäß gesichert ist
- Schritte zur Erhöhung der Shellinabox-Sicherheit
Es gibt mehrere Möglichkeiten, Ihre Shellinabox-Installation zu sichern
- Im Folgenden werden fünf einfache Maßnahmen beschrieben, mit denen Sie die „Shellinabox-Sicherheit“ erhöhen können
- Bevor wir beginnen, sollten Sie wissen, wie Shellinabox und Apache gestartet, gestoppt und neu gestartet werden
Verwenden Sie die folgenden Befehle, um Shellinabox und Apache neu zu starten
sudo service shellinabox reload sudo service apache2 reload
Um zu erfahren, wie Shellinabox mithilfe einfacher und praktischer Aliase gestartet, gestoppt und neu gestartet werden kann, siehe diesen Beitrag
1. Ändern des Standard-Überwachungsports
Shellinabox lauscht standardmäßig auf Port 4200
- Sie können Shellinabox über http://localhost:4200 aufrufen
- Das Problem ist, dass auch Hacker dies wissen
- Wenn sie also Ihre IP-Adresse kennen, können sie auf Ihre Shellinabox zugreifen, indem sie http://XXX.XXX.XXX.XXX:4200 aufrufen, wobei XXX.XXX.XXX.XXX für Ihre IP-Adresse steht
- Wenn Sie den Standard-Überwachungsport in einen zufälligen Port ändern, ist es für Hacker schwieriger, auf Ihre Shellinabox zuzugreifen
Um dies unter Linux/Ubuntu zu tun, müssen Sie /etc/default/shellinabox bearbeiten
sudo nano /etc/default/shellinabox
Suchen Sie nach den folgenden Zeilen und ändern Sie die Portnummer von der Standardnummer 4200 in einen anderen zufälligen Port (z. B. 6125)
# TCP port that shellinboxd's webserver listens on SHELLINABOX_PORT=6125
Speichern und beenden
- Starten Sie Shellinabox wie oben beschrieben neu
- Ihre Shellinabox sollte nun unter http://localhost:6125 verfügbar sein
- Wenn Sie Portweiterleitung einrichten auf Ihrem Router/DHCP-Server haben, können Sie auf Ihre Shellinabox über http://XXX.XXX.XXX.XXX:6125 zugreifen, wobei XXX.XXX.XXX.XXX Ihre externe IP-Adresse ist
- Wenn Sie einen Domainnamen eingerichtet haben, der auf Ihre IP-Adresse verweist, können Sie Ihre Shellinabox über http://domain.com:6125 erreichen
2. SSL aktivieren
Beim Zugriff auf die Shellinabox über http werden alle Informationen als unverschlüsselte Daten gesendet
- Dies kann gefährlich sein, wenn Sie über das Internet auf Ihre Shellinabox zugreifen
- Die Lösung besteht darin, die Daten während der Übertragung zu verschlüsseln, wodurch das Ausspähen durch Hacker erschwert wird
Um den HTTPS-Zugriff auf Linux-Servern mit Apache zu aktivieren und durchzusetzen, installieren Sie die folgenden Laufzeitbibliotheken
sudo apt-get install libssl0.9.8 libpam0g openssl
Starten Sie Ihre Shellinabox und den Apache-Server neu
- Sie sollten nun nur noch über https://localhost:6125 darauf zugreifen können
- Beachten Sie, dass Sie möglicherweise ein SSL-Zertifikat generieren lassen müssen
- Wenn Sie Ihr eigenes Zertifikat generieren möchten, finden Sie weitere Informationen unter Apache-Dokumentation
- Standardmäßig installiert das System selbstsignierte Zertifikate für Sie
- Diese Zertifikate lösen wahrscheinlich Warnungen aus, wenn Sie Ihren Browser auf die Website richten
- Empfohlene Leitfäden Secure Shell/SSH
- SSH-Beherrschung: OpenSSH, PuTTY, Tunnels und Schlüssel
- SSH, The Secure Shell: The Definitive Guide
- The Linux Command Line, 2nd Edition
3. Beschränken Sie Shellinabox auf Localhost
Sie können den Zugriff auf Shellinabox auf Localhost beschränken
- Mit anderen Worten: Sie können nur von dem System aus auf Shellinabox zugreifen, auf dem es ausgeführt wird
Um dies unter Linux/Ubuntu zu tun, müssen Sie /etc/default/shellinabox wie unten gezeigt bearbeiten
sudo editor /etc/default/shellinabox
Suchen Sie die folgende Zeile und fügen Sie --localhost-only am Ende hinzu (wie unten dargestellt)
SHELLINABOX_ARGS="--no-beep --localhost-only"
Speichern Sie die Zeile und starten Sie Shellinabox neu
- Dadurch kann zwar die Sicherheit von Shellinabox erhöht werden, allerdings wird der Zugriff auf Ihre Shellinabox von anderen Systemen und der Fernzugriff über das Internet verhindert
- Dies kann sehr lästig sein
- Sie können diesen Nachteil beheben, indem Sie den Apache-Reverse-Proxy einrichten, wie in Schritt 4 beschrieben
4. Einrichten des Shellinabox-Apache-Reverse-Proxys
Um die Sicherheit Ihrer Shellinabox noch weiter zu erhöhen, können Sie einen Apache Reverse Proxy einrichten
Dazu müssen Sie zunächst mod_proxy auf Apache aktivieren
sudo a2enmod proxy
Erstellen Sie dann eine Sicherungskopie von /etc/apache2/mods-available/proxy.conf
sudo cp -a /etc/apache2/mods-available/proxy.conf /etc/apache2/mods-available/proxy.conf.backup
Bearbeiten Sie als Nächstes /etc/apache2/mods-available/proxy.conf und stellen Sie sicher, dass sie wie unten dargestellt aussieht
- Fügen Sie bei Bedarf vorhandene Zeilen hinzu und bearbeiten Sie sie
Speichern und beenden
- Starten Sie Shellinabox und Apache neu
- Nun können Sie über https://localhost/shell oder https://XXX.XXX.XXX.XXX/shell auf Ihre Shellinabox zugreifen (über das Internet unter Verwendung Ihrer IP-Adresse – erfordert Portweiterleitung)
- Die letzte Zeile im obigen Code ermöglicht Ihnen den Zugriff auf Shellinabox über https://domain.com/shell
- Ignorieren Sie sie, wenn Sie keinen Domainnamen haben, der auf Ihre IP-Adresse verweist
Dadurch wird die Sicherheit von Shellinabox erhöht, da der Shellinabox-Port nicht nach außen offengelegt wird
- Empfohlene Leitfäden Sichere Shell/SSH
- SSH-Beherrschung: OpenSSH, PuTTY, Tunnels und Schlüssel
- SSH, The Secure Shell: The Definitive Guide
- The Linux Command Line, 2nd Edition
Apache-Authentifizierung
Zu guter Letzt aktivieren Sie die Authentifizierung
- Jedes Mal, wenn Sie auf Shellinabox zugreifen, werden Sie nach einem Benutzernamen und einem Passwort gefragt, wie in der folgenden Abbildung dargestellt
Dazu müssen Sie zunächst eine .htpasswd-Datei erstellen
- Weitere Informationen finden Sie in der Apache-Dokumentation
- Am einfachsten ist es jedoch, einen der online verfügbaren htpasswd-Generatoren zu verwenden
Nach Eingabe von Benutzername und Passwort werden zwei Codeblöcke generiert
- Kopieren Sie den Inhalt des .htpasswd-Codeblocks und speichern Sie ihn unter /etc/apache2/.htpasswd_siab
- Kopieren Sie anschließend den Inhalt des .htaccess-Codeblocks und fügen Sie ihn wie unten dargestellt zu /etc/apache2/mods-available/proxy.conf hinzu
Speichern und beenden
- Starten Sie Shellinabox und Apache neu
- Sie sollten jedes Mal, wenn Sie versuchen, auf Shellinabox zuzugreifen, zur Eingabe eines Kennworts aufgefordert werden
Nachdem Sie alle Konfigurationen/Bearbeitungen abgeschlossen haben, führen Sie den folgenden Befehl aus, um sicherzustellen, dass Ihre neuen Shellinabox-Standardwerte aktualisiert werden
sudo update-rc.d shellinabox defaults
Starten Sie Ihren Apache und Shellinabox ein letztes Mal neu
- Jeder Schritt fügt eine zusätzliche Sicherheitsebene hinzu
- Zusammen erhöhen sie die Sicherheit Ihrer Shellinabox und machen sie nahezu undurchdringlich
Das war's. Install Shellinabox und befolgen Sie die oben genannten Schritte, um die Sicherheit von Shellinabox zu erhöhen
- Genießen Sie die Bequemlichkeit des webbasierten Terminalemulators