Android

Een firewall instellen met firewalld op centos 7

Настройка firewall в CentOS 7 (firewalld)

Настройка firewall в CentOS 7 (firewalld)

Inhoudsopgave:

Anonim

Een goed geconfigureerde firewall is een van de belangrijkste aspecten van de algehele systeembeveiliging.

FirewallD is een complete firewall-oplossing die de iptables-regels van het systeem beheert en een D-Bus-interface biedt om deze te bedienen. Beginnend met CentOS 7 vervangt FirewallD iptables als de standaard firewall management tool.

In deze zelfstudie laten we u zien hoe u een firewall met FirewallD op uw CentOS 7-systeem instelt en leggen we u de basisconcepten van FirewallD uit.

voorwaarden

Voordat u met deze zelfstudie begint, moet u zich aanmelden bij uw server met een gebruikersaccount met sudo-rechten of met de rootgebruiker. De beste praktijk is om beheerdersopdrachten uit te voeren als een sudo-gebruiker in plaats van root. Als u geen sudo-gebruiker op uw CentOS-systeem hebt, kunt u er een maken door deze instructies te volgen.

Basisfirewalld-concepten

FirewallD gebruikt de concepten van zones en services, in plaats van de iptables-keten en regels. Op basis van de zones en services die u configureert, kunt u bepalen welk verkeer wel en niet is toegestaan ​​van en naar het systeem.

FirewallD kan worden geconfigureerd en beheerd met het opdrachtregelhulpprogramma firewall-cmd .

Firewall-zones

Zones zijn vooraf gedefinieerde sets regels die specificeren welk verkeer moet worden toegestaan ​​op basis van het vertrouwensniveau op de netwerken waarmee uw computer is verbonden. U kunt netwerkinterfaces en bronnen aan een zone toewijzen.

Hieronder staan ​​de zones aangeboden door FirewallD gerangschikt volgens het vertrouwensniveau van de zone van niet-vertrouwd tot vertrouwd:

  • drop: alle inkomende verbindingen worden zonder kennisgeving verwijderd. Alleen uitgaande verbindingen zijn toegestaan. blokkeren: alle inkomende verbindingen worden geweigerd met een door icmp-host-prohibited bericht voor IPv4 en icmp6-adm-prohibited voor IPv6n. Alleen uitgaande verbindingen zijn toegestaan. publiek: voor gebruik in niet-vertrouwde openbare ruimtes. U vertrouwt geen andere computers in het netwerk, maar u kunt geselecteerde inkomende verbindingen toestaan. extern: voor gebruik op externe netwerken met NAT-maskering ingeschakeld wanneer uw systeem als gateway of router fungeert. Alleen geselecteerde inkomende verbindingen zijn toegestaan. intern: voor gebruik op interne netwerken wanneer uw systeem fungeert als gateway of router. Andere systemen op het netwerk worden over het algemeen vertrouwd. Alleen geselecteerde inkomende verbindingen zijn toegestaan. dmz: gebruikt voor computers in uw gedemilitariseerde zone die beperkte toegang hebben tot de rest van uw netwerk. Alleen geselecteerde inkomende verbindingen zijn toegestaan. werk: gebruikt voor werkmachines. Andere computers in het netwerk worden over het algemeen vertrouwd. Alleen geselecteerde inkomende verbindingen zijn toegestaan. thuis: gebruikt voor thuismachines. Andere computers in het netwerk worden over het algemeen vertrouwd. Alleen geselecteerde inkomende verbindingen zijn toegestaan. vertrouwd: alle netwerkverbindingen worden geaccepteerd. Vertrouw op alle computers in het netwerk.

Firewall-services

Firewalld-services zijn vooraf gedefinieerde regels die binnen een zone van toepassing zijn en de benodigde instellingen definiëren om inkomend verkeer voor een specifieke service toe te staan.

Firewalld Runtime en permanente instellingen

Firewalld gebruikt twee gescheiden configuratiesets, runtime en permanente configuratie.

De runtime-configuratie is de actuele actieve configuratie en is niet permanent bij opnieuw opstarten. Wanneer de Firewalld-service wordt gestart, wordt de permanente configuratie geladen, die de runtime-configuratie wordt.

Wanneer u wijzigingen aanbrengt in de Firewalld-configuratie met het hulpprogramma firewall-cmd , worden de wijzigingen standaard toegepast op de runtime-configuratie. Om de wijzigingen permanent te maken, moet je de optie --permanent gebruiken.

Firewall installeren en inschakelen

  1. Firewalld wordt standaard op CentOS 7 geïnstalleerd, maar als het niet op uw systeem is geïnstalleerd, kunt u het pakket installeren door het volgende te typen:

    sudo yum install firewalld

    Firewalld-service is standaard uitgeschakeld. U kunt de firewallstatus controleren met:

    sudo firewall-cmd --state

    De FirewallD-service starten en inschakelen bij het opstarten:

    sudo systemctl start firewalld sudo systemctl enable firewalld

