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.
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
- Beim ersten Mal das Betriebssystem auf den aktuellsten Stand bringen.
apt update && apt dist-upgrade -y
Installieren von NGINX
- Ubuntu Stable Version
apt install nginx -y
- 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ßendY
, dannEnter
. Anschließemd flgende Kommandos:wget http://nginx.org/keys/nginx_signing.key;
apt-key add nginx_signing.key;
apt update;
apt install nginx -yPrüfe nun ob die Ubuntu Firewall läuft.
ufw status
Status: inactive
Wenn Status: active, dann:
ufw disable
Prüfe ob NGINX läuft.
systemctl status nginx
- Zweiter Test, aufruf der IP:
hostname -I
- Neue IP dank DHCP?
dhclient
- 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/
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