Zum Hauptinhalt springen

Installation eines NGINX-Webservers und Einrichtung eines SFTP Zuganges

Dieses Tutorial zeigt schrittweise die Installation und Einrichtung eines Webservers.

  • Hierbei wird dediziert eine "neue" und "leere" Maschine zur Verfügung gestellt.
  • Als Betriebssystem ist Ubuntu 20.04 LTS installiert.
info

Die Anleitung beschränkt sich auf die Installation von NGINX und SFTP. Weitere Komponenten wie Datenbank, PHP etc. werden hier nicht behandelt.

Update und NGINX installieren

  1. Beim ersten Mal das Betriebssystem auf den aktuellsten Stand bringen.
apt update && apt dist-upgrade -y
  1. Installieren von NGINX

    1. Ubuntu Stable Version
    apt install nginx -y
    1. Von NGINX direkt
    nano /etc/apt/sources.list

    Füge folgende Zeile am Ende ein

    deb http://nginx.org/packages/mainline/ubuntu/ focal nginx

    Schließe mit Strg + X, anschließend Y, dann Enter. Anschließemd flgende Kommandos:

    wget http://nginx.org/keys/nginx_signing.key;
    apt-key add nginx_signing.key;
    apt update;
    apt install nginx -y
  2. Prüfe nun ob die Ubuntu Firewall läuft.

ufw status
Ausgabe:

Status: inactive

  1. Wenn Status: active, dann: ufw disable

  2. Prüfe ob NGINX läuft.

systemctl status nginx
  1. Zweiter Test, aufruf der IP:
hostname -I
  1. Neue IP dank DHCP?
dhclient
  1. Aufruf via IP im Browser
http://hostname

NGINX einrichten

Verzeichnis anlegen (-p legt auch übergeordnete Verzeichnisse an, sollten aber dank NGINX bereits da sein)

mkdir -p /var/www/sapwickler_de/

Lege index-Datei an zum anzeigen:

nano /var/www/sapwickler_de/index.html

Inhalt:

<html>
<head>
<title>Welcome to your_domain!</title>
</head>
<body>
<h1>Success! The your_domain server block is working!</h1>
</body>
</html>

STRG + X dann ENTER.

Serverblock für NGINX einrichten:

nano /etc/nginx/sites-available/sapwickler_de

Inhalt:

server {
listen 80;
listen [::]:80;

root /var/www/sapwickler_de;
index index.html;

server_name sapwickler.de;

location / {
try_files $uri $uri/ =404;
}
}

Per Verknüfung Serverblock aktivieren:

ln -s /etc/nginx/sites-available/sapwickler_de /etc/nginx/sites-enabled/

SFTP einrichten

SFTP basiert auf SSH. SSh ist bereits Bestandteil des Betriebssystems (auch auf Windowsmaschinen). Somit ist auch SFTP bereits installiert. SFTP muss für den Einsatz nur noch fertig konfiguriert werden.

SSH konfigurieren

Konfigurationsdatei öffnen:

nano /etc/ssh/sshd_config

Am Ende folgendes einfügen, den Rest unverändert lassen

Match Group sftp_users 
ChrootDirectory /var/www/
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no
PasswordAuthentication yes

STRG + X dann ENTER

Teste Konfiguration:

sshd -t

Keine Fehler? Dann:

service sshd restart

sftp User anlegen

Zuerst sftp_users-Gruppe anlegen:

adduser sftp
groupadd sftp_users
usermod -a -G sftp_users sftp

/var/www einrichten

ls -ld /var/
Ausgabe:

drwxr-xr-x 12 root root 4096 Jan 12 08:54 /var/

Wenn Permission und Besitzer nicht stimmen, dann:

chmod 755 /var/
chown root:root /var/

Genauso auch für /var/www/

Nun zu unserem angelegten /var/www/sapwickler_de/

chmod 775 /var/www/sapwickler_de
chown -R root:sftp_users /var/www/sapwickler_de*
find /var/www/sapwickler_de/ -type d -exec chmod 775 {} \;
find /var/www/sapwickler_de/ -type f -exec chmod 664 {} \;
find /var/www/sapwickler_de -type d -exec chmod g+s {} \;

Mit FTP Client einloggen und das Anlegen von Verzeichnissen und Dateien testen. Wenn der Log-In nicht funktioniert, dann:

tail -n 50 /var/log/auth.log

Write-Access für www-data

chown -R www-data:sftp_users /var/www/sapwickler_de/verzeichnis*

Tipps

Serverprotokolle

  • /var/log/nginx/access.log: Jede Anfrage auf Ihrem Webserver wird in dieser Protokolldatei aufgezeichnet, sofern Nginx nicht anders konfiguriert ist.
  • /var/log/nginx/error.log: In diesem Protokoll werden alle Nginx-Fehler aufgezeichnet.

Letztes Update: 24.02.2022