Contacts

CENTOS 7 Firewall Open Port 80. Configuration du courrier système

Établi par système opérateur Le pare-feu est utilisé pour empêcher le trafic non autorisé entre les réseaux informatiques. Manuel ou crée automatiquement des règles spéciales pour le pare-feu, qui sont responsables du contrôle d'accès. Au système d'exploitation, développé sur le noyau Linux, Centos 7 Il existe un pare-feu intégré et il est contrôlé par pare-feu. Le pare-feu par défaut est impliqué et nous aimerions en parler aujourd'hui.

Comme mentionné ci-dessus, le pare-feu standard de Centos 7 est attribué à un utilitaire de pare-feu. C'est pourquoi le réglage du pare-feu sera pris en compte sur l'exemple de cet outil. Vous pouvez définir les règles de filtrage avec les mêmes iptables, mais il est effectué légèrement différent. Nous vous recommandons de vous familiariser avec la configuration de l'utilitaire mentionné en cliquant sur le lien suivant et nous commencerons le démontage du pare-feu.

Les concepts de base du pare-feu

Il existe plusieurs ensembles de zones de zone pour gérer le trafic sur la base de la confiance des réseaux. Tous reçoivent leurs propres politiques, dont la totalité et forme la configuration du pare-feu. Chaque zone se voit attribuer une ou plusieurs interfaces réseau, ce qui vous permet également de régler le filtrage. Les règles appliquées dépendent directement de l'interface utilisée. Par exemple, lorsqu'il est connecté au Wi-Fi accumulé publiquement Écran de réseau augmentera le niveau de contrôle et dans réseau domestique Il ouvrira un accès supplémentaire pour les participants de la chaîne. Dans le farvol vu, il y a de telles zones:

  • trusted est le niveau de confiance maximal dans tous les périphériques de réseau;
  • accueil - LAN Group. Il y a une confiance dans les environs, mais les connexions entrantes sont disponibles uniquement pour certaines machines;
  • travail - Zone de travail. Il y a une confiance dans la plupart des appareils et des services supplémentaires sont activés;
  • dMZ - Zone pour ordinateurs isolés. De tels dispositifs sont déconnectés du reste du réseau et seul un certain trafic entrant est passé;
  • zone de réseau interne interne. La confiance s'applique à toutes les machines, des services supplémentaires sont ouverts;
  • externe - inverse de la zone précédente. Dans les réseaux externes, le masquage NAT est actif, fermant le réseau intérieur, mais sans bloquer la possibilité d'accéder;
  • public - une zone de réseaux publics avec méfiance envers tous les appareils et réception individuelle du trafic entrant;
  • bloc - Toutes les demandes entrantes sont réinitialisées avec l'envoi d'erreur iCMP-hôte-interdit ou alors iCMP6-AMM-interdit;
  • la chute est le niveau minimum de confiance. Les connexions entrantes sont déchargées sans aucune notification.

Les politiques elles-mêmes sont temporaires et permanentes. Lorsque des paramètres ou modifiés, l'action de pare-feu change immédiatement sans redémarrage. Si des règles temporaires ont été appliquées, après le redémarrage du pare-feu, ils seront réinitialisés. La règle permanente s'appelle quelque chose - il sera sauvé de manière continue lors de l'application de l'argument -Permanent.

Activer le pare-feu Firewalld

Tout d'abord, vous devez exécuter un pare-feu ou vous assurer qu'il s'agit d'une condition active. Seul le démon fonctionnant (un programme fonctionnant en arrière-plan) appliquera les règles du pare-feu. L'activation est établie littéralement quelques clics:

  1. Courir le classique "Terminal" Toute méthode pratique, par exemple, à travers le menu "Applications".
  2. Entrez la commande Sudo SystemCtTL Start Firewalld.Service et cliquez sur la touche. ENTRER.
  3. Le contrôle de l'utilitaire est effectué pour le compte du superutilisateur, vous devez donc confirmer l'authenticité en spécifiant le mot de passe.
  4. Pour vous assurer que le service fonctionne, spécifiez le pare-feu-cmd -state.
  5. Dans la fenêtre graphique qui s'ouvre, reportez-vous à l'authenticité.
  6. Une nouvelle ligne apparaîtra. Valeur "En cours" suggère que le pare-feu fonctionne.

Si vous serez une fois temporairement ou définitivement désactiver le pare-feu, nous vous conseillons d'utiliser les instructions présentées dans l'autre article par le lien suivant.

Voir les règles par défaut et les zones abordables

Même le pare-feu ordinaire a ses propres règles définies et ses zones accessibles. Avant de commencer la modification du politicien, nous vous conseillons de vous familiariser avec la configuration actuelle. Ceci est fait en utilisant des commandes simples:

  1. La zone par défaut déterminera la commande Firewall-CmD-Zone-Zone.
  2. Après son activation, vous verrez nouvelle chaîneoù le paramètre requis apparaît. Par exemple, la zone est considérée dans la capture d'écran ci-dessous "Publique".
  3. Cependant, plusieurs zones peuvent être actives immédiatement, en outre, elles sont liées à une interface distincte. Découvrez ces informations via Firewall-Cmd --Get-ACTIVE-ZONES.
  4. La commande Firewall-CMD - Toutes les commandes afficheront les règles définies pour la zone par défaut. Faites attention à la capture d'écran ci-dessous. Vous voyez la zone active "Publique" Règle récompensée "DÉFAUT" - Fonctionnement par défaut, interface "ENP0SS3" et ajouté deux services.
  5. Si vous avez besoin d'apprendre toutes les zones de pare-feu disponibles, entrez des zones de pare-feu-cmd --get.
  6. Les paramètres de la zone spécifique sont définis via Firewall-cmd --Zone \u003d Nom --list - Tous, où nom. - Zone de noms.

Après avoir déterminé les paramètres requis, vous pouvez passer à leur changement et à leur addition. Analysons plusieurs des configurations les plus populaires en détail.

Configuration des zones d'interface

Comme vous le savez des informations ci-dessus, votre zone par défaut est définie pour chaque interface. Il y en aura jusqu'à ce que les paramètres changent l'utilisateur ou de manière programmatique. Il est possible de transférer manuellement l'interface sur la zone par session et elle est réalisée en activant la commande sudo-pare-feu-cmd -zone \u003d home Commande --Change-interface \u003d ETH0. Résultat "SUCCÈS" Cela indique que le transfert a réussi. Rappelez-vous que de tels paramètres sont réinitialisés immédiatement après le redémarrage du pare-feu.

Avec un tel changement dans les paramètres, il convient de garder à l'esprit que le fonctionnement des services peut être réinitialisé. Certains d'entre eux ne soutiennent pas le fonctionnement dans certaines zones, disons, ssh bien que accessibles dans "DOMICILE"Mais dans l'utilisateur ou le service spécial refusera de travailler. Assurez-vous que l'interface a été liée avec succès à la nouvelle succursale, en entrant le pare-feu-CMD -GET-ACTIVE-ZONES.

Si vous souhaitez réinitialiser les paramètres précédemment définis, exécutez simplement le redémarrage du pare-feu: Sudo SystemCtl redémarrez Firewalld.Service.

Parfois, il n'est pas toujours pratique de changer la zone d'interface en une seule session. Dans ce cas, vous devrez éditer le fichier de configuration afin que tous les paramètres soient émaillés de manière permanente. Pour ce faire, nous vous conseillons d'utiliser un éditeur de texte. nano.qui est installé à partir du référentiel officiel de Sudo Yum Install Nano. Ensuite reste de telles actions:

  1. Ouvrez le fichier de configuration via l'éditeur en entrant sudo nano / etc / sysconfig / réseaux-scripts / ifcfg -thh0, où eTH0. - Nom de l'interface requise.
  2. Confirmer l'authenticité compte Remplir d'autres mesures.
  3. Établir le paramètre Zone Et changer sa valeur à la personne souhaitée, par exemple, publique ou à la maison.
  4. Tenir les clés Ctrl + O.Enregistrer les modifications.
  5. Ne changez pas le nom du fichier, mais cliquez simplement sur ENTRER.
  6. Sortir de éditeur de texte à travers Ctrl + X..

Maintenant, la zone d'interface sera celle que vous avez spécifiée jusqu'à la prochaine modification du fichier de configuration. Pour les paramètres mis à jour, exécutez Sudo SystemCtL Redémarrer Network.Service et Sudo SystemCTL Redémarrez le pare-feu.

Définition de la zone par défaut

Au-dessus, nous avons déjà démontré une équipe qui vous permet d'apprendre la zone par défaut. Il peut également être modifié en définissant le paramètre à votre choix. Pour ce faire, dans la console, il suffit d'enregistrer sudo pare-feu-cmd -Set-par défaut-zone \u003d nom, où nom. - le nom de la zone requise.

