{"id":19,"date":"2019-01-04T14:54:45","date_gmt":"2019-01-04T13:54:45","guid":{"rendered":"https:\/\/blog.steiner.systems\/?p=19"},"modified":"2019-01-04T15:15:54","modified_gmt":"2019-01-04T14:15:54","slug":"installation-debian-webserver-mit-simpler-firewall-php7-mariadb-und-lets-encrypt-zertifikat","status":"publish","type":"post","link":"https:\/\/blog.steiner.systems\/?p=19","title":{"rendered":"Installation Debian-Webserver mit simpler Firewall, PHP7, MariaDB und Let&#8217;s Encrypt-Zertifikat"},"content":{"rendered":"\n<p>Da ich auch nicht mehr der J\u00fcngste bin und gern Dinge vergesse, hier mal eine Zusallenstellung der Befehle f\u00fcr die Installation eines simplen Webservers. Voraussetzung ist ein aktuelles Debian Stretch &#8211; ich habe meine Server (und auch diesen hier) in der Cloud von hetzner.de<\/p>\n\n\n\n<p>Aus Gr\u00fcnden der Einfachheit und der pers\u00f6nlichen Faulheit einfach &#171;nacheinander weg&#187; der Code mit entsprechenden Kommentaren dazu. Eventuell passe ich es sp\u00e4ter noch mal an, aber f\u00fcr den Moment muss das erstemal reichen.<\/p>\n\n\n\n<!--more-->\n\n\n\n<pre class=\"wp-block-code\"><code>apt-get update &amp;&amp; apt-get upgrade\napt-get install nano mc zip unzip apache2 libapache2-mod-php7.0 php7.0 php7.0-mysql mariadb-client mariadb-server<\/code><\/pre>\n\n\n\n<p>Aktualisieren der Pakete und Installieren von n\u00fctzlichen Tools sowie Webserver, PHP und Datenbank<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mysql_secure_installation<\/code><\/pre>\n\n\n\n<p>Damit wird die MySQL-Installation abgesichert. Bei mir war es etwas zu sicher &#8211; mein root-Benutzer war in der DB nicht mehr vorhanden. Abhilfe schafft der hier:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/etc\/init.d\/mysql stop\nmysqld_safe --skip-grant-tables --user=root --skip-networking &amp;\nmysql -u irgendeinbenutzer<\/code><\/pre>\n\n\n\n<p>Dann im MySQL:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>FLUSH PRIVILEGES;\nCREATE USER root;\nSET PASSWORD FOR root = PASSWORD('NeuesKennwort');\nGRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'NeuesKennwort' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;\nFLUSH PRIVILEGES;\nQUIT<\/code><\/pre>\n\n\n\n<p>Und danach auf der Konsole noch ein<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/etc\/init.d\/mysql restart<\/code><\/pre>\n\n\n\n<p>An dem Punkt blieb der Server bei mir h\u00e4ngen &#8211; Montagsmodell \ud83d\ude09 Habe ihn dann mittels CTRL+C aus dem Befehl geholt und einen reboot gemacht &#8211; danach war mein root-User wieder da.<\/p>\n\n\n\n<p>Als n\u00e4chstes geht es um die Absicherung bzw. Verschl\u00fcsselung der Webseiten, besser noch des ein- und ausgehenden Verkehrs vom Webserver. Mit meinem Lieblings-Editor die sources.list \u00f6ffnen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nano \/etc\/apt\/sources.list<\/code><\/pre>\n\n\n\n<p>Und dort das folgende am Ende eintragen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Backport-Sources\ndeb http:\/\/ftp.debian.org\/debian stretch-backports main<\/code><\/pre>\n\n\n\n<p>gefolgt von einem Update der Paketliste dann die Installation vom Certbot<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>apt-get update &amp;&amp; apt-get install python-certbot-apache -t stretch-backports<\/code><\/pre>\n\n\n\n<p>Dann noch den Servernamen in der Apache-Config korrekt benennen (muss auf die IP des Servers aufl\u00f6sen)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nano \/etc\/apache2\/sites-available\/000-default.conf<\/code><\/pre>\n\n\n\n<p>Und mittels<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/etc\/init.d\/apache2 restart\ncertbot --apache -d site.com -d www.site.com<\/code><\/pre>\n\n\n\n<p>kommt das Ganze zum Laufen. Noch ein paar Sachen best\u00e4tigen, die Auswahl treffen ob alles auf HTTPS umgeleitet werden soll (macht bei einer Neuinstallation Sinn) und dann verr\u00e4t uns die folgende Meldung, dass wir es geschafft haben:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"658\" height=\"99\" src=\"https:\/\/blog.steiner.systems\/wp-content\/uploads\/2019\/01\/grafik.png\" alt=\"\" class=\"wp-image-22\"\/><\/figure>\n\n\n\n<p>Im n\u00e4chsten Eintrag geht es dann um die (simple) Firewall.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Da ich auch nicht mehr der J\u00fcngste bin und gern Dinge vergesse, hier mal eine Zusallenstellung der Befehle f\u00fcr die Installation eines simplen Webservers. Voraussetzung ist ein aktuelles Debian Stretch &#8211; ich habe meine Server (und auch diesen hier) in &hellip; <a href=\"https:\/\/blog.steiner.systems\/?p=19\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,2,5,3,6],"tags":[],"_links":{"self":[{"href":"https:\/\/blog.steiner.systems\/index.php?rest_route=\/wp\/v2\/posts\/19"}],"collection":[{"href":"https:\/\/blog.steiner.systems\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.steiner.systems\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.steiner.systems\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.steiner.systems\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=19"}],"version-history":[{"count":3,"href":"https:\/\/blog.steiner.systems\/index.php?rest_route=\/wp\/v2\/posts\/19\/revisions"}],"predecessor-version":[{"id":23,"href":"https:\/\/blog.steiner.systems\/index.php?rest_route=\/wp\/v2\/posts\/19\/revisions\/23"}],"wp:attachment":[{"href":"https:\/\/blog.steiner.systems\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=19"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.steiner.systems\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=19"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.steiner.systems\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=19"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}