redhat:ssh-redhat:start

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
redhat:ssh-redhat:start [2017/08/21 13:37] – [Display SSH Warning Message - Before User Login] michaelredhat:ssh-redhat:start [2020/09/03 12:12] (current) michael
Line 1: Line 1:
-====== Secure Shell - SSH unter Redhat / CentOS ====== +====== Secure Shell - SSH unter Redhat / CentOS ====== 
-**SSH** (oder ausgeschrieben **Secure SHell**) ist ein Protokoll, welches eine sichere Kommunikation zwischen zwei Systemen mittels einer Client/Server Architektur ermöglicht. Die Benutzer können sich damit auch bei einem entfernten Host-System anmelden und dies anschliessend mit den Berechtigungen des lokal eingeloggten Users verwalten.+ 
 +**SSH** (oder ausgeschrieben **Secure SHell**) ist ein Protokoll, welches eine sichere Kommunikation zwischen zwei Systemen mittels einer Client/Server Architektur ermöglicht.  
 + 
 +{{:icons:ssh.png?nolink&100|}} 
 + 
 +Die Benutzer können sich damit auch bei einem entfernten Host-System anmelden und dies anschliessend mit den Berechtigungen des lokal eingeloggten Users verwalten.
  
 Im Gegensatz zu anderen Remote-Kommunikationsprotokollen wie FTP oder Telnet, verschlüsselt SSH die Anmeldung. Auf diese Weise können Eindringlinge auch keine unverschlüsselten Passwörter erkennen. Im Gegensatz zu anderen Remote-Kommunikationsprotokollen wie FTP oder Telnet, verschlüsselt SSH die Anmeldung. Auf diese Weise können Eindringlinge auch keine unverschlüsselten Passwörter erkennen.
Line 6: Line 11:
 **SSH** wurde als Ersatz für ältere, weniger sichere Terminalanwendungen, wie **rsh** entwickelt. Das Programm **scp** ersetzt ältere Programme wie **rcp**, die zum Kopieren von Dateien zwischen Hosts verwendet wurden. **SSH** wurde als Ersatz für ältere, weniger sichere Terminalanwendungen, wie **rsh** entwickelt. Das Programm **scp** ersetzt ältere Programme wie **rcp**, die zum Kopieren von Dateien zwischen Hosts verwendet wurden.
  
- 
----- 
  
  
-===== openSSH - Programmsuite =====+===== OpenSSH - Programmsuite =====
 Die für die **Secure-Shell** benötigten Pakete werden im optimal Fall bereits bei der Erstinstallation erfolgreich ins System installiert. Bei Redhat teilen sich die einzelnen Programme der Programmsuite auf folgende Pakete auf:  Die für die **Secure-Shell** benötigten Pakete werden im optimal Fall bereits bei der Erstinstallation erfolgreich ins System installiert. Bei Redhat teilen sich die einzelnen Programme der Programmsuite auf folgende Pakete auf: 
  
Line 42: Line 45:
 ... ...
 </sxh> </sxh>
 +
 +''Das gleiche könnten wir nun auch für das **openssh-clients** Paket, den **openssh-server** oder den **openssh-askpass** durchführen. So erkennen man, welche openssh Teile von welchen Paket zur Verfügung gestellt werden.''
 </WRAP> </WRAP>
  
-Das gleiche könnten wir nun auch für das **openssh-clients** Paket, den **openssh-server** oder den **openssh-askpass** durchführen. So erkennen man, welche openssh Teile von welchen Paket zur Verfügung gestellt werden. 
  
----- 
  
-===== SSH für KEY Auth. Konfigurieren =====+===== SSH für Key-Authentifizierung Konfigurieren und härten =====
  
