Ubuntu-Server einrichten

Ich habe mir bei einem Anbieter einen neuen Server gemietet und gerade die Zugangsdaten erhalten. Dies bietet die Gelegenheit, eine grundlegende Konfiguration für einen Ubuntu-Server (hier 20.04) zu beschreiben. Wer übrigens an einem Windows-PC ohne Fernrohr oder Lupe auf seinen Server zugreifen will, dem sei Mobaxterm empfohlen und nicht Putty. Ich habe die IP-Adresse 123.45.678.999 erhalten dazu den Benutzernamen „root“ und ein Passwort. Ich wähle mich mit Hilfe von Mobaxterm zum ersten Mal auf meinen Server ein:

 

ssh root@123.45.678.999

 

und gebe das Passwort ein. Aus Sicherheitsgrüden werde ich als erstes den root-Zugang blockieren, lege aber zuvor eine sudo-User an, unter dem ich mich in Zukunft anmelden werde:

 

adduser neuernutzername

 

Anschließend werde ich aufgefordert, ein Passwort zu vergeben und bestätige den Rest mit Enter. Nun muss der neue User noch der Gruppe sudo hinzugefügt werden:

 

usermod -a -G sudo  <username>

 

Dann logge ich mich mit „exit“ wieder aus und wähle mich per ssh mit dem neuen Usernamen und neuem Passwort wieder auf meine Server ein:

 

ssh neuernutzername@123.45.678.999

 

Jetzt soll der Root Account deaktiviert werden:

 

sudo passwd -d root

 

Sollte ich den root-Zugriff wieder einmal benötigen, stelle ich ihn mit folgendem Befehl schnell wieder her, indem ich ein root-Passwort vergebe:

 

sudo passwd

 

 

Vim installieren

Vim als Editor ist in meinem Paket schon vorinstalliert, ansonsten könnte ich Vim mit

 

sudo apt-get install vim 

 

installieren. Ich bringe den Server softwareseitig auf den neusten Stand:

 

 sudo apt-get update && sudo apt-get dist-upgrade 

 

 

Eine Firewall einrichten

Ubuntu besitzt mit UFW (uncomplicated firewall) eine Firewall, mit der wir die Verbindung nur zu bestimmten Diensten zulassen können. Anwendungen können ihre Profile bei der Installation bei UFW registrieren. OpenSSH hat dies bereits getan, wie wir an folgendem Befehl erkennen können:

 

sudo ufw app list

 

Als Ausgabe erscheint:

 

Available applications:
  OpenSSH

 

Ich muss sicherstellen, dass UFW eine ssh-Verbinung zulässt, wenn die Firewall aktiv ist. So schreibe ich:

 

sudo ufw allow OpenSSH

 

Anschließend kann die Firewall aktiviert werden:

 

sudo ufw enable

 

Ich gebe „y“ ein und lasse mir bestätigen, dass die ssh-Verbindung weiterhin erlaubt ist:

 

sudo ufw status

 

Wenn einem ein Fehler unterläuft, kann man mit

 

sudo ufw reset

 

alles wieder auf die Werkseinstellungen zurücksetzen. Mit

 

sudo ufw status verbose

 

lässt man sich einen detaillierten Statusbericht ausgeben. Ich komme gleich wieder auf UFW zurück, wenn der Webserver installiert wurde.

 

Apache installieren

Apache 2 wird einfach installiert mit:

 

sudo apt install apache2

 

Ich gebe ein

 

sudo ufw app list

 

und erkenne, dass sich Apache bei UFW angemeldet hat. Damit http- und https-Verbundungen von UFW zugelassen werden. benötige ich folgenden Befehl:

 

sudo ufw allow in "Apache Full"

 

Alternativen zu diesem Befehl sind:

  • sudo ufw allow http
  • sudo ufw allow 80
  • sudo ufw allow https
  • sudo ufw allow 443
  • sudo ufw allow proto tcp from any to any port 80,443

Wenn ich jetzt meine IP-Adresse 123.45.678.999 in den Browser eingebe, erkenne ich an der „Apache2 Ubuntu Default Page“, dass Apache 2 korrekt arbeitet und UFW die Anfrage durchlässt.

 

MySQL installieren

MySQL wird installiert mit:

 

sudo apt install mysql-server

 

Ich konfiguriere MySQL mit:

 

sudo mysql_secure_installation

 

Ich wähle die Password-Validierung und gebe ein entsprechendes Passwort zweimal ein. Die anschließenden Abfragen überspringe ich mit der Enter-Taste. Um die Benutzerauthentifizierung zu aktivieren wähle ich mich bei MySQL ein:

 

sudo mysql 

 

Ich gebe ein

 

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

 

Damit der der Server die Berechtigungstabellen  neu schreibt gebe ich ein:

 

flush privileges;

 

(Semicolons nicht vergessen!) Ich beende die Session mit

 

exit

 

In Zukunft wähle ich mich bei MySQL ein mit:

 

mysql -u root -p

 

und gebe mein Passwort ein. MySQL gebe ich in UFW frei mit

 

sudo ufw allow mysql

 

 

PHP installieren

