Sie können das Betriebssystem von Ihrem Image aus auf den Server stellen oder das vorgefertigte Image in der Systemsteuerung verwenden.
Angenommen, wir haben Debian 10 und den Nginx-Webserver installiert, der im Standard-Repository (
apt install nginx) enthalten ist. Mal sehen, mit welchen nützlichen Dienstprogrammen und Befehlen Sie Ihren Linux-Server verwalten können. Betrachten wir Nginx separat und den VDS-Server selbst als Ganzes.
Inhalt
Zunächst ist es ratsam, den Webserver selbst zu verstehen. Nginx startet nach Abschluss der Installation. Wir überprüfen diese Tatsache:
systemctl status nginx
Ausgabe:
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2020-08-17 08:52:54 UTC; 4min 23s ago
Docs: man:nginx(8)
Main PID: 3942 (nginx)
Tasks: 3 (limit: 4719)
Memory: 6.1M
CGroup: /system.slice/nginx.service
├─3942 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
├─3943 nginx: worker process
└─3944 nginx: worker process
Oder geben Sie einfach die IP-Adresse des Servers in den Browser ein:
http://your_server_ip
Wenn wir unsere Site-Dateien noch nicht auf den Server kopiert haben, wird die Standard-Nginx-Headerseite angezeigt.
Grundlegende Befehle zum Verwalten von Nginx
Hinweis. Wenn der Benutzer keine Root-Rechte hat, muss er für jeden ausgeführten Befehl mit dem Befehl Root-Rechte erhalten
sudo.
Stoppen des Webservers:
sudo systemctl stop nginx
Wenn als root ausgeführt, lautet der Befehl:
systemctl stop nginx
Start nach Stopp:
systemctl start nginx
Anhalten und neu starten (neu starten):
systemctl restart nginx
Wenn Sie gerade einige Konfigurationsänderungen vorgenommen haben, kann Nginx neu gestartet werden, ohne die aktuellen Verbindungen zu verlieren. Dies erfolgt mit folgendem Befehl:
systemctl reload nginx
Standardmäßig ist Nginx so konfiguriert, dass es beim Booten des Servers automatisch gestartet wird. Dieses Verhalten kann mit dem folgenden Befehl geändert werden:
systemctl disable nginx
Aktivieren Sie den Nginx-Autostart beim Serverstart erneut:
systemctl enable nginx
Standardmäßig verfügt Nginx über einen Satz von Serverblockregeln, die für eine Domäne konfiguriert sind . Es wird davon ausgegangen, dass Sie nur eine Site auf Ihrem Server hosten. Standardmäßig sollte es sich im Verzeichnis befinden
/var/www/html.
Angenommen, Sie möchten mehrere Sätze von Serverblöcken für mehrere Sites in Nginx erstellen oder die Dateien der aktuellen Site in ein anderes Verzeichnis verschieben
/var/www/your_domain.
Dies erfolgt mit den folgenden Befehlen.
Zuerst erstellen wir das erforderliche Verzeichnis auf dem Server.
mkdir -p /var/www/your_domain/html
Anschließend weisen wir den Eigentümer dieses Verzeichnisses mithilfe einer Variablen zu
$USER, die dem aktuellen Benutzer entsprechen soll:
chown -R $USER:$USER /var/www/your_domain/html
Wir platzieren die Hauptseite im angegebenen Verzeichnis
index.html.
Dann müssen Sie ein geeignetes Regelwerk für Nginx erstellen. Erstellen Sie in einem beliebigen Texteditor eine Datei
/etc/nginx/sites-available/your_domainund kopieren Sie die Konfiguration aus der dortigen Standarddatei nur mit der geänderten Adresse und Domäne:
server {
listen 80;
listen [::]:80;
root /var/www/your_domain/html;
index index.html index.htm index.nginx-debian.html;
server_name your_domain www.your_domain;
location / {
try_files $uri $uri/ =404;
}
}
Schließlich aktivieren wir diese Konfiguration, indem wir einen Symlink zur neuen Konfigurationsdatei in das Verzeichnis schreiben, das
sites-enabledNginx beim Booten liest:
ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/
Nach dem Neustart zeigt Nginx die entsprechende Seite für Anforderungen
your_domainund an www.your_domain.
Serververwaltung
Welche Fragen haben Benutzer am häufigsten bei der Verwaltung eines Linux-Servers? Welche Tools können Sie auch unerfahrenen Administratoren empfehlen?
Supervisor installieren
Supervisor ist ein Client / Server-System, über das der Administrator die Prozesse auf dem Server steuert. Das Tool erstellt Prozesse als Unterprozesse in eigenem Namen.
Die Installation von Supervisord unter Debian oder Ubuntu ist äußerst einfach:
apt-get install supervisor
Danach wird der Supervisor-Daemon bereits ausgeführt und startet bei jedem Systemstart.
Neue Programme werden über Konfigurationsdateien im Verzeichnis an den Supervisor übergeben
/etc/supervisor/conf.d. Für ein Skript long.shkönnte die Konfigurationsdatei beispielsweise folgendermaßen aussehen:
[program:long_script]
command=/usr/local/bin/long.sh
autostart=true
autorestart=true
stderr_logfile=/var/log/long.err.log
stdout_logfile=/var/log/long.out.log
Dementsprechend wird das Skript bei jedem Systemstart automatisch gestartet und beim Beenden automatisch neu gestartet. Dieser Wert kann "false" (nicht neu gestartet) oder "unerwartet" (nur neu gestartet, wenn er mit einem unerwarteten Fehlercode beendet wird, standardmäßig mit einem anderen Code als 0 oder 2) sein.
Die letzten beiden Zeilen sind die Adressen der Magazine. Dies ist die Mindestkonfigurationsvorlage für ein Supervisor-Programm.
Nach dem Erstellen einer Konfigurationsdatei für ein bestimmtes Programm führen wir zwei Befehle aus, damit der Supervisor die neuen Konfigurationen erneut liest und anwendet:
supervisorctl reread
supervisorctl update
Zu diesem Zeitpunkt sollte unser Programm oder Skript bereits ausgeführt werden, was durch Protokolle überprüft werden kann.
Das Dienstprogramm
supervisorctlverfügt über einen interaktiven Modus, in dem es ohne Argumente ausgeführt wird:
$ supervisorctl
long_script RUNNING pid 12614, uptime 1:49:37
supervisor>
In diesem Modus zeigt Supervisorctl zunächst den Status und die Laufzeit aller Programme unter der Aufsicht des Supervisors und anschließend dessen Befehlszeile an. Dort können Sie eingeben
help- und eine Liste der verfügbaren Befehle anzeigen:
supervisor> help
default commands (type help ):
=====================================
add clear fg open quit remove restart start stop update
avail exit maintail pid reload reread shutdown status tail version
Wie Sie sehen, können Sie Programme über die Befehlszeile mit den Befehlen start, stop und restart starten, stoppen und neu starten.
Verwenden Sie zum Beenden des Supervisors Strg-C oder den Befehl quit:
supervisor> quit
Analyse des freien Speicherplatzes
Das Standarddienstprogramm zum Anzeigen von Informationen zu bereitgestellten Partitionen ist
df. Es zeigt eine Liste der angeschlossenen Geräte und Informationen zum belegten Speicherplatz an.
df
Die Option -h aktiviert eine vom Menschen lesbare Ausgabe (dh in Megabyte oder Gigabyte):
$ df -h
% C
devtmpfs 925M 0 925M 0% /dev
tmpfs 936M 56K 936M 1% /dev/shm
tmpfs 936M 1,9M 934M 1% /run
tmpfs 936M 0 936M 0% /sys/fs/cgroup
/dev/sda3 15G 11G 4,2G 71% /
tmpfs 936M 192K 936M 1% /tmp
/dev/sdb4 133G 126G 974M 100% /home
tmpfs 188M 20K 188M 1% /run/user/42
tmpfs 188M 7,1M 181M 4% /run/user/1000
Informationen zu einem bestimmten Verzeichnis (z. B. / home):
df -h /home
Informationen zu Partitionen mit einem bestimmten Dateisystem:
df -h -t ext4
Suchen Sie mit dem Befehl nach Dateien find
Suche nach Dateinamen:
find -name "query"
Suche nach Namen ohne Berücksichtigung der Groß- und Kleinschreibung:
find -iname "query"
Suche "Reverse" nach Dateien, die nicht dem angegebenen Muster entsprechen:
find -not -name "query_to_avoid"
oder
find \! -name "query_to_avoid"
Suche nach Dateityp
find -type _
Einige der gebräuchlichen Deskriptoren sind:
- f - reguläre Datei
- d - Verzeichnis
- l - symbolische Verbindung
- c - Zeichen-E / A-Gerätedateien
- b - Blockieren Sie E / A-Gerätedateien
Mit dem folgenden Befehl werden beispielsweise alle auf dem System installierten Zeichen-E / A-Geräte aufgelistet:
find / -type c
/dev/parport0
/dev/snd/seq
/dev/snd/timer
/dev/autofs
/dev/cpu/microcode
/dev/vcsa7
/dev/vcs7
/dev/vcsa6
/dev/vcs6
/dev/vcsa5
/dev/vcs5
/dev/vcsa4
. . .
Es gibt einen Filter nach Größe und Zugriffs- / Änderungszeit. Hier ist beispielsweise ein Befehl zum Suchen aller Dateien mit weniger als 50 Byte:
find / -size -50c
Suchen Sie nach allen Dateien über 700 Megabyte:
find / -size +700M
Um nach Zugriffszeit, Änderung oder Änderung von Datei-Metainformationen zu suchen, werden die Parameter '-atime', '-mtime' und '-ctime' mit Plus- und Minus-Symbolen verwendet, um einen Bereich anzuzeigen, der größer bzw. kleiner als der angegebene ist.
Suchen Sie nach Dateien, die vor weniger als einem Tag geändert wurden:
find / -mtime -1
Dateien mit Zugriffszeit vor mehr als drei Tagen:
find / -atime +3
Dateien, die sich in letzter Minute geändert haben:
find / -mmin -1
Dateien, die neuer als die angegebene Datei sind:
find / -newer myfile
Die Suche nach Eigentümer ('-user', '-group') und Dateien mit bestimmten Berechtigungen ('-perm') ist verfügbar. Bei allen gefundenen Dateien können Sie sofort eine Aktion ausführen ('-exec').
Testen von TCP- und UDP-Verbindungen
Linux wird mit einer Vielzahl nützlicher Dienstprogramme geliefert. Einige Systemadministratoren können die meisten Aufgaben nur mit den integrierten Tools ausführen, ohne zusätzliche Software zu installieren. Das wahre Schweizer Messer eingebetteter Linux-Tools ist das Netzwerkdienstprogramm
netcat. Allgemeine Syntax:
netcat [options] host port
Dieser Befehl initiiert eine TCP-Verbindung zum angegebenen Host am angegebenen Port. Wenn Sie anstelle von TCP eine UDP-Verbindung testen müssen, geben Sie die folgende Option an
-u:
netcat -u host port
Portbereich:
netcat host startport-endport
In den meisten Systemen können Sie beide schreiben
netcatund nc.
Port-Scan
Eine der typischen Anwendungen von Netcat ist das Port-Scannen. Eine Option
-zbedeutet das Scannen, anstatt eine Verbindung herzustellen. Wir verwenden es zusammen mit der Option -v, detailliertere Informationen beim Scannen von Ports von 1 bis 1000 anzuzeigen:
netcat -z -v domain.com 1-1000
Die Ausgabe sieht ungefähr so aus:
nc: Verbindung zu domain.com Port 1 (TCP) fehlgeschlagen: Verbindung abgelehnt nc: Verbindung zu domain.com Port 2 (TCP) fehlgeschlagen: Verbindung abgelehnt nc: Verbindung zu domain.com Port 3 (TCP) fehlgeschlagen: Verbindung abgelehnt nc: Verbindung zu domain.com Port 4 (tcp) fehlgeschlagen: Verbindung abgelehnt nc: Verbindung zu domain.com Port 5 (TCP) fehlgeschlagen: Verbindung abgelehnt nc: Verbindung zu domain.com Port 6 (TCP) fehlgeschlagen: Verbindung abgelehnt nc: Verbindung zu domain.com Port 7 (TCP) fehlgeschlagen: Verbindung abgelehnt ... ... ... Verbindung zu domain.com 22 Port [tcp / ssh] erfolgreich! ... ... ...
Für diese Aufgabe gibt es jedoch ein fortgeschritteneres, spezialisiertes Programm
nmap. Es installieren:
apt-get update
apt-get install nmap
Dieses Dienstprogramm enthält detailliertere Informationen zu Ports. Das Register bekannter Ports
/usr/share/nmap/nmap-servicesenthält mehr als 20.000 Zeilen, einschließlich zusätzlicher Felder, z. B. die durchschnittliche Häufigkeit des Öffnens eines bestimmten Ports auf Servern im Internet (dritte Spalte):
... ... ... tcpmux 1 / tcp 0,001995 # TCP-Portdienst-Multiplexer [rfc-1078] tcpmux 1 / udp 0,001236 # TCP Port Service Multiplexer compressnet 2 / tcp 0.000013 # Verwaltungsdienstprogramm compressnet 2 / udp 0.001845 # Verwaltungsdienstprogramm compressnet 3 / tcp 0.001242 # Komprimierungsprozess compressnet 3 / udp 0.001532 # Komprimierungsprozess unbekannt 4 / tcp 0,000477 rje 5 / udp 0,000593 # Remote Job Entry unbekannt 6 / tcp 0,000502 Echo 7 / tcp 0,004855 echo 7 / udp 0.024679 Echo 7 / sctp 0,000000 ... ... ...
Es wird nicht empfohlen, Port-Scans auf einem fremden Server auszuführen, da der Systemadministrator Aktionen wie feindlich verwechseln kann. Nmap wurde entwickelt, um seinen eigenen Server zu erkunden, und Sie können zu Testzwecken auf einem dedizierten Server experimentieren
scanme.nmap.org.
Die Ausführung einiger Befehle dauert lange.
Scannen des Betriebssystems auf dem Host:
nmap -O
Scan-Host-Bereich von xxx.xxx.xxx.xxx bis yyy.yyy.yyy.yyy:
nmap -PN xxx.xxx.xxx.xxx-yyy.yyy.yyy.yyy
Durchsuchen des Netzwerkbereichs nach verfügbaren Diensten:
nmap -sP _
Scannen eines bestimmten Ports:
nmap -p _
Scannen aller offenen TCP- und UDP-Ports:
nmap -n -PN -sT -sU -p-
Studieren von Softwareversionen, die auf dem Host ausgeführt werden:
nmap -PN -p _
Es gibt viele andere Befehle, Optionen und Anwendungsfälle für nmap. Durch das Scannen der Ports Ihres VDS-Servers können Sie potenzielle Angriffsmethoden und Schwachstellen identifizieren, da ein Angreifer seine Aktionen mit dem Scannen beginnt.
Nachrichten und Dateien weiterleiten
Mit dem Schlüssel können
-lSie einen bestimmten Port auf dem Server abhören:
netcat -l 5438
Auf einem anderen Computer geben wir an, über diesen Port eine Verbindung zum Computer herzustellen:
netcat domain.com 5438
Zwischen den beiden Systemen wurde nun ein Kommunikationskanal eingerichtet. Es kann zum Senden von Textnachrichten verwendet werden.
Auf diese Weise können Sie sogar eine Datei übertragen. Senden Sie dazu den Listening-Befehl direkt an die Datei:
netcat -l 5438 > _
Auf einem anderen Computer senden wir anstelle einer Textnachricht die Originaldatei an die Eingabe:
netcat domain.com 5438 < _
In ähnlicher Weise können Sie alle möglichen Dinge übertragen, z. B. den Inhalt von Verzeichnissen, die im laufenden Betrieb komprimiert wurden, an
tarball:
tar -czf - * | netcat domain.com 4444
Auf die gleiche Weise können Sie auf einer Seite ein Disk-Image erstellen (
dd), es über die erstellte TCP-Verbindung an den angegebenen Port senden und auf dem anderen System empfangen.
Hinzufügen und Entfernen von Benutzern
Um Benutzer hinzuzufügen, zu entfernen und ihnen Berechtigungen zu erteilen,
sudomüssen Sie zunächst eine Verbindung zum Server als root herstellen:
ssh root@ip__
Fügen Sie danach den Benutzer hinzu:
adduser newuser
Anfangs hat er keine Privilegien. Wenn dies jedoch der Hauptbenutzer des Systems ist, können wir ihm Administratorrechte zuweisen, damit er Routineaufgaben zur Wartung und Instandhaltung des Servers ausführen kann.
Um Administratorrechte zuzuweisen, müssen Sie den Benutzer zur Sudo-Gruppe hinzufügen. Benutzer in dieser Gruppe dürfen den Befehl
sudomit erhöhten Administratorrechten ausführen .
usermod -aG sudo user1
Stattdessen geben wir
user1den Namen des Benutzers an, der zuvor hinzugefügt wurde. Jetzt kann er alle Befehle ausführen über sudo:
sudo
Mit diesen Rechten kann dieser Benutzer andere Benutzer löschen:
sudo deluser --remove-home username
Diese Option
--remove-homeentfernt auch das Home-Verzeichnis des Benutzers.
Root selbst hat das Recht, den Befehl
deluserohne auszuführen sudo.
Dies ist natürlich keine vollständige Liste nützlicher Tools zum Verwalten eines VDS-Servers. Diese Fragen stellen sich jedoch häufig für unerfahrene Systemadministratoren, die ihren ersten Server einrichten, ein Betriebssystem installieren und beginnen, die Welt der Linux-Administration zu verstehen.