Le succès de l'équipe va expulser l'inscription "SUCCÈS" Dans une ligne séparée. Après cela, toutes les interfaces actuelles seront nées à la zone spécifiée, si l'autre n'est pas spécifiée dans les fichiers de configuration.

Créer des règles pour les programmes et les services publics

Au tout début de l'article, nous avons parlé de l'action de chaque zone. La définition des services, des utilitaires et des programmes dans de telles branches permettra d'appliquer des paramètres individuels pour chacun d'eux pour chaque demande d'utilisateur. Pour commencer, nous vous conseillons de vous familiariser avec la liste complète des services disponibles pour le moment: Firewall-CMD --Get-Services.

Le résultat sera affiché directement dans la console. Chaque serveur est divisé par un espace et vous pouvez facilement trouver l'outil qui vous intéresse. Si le service requis est manquant, il doit être installé en outre. Sur les règles d'installation, lisez dans la documentation logicielle officielle.

La commande ci-dessus ne démontre que les noms des services. Des informations détaillées sur chacune d'elles sont obtenues via le fichier individuel sur le chemin / USR / LIB / Firewalld / Services. Ces documents ont un format XML, le chemin, par exemple à SSH ressemble à ceci: /usr/lib/firewalld/services/ssh.xml, et le document dispose du contenu suivant:

Ssh.
Secure Shell (SSH) est un protocole de connexion et d'exécution de commandes sur des machines distantes. Il fournit des communications cryptées sécurisées. Si vous envisagez d'accéder à votre machine RemoNet via SSH sur une interface pare-feu, activez cette option. Vous avez besoin du package OpenSSH-Server installé pour cette option pour être utile.

Le support de service est activé manuellement dans une zone spécifique. DANS "Terminal" Vous devriez définir le Sudo Firewall-cmd --Zone \u003d Public --DD-Service \u003d Commande HTTP, où --Zone \u003d public - zone d'activation et --Add-service \u003d http - Nom du service. Notez qu'un tel changement ne sera valable que dans une session.

L'addition permanente est effectuée via Sudo Firewall-cmd --Zone \u003d Public --Permanent --DD-Service \u003d HTTP, et le résultat "SUCCÈS" Spécifie la réussite de l'opération.

Vue liste complète Règles permanentes pour une zone spécifique peut, affichant une liste dans une ligne séparée de la console: Sudo Firewall-CMD --Zone \u003d Public --Permanent -List-Services.

Problème de décision avec le manque d'accès au service

Les règles de pare-feu standard sont les services les plus populaires et les plus sûrs tels que autorisés, mais certains standard ou applications tierces Ça bloque. Dans ce cas, l'utilisateur doit manuellement pour modifier les paramètres pour résoudre le problème avec accès. Vous pouvez le faire dans deux méthodes différentes.

Port de portes

Comme vous le savez, tous les services de réseau utilisent un port spécifique. Il est facilement détecté par un pare-feu et des blocs peuvent être effectués. Pour éviter de telles actions du pare-feu, vous devez ouvrir le port souhaité du pare-feu sudo-cmd -zone \u003d public - Portd-Port \u003d 0000 / TCP, où --Zone \u003d public - Zone pour le port, --Add-Port \u003d 0000 / TCP - Le numéro de port et le protocole. L'option Firewall-CMD -List-Ports affichera une liste des ports ouverts.

Si vous devez ouvrir des ports inclus dans la gamme, utilisez le pare-feu sudo-cmd -zone \u003d public - PORD-PORT \u003d 0000-9999 / UDP Rail, où --Add-Port \u003d 0000-9999 / UDP - Gamme de ports et de leur protocole.

Les commandes ci-dessus ne vous permettent que de tester l'utilisation de paramètres similaires. Si elle est passée avec succès, vous devez ajouter les mêmes ports à des paramètres constants, ce qui est fait en entrant Sudo Firewall-cmd -zone \u003d Public --Permanent --Add-Port \u003d 0000 / TCP ou Sudo Firewall-CMD - Zone \u003d Public --Permanent --Add-Port \u003d 0000-9999 / UDP. La liste des ports permanents ouverts est considérée comme suit: sudo pare-feu-cmd --zone \u003d Public --Permanent -list-Ports.

Définition du service

Comme vous pouvez le constater, l'ajout de ports ne provoque aucune difficulté, mais la procédure est compliquée dans le cas où des applications sont utilisées. un grand nombre de. Pour suivre tous les ports utilisés devient difficile, au vu desquels la détermination du service sera une option plus correcte:


Vous devez seulement choisir la solution la plus appropriée au problème de service avec l'accès au service et exécuter les instructions fournies. Comme vous pouvez le constater, toutes les actions sont effectuées assez facilement et il ne devrait y avoir aucune difficulté.

Créer des zones personnalisées

Vous savez déjà que dans un grand nombre de zones diverses avec des règles définies a été créée dans Firewalld. Cependant, des situations se produisent lorsque l'administrateur système doit créer une zone utilisateur, par exemple, par exemple, "Publicweb" Pour le serveur Web installé ou "Privatedns" - Pour le serveur DNS. Sur ces deux exemples, nous analyserons l'ajout des succursales:


De cet article, vous avez appris à créer des zones personnalisées et à leur ajouter des services. Nous leur avons déjà dit par défaut et attribuant des interfaces ci-dessus, vous ne pouvez spécifier que les noms appropriés. N'oubliez pas de redémarrer le pare-feu après avoir effectué un changement permanent.

Comme vous pouvez le constater, le pare-feu Firewalld est un outil assez volumétrique qui vous permet de créer la configuration la plus flexible du pare-feu. Il reste seulement de s'assurer que l'utilitaire se lance avec le système et que les règles spécifiées commencent immédiatement leur travail. Faites-le avec la commande Sudo SystemCtL Activer FirewallD.

Zones

Demon Firewalld gère des groupes de règles utilisant des zones soi-disant.

Les zones sont en fait des ensembles de règles qui contrôlent le trafic sur la base du niveau de confiance dans ce réseau ou de ce réseau. Les zones sont affectées à des interfaces réseau et contrôlent le comportement du pare-feu.

Les ordinateurs qui sont souvent connectés à différents réseaux (par exemple, les ordinateurs portables) peuvent utiliser des zones pour modifier les ensembles de règles en fonction du support. Par exemple, lorsqu'il est connecté au public réseaux WiFi Le pare-feu peut appliquer des règles plus strictes et sur le réseau domestique pour affaiblir les restrictions.