Werken met Firewalld-zones

Nadat u de FirewallD-service voor het eerst hebt ingeschakeld, wordt de public zone ingesteld als standaardzone. U kunt de standaardzone bekijken door te typen:

sudo firewall-cmd --get-default-zone

public

Typ het volgende voor een lijst met alle beschikbare zones:

sudo firewall-cmd --get-zones

block dmz drop external home internal public trusted work

Standaard krijgen alle netwerkinterfaces de standaardzone toegewezen. Om te controleren welke zones door uw netwerkinterface (s) worden gebruikt:

sudo firewall-cmd --get-active-zones

public interfaces: eth0 eth1

De output hierboven vertelt ons dat beide interfaces eth0 en eth1 zijn toegewezen aan de openbare zone.

U kunt de zoneconfiguratie-instellingen afdrukken met:

sudo firewall-cmd --zone=public --list-all

public (active) target: default icmp-block-inversion: no interfaces: eth0 eth1 sources: services: ssh dhcpv6-client ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:

Uit de bovenstaande output kunnen we zien dat de openbare zone actief is en als standaard is ingesteld, gebruikt door zowel eth0 als eth1 interfaces. Ook zijn de verbindingen met betrekking tot de DHCP-client en SSH toegestaan.

sudo firewall-cmd --list-all-zones

De opdracht drukt een enorme lijst af met de instellingen van alle beschikbare zones.

De zone van een interface wijzigen

U kunt de interfacezone eenvoudig wijzigen met de optie --zone in combinatie met de optie --change-interface . De volgende opdracht wijst de eth1 interface toe aan de werkzone:

sudo firewall-cmd --zone=work --change-interface=eth1

Controleer de wijzigingen door te typen:

sudo firewall-cmd --get-active-zones

work interfaces: eth1 public interfaces: eth0

De standaardzone wijzigen

Om de standaardzone te wijzigen, gebruikt u de optie --set-default-zone gevolgd door de naam van de zone die u als standaard wilt instellen.

Als u bijvoorbeeld de standaardzone naar thuis wilt wijzigen, moet u de volgende opdracht uitvoeren:

sudo firewall-cmd --set-default-zone=home

Controleer de wijzigingen met:

sudo firewall-cmd --get-default-zone

home

Een poort of service openen

Met FirewallD kunt u verkeer toestaan ​​voor specifieke poorten op basis van vooraf gedefinieerde regels die services worden genoemd.

Om een ​​lijst te krijgen van alle standaard beschikbare services type:

sudo firewall-cmd --get-services

U kunt meer informatie over elke service vinden door het bijbehorende.xml-bestand te openen in de directory /usr/lib/firewalld/services . De HTTP-service is bijvoorbeeld als volgt gedefinieerd:

/usr/lib/firewalld/services/http.xml

WWW (HTTP) HTTP is the protocol used to serve Web pages. If you plan to make your Web server publicly available, enable this option. This option is not required for viewing pages locally or developing Web pages. WWW (HTTP) HTTP is the protocol used to serve Web pages. If you plan to make your Web server publicly available, enable this option. This option is not required for viewing pages locally or developing Web pages.

Om inkomend HTTP-verkeer (poort 80) toe te staan ​​voor interfaces in de openbare zone, alleen voor de huidige sessie (runtime-configuratie):

sudo firewall-cmd --zone=public --add-service=http Als u de standaardzone wijzigt, kunt u de optie --zone weglaten.

Gebruik de optie --list-services om te controleren of de service is toegevoegd:

sudo firewall-cmd --zone=public --list-services

ssh dhcpv6-client

sudo firewall-cmd --permanent --zone=public --add-service=http

Gebruik de --list-services samen met de --permanent optie om uw wijzigingen te verifiëren:

sudo firewall-cmd --permanent --zone=public --list-services

ssh dhcpv6-client

De syntaxis voor het verwijderen van service is hetzelfde als bij het toevoegen van een service. Gebruik gewoon --remove-service plaats van de --add-service optie:

sudo firewall-cmd --zone=public --remove-service=http --permanent

De bovenstaande opdracht verwijdert de http-service uit de permanente configuratie van de openbare zone.

Wat als u een toepassing zoals Plex Media Server gebruikt waarvoor geen geschikte service beschikbaar is?

In dergelijke situaties hebt u twee opties. U kunt de juiste poorten openen of een nieuwe FirewallD-service definiëren.

De Plex-server luistert bijvoorbeeld op poort 32400 en gebruikt TCP om de poort in de openbare zone voor de huidige sessie te openen met de optie --add-port= :

sudo firewall-cmd --zone=public --add-port=32400/tcp Protocollen kunnen tcp of udp .

Gebruik de optie --list-ports om te controleren of de poort is toegevoegd:

