Gestion du pare-feu avec firewalld
Pour autoriser le service HTTP dans la zone publique de façon permanente :
sudo firewall-cmd --zone=public --add-service=http --permanent
Lister les services actifs :
sudo firewall-cmd --list-service
Cela peut afficher des services comme dhcpv6-client, http et ssh.
Vérifier l'état du pare-feu :
firewall-cmd --state
Si le résultat est "running", le pare-feu est opérationnel.
Contrôler le service firewalld via systemctl :
sudo systemctl start firewalld # Démarrage
sudo systemctl stop firewalld # Arrêt
sudo systemctl restart firewalld # Redémarrage
Ouverture et fermeture des ports
Ouvrir le port 80 en TCP :
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
Ouvrir une plage de ports, telle que 8000 à 9000 :
sudo firewall-cmd --zone=public --add-port=8000-9000/tcp --permanent
Fermer un port spécifique :
sudo firewall-cmd --zone=public --remove-port=80/tcp --permanent
Fermer une plage de ports :
sudo firewall-cmd --zone=public --remove-port=8000-9000/tcp --permanent
Appliquer les modifications immédiatement :
sudo firewall-cmd --reload
Inspection des ports et des processus
Afficher les ports en écoute avec netstat (nécessite net-tools sur CentOS 7) :
sudo yum install -y net-tools
netstat -lnpt
Identifier le processus lié à un port, par exemple 5672 :
netstat -lnpt | grep 5672
Obtenir des détails sur un processus via son PID :
ps -p 6832 -o pid,cmd
Terminer un processus de force :
kill -9 6832
Résolution des problèmes réseau avec yum
En cas d'erreur telle que "Cannot retrieve metalink to repository: epel/x86_64", éditer le fichier de dépôt :
sudo vim /etc/yum.repos.d/epel.repo
Dans ce fichier, commenter les lignes mirrorlist et activer baseurl. Puis, nettoyer et recréer le cache :
sudo yum clean all
sudo yum makecache
Mettre à jour le système avec prudence si nécessarie :
sudo yum update
Configuration de Docker et déploiement d'applications .NET
Démarrer Docker et configurer un miroir de registre :
sudo systemctl start docker
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-EOF
{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}
EOF
sudo systemctl restart docker
Exemple de Dockerfile pour une application ASP.NET Core 6.0 :
FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
WORKDIR /app
EXPOSE 8080
COPY . .
ENV ASPNETCORE_URLS http://+:8080
ENV TZ=Europe/Paris
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
ENTRYPOINT ["dotnet", "MonApplication.dll"]
Construire et exécuter l'image Docker :
sudo docker build -t monappweb:latest .
sudo docker run -p 8080:8080 -d --restart=always --name conteneurweb monappweb:latest
Assurez-vous que l'image de base soit disponible ou tirée du registre avant le build.