Les zones suivantes existent dans le pare-feu:

  • drop: le niveau le plus bas de la confiance du réseau. Tout le trafic entrant est déchargé sans réponse, seuls les composés sortants sont pris en charge.
  • bloc: Cette zone est similaire à celle du précédent, mais les demandes entrantes sont réinitialisées avec ICMP-Host-Host-interdit ou ICMP6-SMA interdit.
  • public: Cette zone représente un réseau public qui ne peut toutefois pas faire confiance, il prend en charge les composés entrants individuellement.
  • externe: zone de réseau externe. Prend en charge le masquage de NAT, de sorte que le réseau interne reste fermé, mais avec la capacité d'avoir accès.
  • interne: le verso de la zone externe, des réseaux internes. Les ordinateurs de cette zone peuvent être approuvés. Des services supplémentaires sont disponibles.
  • dMZ: utilisé pour les ordinateurs situés dans DMZ (ordinateurs isolés qui n'auront pas accès au reste du réseau); Ne prend en charge que certaines connexions entrantes.
  • travail: zone de réseau de travail. La plupart des machines du réseau peuvent être approuvées. Des services supplémentaires sont disponibles.
  • accueil: Zone de réseau domestique. Les environs peuvent être appris, mais seules les connexions entrantes définies par l'utilisateur sont prises en charge.
  • travaillé: Toutes les machines du réseau peuvent être approuvées.

Économie de règles

Les règles de pare-feu sont permanentes et temporaires. Si l'ensemble apparaît ou change toute règle, le comportement actuel du pare-feu varie immédiatement. Cependant, après le redémarrage, tous les changements seront perdus s'ils ne sont pas enregistrés.

La plupart des commandes de pare-feu-cmd peuvent utiliser l'indicateur -Permanent, qui sauvera la règle, après quoi elle sera utilisée de manière continue.

Activer le pare-feu Firewalld

Vous devez d'abord allumer le démon. Le fichier de l'unité SystemD s'appelle Firewalld.Service. Pour démarrer le démon, entrez.

sudo SystemCtl Start Firewalld.Service

Assurez-vous que le service est en cours d'exécution:

pare-feu-cmd - base
En cours

Maintenant, le pare-feu fonctionne et fonctionne en fonction de la configuration par défaut.

Pour le moment, le service est activé, mais cela ne démarre pas automatiquement avec le serveur. Pour ne pas vous bloquer accidentellement sur votre propre serveur, créez d'abord un ensemble de règles, puis configurez l'Autorun.

Règles de pare-feu par défaut

Voir les règles par défaut

Pour savoir quelle zone est utilisée par défaut, entrez:

firewall-CMD --GET-Zone par défaut
Publique

Pour le moment, le pare-feu n'a reçu aucune instruction concernant d'autres zones, en outre, aucune interface n'est liée à d'autres zones, la zone publique est donc la zone par défaut, ainsi que la seule zone active.

Pour obtenir une liste de zones actives, entrez:


Publique
Interfaces: ETH0 ETH1

Deux interfaces réseau sont liées à la zone publique: ETH0 et ETH1. Les interfaces attachées à la zone fonctionnent selon les règles de cette zone.

Pour savoir quelles règles utilisent la zone par défaut, entrez:

pare-feu-cmd -list - tous
Public (par défaut, actif)
Interfaces: ETH0 ETH1
SOURCES:
Services: DHCPV6-Client SSH
Ports:
Masquerade: Non.
Ports en avant:
ICMP-Blocks:
Rules riches:

Alors, maintenant, vous savez que:

  • le public est la zone par défaut et la seule zone active.
  • Les interfaces ETH0 et eth1 sont liées à elle.
  • Il prend en charge le trafic DHCP (affectation des adresses IP) et SSH (administration distante).

Autres zones de pare-feu

Maintenant, vous devriez vous familiariser avec d'autres zones.

Pour obtenir une liste de toutes les zones disponibles, entrez:

firewall-CMD --Get-Zones

Pour obtenir les paramètres d'une zone spécifique, ajoutez la commande drapeau -zone \u003d.

pare-feu-cmd --zone \u003d home --list - tous
DOMICILE.
Interfaces:
SOURCES:
SERVICES: DHCPV6-Client IPP-Client-Client MDNS Samba-Client SSH
Ports:
Masquerade: Non.
Ports en avant:
ICMP-Blocks:
Rules riches:

Pour afficher la définition de toutes les zones disponibles, ajoutez l'option -List-Zones. Pour une visualisation plus pratique, la sortie peut être transférée sur le pager:

pare-feu-cmd -Liste -List-Zones | moins

Configuration des zones d'interface

Initialement, toutes les interfaces réseau sont liées à la zone par défaut.

Changer la zone d'interface par session

Pour traduire une interface à une autre session à une autre session, utilisez l'interface -zone \u003d et -Change-interface \u003d options \u003d.

Par exemple, pour traduire ETH0 dans la zone d'accueil, vous devez entrer:

sudo pare-feu-cmd --zone \u003d home --change-interface \u003d ETH0
Succès.

Noter: Lors de la traduction de l'interface vers une autre zone, il faut garder à l'esprit que cela peut affecter le fonctionnement de certains services. Par exemple, la zone d'origine prend en charge SSH, donc les connexions que ce service ne sera pas réinitialisé. Mais certaines zones déposent toutes les connexions, y compris SSH, puis vous pouvez bloquer accidentellement l'accès à votre propre serveur.

Pour vous assurer que l'interface est liée à la nouvelle zone, entrez:

firewall-CMD --Gutières-Zones actifs
DOMICILE.
Interfaces: ETH0.
Publique
Interfaces: ETH1

Après avoir redémarré le pare-feu, l'interface sera à nouveau liée à la zone par défaut.

sudo SystemCtl redémarrez Firewalld.Service
Firewall-CMD --Gutières-Zones actifs
Publique
Interfaces: ETH0 ETH1

Modification de la zone d'interface sur une base continue

Si aucune autre zone n'est spécifiée dans les paramètres d'interface, après le redémarrage du pare-feu, l'interface sera à nouveau liée à la zone par défaut. Dans Centos, de telles configurations sont stockées dans le répertoire / etc / sysconfig / réseau-scripts, dans les fichiers d'interface IFCFG.

Pour déterminer la zone d'interface, ouvrez le fichier de configuration de cette interface, par exemple:

Ajoutez une zone de variable à la fin du fichier et spécifiez l'autre zone comme valeur, par exemple, à la maison:

. . .
DNS1 \u003d 2001: 4860: 4860 :: 8844
DNS2 \u003d 2001: 4860: 4860 :: 8888
DNS3 \u003d 8.8.8.8.
Zone \u003d home.

Enregistrez et fermez le fichier.

Pour mettre à jour les paramètres, redémarrez le service réseau et le pare-feu:

sudo SystemCtL Redémarrer le réseau.Service
Sudo SystemCtl redémarrez Firewalld.Service

Après le redémarrage, l'interface ETH0 sera liée à la zone d'origine.

firewall-CMD --Gutières-Zones actifs
DOMICILE.
Interfaces: ETH0.
Publique
Interfaces: ETH1

Définition de la zone par défaut

Vous pouvez également choisir une autre zone par défaut.

Pour ce faire, utilisez la zone-zone-par défaut \u003d. Après cela, toutes les interfaces seront liées à une autre zone:

sudo pare-feu-cmd -Set-par défaut-zone \u003d home
DOMICILE.
Interfaces: ETH0 ETH1

Création de règles pour les applications

Ajout d'un service à la zone

Le moyen le plus simple d'ajouter un service ou un port à la zone utilisée par le pare-feu. Vérifiez les services disponibles:

firewall-CMD --Get-Services
RH-Satellite-6 Amanda-Client-Client Bacula-Client-Client-Client DHCP DHCPV6 DHCPV6-Client DNS FTP HTTP HTTPS ImapS IPP IPP-Client IPPSEC KERBEROS KPASSWD LDAP LDAP LibVirt MS-WBT MySQL NFT NTP OpenVPN PMCD PMProxy PMWEBAPI PMWEBAPIS POP3S POSTGRESQL PROXY-DHCP RADIUS RPC-BIND SAMPA SAMPA SAMTP SSH TELNET TELNET TFTP TFTP TFTP TFTP-Client-Client-Client-Client-Server WBEM-https

Noter: Plus d'informations sur chaque service spécifique se trouvent dans Files.XML dans le répertoire / USR / LIB / Firewalld / Service. Par exemple, les informations sur le service SSH sont stockées dans /usr/LIB/FIREWALLD/services/ssh.xml et ressemblent à ceci:



Ssh.

Pour activer la prise en charge des services dans une zone particulière, utilisez l'option -Ajouter-service \u003d. Vous pouvez spécifier la zone cible à l'aide de l'option -zone \u003d. Par défaut, ces changements fonctionneront pour une session. Pour enregistrer les modifications et les utiliser de manière continue, ajoutez le drapeau -Permanent.

Par exemple, pour démarrer un serveur Web pour maintenir le trafic HTTP, vous devez d'abord activer le support de ce trafic dans la zone publique pour une session:

sudo pare-feu-cmd --zone \u003d public --Add-service \u003d http

Si le service doit ajouter à la zone par défaut, le drapeau -zone \u003d peut être omis.

Assurez-vous que l'opération réussit:

firewall-cmd --Zone \u003d Public --List-Services
DHCPV6-Client HTTP SSH

Testez le travail du service et du pare-feu. Si tout fonctionne correctement, vous pouvez modifier l'ensemble de règles permanent et y ajouter une règle pour prendre en charge ce service.

sudo pare-feu-cmd --zone \u003d Public --Permanent --Dd-service \u003d http

Pour afficher une liste de règles permanentes, entrez:

sudo pare-feu-cmd --zone \u003d Public --Permanent - ServicesListes
DHCPV6-Client HTTP SSH

Maintenant, la zone publique prend en charge HTTP et Port 80 de manière continue. Si le serveur Web peut servir le trafic SSL / TLS, vous pouvez également ajouter le service HTTPS (pour une session ou dans un ensemble de règles permanentes):

sudo pare-feu-cmd --zone \u003d publique --Dd-service \u003d https
Sudo pare-feu-cmd --zone \u003d Public --Perment --Add-service \u003d https

Et si le service requis n'est pas disponible?

Le pare-feu Firewalld par défaut comprend de nombreux services les plus courants. Cependant, certaines applications nécessitent des services qui ne sont pas pris en charge dans FirewallD. Dans ce cas, vous pouvez faire de deux manières.

Méthode 1: Configuration du port

Le moyen le plus simple d'ouvrir un port d'application dans la zone de pare-feu nécessaire est le plus facile. Il vous suffit de spécifier le port ou la plage de ports et du protocole.

Par exemple, une application utilisant le protocole Port 5000 et TCP doit être ajoutée à la zone publique. Pour activer la prise en charge des applications pour la session inférieure, utilisez-ledd-port \u003d paramètre \u003d et spécifiez le protocole TCP ou UDP.

sudo Firewall-Cmd --Zone \u003d Public --Add-Port \u003d 5000 / TCP

Assurez-vous que l'opération est passée avec succès:

pare-feu-cmd -list-Ports
5000 / TCP.

Vous pouvez également spécifier la gamme série de ports, séparant le premier et le dernier port de la plage par Dash. Par exemple, si une application utilise des ports UDP 4990-4999 pour les ajouter à la zone publique, vous devez entrer:

sudo Firewall-cmd --Zone \u003d Public --DD-Port \u003d 4990-4999 / UDP

Après les tests, vous pouvez ajouter ces règles dans les paramètres permanents du pare-feu.

sudo pare-feu-cmd --zone \u003d Public --Perment --Add-Port \u003d 5000 / TCP
Sudo Firewall-cmd --Zone \u003d Public --Permanent --Add-Port \u003d 4990-4999 / UDP
Sudo pare-feu-cmd --Zone \u003d Public --Permanent - PortsList-Ports
Succès.
Succès.
4990-4999 / UDP 5000 / TCP

Méthode 2: Définition du service

Ajoutez des ports à la zone simplement, mais si vous avez beaucoup de telles applications, il sera difficile de suivre, pour lequel un ou plusieurs ports sont destinés. Pour éviter une telle situation, vous pouvez déterminer les services au lieu des ports.

Les services sont simplement des ensembles de ports avec un nom et une description spécifiques. Avec l'aide de services, il est plus facile de contrôler les paramètres, mais ils sont eux-mêmes plus difficiles que les ports.

Vous devez d'abord copier le script existant à partir du répertoire / USR / LIB / Firewalld / Firewalld dans le répertoire / etc / Firewalld / Service (voici le pare-feu recherche des paramètres non standard).

Par exemple, vous pouvez copier la définition du service SSH et l'utiliser pour déterminer le service d'exemple conditionnelle. Le nom du script doit correspondre au nom du service et avoir une extension .xml.

sudo cp /usr/lib/firewalld/services/service.xml /etc/firewalld/services/example.xml

Corrigez le fichier copié.

sudo nano /etc/firewalld/services/example.xml.

Le fichier est la définition de ssh:



Ssh.
Secure Shell (SSH) est un protocole de connexion et d'exécution de commandes sur des machines distantes. Il fournit des communications cryptées sécurisées. Si vous envisagez d'accéder à votre machine RemoNet via SSH sur une interface pare-feu, activez cette option. Vous avez besoin du package OpenSSH-Server installé pour cette option pour être utile.

La majeure partie de la définition de service est des métadonnées. Changez le nom abrégé du service dans les balises . Ceci est un nom de service à la clientèle. Aussi besoin d'ajouter une description du service. Le seul changement qui affectera le service du service consiste à modifier le numéro de port et le protocole.

Revenons au service exemple; Supposons que cela nécessite un port TCP ouvert 7777 et un port UDP 8888. La définition ressemblera à ceci:



Exemple
Ceci est juste un exemple de service. Il ne devrait probablement pas être utilisé sur un système réel.

Enregistrez et fermez le fichier.

Redémarrez le pare-feu:

sudo pare-feu-cmd --Reload

Maintenant, le service apparaîtra dans la liste des services disponibles:

firewall-CMD --Get-Services
RH-Satellite-6 Amanda-Client-Client Bacula-Client-Client DHCP DHCPV6 DHCPV6-Client DNS Exemple FTP HTTP HTTPS IPPS IPP IPP-Client IPPSec Kerberos KPASSWD LDAP LDAP Libvirt MS-WBT MySQL NFT NTP NTP PMCD PMProxy PMWEBAPI PMWEBAPIS POP3S POSTGRESQL PROXY-DHCP RADIUS RPC-BIND SAMPA SAMPA-Client SMTP SSH TELNET TFTP TFTP TFTP-Client-Client-Client-Client-Client-client

Créer des zones

Le pare-feu fournit de nombreuses zones prédéfinies, ce qui suffit dans la plupart des cas pour travailler. Mais dans certaines situations, il est nécessaire de créer une zone personnalisée.

Par exemple, pour un serveur Web, vous pouvez créer une zone PublicWeb et pour le service DNS - PrivatedNs Zone.

Création d'une zone, vous devez l'ajouter aux paramètres constants du pare-feu.

Essayez de créer des zones PublicWeb et Privatedns:

sudo Firewall-CMD --Permanent --New-Zone \u003d PublicWeb
Sudo pare-feu-cmd --Permanent --New-Zone \u003d Privatedns

Assurez-vous que les zones existent:

sudo pare-feu-cmd --Permanent - get-Zones

Dans la session en cours, de nouvelles zones ne seront pas disponibles:

firewall-CMD --Get-Zones
Bloc DMZ DROP DROP DOMAINE EXTÉRIEUR DOMAINE PUBLI DU PUBLIQUE DE CONFIGURÉ INTERNE

Pour accéder à de nouvelles zones, vous devez redémarrer le pare-feu:

sudo pare-feu-cmd --Reload
Firewall-CMD --Get-Zones
Bloquer DMZ DROP HOME EXTERNE PRIVÉE INTERNÉE PRIVÉE PUBLICWEB PUBLICWEB Travail de confiance

Vous pouvez maintenant attribuer les services et ports requis aux nouvelles zones. Par exemple, dans la zone PublicWeb, vous pouvez ajouter SSH, HTTP et HTTPS.

sudo pare-feu-cmd --zone \u003d publicweb --add-service \u003d ssh
Sudo pare-feu-cmd --zone \u003d publicweb --add-service \u003d http
Sudo pare-feu-cmd --zone \u003d publicweb --add-service \u003d https
Firewall-cmd --Zone \u003d PublicWeb --List - Tous
Publicweb.
Interfaces:
SOURCES:
SERVICES: HTTP HTTPS SSH
Ports:
Masquerade: Non.
Ports en avant:
ICMP-Blocks:
Rules riches:

Vous pouvez ajouter DNS dans la zone PrivatedNs:

sudo pare-feu-cmd --zone \u003d privatedns --add-service \u003d DNS
Pare-feu-cmd --zone \u003d privatedns --list - tous
Privatedns.
Interfaces:
SOURCES:
Services: DNS.
Ports:
Masquerade: Non.
Ports en avant:
ICMP-Blocks:
Rules riches:

Vous pouvez ensuite lier des interfaces réseau à de nouvelles zones:

sudo pare-feu-cmd --zone \u003d publicweb --change-interface \u003d ETH0
Sudo pare-feu-cmd --zone \u003d privatedns --change-interface \u003d ETH1

Maintenant, vous pouvez tester le réglage. Si tout fonctionne correctement, vous pouvez ajouter ces règles à des paramètres constants.

sudo pare-feu-cmd --zone \u003d publicweb --Permanent --Add-service \u003d ssh
Sudo pare-feu-cmd --zone \u003d publicweb --Permanent --Add-service \u003d http
Sudo pare-feu-cmd --zone \u003d PublicWeb --Permanent --Dd-service \u003d https
Sudo pare-feu-cmd --zone \u003d Privatedns --Permanent --Add-Service \u003d DNS

Après cela, vous pouvez configurer des interfaces réseau pour vous connecter automatiquement à la zone correcte.

Par exemple, Eth0 sera liée à PublicWeb:

sudo nano / etc / sysconfig / scripts de réseau / ifcfg -thh0
. . .
IPv6_Autoconf \u003d Non.
DNS1 \u003d 2001: 4860: 4860 :: 8844
DNS2 \u003d 2001: 4860: 4860 :: 8888
DNS3 \u003d 8.8.8.8.
Zone \u003d publicweb.

Et l'interface ETH1 sera liée à Privatedns:

sudo nano / etc / sysconfig / scripts de réseau / ifcfg-eth1
. . .
Netmask \u003d 255.255.0.0.
Defroute \u003d "Non"
Nm_controlled \u003d "oui"
Zone \u003d Privatedns.

Redémarrez les services réseau et le pare-feu:

réseau de redémarrage Sudo SystemCTL
Sudo SystemCl Redémarrage du pare-feu

Vérifiez les zones:

firewall-CMD --Gutières-Zones actifs
Privatedns.
Interfaces: ETH1
Publicweb.
Interfaces: ETH0.

Assurez-vous que les besoins des services suivants travaillent dans des zones:

firewall-cmd --Zone \u003d PublicWeb - Liste-Services
http http ssh.
Firewall-CMD --Zone \u003d Privatedns - Services -List
DNS.

Les zones personnalisées sont entièrement préparées pour le travail. Vous pouvez faire l'un d'entre eux la zone par défaut. Par example:

sudo pare-feu-cmd -Set-par défaut-zone \u003d publicweb

Lancement automatique du pare-feu

Maintenant que vous avez vérifié tous les paramètres et vous êtes assuré que toutes les règles fonctionnent correctement, vous pouvez personnaliser le pare-feu Autorun.

Pour ce faire, entrez:

sudo SystemCtl Activer le pare-feu

Maintenant, le pare-feu fonctionnera avec le serveur.

Conclusion

Le pare-feu Firewalld est un outil très flexible. Les zones vous permettent de changer rapidement la politique de pare-feu.

Vous savez maintenant comment Firewalld fonctionne, familiarisez-vous avec les concepts de base du pare-feu, savez comment créer des zones personnalisées et ajouter des services.

Mots clés:

En commençant par CentoOS 7 pour configurer les règles du trafic de filtrage, un nouvel outil est apparu pare-feu.. Il est recommandé de pouvoir utiliser pour gérer les règles IPTABLES. Dans les Centos 8, au lieu de l'emballage de filtrage IPTABLES standard, le cadre NFTABLES est maintenant utilisé et lors de la configuration des règles de pare-feu via Firewalld, en fait, vous configurez NFTABLES. Dans cet article, nous examinerons l'installation, les concepts de base et la configuration du pare-feu Firewalld sur le serveur fonctionnant Centos 8 (en Centos 7, toutes similaires).


Pare-feu. - un pare-feu pour protéger le serveur de trafic indésirable avec le soutien de la gestion de règles dynamiques (sans redémarrer) et de mettre en œuvre les règles de pare-feu permanentes. Fonctionne comme une interface pour et nftables. Le pare-feu peut être utilisé dans presque toutes les distributions Linux.

Concepts de base Firewalld, zones et règles

Avant d'installer et de configurer pare-feu.Nous nous familiariserons avec le concept de zones utilisées pour déterminer le niveau de confiance en diverses connexions. Pour diverses zones pare-feu. Vous pouvez appliquer différentes règles de filtrage, spécifier les options de pare-feu actives sous la forme de services prédéfinis, de protocoles et de ports, de redirections de port et de règles riches.

Pare-feu. Filtres le trafic entrant sur les zones en fonction des règles appliquées à la zone. Si un Ip- L'expéditeur Sender Sender est conforme aux règles de n'importe quelle zone, le colis sera envoyé via cette zone. Si l'adresse ne correspond à aucune des zones configurées sur le serveur, le package sera traité par la zone par défaut. Quand installé pare-feu.la zone par défaut est appelée publique.

FirewallD a des zones où les autorisations sont déjà configurées pour divers services. Vous pouvez utiliser ces paramètres ou créer vos propres zones. Liste des zones par défaut créées lors de l'installation de Firewalld (stocké dans le / USR / LIB / Firewalld / Zone / Zones / Zones / Zones / Zones / Zones):

tomber. niveau de confiance minimum. Toutes les connexions entrantes sont bloquées sans réponse, seuls les composés sortants sont autorisés;
bloquer la zone est similaire à celle du précédent, mais lorsque les demandes entrantes rejette le message ICMP-HIGH-HOST-interdit pour IPv4 ou ICMP6-AMM-interdit pour IPv6;
publique représente des réseaux publics et non approuvés. Vous pouvez résoudre les composés entrants sélectionnés individuellement;
externe réseaux externes lors de l'utilisation de pare-feu comme une passerelle. Il est configuré pour masquer NAT, votre réseau interne reste donc privé, mais abordable;
interne antonymore externe. L'hôte possède un niveau de confiance suffisant, un certain nombre de services supplémentaires sont disponibles;
dMZ. utilisé pour les ordinateurs situés dans DMZ (ordinateurs isolés sans accès au reste du réseau). Seuls certains composés entrants sont autorisés;
travail zone pour les machines de travail (la plupart des ordinateurs du réseau de confiance);
dOMICILE. zone de réseau domestique. Vous pouvez faire confiance à la plupart des PC, mais seuls certains composés entrants sont pris en charge;
de confiance. faites confiance à toutes les machines en ligne. La plus ouverte de tous options disponiblesnécessite une utilisation consciente.

DANS pare-feu. Deux ensembles de règles sont utilisés - constants et temporaires. Les règles temporaires fonctionnent avant de redémarrer le serveur. Par défaut, lors de l'ajout de règles dans pare-feu.Les règles sont considérées comme temporaires ( durée.). Ajouter une règle sur une base continue. Vous devez utiliser le drapeau - permanent.. De telles règles seront appliquées après le redémarrage du serveur.

Installation et activation du pare-feu dans Centos

Dans Centos 7/8 Firewalld est installé par défaut au système d'exploitation. Si vous l'avez supprimé et que vous souhaitez installer FirewallD, vous pouvez utiliser le gestionnaire standard / DNF:

# Yum Installez le pare-feu - pour Centos 7
# DNF Installez le pare-feu - pour Centos 8

À démon pare-feu. Il a commencé automatiquement avec le démarrage du serveur, vous devez l'ajouter à:

# SystemCtL Activer le pare-feu

Et courir:

# SystemCtL Start Firewalld

Vérifiez l'état du service:

# SystemCTL Statut Firewalld

● Firewalld.Service - Firewalld - Démon de pare-feu dynamique chargé: chargé (/usr/lib/systemd/system/firewald.service; activé; Vendeur prédéfini: activé) actif: actif (en cours d'exécution) depuis mon 2019-10-14 14:54 : 40 +06; Il y a 22 ans Docs: Man: Firewalld (1) Main PID: 13646 (Firewalld) Cgroup: /System.slice/firewalld.Service └─13646 / USR / BIN / PYPHON2 -ES / USR / SBIN / FirewallD --NOFORK --NOPID 14:54:40 Server.vpn.ru Systemd: Démarrage de pare-feu - Démon de pare-feu dynamique ... 14 14:54:40 Server.vpn.ru SystemD: Commencé Firewalld - Démon de pare-feu dynamique.

Soit par l'équipe:

# Pare-feu-cmd --state

La commande pare-feu-cmd est le texte avant pare-feu sur NFTABLES / IPTABLES.

# Pare-feu-cmd --state

Travailler avec des règles de pare-feu

Règles par défaut:

Avant de configurer les règles de pare-feu, vous devez vérifier quelle zone est utilisée par défaut:

# Firewall-CMD --Get-Zone par défaut

Depuis le pare-feu, nous avons seulement installé et n'avons pas encore été mis en place, nous avons une zone par défaut publique.

Vérifiez la zone active. Elle est aussi seule - publique:

# Firewall-CMD --Gutières-Zones actifs

Interfaces publiques: ETH0

Comme vous pouvez le constater, l'interface réseau ETH0 est contrôlée par la zone. publique.

Pour afficher les règles de zone active, entrez:

# Pare-feu-cmd --list - tous

Cible publique (active) Cible: Parfait ICMP-Block-Inversion: Aucune interface: Eth0 Sources: Services: Ports SSH de DHCPV6-Client: Protocoles: Masquerade: Aucun ports avant: Source-Ports: ICMP-Blocks: Riche riche:

De la liste, il est clair que les opérations régulières associées au client DHCP et à SSH sont ajoutées à cette zone.

Zones disponibles

Pour afficher une liste de toutes les zones, vous devez exécuter la commande:

# Firewall-CMD --Get-Zones

J'ai eu une telle liste:

Bloc DMZ DROP DROP DOMAINE EXTÉRIEUR DOMAINE PUBLI DU PUBLIQUE DE CONFIGURÉ INTERNE

Pour vérifier les règles de la zone spécifique, vous devez ajouter une zone de drapeau.

# Pare-feu-cmd --zone \u003d home --list - tous

Accueil Target: Parfait ICMP-Block-Inversion: Aucune interface: Sources: Services: DHCPV6-Client MDNS Samba-Client Ports SSH: Protocoles: Masquerade: Aucun port avant: Source-Ports: Blocs ICMP: Riche riche

Règles de toutes les zones, vous pouvez voir l'équipe:

# Pare-feu-cmd -Liste -List-Zones

La liste sera assez importante, car les zones peuvent être beaucoup.

Changer la zone par défaut.

Par défaut, toutes les interfaces réseau sont situées dans la zone. publiqueMais vous pouvez être transféré dans n'importe laquelle des zones, l'équipe:

# Pare-feu-cmd --zone \u003d home -change-interface \u003d ETH0

Après le paramètre -Zone \u003d. Spécifiez la zone souhaitée.

Pour modifier la zone par défaut, vous devez appliquer la commande:

# Pare-feu-cmd -Set-défaut-zone \u003d home

Ajout de règles pour les applications

Pour ouvrir le port pour l'application, vous pouvez ajouter un service aux exceptions. Afficher une liste de services disponibles:

La sortie contiendra un grand nombre de services. des informations détaillées Le service est contenu dans sa xML déposer. Ces fichiers sont situés dans le répertoire USR / LIB / FirewallD / Services.

Par example:

# CD / USR / LIB / Firewalld / Services

Mail (SMTP) Cette option permet une livraison de courrier SMTP entrante. Si vous devez autoriser des hôtes distants à vous connecter directement à votre machine pour livrer le courrier, activez cette option. Vous n'avez pas besoin d'activer ceci si vous collectez votre courrier à partir de votre serveur ISP par POP3 ou IMAP, ou si vous utilisez un outil tel que Fetchmail. Notez qu'un serveur SMTP configuré de manière incorrecte peut permettre à des machines distantes d'utiliser votre serveur à envoyer. Pourriel.

Le fichier XML a une description du service, du protocole et du numéro de port, qui sera ouverte dans FirewallD.

Lors de l'ajout de règles, vous pouvez utiliser le paramètre -Ajouter au service.Ouvrir l'accès à un service spécifique:

# Firewall-cmd --Zone \u003d Public --DD-Service \u003d http

# Firewall-cmd --Zone \u003d Public --DD-SERVICE \u003d HTTPS

Après avoir ajouté des règles, vous pouvez vérifier si les services sont ajoutés à la zone spécifiée:

# Firewall-cmd --Zone \u003d Public --List-Services

DHCPV6-Client HTTP HTTPS SSH

Si vous souhaitez effectuer ces règles constants, lorsque vous avez ajouté, vous devez ajouter un paramètre -Permanent..

Pour supprimer un service de la zone:

# Firewall-CMD --Permanent --Zone \u003d Public --ReMove-Service \u003d http

Test de SSH HTTPS DHCPV6-Client

Si vous souhaitez ajouter votre service aux exceptions, vous pouvez créer un fichier. xML Seul et remplissez-le. Vous pouvez copier des données à partir de n'importe quel service, modifier le nom, la description et le numéro de port.

Copier le fichier smtp.xml. Au répertoire pour travailler avec des services d'utilisateur:

# cp /usr/lib/firewalld/services/smtp.xml / etc / pare-feu / service

Modifiez la description du service dans le fichier.

Le fichier XML lui-même doit être renommé par votre nom de service. Après cela, vous devez redémarrer le pare-feu et vérifier si notre service est répertorié:

J'ai appelé le service test Et dans la liste, il est apparu:

Syslog-tls Telnet Test TFTP

Vous pouvez maintenant ajouter le service créé à n'importe quelle zone:

# Firewall-cmd --Zone \u003d Public --Add-Service \u003d Test --Permanent

# Firewall-cmd --Zone \u003d Public --Permanent - ServicesListes

DHCPV6-Client HTTP HTTPS SSH Test

Si vous trouvez le service dont vous avez besoin dans la liste, vous pouvez ouvrir le port souhaité de l'équipe FirewallD:

# Firewall-cmd --Zone \u003d Public -And-Port \u003d 77 / TCP - Ouvrir 77 Port tCP.
# Firewall-cmd --Zone \u003d Public -And-Port \u003d 77 / UDP - Ouvrir 77 Port udp.
# Firewall-cmd --Zone \u003d Public -Ajouter au port \u003d 77-88 / UDP - Plage de port ouvert 77-88 udp.
# Firewall-cmd --Zone \u003d Public -List-Ports - Vérifiez la liste des ports autorisés

Bloc / Autoriser les réponses ICMP:

# Firewall-CMD --Zone \u003d Public --DD-ICMP-Block \u003d Echo-Répondre
# Firewall-cmd --Zone \u003d Public --ReMove-ICMP-Block \u003d Echo-Répondre

Supprimer le port ajouté:

# Pare-feu-cmd --zone \u003d public -remove-port \u003d 77 / UDP - Supprimer la règle temporaire 77 udp.

# Firewall-cmd --Permanent --Zone \u003d Public -ReMove-Port \u003d 77 / UDP - Supprimer une règle permanente

Ajout de vos propres zones

Vous pouvez créer votre propre zone (je l'appellerai nOTRE):

# Pare-feu-cmd --Permanent --New-Zone \u003d Notre

Après avoir créé une nouvelle zone, comme après la création du service, vous avez besoin d'un redémarrage. pare-feu.:

# Pare-feu-cmd --Reload

# Firewall-CMD --Get-Zones

Bloquer DMZ Drop Home externe intérieur Notre travail de confiance du public

Zone nOTRE Disponible. Vous pouvez ajouter des services à celui-ci ou ouvrir certains ports.

Firewalld: Verrouiller les adresses IP, Création d'exclusion

Vous pouvez ajouter des adresses IP d'adresse de confiance à l'élimination du pare-feu ou à un bloc indésirable.

Pour ajouter une exception spécifique adresse IP (Par exemple 8.8.8.8) sur votre serveur à travers pare-feu.Utilisez la commande:

# Pare-feu-cmd --zone \u003d publique --dd-riche-règle \u003d "Rule Family \u003d" IPv4 "Adresse source \u003d" 8.8.8.8 "Accepter"

Vérifiez la zone et assurez-vous que Ip Ajouté à des exceptions dans Rich Rules Rule:

Cible publique (active): Version ICMP-Inversion par défaut: Aucune interface: Eth0 Sources: Services: DHCPV6-Client HTTP HTTPS SSH Ports de test: Protocoles: Masquerade: Aucun ports en avant: Ports Source: Blocs ICMP: Riche riche Règles: RÈGLE FAMILY \u003d "IPv4" Adresse source \u003d "8.8.8.8" Accepter

Bloquer Ip, besoin de remplacer j'accepte sur le rejeter.:

# Pare-feu-cmd --zone \u003d publique --dd-riche-règle \u003d "Rule Family \u003d" IPv4 "Adresse source \u003d" 8.8.4.4 "Reject"

# Pare-feu-cmd --zone \u003d publique --list - tous

Cible publique (active): Version ICMP-Inversion par défaut: Aucune interface: Eth0 Sources: Services: DHCPV6-Client HTTP HTTPS SSH Ports de test: Protocoles: Masquerade: Aucun ports en avant: Ports Source: Blocs ICMP: Riche riche Règles: RÈGLE FAMILY \u003d "IPv4" Adresse source \u003d "8.8.8.8" Accepter la règle Family \u003d "IPv4" Adresse source \u003d "8.8.4.4" Rejeter

Vous pouvez résoudre un service spécifique pour les demandes d'une adresse IP spécifique:

# Firewall-cmd --Permanent - Rule-Rich-Rule "Rule Family \u003d" IPv4 "Adresse source \u003d" 10/10 / 1.0 / 24 "Nom du service \u003d" https "accepter"

Si vous devez bloquer de toute urgence toutes les demandes au serveur, utilisez la commande panique:

# Pare-feu-cmd - espagnol

Désactiver le mode panique par une commande:

# Pare-feu-cmd - panique

Soit redémarrer le serveur.

Vous pouvez bloquer la configuration du pare-feu aux services locaux avec droits des racines Impossible de modifier les règles de pare-feu créées par vous:

# Pare-feu-cmd #lockdown-on

Désactiver le mode de verrouillage:

# Pare-feu-cmd -Omdown-off

Redirection de port dans le pare-feu

Vous pouvez créer une règle de redirection de règles dans Firewalld. Pour rediriger 443 ports à 9090:

# Firewall-cmd --Zone \u003d Public --DD-Forward-Port \u003d Port \u003d 443: Proto \u003d TCP: TOPORT \u003d 9090 --Permanent

Pour supprimer la règle de redirection de port:

# Firewall-cmd --Zone \u003d Public --ReMove-Port-Port \u003d Port \u003d 443: Proto \u003d TCP: TOPORT \u003d 9090

F ifallAld est un outil de contrôle de pare-feu disponible par défaut sur les serveurs Centos 7. Fondamentalement, il s'agit d'une coque autour d'IPTABLES et est livré avec un outil graphique de configuration de pare-feu et de configuration de l'outil ligne de commande Pare-feu-cmd. Utilisation du service IPTABLES, chaque modification nécessite la suppression des anciennes règles et créer de nouvelles règles dans la " / etc / sysconfig / iptables`, Et quand le pare-feu ne s'applique que des différences.

Zones de pare-feu

Le pare-feu utilise des services et des zones au lieu de règles et de chaînes dans les IPTABLES. Les zones suivantes sont disponibles par défaut:

  • tomber. - Jetez tous les paquets réseau entrants sans réponse, seules les connexions réseau sortantes sont disponibles.
  • bloquer- Rejeter tous les paquets de réseau entrants avec la messagerie interdite-host-host, seules les connexions réseau sortantes sont disponibles.
  • publique - Seuls les composés entrants sélectionnés sont acceptés, pour une utilisation dans des lieux publics
  • externe - Pour les réseaux externes à masquageadement, seules les connexions entrantes sélectionnées sont acceptées.
  • dMZ. - La zone DMZ démilitarisée est disponible publiquement avec un accès limité au réseau interne, seules les connexions entrantes sélectionnées sont acceptées.
  • travail
  • dOMICILE. - Pour les ordinateurs de la zone d'origine, seules les connexions entrantes sélectionnées sont acceptées.
  • interne - Pour les ordinateurs de votre réseau interne, seules les connexions entrantes sélectionnées sont acceptées.
  • de confiance. - Toutes les connexions réseau sont acceptées.

Pour obtenir une liste de toutes les zones disponibles:

# Firewall-cmd --Gard-Zones de travail Drop interne Home externe de confiance en DMZ

Pour afficher la liste des zones par défaut:

# Firewall-Cmd --get-default-Zone publique

Pour changer la zone par défaut:

Services Firewalld.

services Firewalld sont des fichiers configurations XML, Avec des informations sur l'entrée de service pour Firewalld. Pour obtenir une liste de tous les services disponibles:

# Firewall-Cmd --get-Services Amanda-client Amanda-K5-client Bacula Bacula-client Ceph Ceph-Mon DHCP DHCPV6 DHCPV6-client DNS Docker-Registre Dropbox-LANSync FreeIPA-LDAP FreeIPA-PVI FreeIPA-réplication FTP haute disponibilité http https imap imap IPP IPP-Client IPPSec ISCSI-Cible Kadmin Kerberos Kadmin Kerberos Kadmin Kerberos LDAP Libvirt-TLS MDNS MOSSQL MYSQL MYSQL MYSQL MYSQL PMProxy PMWEBAPI PMWEBAPIS POP3S POSTGRESQL POP3S POSTGRESQL POPPE PLUPEAUDIO PUPPETTMASTMASTMASTMASTMASTER RADIUS RPC-BIND RSYNCD Samba samba-client SMTP SMTP SMTP SNMP SNMPTRAP SYSLOGY Syslog Syslog Syslog-TLS TELNET TFTP TFTP TFTP TFTP TFTP TFTP TFTP TFTP-Client Tic Tor-Chaussettes Transmission-Client VDSM VNC-Server WBEM-HTTPS XMPP-BOSH XMPP-Client XMPP-local XMPP-Server

Fichiers de configuration XML stocké dans les catalogues USR / LIB / Firewalld / Services / et / Etc / firewalld / services /.

Configurer le pare-feu avec un pare-feu

À titre d'exemple, c'est ainsi que vous pouvez configurer le pare-feu avec FirewallD si vous travaillez dans un serveur Web, SSH sur le port de port 7022 et le serveur de messagerie.

Tout d'abord nous avons mis la zone par défaut pour DMZ.

# Pare-feu-cmd -Set-par défaut-zone \u003d DMZ # pare-feu-cmd --get-par défaut-zone DMZ

Pour ajouter des règles de service permanentes pour HTTP et HTTPS dans la zone DMZ, exécutez la commande suivante:

# Firewall-Cmd --Zone \u003d zone démilitarisée --DD-service \u003d http --permanent # Firewall-CMD --Zone \u003d zone démilitarisée --AJOUTEZ-service \u003d https --permanent

Ouvrir le port 25 (SMTP) et le port 465 (SMTPS):

Firewall-cmd --Zone \u003d DMZ -DD-SERVICE \u003d SMTP --Permanent pare-feu-cmd --zone \u003d DMZ --DD-SERVICE \u003d SMTPS - Tpermment

Open, IMAP, IMAPS, ports POP3 et POP3S:

Firewall-Cmd --Zone \u003d zone démilitarisée --AJOUTEZ-service \u003d imap --permanent Firewall-Cmd --Zone \u003d zone démilitarisée --DD-service \u003d IMAPS --permanent Firewall-Cmd --Zone \u003d zone démilitarisée --AJOUTEZ-service \u003d POP3 - Pare-feu POP3-CMD --ZONE \u003d DMZ --Add-Service \u003d POP3S --Permanent

Depuis le port SSH est modifié en 7022, nous supprimons le service SSH (port 22) et ouvrir le port 7022

Firewall-Cmd --ReMove-Service \u003d SSH - Pare-feu SSH - CMD --Add-Port \u003d 7022 / TCP --Permanent

Pour mettre en œuvre des modifications, nous devons redémarrer le pare-feu:

Pare-feu-cmd --Reload

Et enfin, vous pouvez énumérer les règles.

Centos 7, contrairement à Centos 6, dans la base de données est livré avec un nouveau pare-feu - Firewalld. Il peut être éteint et le remplacer par de bons vieux iptables, mais s'il n'y a pas de préalable directe pour cela, il est préférable de s'habituer à quelque chose de nouveau et de ne pas se reposer dans l'ancien. Cela ne signifie pas que Windows 10 mieux que les fenêtres 7, et Windows XP est meilleur que Windows 7;) Bon exemple Sur ce sujet - SELINUX. Si vous êtes d'abord presque tous (et aussi), il est désactivé et même grondé un peu, maintenant presque personne ne le conseille, seulement s'il y a une confiance nécessaire. Au contraire, beaucoup sont devenus habitués (ou sont utilisés) d'utiliser une sémanale. Nous n'allons pas et nous éteignons immédiatement le pare-feu et nous essayons comment ça goûte.

Le pare-feu n'est pas un pare-feu fondamentalement différent. C'est une autre superstructure sur NetFilter, donc si vous avez une expérience d'IPTABLES, vous commencez un peu vous commencez calmement à utiliser un nouvel outil.

Courir et arrêter le pare-feu

Vérifiez si le pare-feu a lancé:

# SystemCTL Statut Firewalld

Il y aura des informations prolongées. En bref, oui (Ça fonctionne) ou non ceci:

# Pare-feu-cmd --state
En cours

Ok, fonctionne.

FirewallD Stop:

# SystemCl Stop FirewallDd

Station de moteur inversée:

# SystemCTL désactiver le pare-feu

Lancez FirewallD:

# SystemCtL Start Firewalld

Allumer la gare routière:

# SystemCtL Activer le pare-feu

Zones de pare-feu

Le concept de la zone est largement utilisé dans le pare-feu. Liste de toutes les zones autorisées par défaut:

# Firewall-CMD --Get-Zones
Bloc DMZ DROP DROP DOMAINE EXTÉRIEUR DOMAINE PUBLI DU PUBLIQUE DE CONFIGURÉ INTERNE

Nomination de zones (conditionnellement, bien sûr):

  • dROP - Tous les paquets entrants sont supprimés (chute) sans réponse. Seuls les composés sortants sont autorisés.
  • bloc - Les connexions entrantes dévient (rejetées) avec la réponse à l'ICMP-Host-interdit (ou ICMP6-AMM-interdit). Seul le système de connexion initié n'est autorisé.
  • publique - défaut. Il ressort clairement du nom que cette zone vise à travailler dans des réseaux publics. Nous ne faisons pas confiance à ce réseau et n'autorisons que certains composés entrants.
  • zone externe pour l'interface externe du routeur (appelé masquantding). Seules les connexions entrantes définies par nous sont autorisées.
  • dMZ - ZONE DMZ, seules certaines connexions entrantes sont autorisées.
  • le travail est une zone de réseau de travail. Nous ne faisons toujours confiance à personne, mais plus autant qu'avant :) Seuls certains composés entrants sont autorisés.
  • accueil - Zone de la maison. Nous faisons confiance aux environs, mais seuls certains composés entrants sont autorisés
  • zone interne - zone interne. Nous faisons confiance aux environs, mais seuls certains composés entrants sont autorisés
  • trusted - tout est autorisé.

Liste de toutes les zones actives:

# Firewall-CMD --Gutières-Zones actifs
Publique
Interfaces: ENP1S0.

Ouais, la zone publique auquel l'interface réseau ENP1SO est jointe. En outre, dans la zone publique, ajoutez un nouveau port sur lequel le SSHD sera suspendu.

Connaissant le nom de l'interface réseau (par exemple, ENP1S0), vous pouvez déterminer quelle zone il appartient:

# Firewall-CMD --Get-Zone-of-Interface \u003d ENP1S0
Publique

Et vous pouvez savoir quelles interfaces appartiennent à la zone spécifique:

# Firewall-cmd --Zone \u003d Interfaces -Listes publics
ENP1S0.

Exemple: Autoriser SSH sur le port non standard

Laissons l'accès au serveur SSH sur le port 2234 / TCP, et non par 22 / TCP, comme défaut. En cours de route, touchez légèrement SELINUX.

Tout d'abord, voyons ce qui est généralement autorisé sur notre serveur:

# Pare-feu-cmd --Permanent --list - tous
Public (par défaut)
Interfaces:
SOURCES:
SERVICES: SSH DHCPV6-Client
Masquerade: Non.
Ports en avant:
ICMP-Blocks:
Rules riches:

Je n'utilise pas IPv6 tandis que IPv6, je vais donc supprimer immédiatement l'ACC. Règle du pare-feu:

# Firewall-cmd --Permanent --Zone \u003d Public --ReMove-Service \u003d DHCPV6-Client

Autorisé sur une base continue (de sorte qu'après que le redémarrage n'est pas perdu) Connexion au port 2234 / TCP (Hang Sshd sur elle):

# Firewall-cmd --Permanent --Zone \u003d Public --DD-Port \u003d 2234 / TCP

Redémarrez les règles:

# Pare-feu-cmd --Reload

Vérifier:

# Firewall-cmd --Zone \u003d Public-List-Ports
2234 / TCP.

OK, le port est ouvert. Modifier sshd config:

# Nano / etc / ssh / sshd_config
...
Port 2234.
...

# SystemCl Redémarrez sshd.service

Mais Selinux, que vous espérez que vous ne désactivez pas, n'autorisera pas la connexion à SSH sur le port non standard (port 2234 / TCP pour SSHD - non standard). Vous pouvez ignorer cette étape et vérifier comment SELINUX Protection fonctionnera et vous pouvez immédiatement configurer tout:

# Yum fournit une sémanale
# Yum Installez stratégieCoretutils-python
# Port de semi-cadre -A -T SSH_PORT_T -P TCP 2234

Maintenant tout va bien. Vérifiez la connexion SSH sur le nouveau port. Si tout va bien, fermez l'accès au port 22:

# Firewall-cmd --Permanent --Zone \u003d Public --ReMove-Service \u003d SSH
# Pare-feu-cmd --Reload

Nous regardons ce qui s'est passé:

# Pare-feu-cmd --list - tous
Public (par défaut, actif)
Interfaces:
SOURCES:
Prestations de service:
Ports: 2234 / TCP
Masquerade: Non.
Ports en avant:
ICMP-Blocks:
Rules riches:

C'est tout.

Différentes équipes utiles:

Activez tous les modes de packages sortants et entrants:

# Pare-feu-cmd - espagnol

Éteignez le mode de verrouillage de tous les paquets sortants et entrants:

# Pare-feu-cmd - panique

Pour savoir si tous les paquets sortants et entrants sont activés:

# Pare-feu-cmd --query-panique

Recharger des règles de pare-feu sans perte de connexions en cours:

# Pare-feu-cmd --Reload

Rechargez les règles du pare-feu et réinitialisez les connexions actuelles (recommandées uniquement en cas de problème):

# Firewall-CMD --Complet-Recharger

Ajouter à l'interface réseau de la zone:

# Firewall-cmd --Zone \u003d Public --DD-Interface \u003d EM1

Ajouter une interface réseau de zone (enregistrer après le redémarrage du pare-feu):

# Firewall-cmd --Zone \u003d Public --Permanent --Add-Interface \u003d EM1

Vous pouvez spécifier la configuration IFCFG-ENP1S0 sur quelle zone appartient à cette interface. Pour ce faire, ajoutez une zone \u003d Travail à Fichier / etc / SySconfig / Network-Scripts / iFCFG-EP1S0. Si le paramètre de zone n'est pas spécifié, la zone par défaut est attribuée (paramètre par défautZone dans le fichier /etc/firewalld/firewalld.conf.

Autoriser la plage de ports:

# Firewall-cmd --Zone \u003d Public --DD-Port \u003d 5059-5061 / UDP

Masquerade, il est NAT, il ...):

Vérifier l'état:

# Pare-feu-cmd --zone \u003d externe -query-masquerade

Activer:

# Pare-feu-cmd --zone \u003d externe -dd-masquerade

Il convient de noter ici que vous pouvez activer la mascarade et la zone publique, par exemple.

Rediriger le port vers un autre port vers un autre hôte:

# Pare-feu-cmd --zone \u003d externe -dd-avant-avant \u003d port \u003d 22: proto \u003d TCP: TOADDR \u003d 192.168.1.23

Rediriger le port vers un autre port vers un autre hôte avec une modification du port de destination (du 22 au 192.168.1.23:2055):

# Pare-feu-cmd --zone \u003d externe /
--DD-Award-Port \u003d port \u003d 22: proto \u003d TCP: TOPORT \u003d 2055: TOADDR \u003d 192.168.1.23

Sur cette finale, parce que Les exemples peuvent être infiniment beaucoup. J'ajouterai seulement que je n'ai personnellement pas comporté mon opinion sur l'innovation de Firewalld, car Vous vous habituez à la syntaxe pendant une longue période et si différents OS Linux se trouvent dans votre zoo, alors il peut y avoir des problèmes avec l'habitude. Mais ayant maîtrisé le pare-feu, vous élargissez les horizons - le plus souvent, cela vaut l'effort.

Avantages du pare-feu

L'avantage principal - vous serez un peu résumé des chaînes IPTABLES. Pour l'inclusion de la redirection du port, il n'est pas nécessaire de penser au front ou à poser en plus de transmettre. Vous avez reçu «API d'Ipables du fabricant» quelque chose comme ça. Si vous avez allumé NAT, peu importe où il est spécifiquement (sous tout numéro de commande de règles en cours) une règle est affiché. Vous spécifiez simplement - allumez le NAT à Eth0. Et sans non-sens;) cela peut être pratique si vous avez besoin d'organiser interface Web Contrôle du pare-feu.