-Sobald man einen **Fernzugriff** auf seine **Linux-Systeme**, wie z.B. Ubuntu, auf Konsolenebene nutzen möchte, kommt man um **SSH** nicht drum herum. Ist der SSH-Server-Dienst einmal im System aktiviert und für die Nutzer freigegeben, kann man sich von überall aus dem LAN mit seinem User via Putty einloggen. Gibt man nun noch den Port via Router frei und schaltet das Portforwarding für SSH ein, so ist der Server auch von unterwegs erreichbar. +Sobald man einen **Fernzugriff** auf seine **Linux-Systeme**, auf Konsolenebene nutzen möchte, kommt man um **SSH** nicht drum herum. Ist der SSH-Server-Dienst einmal im System aktiviert und für die Nutzer freigegeben, kann man sich von überall aus dem LAN mit seinem User via Putty einloggen. Gibt man nun noch den Port via Router frei und schaltet das Portforwarding für SSH ein, so ist der Server auch von unterwegs erreichbar. 
  
 //Doch nun zum Problem;// Passwörter sind heutzutage nicht mehr genug sicher, um auch wirklich einen Server mit sensiblen Daten zu schützen. Brute-Force-Attacken nehmen vermehrt zu und werden auch durch immer länger werdende Passwortlisten ständig effektiver. //Doch wie kann man sich nun dagegen schützen?// Ganz einfach! Anstatt wie üblich über ein Passwort zu authentifizieren, besteht die Möglichkeit, auf eine weitere Alternative zurückzugreifen: ''**SSH-Key Authentification**''. Diese auf dem RSA-Verschlüsselungsprotokoll basierenden Schlüssel bestehen aus einem **Public-Key** und einem **Private-Key**.  //Doch nun zum Problem;// Passwörter sind heutzutage nicht mehr genug sicher, um auch wirklich einen Server mit sensiblen Daten zu schützen. Brute-Force-Attacken nehmen vermehrt zu und werden auch durch immer länger werdende Passwortlisten ständig effektiver. //Doch wie kann man sich nun dagegen schützen?// Ganz einfach! Anstatt wie üblich über ein Passwort zu authentifizieren, besteht die Möglichkeit, auf eine weitere Alternative zurückzugreifen: ''**SSH-Key Authentification**''. Diese auf dem RSA-Verschlüsselungsprotokoll basierenden Schlüssel bestehen aus einem **Public-Key** und einem **Private-Key**. 
Line 58: Line 61:
 <wrap em>ACHTUNG:</wrap> Zum Schluss, wird das **SSH Login via Passwort** zum erhöhen der System-Sicherheit noch komplett **deaktiviert**. Dies sollte jedoch **erst nach __erfolgreichem testen__ der Key-Authentifizierung gemacht werden**. <wrap em>ACHTUNG:</wrap> Zum Schluss, wird das **SSH Login via Passwort** zum erhöhen der System-Sicherheit noch komplett **deaktiviert**. Dies sollte jedoch **erst nach __erfolgreichem testen__ der Key-Authentifizierung gemacht werden**.
  
----- 
  
-==== Erstellen des SSH-Key-Pairs ====+<WRAP center box 100%> 
 +==== Erstellen des SSH-Key-Pairs (Public/Private Key) ====
 Der erste Schritt ist auch gleich der kürzeste. Mit einem einzigen Befehl lässt sich das Pair erstellen. Der erste Schritt ist auch gleich der kürzeste. Mit einem einzigen Befehl lässt sich das Pair erstellen.
 <code> <code>
Line 92: Line 95:
 </sxh> </sxh>
  
-Der **Puplic-Key** wurde nun unter **/home/user/.ssh/id_rsa.pub** gespeichert. Dieser wird anschliessend wie im nächsten Kapitel beschrieben auf andere Server verteilt, damit mit dem gleichen Key auf mehreren Servern Authentifiziert werden kann. Der **Privat-Key**, liegt unter **/home/user/.shh/id_rsa**. <wrap em>ACHTUNG: Denn Privat-Key sollte nur auf Clients liegen, auf die nur ich Zugriff habe!</wrap>+''Der **Puplic-Key** wurde nun unter **/home/user/.ssh/id_rsa.pub** gespeichert''. Dieser wird anschliessend wie im nächsten Kapitel beschrieben auf andere Server verteilt, damit mit dem gleichen Key auf mehreren Servern Authentifiziert werden kann. ''Der **Privat-Key**, liegt unter **/home/user/.shh/id_rsa**''. <wrap em>ACHTUNG: Denn Privat-Key sollte nur auf Clients liegen, auf die nur ich Zugriff habe!</wrap
 +</WRAP>
  