Unter Ubuntu 20.04 hat sich die Insatllation von PHP vereinfacht. Ich gebe nur noch ein

 

sudo apt install php7.4

 

und schon ist PHP installiert. Darüber hinaus sollte noch das Modul libapache2-mod-php für die Anbindung an Apache installiert werden:

 

sudo apt install php libapache2-mod-php

 

und Apache neu gestartet werden:

 

sudo systemctl restart apache2

 

Mit

 

sudo systemctl status apache2

 

überprüfe ich den Status von Apache.

 

Auch folgende php-Programme könnten bald notwendig sein:

 

sudo apt-get install php7.4-mbstring
sudo apt-get install php7.4-xml
sudo apt-get install php7.4-mysql
sudo apt-get install php7.4-gd
sudo apt-get install php7.4-zip

 

 

Nice to have

Ich arbeite gerne mit dem Midnight Commander, den ich mir mit

 

sudo apt install mc

 

installiere. Gestartet wird der Midnight Commander mit

 

sudo mc

 

Ebenso gehört tmux zu meinen Lieblingswerkzeugen, mit dem ich mehrere Terminal-Fenster gleichzeitig verwalten kann. Installiert wird tmux mit

 

sudo apt install tmux

 

Gestartet wird tmux mit optimierter Farbdarstellung:

 

sudo tmux -2

 

Weitere Infos zu tmux gibt es zum Beispiel hier: https://wiki.ubuntuusers.de/tmux/

 

Domain umleiten

Ich habe mir die Domain mydomain.de besorgt. Auf meinem Server mit der IP-Adresse 123.45.678.999 will ich mir eine Webseite für die Domain mydomain.de einrichten. Dazu muss meine Domain mydomain.de die IP-Adresse 123.45.678.999 aufrufen. Dazu wähle ich mich bei meinem Domainanbieter ein, suche einen Eintrag, der „Domainverwaltung“ lautet (oder so ähnlich, was je nach Anbieter verschieden sein kann), öffne die DNS-Einstellungen und trage dort unter den A-Records meine IP-Adresse 123.45.678.999 ein.

 

A-Records überprüfen

Um zu überprüfen, ob der neue Eintrag unter den A-Records auch auf die gewünschte IP zeigt und dorthin weitergeleitet wird, lege ich unter var/www ein Verzeichniss an, das ich wie meine zukünftige Webseite benenne:

 

sudo mkdir mydomain

 

In das Verzeichnis lege ich eine Datei mit dem Namen index.html an:

 

sudo touch index.html

 

Dem Verzeichnisnamen entsprechend erhält die Index-Datei zum Beispiel folgenden Inhalt:

 

<html>
  <head>
    <title>mydomain</title>
  </head>
  <body>
    <h1>This is mydomain. Es klappt!</h1>
  </body>
</html>

 

 

Die Rechte des Verzeichnisses werden an den Apache-User www-data übergeben, damit Apache auf die Verzeichnisse zugreifen kann:

 

sudo chown -R www-data:www-data /var/www/mydomain

 

Ich wechsele in das Verzeichnis /etc/apache2/sites-available. Hier lege eine neue Config-Datei an:

 

sudo touch mydomain.conf

 

Die Datei erhält folgenden Inhalt:

 

<VirtualHost *:80>
  ServerAdmin webmaster@localhost
  ServerName mydomain.de
  ServerAlias *.mydomain.de
  DocumentRoot /var/www/mydomain
  ErrorLog ${APACHE_LOG_DIR}/mydomain-error.log
  CustomLog ${APACHE_LOG_DIR}/mydomain-access.log combined
</VirtualHost>

 

Anschließend muss die Conf-Dateien noch aktiviert werden:

 

sudo a2ensite mydomain.conf

 

Darüber hinaus ist ein

 

sudo service apache2 reload

 

nötig, damit Apache die neue Konfiguration einliest.

 

Im Verzeichnis /etc/apache2/sites-enabled kann man sich davon überzeugen, dass Simlinks zu den neuen Conf-Dateien gelegt wurden. Ich rufe im Browser meine Domain mydomain.de auf, und der Text wird angezeigt, den ich oben in die index.html hineingeschrieben habe. Nun kann ich damit beginnen, meine Webseite im Verzeichnis /var/www/mydomain anzulegen.

 

 

Kommentare und Antworten

×

Name ist erforderlich!

Geben Sie einen gültigen Namen ein

Gültige E-Mail ist erforderlich!

Gib eine gültige E-Mail Adresse ein

Kommentar ist erforderlich!

* Diese Felder sind erforderlich.

Bemerkungen :

  • user
    AvgZFhQWJlNa 13.03.2024 um 05:50
    qChBTtwI
  • user
    AvgZFhQWJlNa 13.03.2024 um 05:50
    qChBTtwI
  • user
    ErTyOzosabYtx 06.02.2024 um 01:50
    LjPNJMpRDgBE
  • user
    ErTyOzosabYtx 06.02.2024 um 01:49
    LjPNJMpRDgBE
  • user
    SdbCFYoAI 28.01.2024 um 06:13
    esTNbKrjlEJGOk
  • user
    SdbCFYoAI 28.01.2024 um 06:13
    esTNbKrjlEJGOk