Archiv der Kategorie: Linux Howto

THINK UNBLOG GNU/Linux Knowledge Network for Tutorials, Howto’s, Workaround, DevOps Code for Professionals.

Let’s Encrypt Installation auf CentOS 7 mit Apache

Tutorial: Let’s Encrypt Certbot auf CentOS 7 für Apache 2.4

Let’s Encrypt ist eine Zertifizierungsstelle, die kostenlose X.509-Zertifikate für Transport Layer Security (TLS) anbietet. In diesem Tutorial wird gezeigt, wie man Let´s Encrypt SSL anhand des ACME Vorgang mit certbot durchführt, und Let’s Encrypt auf einem CentOS 7 Host mit Apache 2.4 Webserver implementiert.

  Vorausgesetzt wird hier, das der Apache-Webserver bereits installiert ist, die Domain als Apache VirtualHost konfiguriert ist, und die Domain im DNS auflösbar ist, mit einem A-Record in der Forward-Zone dieser Domain, oder für IPv6 ein Quad-A-Record für den Server eingetragen ist. Weiter muss für das ACME Challenge der Server über Port 80 erreichbar sein.

Zur installation auf dem CentOS host sind wir root.

$ su -
Password:
Last login: Tue Jan 15 06:25:52 CET 2019 on pts/0

Nach EPEL Repository hinzufügen wird Certbot für Apache installiert.

# yum -y install epel-release
# yum -y install mod_ssl python-certbot-apache

Nun den Apache-Webserver neu starten.

# systemctl restart httpd

Die Firewall für die Service Port 80 und 443 öffnen.

# firewall-cmd --add-service=http
# firewall-cmd --add-service=https
# firewall-cmd --runtime-to-permanent
# firewall-cmd --reload

Jetzt durch den certbot das SSL-Zertifikat generieren lassen.

# certbot --apache -d mydomain.com -d www.mydomain.com

  Die erste Domäne sollte die Basis Domain sein. In diesem Beispiel heißt sie mydomain.com, diese durch den tatsächlichen Domain-Name ersetzen.

Die Ausgabe des certbot sieht in etwa wie folgt aus.

# certbot --apache -d mydomain.com -d www.mydomain.com
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
Starting new HTTPS connection (1): acme-v02.api.letsencrypt.org
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for mydomain.com
Waiting for verification...
Cleaning up challenges
Resetting dropped connection: acme-v02.api.letsencrypt.org
Created an SSL vhost at /etc/httpd/conf.d/mydomain-ssl.conf
Deploying Certificate to VirtualHost /etc/httpd/conf.d/mydomain-le-ssl.conf

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Redirecting vhost in /etc/httpd/conf.d/mydomain.conf to ssl vhost in /etc/httpd/conf.d/mydomain-ssl.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://mydomain.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=mydomain.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/mydomain.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/mydomain.com/privkey.pem
   Your cert will expire on 2019-04-14. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Abschließend kann die URL getestet werden.

$ curl -k https://mydomain.com

Die URL im Browser abrufen und bei SSL Labs verifizieren.

https://www.ssllabs.com/ssltest/analyze.html?d=mydomain.com
Die URL im Browser abrufen und bei SSL Labs verifizieren.
SSL Labs SSL Analyzing Report

Das Let’s Encrypt Zertifikat ist 90 Tage gültig.

netstat: command not found, net-tools fehlt

Der Fehler: -bash: netstat: command not found, tritt auf, nachdem bei Debian und Ubuntu Linux, versucht wird den Befehl „netstat“ in der bash auszuführen. Da dieser Befehl standardmäßig nicht mehr enthalten ist. In diesem Tutorial erfährst du, wie das Paket net-tools auf einem Debian-basierten Linux installiert wird, das unter anderem den Befehl netstat beinhaltet.

netstat: command not found, net-tools fehlt

netstat Fehlermeldung in der bash

Wenn der Befehl netstat ausgeführt wird, kommt es zur Fehlermeldung:

-bash: netstat: command not found

Dies bedeutet lediglich, dass das entsprechende Paket „net-tools“, das die ausführbare Datei netstat enthält, nicht installiert ist und daher fehlt. Das Paket net-tools ist möglicherweise nicht standardmäßig auf dem System installiert, es muss manuell installiert werden.

Das Paket net-tools installieren

Um netstat auf dem System verfügbar zu machen, installiere einfach das net-tools Paket mit dem folgenden Befehl:

$ sudo apt update
$ sudo apt install net-tools -y

Das Paket net-tools enthält außerdem zusätzliche Dienstprogramme wie arp, ifconfig, netstat, rarp und route.

Paket net-tools und netstat ermitteln

Das net-tools Paket ermitteln basierend auf dem Paketnamen.

$ apt list net-tools
Listing... Done
net-tools/oldstable,now 1.60+git20181103.0eebece-1 amd64 [installed]

net-tools ist eine Sammlung mit Basis-Netzwerkprogramme. Ist das Paket net-tools installiert, stehen die netstat Befehle auf dem Host zur Verfügung.

$ apt show net-tools

Beispiele mit netstat

Nachdem net-tools auf dem System installiert ist, können wir nun einige der folgenden netstat Befehle verwenden.

Sehen wir uns zunächst die Prozesse an, die auf Verbindungen warten. Dazu geben wir den folgenden netstat Befehl ein.

$ sudo netstat -tulpen

Werfen wir nun einen Blick auf alle aktuellen Netzwerkverbindungen. Dazu geben wir den folgenden netstat Befehl ein, der dem vorherigen ähnelt, mit der Ausnahme, dass wir -a verwenden, um alle Sockets anzuzeigen, und nicht wie mit -l, nur die Listening Sockets anzuzeigen.

$ sudo netstat -atupen

Möchte man nur die HERGESTELLTEN Verbindungen sehen, kann man die Ausgabe von netstat weiterleiten an grep.

$ sudo netstat -atupen | grep ESTABLISHED

Befehl ss ersetzt den veralteten Befehl netstat

Mit den net-tools wird die Verfügbarkeit der veralteten Linux Netzwerk Befehle wiederhergestellt, folgende Tabelle zeigt die veralteten Linux „netstat“ Befehle, und die neuen Ersetzungsbefehle mit „ss„:

Veraltete BefehleNeue Befehle
arpip n (ip neighbor)
ifconfigip a (ip addr), ip link
iptunnelip tunnel
iwconfigiw
nameifip link
netstatss -t (für netstat -t), ss -u (für netstat -u)
ip route (für netstat -r)
ip -s link (für netstat -i)
ip maddr (für netstat -g)
routeip r (ip route)

  ss – ist ein neues Dienstprogramm zum Untersuchen von Sockets, der Befehl ss wird verwendet um Socket-Statistiken auszugeben. Es ermöglicht die Anzeige von Informationen ähnlich wie netstat.

Beispiel mit Befehl ss

Beispiel zur Anwendung von ss anstelle von netstat (net-tools):

$ ss -atulpen4

Amnerkung

In diesem Tutorial haben wir gesehen, wie man den fehlenden Befehl netstat auf einem Debian-basierten Linux oder Ubuntu mit dem Paket net-tools installiert. Wir haben auch einige grundlegende Verwendungsmöglichkeiten des Befehls netstat kennengelernt, um mit der Verwendung beginnen zu können. Es wird auch auf den Befehl ss hingewiesen, der netstat ersetzt, aber eine andere Syntax hat.