Firewall i CentOS
Introduktion
Vi har lavet en undervisningsvideo på v5.dk omkring opsætning og brug af Ubuntus indbyggede frontend til iptables, nemlig ufw, dette medfødte et ønske om en introduktion til firewall-modulet firewall-cmd (firewalld) i RHEL/CentOS.
Se bl.a. dette forumindlæg: [CentOS 7 - FirewallD] Åben SSH for fast IP ellers block
Derfor ville denne guide kort gennemgår hvordan du kan opsætte en firewall i CentOS baseret på de samme emner som vores ufw-undervisningsvideo.
Hvis du ønsker mere viden om netop de ting vi gør her, vil vi anbefale du ser vores video om ufw.
Kom i gang
Det første vi skal gøre, er at sikre, at vores firewall er slået til, hvis ikke den er slået til, får vi ikke den store effekt af de regler vi skal bygge op.
Vi kan nemt se aktuel status på firewalld-servicen, ved at skrive kommandoen:
[root@centos ~]# firewall-cmd --state
not running
Som standard er firewallen i CentOS deaktiveret. Lad os få den akriveret og startet:
[root@centos ~]# systemctl enable firewalld
Created symlink from /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service to /usr/lib/systemd/system/firewalld.service.
Created symlink from /etc/systemd/system/basic.target.wants/firewalld.service to /usr/lib/systemd/system/firewalld.service.
[root@centos ~]# systemctl start firewalld
[root@centos ~]# firewall-cmd --state
running
Zone og regler
Firewalld kommer med en række prædefinerede zoner, bl.a. en zone der hedder trusted. Alt hvad der placeres i denne zone, får automatisk fuld adgang til din server. Du kan se en liste over alle zoner som indbygget i CentOS med denne kommando:
[root@centos ~]# firewall-cmd --list-all-zones
[... alle zoner vises...]
Lad os nu tilføje en regel til vores trusted-zone. Vi vil gerne tillade at vores egen IP-adresse fra vores egen internet-forbindelse herhjemme, altid kan tilgå serveren, vi tilføjer derfor IP-adressen 11.22.33.44 (erstat med din egen fast offentlige IP-adresse) til vores trusted zone, det gøres sådan:
[root@centos ~]# firewall-cmd --permanent --zone=trusted --add-source=11.22.33.44
TIP: Er du i tvivl om hvad din offentlige IP-adresse er? Se den her.
Okay, nu har vi oprettet vores første regel, lad os tjekke den ud:
[root@centos ~]# firewall-cmd --list-all --zone=trusted
trusted
interfaces:
sources: 11.22.33.44
services:
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
Standard-regler
Selvom vi nu har oprettet en regel der tillader at vores IP kan logge ind på serveren, så kan alle andre IP-adresser stadig tilgå vores server, det er fordi firewalld som standard tillader alt trafik - vi skal derfor nu opsætte en standard-regel, så den afviser alt trafik, pånær de regler vi selv opsætter, som f.eks. vores trusted-regel herover, altså vores egen IP-adresse 11.22.33.44.
[root@centos ~]# firewall-cmd --set-default-zone=drop
success
Og for at få det hele til at træde i karakter, reloader vi vores firewall:
[root@centos ~]# firewall-cmd --reload
success
Nu er serveren lukket godt ned, og kun vores egen IP-adresse kan tilgå serveren.
Åbn en bestemt port
Nu har mange også en eller flere tjenester, som skal være tilgængelige for offentligheden, f.eks. en web-server, så hvordan kan vi åbne en port for hele Internettet? Lad os se på dette her:
[root@centos ~]# firewall-cmd --add-port=80/tcp --permanent
success
[root@centos ~]# firewall-cmd --reload
success
Nu har vi tilladt at alle kan tilgå port 80 (http) fra Internettet, og web-serveren virker igen.
Afslutningsvis
Dette var en kort introduktion til de basale funktioner i firewalld / firewall-cmd i CentOS / RHEL. Hvis du har spørgsmål er du altid velkommen til at oprette dem i vores forum, hvor vi er klar til at hjælpe dig.
God fornøjelse.