Vous pouvez mettre le système d'exploitation sur le serveur à partir de votre image ou utiliser l'image prête à l'emploi dans le panneau de commande.
Disons que nous avons installé Debian 10 et le serveur Web Nginx, qui vient dans le référentiel standard (
apt install nginx
). Voyons quels utilitaires et commandes utiles vous aideront à gérer votre serveur Linux. Considérons Nginx séparément et le serveur VDS lui-même dans son ensemble.
Contenu
Tout d'abord, il est conseillé de comprendre le serveur Web lui-même. Nginx démarre lorsque l'installation est terminée. Nous vérifions ce fait:
systemctl status nginx
Émission:
● 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
Ou entrez simplement l'adresse IP du serveur dans le navigateur:
http://your_server_ip
Si nous n'avons pas encore copié les fichiers de notre site sur le serveur, la page d'en-tête standard Nginx sera affichée.
Commandes de base pour la gestion de Nginx
Remarque. Si l'utilisateur ne dispose pas de privilèges root, pour chaque commande à exécuter, il doit obtenir les privilèges root à l'aide de la commande
sudo
.
Arrêt du serveur Web:
sudo systemctl stop nginx
Si elle est exécutée en tant que root, la commande est:
systemctl stop nginx
Démarrer après l'arrêt:
systemctl start nginx
Arrêt et redémarrage (redémarrage):
systemctl restart nginx
Si vous venez de faire quelques changements de configuration, Nginx peut redémarrer sans perdre vos connexions actuelles. Cela se fait avec la commande suivante:
systemctl reload nginx
Par défaut, Nginx est configuré pour démarrer automatiquement au démarrage du serveur. Ce comportement peut être modifié avec la commande suivante:
systemctl disable nginx
Réactivez le démarrage automatique de Nginx au démarrage du serveur:
systemctl enable nginx
Par défaut, Nginx a un ensemble de règles de blocage de serveur configuré pour un domaine. Il est supposé que vous n'hébergez qu'un seul site sur votre serveur. Par défaut, il doit être situé dans le répertoire
/var/www/html
.
Supposons que vous souhaitiez créer plusieurs ensembles de blocs de serveur pour plusieurs sites dans Nginx ou déplacer les fichiers du site actuel vers un répertoire différent
/var/www/your_domain
.
Ceci est fait avec les commandes suivantes.
Tout d'abord, nous créons le répertoire requis sur le serveur.
mkdir -p /var/www/your_domain/html
Ensuite, nous affectons le propriétaire de ce répertoire à l'aide d'une variable
$USER
qui doit correspondre à l'utilisateur actuel:
chown -R $USER:$USER /var/www/your_domain/html
Nous plaçons la page principale dans le répertoire spécifié
index.html
.
Ensuite, vous devez créer un ensemble de règles approprié pour Nginx. Dans n'importe quel éditeur de texte, créez un fichier
/etc/nginx/sites-available/your_domain
et copiez-y la configuration à partir du fichier par défaut, uniquement avec l'adresse et le domaine modifiés:
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;
}
}
Enfin, nous activons cette configuration en écrivant un lien symbolique vers le nouveau fichier de configuration dans le répertoire
sites-enabled
que Nginx lit au démarrage:
ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/
Après le redémarrage, Nginx affichera la page appropriée pour les demandes
your_domain
et www.your_domain
.
Gestion des serveurs
Quelles sont les questions les plus fréquentes des utilisateurs lors de la gestion d'un serveur Linux? Quels outils pouvez-vous recommander même aux administrateurs inexpérimentés?
Installer un superviseur
Supervisor est un système client / serveur à travers lequel l'administrateur contrôle les processus sur le serveur. L'outil crée des processus en tant que sous-processus pour son propre compte.
L'installation de supervisord sur Debian ou Ubuntu est extrêmement simple:
apt-get install supervisor
Après cela, le démon superviseur est déjà en cours d'exécution et démarrera à chaque démarrage du système.
Les nouveaux programmes sont transmis au superviseur via les fichiers de configuration dans le répertoire
/etc/supervisor/conf.d
. Par exemple, pour un script, le long.sh
fichier de configuration peut ressembler à ceci:
[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
En conséquence, le script sera automatiquement lancé à chaque démarrage du système et redémarré automatiquement en cas de fermeture. Cette valeur peut être «faux» (ne pas redémarrer) ou «inattendu» (redémarrer uniquement si vous quittez avec un code d'erreur inattendu, par défaut, tout code autre que 0 ou 2).
Les deux dernières lignes sont les adresses des magazines. Il s'agit du modèle de configuration minimum pour un programme superviseur.
Après avoir créé un fichier de configuration pour un programme spécifique, nous exécutons deux commandes afin que le superviseur relise et applique les nouvelles configurations:
supervisorctl reread
supervisorctl update
À ce stade, notre programme ou script devrait déjà être en cours d'exécution, ce qui peut être vérifié par les journaux.
L'utilitaire
supervisorctl
a un mode interactif dans lequel il s'exécute sans arguments:
$ supervisorctl
long_script RUNNING pid 12614, uptime 1:49:37
supervisor>
Dans ce mode, supervisorctl affiche d'abord l'état et la durée d'exécution de tous les programmes sous la supervision du superviseur, puis sa ligne de commande. Là, vous pouvez entrer
help
- et voir une liste des commandes disponibles:
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
Comme vous pouvez le voir, vous pouvez démarrer, arrêter et redémarrer des programmes à partir de la ligne de commande à l'aide des commandes de démarrage, d'arrêt et de redémarrage.
Pour quitter le superviseur, utilisez Ctrl-C ou la commande quit:
supervisor> quit
Analyse de l'espace disque libre
L'utilitaire standard pour afficher les informations sur les partitions montées est
df
. Il affiche une liste des appareils connectés et des informations sur l'espace occupé.
df
L'option -h active une sortie lisible par l'homme (c'est-à-dire en mégaoctets ou en gigaoctets):
$ 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
Informations sur un répertoire spécifique (par exemple / home):
df -h /home
Informations sur les partitions avec un système de fichiers donné:
df -h -t ext4
Rechercher des fichiers avec la commande find
Recherche par nom de fichier:
find -name "query"
Recherche par nom insensible à la casse:
find -iname "query"
Recherche "inversée" pour les fichiers qui ne correspondent pas au modèle spécifié:
find -not -name "query_to_avoid"
ou
find \! -name "query_to_avoid"
Recherche par type de fichier
find -type _
Certains des descripteurs communs sont:
- f - fichier régulier
- d - répertoire
- l - lien symbolique
- c - fichiers de périphérique d'E / S de caractères
- b - bloquer les fichiers de périphérique d'E / S
Par exemple, la commande suivante répertorie tous les périphériques d'E / S de caractères installés sur le système:
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
. . .
Il y a un filtre par taille et temps d'accès / changement. Par exemple, voici une commande pour rechercher tous les fichiers de moins de 50 octets:
find / -size -50c
Recherchez tous les fichiers de plus de 700 mégaoctets:
find / -size +700M
Pour rechercher par heure d'accès, modification ou changement des méta-informations du fichier, les paramètres «-atime», «-mtime» et «-ctime» sont utilisés avec les symboles plus et moins pour indiquer une plage supérieure et inférieure à celle spécifiée, respectivement.
Recherchez les fichiers modifiés il y a moins d'un jour:
find / -mtime -1
Fichiers avec un temps d'accès il y a plus de trois jours:
find / -atime +3
Fichiers modifiés au cours de la dernière minute:
find / -mmin -1
Fichiers plus récents que le fichier spécifié:
find / -newer myfile
La recherche par propriétaire ('-user', '-group') et les fichiers avec des autorisations spécifiques ('-perm') est disponible. Sur tous les fichiers trouvés, vous pouvez effectuer immédiatement une action ('-exec').
Test des connexions TCP et UDP
Linux est livré avec un grand nombre d'utilitaires utiles. Certains administrateurs système peuvent effectuer la plupart des tâches en utilisant uniquement les outils intégrés, sans installer de logiciel supplémentaire. Le véritable couteau suisse des outils Linux embarqués est l'utilitaire réseau
netcat
. Syntaxe générale:
netcat [options] host port
Cette commande lance une connexion TCP avec l'hôte spécifié sur le port spécifié. Si au lieu de TCP, vous devez tester une connexion UDP, spécifiez l'option
-u
:
netcat -u host port
Gamme de ports:
netcat host startport-endport
Dans la plupart des systèmes, vous pouvez écrire à la fois
netcat
et nc
.
Balayage des ports
L'une des utilisations typiques de netcat est l'analyse des ports, une option
-z
signifie l'analyse au lieu d'établir une connexion. Nous l'utilisons avec la possibilité -v
d'afficher des informations plus détaillées lors de la numérisation des ports de 1 à 1000:
netcat -z -v domain.com 1-1000
La sortie ressemblera à ceci:
nc: échec de la connexion au port 1 (tcp) de domain.com: connexion refusée nc: échec de la connexion au port 2 de domaine.com (tcp): connexion refusée nc: échec de la connexion au port 3 de domain.com (tcp): connexion refusée nc: échec de la connexion au port 4 (tcp) de domain.com: connexion refusée nc: échec de la connexion au port 5 (tcp) de domain.com: connexion refusée nc: échec de la connexion au port 6 (tcp) de domain.com: connexion refusée nc: échec de la connexion au port 7 (tcp) de domain.com: connexion refusée ... ... ... La connexion au port 22 de domain.com [tcp / ssh] a réussi! ... ... ...
Cependant, il existe un programme spécialisé plus avancé pour cette tâche
nmap
. Installez-le:
apt-get update
apt-get install nmap
Cet utilitaire donne des informations plus détaillées sur les ports. Le registre des ports connus
/usr/share/nmap/nmap-services
contient plus de 20000 lignes, y compris des champs supplémentaires, tels que la fréquence moyenne d'ouverture d'un port particulier sur des serveurs sur Internet (troisième colonne):
... ... ... tcpmux 1 / tcp 0.001995 # Multiplexeur de service de port TCP [rfc-1078] tcpmux 1 / udp 0,001236 # Multiplexeur de service de port TCP utilitaire de gestion compressnet 2 / tcp 0.000013 # utilitaire de gestion compressnet 2 / udp 0,001845 # compressnet 3 / tcp 0,001242 # Processus de compression compressnet 3 / udp 0,001532 # Processus de compression inconnu 4 / tcp 0,000477 rje 5 / udp 0.000593 # Saisie de travaux à distance inconnu 6 / tcp 0,000502 écho 7 / tcp 0,004855 écho 7 / udp 0,024679 écho 7 / sctp 0,000000 ... ... ...
Il n'est pas recommandé d'exécuter des analyses de port sur un serveur étranger, car l'administrateur système peut prendre de telles actions pour hostiles. Nmap est conçu pour explorer son propre serveur et vous pouvez expérimenter sur un serveur dédié à des fins de test
scanme.nmap.org
.
Certaines commandes prennent du temps à s'exécuter.
Analyse du système d'exploitation sur l'hôte:
nmap -O
Analyser la plage d'hôtes de xxx.xxx.xxx.xxx à aaa.aaa.aaa.aaa:
nmap -PN xxx.xxx.xxx.xxx-yyy.yyy.yyy.yyy
Analyse de la plage réseau à la recherche des services disponibles:
nmap -sP _
Analyse d'un port spécifique:
nmap -p _
Analyse de tous les ports TCP et UDP ouverts:
nmap -n -PN -sT -sU -p-
Étude des versions logicielles exécutées sur l'hôte:
nmap -PN -p _
Il existe de nombreuses autres commandes, options et cas d'utilisation de nmap. L'analyse des ports de votre serveur VDS vous permet d'identifier les vecteurs d'attaque potentiels et les vulnérabilités, car un attaquant commencera ses actions par l'analyse.
Transférer des messages et des fichiers
À l'aide de la clé,
-l
vous pouvez écouter sur un port spécifique du serveur:
netcat -l 5438
Sur une autre machine, nous spécifions de se connecter à la machine sur ce port:
netcat domain.com 5438
Un canal de communication a maintenant été établi entre les deux systèmes. Il peut être utilisé pour envoyer des messages texte.
Vous pouvez même transférer un fichier de cette façon. Pour ce faire, envoyez la commande d'écoute directement dans le fichier:
netcat -l 5438 > _
Sur un autre ordinateur, au lieu d'un message texte, nous soumettons le fichier d'origine à l'entrée:
netcat domain.com 5438 < _
De même, vous pouvez transférer une variété de choses, par exemple, le contenu des répertoires, archivés à la volée dans
tarball
:
tar -czf - * | netcat domain.com 4444
De la même manière, vous pouvez créer une image disque d'un côté (
dd
), l'envoyer au port spécifié via la connexion TCP créée - et la recevoir sur l'autre système.
Ajouter et supprimer des utilisateurs
Pour ajouter, supprimer des utilisateurs et leur accorder des privilèges,
sudo
vous devez d'abord vous connecter au serveur en tant que root:
ssh root@ip__
Après cela, ajoutez l'utilisateur:
adduser newuser
Au départ, il n'a aucun privilège. Mais s'il s'agit de l'utilisateur principal du système, nous pouvons lui attribuer des privilèges administratifs afin qu'il puisse effectuer des tâches de routine de maintenance et de maintenance du serveur.
Pour attribuer des privilèges administratifs, vous devez ajouter l'utilisateur au groupe sudo. Les utilisateurs de ce groupe sont autorisés à exécuter la commande
sudo
avec leurs privilèges élevés à administratifs.
usermod -aG sudo user1
Au lieu de cela, nous indiquons
user1
le nom de l'utilisateur qui a été ajouté précédemment. Maintenant, il pourra exécuter toutes les commandes via sudo
:
sudo
Avec ces droits, cet utilisateur peut supprimer d'autres utilisateurs:
sudo deluser --remove-home username
Cette option
--remove-home
supprime également le répertoire personnel de l'utilisateur.
Root lui-même a le droit d'exécuter la commande
deluser
sans sudo
.
Bien entendu, ce n'est pas une liste complète d'outils utiles pour gérer un serveur VDS. Mais ces questions se posent souvent pour les administrateurs système novices qui ont configuré leur premier serveur, installé un système d'exploitation et commencent à comprendre le monde de l'administration Linux.