Il est possible de vérifier l'état (par exemple, NAT est activé ou non!). Et utilisez-le également dans vos scripts, dans la logique de votre application, par exemple. Je ne sais pas comment créer une demande d'état (marche / arrêt) dans iptables. Vous pouvez bien sûr, quelque chose dans le genre iptables -l -t Nat | Grep "...", mais tu es d'accord, c'est un peu la même chose qui gère "pare-feu-cmd -zone \u003d externe -query-masquerade". Il y a, par exemple, des centaines de VM avec Centos, dans lesquels il peut y avoir des noms légèrement différents pour les interfaces WAN ou autre chose de cette manière. Et vous avez donc une cmdlet universelle, qui donnera un résultat attendu sur différentes machines.

Inconvénients du pare-feu.

Le principal inconvénient, à mon avis, est que lorsque vous vous familiarisez, dumping des iptables «propres», qui est de Debian et à Ubuntu, et à Centos et, en général, partout. Même au fait, la syntaxe microtique et les chaînes ressemblent au type sur iptables. C'est un amateur, bien sûr. Et le professionnel est toujours à travailler avec, s'il ya des conditions spécifiques, cela fonctionnera avec ce qui est. Mais ... je suis rétrograd et résiste désespérément (sans avantages explicites) nouveaux articles que chaque joueur grand est implémente sous lui-même. Redhat est bénéfique, si de plus en plus de nouveaux spécialistes sont asami dans le pare-feu.