----- +<WRAP center box 100%> 
- +==== Server mit neu erstelltem Public-Key versorgen ====
-==== Server mit Public-Key versorgen ====+
 Jetzt müssen, wie oben schon erwähnt nur noch die anderen Server bzw. Systeme, //(auf die zugreifen werden soll)//, von dem neu erstellten Public-Key erfahren. Dafür gibt es einen ganz einfachen Befehl: Jetzt müssen, wie oben schon erwähnt nur noch die anderen Server bzw. Systeme, //(auf die zugreifen werden soll)//, von dem neu erstellten Public-Key erfahren. Dafür gibt es einen ganz einfachen Befehl:
  
Line 112: Line 115:
  
 Da man das normale Login mit Passwort jetzt nicht mehr benötigt, kann man wie schon erwähnt, den Zugriff über SSH via Passwort auch komplett verbieten. In dem Fall empfiehlt sich jedoch eine Sicherheitskopie des Privat-Keys anzulegen. Denn wenn dem Client mal etwas passiert, und man keinen physikalischen Zugriff mehr auf das Systeme hat, sperrt man sich so selber aus. Da man das normale Login mit Passwort jetzt nicht mehr benötigt, kann man wie schon erwähnt, den Zugriff über SSH via Passwort auch komplett verbieten. In dem Fall empfiehlt sich jedoch eine Sicherheitskopie des Privat-Keys anzulegen. Denn wenn dem Client mal etwas passiert, und man keinen physikalischen Zugriff mehr auf das Systeme hat, sperrt man sich so selber aus.
 +</WRAP>
  
----- +<WRAP center box 100%> 
- +==== Zugriff per Passwort Login deaktivieren ====
-==== Zugriff per Passwort deaktivieren ====+
 Um den Zugriff via Passwort über SSH zu deaktivieren, verbindet man sich zuerst mit dem betreffenden System und bearbeite die sshd_config: Um den Zugriff via Passwort über SSH zu deaktivieren, verbindet man sich zuerst mit dem betreffenden System und bearbeite die sshd_config:
 <code> <code>
Line 121: Line 124:
 </code> </code>
  
-In diesem Konfigurationsfile sucht man anschliessend den Eintrag **PasswordAuthentication**“ und ändert den Eintrag auf **PasswordAuthentication no**. //**Wichtig:** Auch wenn dieses auskommentiert ist, muss explizit der Wert auf No gesetzt werden und die auskommentiert entfernt werden, damit es funktioniert!//+In diesem Konfigurationsfile sucht man anschliessend den Eintrag "**PasswordAuthentication**und ändert den Eintrag auf **PasswordAuthentication no**. 
  
-<WRAP center round box 100%> +// <wrap em>Wichtig:</wrap> Auch wenn dieses auskommentiert ist, muss explizit der Wert auf No gesetzt werden und die auskommentiert entfernt werden, damit es funktioniert!//
-# Change to no to disable tunnelled clear text passwords+
  
-PasswordAuthentication **no** +<sxh plain; gutter: false; highlight: [3]> 
-</WRAP>+# Change to "no" to disable tunnelled clear text passwords 
 + 
 +PasswordAuthentication no 
 +.. 
 +</sxh>
  
 Zum Abschluss, muss nun noch der SSH-Service neu gestartet werden: Zum Abschluss, muss nun noch der SSH-Service neu gestartet werden:
Line 133: Line 139:
 # systemctl restart sshd # systemctl restart sshd
 </code> </code>
 +</WRAP>
  
----- 
  
 +<WRAP center box 100%>
 ==== Schlusswort ==== ==== Schlusswort ====
-Die Nutzung eines SSH-Keys ist einem Passwort immer vorzuziehen und ist um einiges sicherer. Allerdings ist es sehr schwer, an entfernte Systeme heranzukommen, sollte der Privat-Key einmal verloren gehen. Daher sollte dieser unbedingt gesichert werden.+''Die Nutzung eines SSH-Keys ist einem Passwort immer vorzuziehen und ist um einiges sicherer.'' Allerdings ist es sehr schwer, an entfernte Systeme heranzukommen, sollte der Privat-Key einmal verloren gehen. Daher sollte dieser unbedingt gesichert werden.
  
 Wird Windows als Client verwendet, kann automatisch beim booten den Private-Key mit dem Putty Tool "pageant.exe" welches sich nach der Installation auf einem 64 Bit System unter folgendem Pfad befindet:"C:\Program Files (x86)\SSHTOOLS\PuTTY\pageant.exe" verwendet werden. Wird Windows als Client verwendet, kann automatisch beim booten den Private-Key mit dem Putty Tool "pageant.exe" welches sich nach der Installation auf einem 64 Bit System unter folgendem Pfad befindet:"C:\Program Files (x86)\SSHTOOLS\PuTTY\pageant.exe" verwendet werden.
