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
apt install nginx -y
  1. 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