Et si vous avez changé de pare-feu, la syntaxe NET Syntax iptables ne fera que mal, il y aura une bouillie ou simplement casser le travail du pare-feu si vous commencez à changer / compléter les règles qui n'utilisent pas la syntaxe standard du pare-feu.

Je ne veux pas de pare-feu! Retourner à moi vieux iptables!

Si vous souhaitez toujours retourner le passé et remplacer le pare-feu sur iptables, il n'est pas difficile de le faire:

Novice ici n'est pas un endroit:

# SystemCTL désactiver le pare-feu
# SystemCl Stop FirewallDd

Nous mettons de bons vieux iptables:

# Yum installer iptables-services

Exécutez le pare-feu:

# SystemCl start iptables
# SystemCTL Démarrer IP6Tables

Autostart lorsqu'il est allumé:

# SystemCtL Activer les iptables
# SystemCtL Activer IP6Tables

Pour enregistrer des règles IPTABLES après le redémarrage:

# / Sbin / iptables-Save\u003e / etc / sysconfig / iptables
# / Sbin / ip6-Savance\u003e / etc / sysconfig / ip6tables

Ou dans un seuil:

# Service iptables Enregistrer

Les règles actuelles sont dans les fichiers:
/ etc / sysconfig / iptables
/ etc / sysconfig / ip6tables

Redémarrez les iptables (par exemple, après avoir apporté des modifications):

# SystemCtL redémarrez iptables.Service




Avez-vous aimé l'article? Partagez-le