sudo firewall-cmd --zone=public --list-ports

32400/tcp

Om de poort 32400 open te houden na opnieuw opstarten, voegt u de regel toe aan de permanente instellingen door dezelfde opdracht uit te voeren met de optie --permanent .

De syntaxis voor het verwijderen van een poort is hetzelfde als bij het toevoegen van een poort. Gebruik gewoon --remove-port plaats van de --add-port optie.

sudo firewall-cmd --zone=public --remove-port=32400/tcp

Een nieuwe FirewallD-service maken

Zoals we al hebben vermeld, worden de standaardservices opgeslagen in de map /usr/lib/firewalld/services . De eenvoudigste manier om een ​​nieuwe service te maken, is door een bestaand servicebestand te kopiëren naar de map /etc/firewalld/services , de locatie voor door gebruikers gemaakte services en de bestandsinstellingen te wijzigen.

Om bijvoorbeeld een servicedefinitie voor de Plex Media Server te maken, kunnen we het SSH-servicebestand gebruiken:

sudo cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/plexmediaserver.xml

Open het nieuw gecreëerde plexmediaserver.xml bestand en wijzig de korte naam en beschrijving voor de service in de en -tags. De belangrijkste tag die u moet wijzigen, is de poorttag, die het poortnummer en het protocol definieert dat u wilt openen.

In het volgende voorbeeld openen we poorten 1900 UDP en 32400 TCP.

/etc/firewalld/services/plexmediaserver.xml

plexmediaserver Plex is a streaming media server that brings all your video, music and photo collections together and stream them to your devices at anytime and from anywhere. plexmediaserver Plex is a streaming media server that brings all your video, music and photo collections together and stream them to your devices at anytime and from anywhere.

Sla het bestand op en laad de FirewallD-service opnieuw:

sudo firewall-cmd --reload

U kunt de plexmediaserver service nu in uw zones gebruiken als elke andere service..

Port doorsturen met Firewalld

Om verkeer van de ene poort naar een andere poort of een ander adres door te sturen, schakelt u eerst --add-masquerade voor de gewenste zone in met de schakelaar --add-masquerade . Om bijvoorbeeld maskering voor external zonetype in te schakelen:

sudo firewall-cmd --zone=external --add-masquerade

  • Stuur verkeer van de ene poort naar de andere door op dezelfde server

In het volgende voorbeeld sturen we het verkeer van poort 80 naar poort 8080 op dezelfde server door:

sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toport=8080

  • Stuur verkeer door naar een andere server

In het volgende voorbeeld sturen we het verkeer van poort 80 naar poort 80 op een server met IP 10.10.10.2 :

sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toaddr=10.10.10.2

  • Stuur verkeer door naar een andere server op een andere poort

In het volgende voorbeeld sturen we het verkeer van poort 80 naar poort 8080 op een server met IP 10.10.10.2 :

sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=10.10.10.2

Een regelset maken met FirewallD

In het volgende voorbeeld laten we zien hoe u uw firewall configureert als u een webserver gebruikt. We gaan ervan uit dat uw server slechts één interface eth0 heeft en u wilt inkomend verkeer alleen toestaan ​​op SSH-, HTTP- en

  1. Wijzig de standaardzone in dmz

    We zullen de dmz (gedemilitariseerde) zone gebruiken omdat standaard alleen SSH-verkeer is toegestaan. Voer de volgende opdrachten uit om de standaardzone te wijzigen in dmz en toe te wijzen aan de eth0 interface:

    sudo firewall-cmd --set-default-zone=dmz sudo firewall-cmd --zone=dmz --add-interface=eth0

    Open HTTP- en

    Om HTTP- en HTTPS-poorten te openen, voegt u permanente serviceregels toe aan de dmz-zone:

    sudo firewall-cmd --permanent --zone=dmz --add-service=http sudo firewall-cmd --permanent --zone=dmz --add-service=https

    Breng de wijzigingen onmiddellijk van kracht door de firewall opnieuw te laden:

    sudo firewall-cmd --reload

    Controleer de wijzigingen

    Om de instellingen van de dmz-zone-configuratie te controleren:

    sudo firewall-cmd --zone=dmz --list-all

    dmz (active) target: default icmp-block-inversion: no interfaces: eth0 sources: services: ssh http https ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:

    De uitvoer hierboven vertelt ons dat de DMZ de standaardzone is, wordt toegepast op de eth0 interface en dat de poorten ssh (22) http (80) en https (443) open zijn.

Conclusie

U hebt geleerd hoe u de FirewallD-service op uw CentOS-systeem kunt configureren en beheren.

Zorg ervoor dat u alle inkomende verbindingen toestaat die nodig zijn voor de goede werking van uw systeem, terwijl u alle onnodige verbindingen beperkt.

firewalld firewall iptables centos beveiliging