Wie installiere ich einen sicheren OpenSSH-Server auf Ubuntu?

Wie installiere ich einen sicheren OpenSSH-Server auf Ubuntu?

Ich möchte einen OpenSSH-Server auf Ubuntu installieren. Wie geht das?

Ich muss folgendes tun:

  1. OpenSSH-Server einrichten

  2. Einrichten eines öffentlichen und privaten SSH-Schlüsselpaars für den Benutzer

  3. Passwort-Login deaktivieren

  4. Root-Benutzer aktivieren

  5. Einrichten eines öffentlichen und privaten SSH-Schlüsselpaars für den Root-Benutzer

  6. 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

verwandte Informationen