Line 143: Line 150:
 Zum automatisieren, wird dann eine Verknüpfung von jenem Tool in den Autostart von Windows gemacht, mit Angabe des SSH Private-Keys under den Verknüpfungspunkt "Ziel:" Zum automatisieren, wird dann eine Verknüpfung von jenem Tool in den Autostart von Windows gemacht, mit Angabe des SSH Private-Keys under den Verknüpfungspunkt "Ziel:"
  
-**Beispiel:** //"**C:\Program Files (x86)\SSHTOOLS\PuTTY\pageant.exe" <wrap hi>C:\id_rsa.ppk</wrap>**//+''**Beispiel:** //"C:\Program Files (x86)\SSHTOOLS\PuTTY\pageant.exe" <wrap hi>C:\id_rsa.ppk</wrap>//''
  
-<wrap em>WICHTIG: Zur Verwendung und laden des Private-Keys unter Windows, muss der Key "id_rsa" noch mit **puttygen.exe** (Auch im Putty Verzeichnis) geladen werden und **im Putty eigenen id_rsa.ppk Format** abgespeichert werden! Dieses id_rsa.ppk kann dann beim Boot automatisch geladen werden</wrap>+<wrap em>WICHTIG: Zur Verwendung und laden des Private-Keys unter Windows, muss der Key "id_rsa" noch mit **puttygen.exe** (Auch im Putty Verzeichnis) geladen werden und **im Putty eigenen id_rsa.ppk Format** abgespeichert werden! Dieses id_rsa.ppk kann dann mit dem oberen Beispiel, als Verknüpfung im Autostart, beim Boot automatisch geladen werden.</wrap
 +</WRAP>
  
----- 
  
-===== Protect SSH Logins with SSH & MOTD Banner Messages ===== 
-One of the easiest way to protect and secure SSH logins by displaying warming message to UN-authorized users or display welcome or informational messages to authorized users. 
  
-Being a system administrator whenever configure Linux servers I always use to configure a security banners for ssh logins. The banner contains some security warning information or general information. See my example banner message which I used for my all servers. 
  
-<WRAP center round box 100%> +===== Equip SSH Logins with MOTD or SSH-Banner Messages ===== 
-''//ALERT! You are entering into a secured area! Your IP, Login Time, Username has been noted and has been sent to the server administrator! + 
-This service is restricted to authorized users onlyAll activities on this system are logged+Vor - und nach einem LOGIN auf unser System können wir dem Nutzer noch individuelle Informationen anzeigen und/oder mitgeben. 
-Unauthorized access will be fully investigated and reported to the appropriate law enforcement agencies.//''+ 
 + 
 +<WRAP center round tip 100%> 
 +''Hierfür gibt es zwei unterschiedliche Wege; also einmal das **issue.net** file oder das **motd** file''
 + 
 +  * ''**motd** : Zeigt eine Banner Message gleich nach dem erfolgreichen Login an.'' 
 +  * ''**issue.net** : Zeigt ein Banner noch vor der Password Login-prompt.''
 </WRAP> </WRAP>
  
  
-<wrap em>There are two way to display messages one is using ''**issue.net** file'' and second one is using ''**MOTD** file''.</wrap> 
  
-  * ''**issue.net** : Display a banner message before the password login prompt.'' +<WRAP center box 100%> 
-  * ''**motd** : Display a banner message after the user has logged in.''+==== motd Display SSH Warning Message - After User Login ====
  
