
Ich möchte einen OpenSSH-Server auf Ubuntu installieren. Wie geht das?
Ich muss folgendes tun:
OpenSSH-Server einrichten
Einrichten eines öffentlichen und privaten SSH-Schlüsselpaars für den Benutzer
Passwort-Login deaktivieren
Root-Benutzer aktivieren
Einrichten eines öffentlichen und privaten SSH-Schlüsselpaars für den Root-Benutzer
Passwort einrichten
Antwort1
Gehen Sie zum Terminal und geben Sie ein:
sudo su
aptitude install openssh-server openssh-client
Testen der Installation
ps -A | grep sshd
Wenn die Ausgabe etwa so aussieht:
<some number> ? 00:00:00 sshd
Dann läuft der SSH-Daemon.
Geben Sie erneut im Terminal ein:
ss -lnp | grep sshd
Wenn die Ausgabe etwa so aussieht:
0 128 :::22 :::* users:(("sshd",16893,4))
0 128 *:22 *:* users:(("sshd",16893,3))
Dann bedeutet es, dass der SSH-Daemon auf eingehende Verbindungen wartet
Nun bearbeiten wir die Konfigurationsdatei. Als erstes machen wir ein Backup der Originaldatei.
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.factory-defaults
Nun öffnen wir die Konfigurationsdatei um sie zu bearbeiten
sudo gedit /etc/ssh/sshd_config
Schwache Passwörter sind leicht zu erraten. Die beste Vorgehensweise besteht darin, SSH-Schlüssel anstelle von Passwörtern zu verwenden.
Daher deaktivieren wir die Kennwortauthentifizierung vollständig.
Gehe zur Zeile
#PasswordAuthentication yes
und ersetzen Sie es durch
PasswordAuthentication no
Durch die Aktivierung der Weiterleitung erhalten Angreifer, die Passwörter bereits erraten haben, mehr Möglichkeiten.
Also deaktivieren wir es. Es gibt uns ein wenig Sicherheit
Zu den Zeilen
AllowTcpForwarding yes
X11Forwarding yes
und ersetzen Sie sie durch
AllowTcpForwarding no
X11Forwarding no
Wir können bestimmten Benutzern die Anmeldung ausdrücklich erlauben oder verweigern.
Dazu müssen wir folgende Zeilen am Ende der Konfigurationsdatei einfügen.
AllowUsers Fred Wilma
DenyUsers Dino Pebbles
Für eine optimale Leistung des Laptops lassen wir zwei ausstehende Verbindungen zu. Zwischen der dritten und zehnten Verbindung beginnt das System, Verbindungen von 30 % bis 100 % bei der zehnten gleichzeitigen Verbindung nach dem Zufallsprinzip zu trennen. Dies kann mit der folgenden Zeile erfolgen
MaxStartups 2:30:10
Um weitere Fehler und andere nützliche Informationen zu protokollieren, ändern wir die Zeile
LogLevel INFO
in LogLevel VERBOSE
Um unerfahrene Angreifer abzuschrecken, können wir ein Banner anzeigen Wir entfernen den Hashtag von der Vorderseite der Zeile
#Banner /etc/issue.net
um es zu schaffen
Banner /etc/issue.net
Dann gehen wir zum Terminal und geben ein:
sudo gedit /etc/issue.net
***************************************************************************
NOTICE TO USERS
This computer system is the private property of its owner, whether
individual, corporate or government. It is for authorized use only.
Users (authorized or unauthorized) have no explicit or implicit
expectation of privacy.
Any or all uses of this system and all files on this system may be
intercepted, monitored, recorded, copied, audited, inspected, and
disclosed to your employer, to authorized site, government, and law
enforcement personnel, as well as authorized officials of government
agencies, both domestic and foreign.
By using this system, the user consents to such interception, monitoring,
recording, copying, auditing, inspection, and disclosure at the
discretion of such personnel or officials. Unauthorized or improper use
of this system may result in civil and criminal penalties and
administrative or disciplinary action, as appropriate. By continuing to
use this system you indicate your awareness of and consent to these terms
and conditions of use. LOG OFF IMMEDIATELY if you do not agree to the
conditions stated in this warning.
****************************************************************************
Nun speichern und schließen wir die Konfigurationsdatei und starten ssh neu, indem wir im Terminal Folgendes eingeben:
systemctl restart ssh
Als nächstes richten wir SSH-Schlüssel ein. Es gibt zwei Paare von SSH-Schlüsseln: öffentlich und privat. Öffentliche Schlüssel sind auf Servern vorhanden und private Schlüssel sind bei Einzelpersonen vorhanden. Wenn jemand seinen privaten Schlüssel mit dem öffentlichen Schlüssel abgleichen kann, kann nur er/sie sich anmelden. Darüber hinaus können private Schlüssel optional durch eine Passphrase geschützt werden. Wenn die Schlüssel außerdem mit einer 4096-Bit-Verschlüsselung generiert werden, ist es fast unmöglich, sie mit roher Gewalt zu knacken.
Schritt eins – Erstellen Sie das RSA-Schlüsselpaar:
Geben Sie im Terminal ein
ssh-keygen -t rsa -b 4096
Hier verwenden wir 64-Bit-Verschlüsselung für mehr Sicherheit
Schritt zwei – Speichern Sie die Schlüssel und die Passphrase:
Befolgen Sie die Anweisungen auf dem Bildschirm, geben Sie den gewünschten Speicherort für die Schlüssel an (es wird empfohlen, die Standardeinstellung zu akzeptieren), entscheiden Sie sich für eine Passphrase, geben Sie eine sichere Passphrase ein und merken Sie sie sich.
Der Bildschirm sieht ungefähr so aus:
ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/demo/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/demo/.ssh/id_rsa.
Your public key has been saved in /home/demo/.ssh/id_rsa.pub.
The key fingerprint is:
4a:dd:0a:c6:35:4e:3f:ed:27:38:8c:74:44:4d:93:67 demo@a
The key's randomart image is:
+--[ RSA 2048]----+
| .oo. |
| . o.E |
| + . o |
| . = = . |
| = S = . |
| o + = + |
| . o + o . |
| . o |
| |
+-----------------+
Schritt drei – Kopieren Sie den öffentlichen Schlüssel:
Geben Sie im Terminal ein
ssh-copy-id [email protected]
Hier ist 123.45.56.78 die Server-IP-Adresse
Im Falle von localhost ist es
ssh-copy-id user@localmachinename
Der Bildschirm sieht ungefähr so aus
The authenticity of host '12.34.56.78 (12.34.56.78)' can't be established.
RSA key fingerprint is b1:2d:33:67:ce:35:4d:5f:f3:a8:cd:c0:c4:48:86:12.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '12.34.56.78' (RSA) to the list of known hosts.
[email protected]'s password:
Now try logging into the machine, with "ssh '[email protected]'", and check in:
~/.ssh/authorized_keys
um sicherzustellen, dass wir keine zusätzlichen Schlüssel hinzugefügt haben, mit denen Sie nicht gerechnet haben.
Damit ist unsere Installation abgeschlossen. Um uns anzumelden, müssen wir im Terminal Folgendes eingeben:
ssh username@servername
Wenn wir dann zur Eingabe der Passphrase aufgefordert werden, müssen wir diese eingeben.
Jetzt aktivieren wir die Root-Anmeldung des Opessh-Servers. Wir müssen zuerst das Sudo-Passwort aktivieren, da es in Ubuntu standardmäßig deaktiviert ist.
Dazu geben wir Folgendes in das Terminal ein, der Bildschirm sieht dann ungefähr so aus:
sudo passwd
[sudo] password for [username]: [Type your user password and press return]
Type new UNIX password: [Type the root password you want]
Retype new UNIX password: [Retype the root password you chosen before]
passwd: password updated successfully
Jetzt müssen wir die Datei /etc/sudoers bearbeiten.
Hier verwenden wir den Editor namens visudo
Dies liegt daran, dass Visudo ausschließlich zum Bearbeiten von Sudoes-Dateien dient
In Ubuntu werden Konfigurationsdateien standardmäßig mit dem Nano-Editor geöffnet
Um es zu ändern, geben Sie im Terminal ein:
sudo update-alternatives --config editor
Der folgende Bildschirm wird angezeigt:
There are 4 choices for the alternative editor (providing /usr/bin/editor).
Selection Path Priority Status
------------------------------------------------------------
* 0 /bin/nano 40 auto mode
1 /bin/ed -100 manual mode
2 /bin/nano 40 manual mode
3 /usr/bin/vim.basic 30 manual mode
4 /usr/bin/vim.tiny 10 manual mode
Press <enter> to keep the current choice[*], or type selection number:
Geben Sie 3 ein und drücken Sie die Eingabetaste
Geben Sie dann Folgendes ein:
sudo visudo
Gehen Sie zu der Zeile, die lautet
Defaults env_reset
Drücken Sie Enter
Oben wird eine neue Zeile erstellt
Typ:
Standard-Rootpw
Verwenden Sie die Leertaste, nicht die TAB-Taste.
Drücken Sie Esc --> :x --> Enter
Im Terminaltyp:
gedit /etc/ssh/sshd_config
Gehen Sie zur Zeile:
PermitRootLogin password-prohibited
und ändern Sie es in
PermitRootLogin yes
Nächster Schritt zur Zeile:
PasswordAuthentication no
und ändern Sie es in
PasswordAuthentication yes
Speichern und schließen
Starten Sie dann SSH neu
service ssh restart
Jetzt ist es an der Zeit, das öffentliche und private SSH-Schlüsselpaar für den Benutzer root erneut zu generieren.
Geben Sie im Terminal ein
ssh-keygen -t rsa -b 4096
Schritt zwei – Speichern Sie die Schlüssel und die Passphrase:
Folgen Sie den Anweisungen auf dem Bildschirm und geben Sie den gewünschten Speicherort für die Schlüssel an. Akzeptieren Sie NICHT die Standardeinstellung, da Sie dieses Mal ein neues Paar erstellen müssen. Das Standardpaar wurde bereits erstellt. Entscheiden Sie sich für eine Passphrase, geben Sie eine sichere Passphrase ein und merken Sie sie sich.
Der Bildschirm sieht ungefähr so aus:
ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/demo/.ssh/id_rsa): u-root-id_rsa
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/demo/.ssh/u-root-id_rsa.
Your public key has been saved in /home/demo/.ssh/u-root-id_rsa.pub.
The key fingerprint is:
4a:dd:0a:c6:35:4e:3f:ed:27:38:8c:74:44:4d:93:67 demo@a
The key's randomart image is:
+--[ RSA 2048]----+
| .oo. |
| . o.E |
| + . o |
| . = = . |
| = S = . |
| o + = + |
| . o + o . |
| . o |
| |
+-----------------+
Geben Sie dann im Terminal ein:
ssh-copy-id -i u-root-id_rsa.pub root@localmachinename
Auf dem Ausgabebildschirm wird möglicherweise Folgendes angezeigt:
The authenticity of host '12.34.56.78 (12.34.56.78)' can't be established.
RSA key fingerprint is b1:2d:33:67:ce:35:4d:5f:f3:a8:cd:c0:c4:48:86:12.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '12.34.56.78' (RSA) to the list of known hosts.
[email protected]'s password:
Versuchen Sie nun, sich mit "ssh" bei der Maschine anzumelden.[email geschützt]'", und checken Sie ein:
~/.ssh/authorized_keys
um sicherzustellen, dass wir keine zusätzlichen Schlüssel hinzugefügt haben, mit denen Sie nicht gerechnet haben.
Jetzt haben wir Root Zugriff auf den privaten Schlüssel gewährt, um sich anzumelden
Zum Testen geben Sie Folgendes ein:
ssh root@localmachine
Nochmals im Terminaltyp:
gedit /etc/ssh/sshd_config
Gehen Sie zur Zeile:
PasswordAuthentication yes
und ändern Sie es in
PasswordAuthentication no
Speichern und schließen
Starten Sie dann SSH neu
service ssh restart
Sie werden nach einer Passphrase gefragt. Die Passphrase bleibt gleich. Geben Sie sie ein.
Jetzt kann sich der Root erfolgreich anmelden
Für mehr Sicherheit müssen wir jetzt eine Firewall hinzufügen
Typ:
apt install ufw
Jetzt starten
enable ufw
Holen Sie sich eine Liste der aktuell ausgeführten Prozesse
ufw app list
OpenSSH wird dort aufgeführt.
ALow it through firewall
ufw allow OpenSSH
Firewall neu starten
systemctl restart ufw
Unsere Installation ist abgeschlossen