-So, I strongly recommended all system administrator to display a banner messages before allowing users to log in to systemsJust follow below simple steps to enable SSH logging messages.+Das Akronym **motd** steht für message of the dayDiese Datei, welche vom Login-Programm benutzt wird, befindet sich im Konfigurationsverzeichnis unter ''/etc/motd'' und gibt nach einem erfolgreichem Login - aber noch vor dem Start der jeweiligen Login-Shell - eine Meldung aus.
  
-==== Display SSH Warning Message - Before User Login ==== +Zur Information für etwaige Neugierige und Remoteuser, oder beides, je nach Betrachtungsweise, wollen wir hier nun noch ein paar Zusatzinformation ausgeben. 
-To display Welcome or Warning message for SSH users before login; We use ''**issue.net** file'' to display banner massages. To configure this, follow this steps:+ 
 +<code># vim /etc/motd</code> 
 + 
 +<sxh plain;> 
 + ############################################################################## 
 + #                                                                            # 
 + #                 This is the admin server of Michael Reber.                 # 
 + #                                                                            # 
 + #                                ATTENTION:                                  # 
 + #                                                                            # 
 + #             Unauthorized access to this system is prohibited !             # 
 + #                                                                            # 
 + #    This system is actively monitored and all connections may be logged.    # 
 + #         By accessing this system, you consent to this monitoring.          # 
 + #                                                                            # 
 + ############################################################################## 
 +</sxh> 
 + 
 +War die Datei zuvor noch nicht vorhanden, so passen wir die Berechtigungen noch wie folgt an: 
 + 
 +<code># chown root:root /etc/motd 
 +# chmod 644 /etc/motd</code> 
 + 
 +</WRAP> 
 + 
 + 
 +<WRAP center box 100%> 
 +==== issue.net - Display SSH Warning Message - Before User Login ====
  
 +Mit Hilfe dieser Datei ''/etc/issue.net'' können ebenfalls Meldungen am Bildschirm ausgegeben werden - diese Informationen erscheinen dann jedoch vor dem Login-Prompt - sobald man sich via ssh anmelden möchte. Hierzu legen wir einfach die Datei ''/etc/issue.net'' mit dem editor unserer Wahl an.
  
-  - **Add the this banner sample message and save the file.** //You can add as well any custom banner message to this file.// <WRAP center box 100%> 
 <code> <code>
 # vim /etc/issue.net # vim /etc/issue.net
 </code> </code>
- 
 <sxh plain;> <sxh plain;>
-############################################################### + ############################################################################## 
-                 Welcome to blackGATE.com                   + #                                                                            # 
-                                                            + #                       This is a private home server                      
-        All connections are monitored and recorded          + #                                                                            
- Disconnect IMMEDIATELY if you are not an authorized user!  + #             Unauthorized access to this system is prohibited !             # 
-############################################################### + #                                                                            # 
 + #    This system is actively monitored and all connections may be logged.    
 + #         By accessing this system, you consent to this monitoring.          
 + #                                                                            # 
 + ##############################################################################
 </sxh> </sxh>
-</WRAP+ 
-  - **Open the master ssh configuration file and enable banners**. <WRAP center box 100%>+Die Berechtigungen passen wir dann wie folgt an: 
 + 
 +<code
 +# chown root:root /etc/issue.net 
 +# chmod 644 /etc/issue.net 
 +</code> 
 + 
 +Abschliessend ergänzen wir noch in der ''/etc/ssh/sshd_config'' die BANNER Konfiguration. 
 <code> <code>
 # vim /etc/ssh/sshd_config # vim /etc/ssh/sshd_config
Line 198: Line 244:
 Banner /etc/issue.net   #(you can use any path you want) Banner /etc/issue.net   #(you can use any path you want)
 </sxh> </sxh>
-</WRAP> 
-  - **Finally, restart the SSH daemon** to reflect new changes. <code># systemctl restart sshd</code> 
-  - <wrap em>Try to connect to server you will see banner message, similar to below</wrap>. 
  
 +Nun fehlt nur noch der Restart des SSH Daemon:
 +
 +<code># systemctl restart sshd</code>
 +</WRAP>
  
-==== Display SSH Warning Message - After User Login ==== 
  
  
  • redhat/ssh-redhat/start.1503315462.txt.gz
  • Last modified: 2017/08/21 13:37
  • by michael