[1] Firewalld – Podstawy

7 marca 2022 Wyłączono przez Adam [zicherka] Nogły

To są podstawowe operacje Firewalld. Definicja usług jest ustawiona na strefy w Firewalld.

Aby włączyć/wyłączyć zaporę, przypisz strefę do karty sieciowej za pomocą powiązanych poleceń.

[1] Aby użyć Firewalld, uruchom usługę.

[root@vlsr08 ~]# systemctl enable --now firewalld

[2] Domyślnie strefa [public] jest stosowana z każdą kartą sieciową, a cockpit, dhcpv6-client, ssh są dozwolone. Podczas pracy z poleceniem [firewall-cmd], jeśli wprowadzisz polecenie bez specyfikacji [–zone=***], konfiguracja zostanie ustawiona na strefę domyślną.

# pokaż domyślną strefę
[root@vlsr08 ~]# firewall-cmd --get-default-zone
Public

# pokaż aktualne ustawienia
[root@vlsr08 ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens160
  sources:
  services: cockpit dhcpv6-client ssh
  ports:
  protocols:
  forward: no
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

# pokaż wszystkie strefy domyślnie skonfigurowane
[root@vlsr08 ~]# firewall-cmd --list-all-zones
block
  target: %%REJECT%%
  icmp-block-inversion: no
  interfaces:
  sources:
  services:
  ports:
  protocols:
  forward: no
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

dmz
  target: default
  icmp-block-inversion: no
  interfaces:
  sources:
  services: ssh
  ports:
  protocols:
  forward: no
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

# pokaż dozwolone usługi w wyspecyfikowanej strefie
[root@vlsr08 ~]# firewall-cmd --list-service --zone=external
Ssh

# zmień domyślną strefę
[root@vlsr08 ~]# firewall-cmd --set-default-zone=external
Success

# zmień strefę dla określonego interfejsu
# uwaga! nie jest zmieniany na stałe za pomocą [change-interface], nawet jeśli dodano opcję [--permanent]
[root@vlsr08 ~]# firewall-cmd --change-interface=ens160 --zone=external
success
[root@vlsr08 ~]# firewall-cmd --list-all --zone=external
external (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens160
  sources:
  services: ssh
  ports:
  protocols:
  forward: no
  masquerade: yes
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

#jeśli chcesz zmienić na stałe, użyj komendy [nmcli]
[root@vlsr08 ~]# nmcli connection modify ens160 connection.zone external
[root@vlsr08 ~]# firewall-cmd --get-active-zone
external
  interfaces: ens160

[3] Pokaż usługi zdefiniowane domyślnie. Jeśli nie określisz strefy [–zone=XXX] definicje zostaną przypisane do domyślnej strefy – patrz [2].

[root@vlsr08 ~]# firewall-cmd --get-services
RH-Satellite-6 RH-Satellite-6-capsule amanda-client amanda-k5-client
amqp amqps apcupsd audit bacula bacula-client bb bgp bitcoin bitcoin-rpc
bitcoin-testnet bitcoin-testnet-rpc bittorrent-lsd ceph ceph-mon cfengine
cockpit collectd condor-collector ctdb dhcp dhcpv6 dhcpv6-client distcc
. . . . .

#pliki definicji są umieszczane w katalogu jak poniżej
# jeśli chcesz dodać swoją oryginalną definicję, dodaj tam plik XML
[root@vlsr08 ~]# ls /usr/lib/firewalld/services
amanda-client.xml        iscsi-target.xml          rdp.xml
amanda-k5-client.xml     isns.xml                  redis-sentinel.xml
amqps.xml                jenkins.xml               redis.xml
amqp.xml                 kadmin.xml                RH-Satellite-6-capsule.xml
apcupsd.xml              kdeconnect.xml            RH-Satellite-6.xml
audit.xml                kerberos.xml              rpc-bind.xml
bacula-client.xml        kibana.xml                rquotad.xml
bacula.xml               klogin.xml                rsh.xml
bb.xml                   kpasswd.xml               rsyncd.xml
bgp.xml                  kprop.xml                 rtsp.xml
bitcoin-rpc.xml          kshell.xml                salt-master.xml
bitcoin-testnet-rpc.xml  kube-apiserver.xml        samba-client.xml
. . . . .

[4] Dodaj lub usuń dozwolone usługi.

Zmiana nie zostanie zachowana po ponownym uruchomieniu systemu. Jeśli zmieniasz ustawienia na stałe, dodaj opcję [–permanent]. Jeśli nie określisz strefy [–zone=XXX] definicje zostaną przypisane do domyślnej strefy – patrz [2].

# dodaj [http] zmiana zostanie utracona po restarcie systemu
[root@vlsr08 ~]# firewall-cmd --add-service=http  # aby określić strefę, której dotyczy ta reguła dodaj --zone=xxxx
success
[root@vlsr08 ~]# firewall-cmd --list-service # aby określić strefę, której dotyczy ta reguła dodaj --zone=xxxx
http ssh

# usuń [http]
[root@vlsr08 ~]# firewall-cmd --remove-service=http # aby określić strefę, której dotyczy ta reguła dodaj --zone=xxxx
success
[root@vlsr08 ~]# firewall-cmd --list-service # aby określić strefę, której dotyczy ta reguła dodaj --zone=xxxx
ssh

# dodaj [http] permanentnie – ta zmiana wymaga restartu usługi Firewalld
[root@vlsr08 ~]# firewall-cmd --add-service=http --permanent # aby określić strefę, której dotyczy ta reguła dodaj --zone=xxxx
success
[root@vlsr08 ~]# firewall-cmd --reload
success
[root@vlsr08 ~]# firewall-cmd --list-service # aby określić strefę, której dotyczy ta reguła dodaj --zone=xxxx
http ssh

[5] Dodaj i usuń porty. Jeśli nie określisz strefy [–zone=XXX] definicje zostaną przypisane do domyślnej strefy – patrz [2].

# dodaj port [456]
[root@vlsr08 ~]# firewall-cmd --add-port=465/tcp # aby określić strefę, której dotyczy ta reguła dodaj --zone=xxxx
success
[root@vlsr08 ~]# firewall-cmd --list-port # aby określić strefę, której dotyczy ta reguła dodaj --zone=xxxx
465/tcp

# usuń port [456]
[root@vlsr08 ~]# firewall-cmd --remove-port=465/tcp # aby określić strefę, której dotyczy ta reguła dodaj --zone=xxxx
success
[root@vlsr08 ~]# firewall-cmd --list-port # aby określić strefę, której dotyczy ta reguła dodaj --zone=xxxx

# dodaj port [456] permanentnie
[root@vlsr08 ~]# firewall-cmd --add-port=465/tcp --permanent # aby określić strefę, której dotyczy ta reguła dodaj --zone=xxxx
success
[root@vlsr08 ~]# firewall-cmd --reload
success
[root@vlsr08 ~]# firewall-cmd --list-port # aby określić strefę, której dotyczy ta reguła dodaj --zone=xxxx
465/tcp

[6] Dodaj lub usuń zabronione typy ICMP. Jeśli nie określisz strefy [–zone=XXX] definicje zostaną przypisane do domyślnej strefy – patrz [2].

# dodaj [echo-request] do zabronionej listy
[root@vlsr08 ~]# firewall-cmd --add-icmp-block=echo-request # aby określić strefę, której dotyczy ta reguła dodaj --zone=xxxx
success
[root@vlsr08 ~]# firewall-cmd --list-icmp-blocks # aby określić strefę, której dotyczy ta reguła dodaj --zone=xxxx
echo-request

# usuń [echo-request] z listy zabronionej
[root@vlsr08 ~]# firewall-cmd --remove-icmp-block=echo-request # aby określić strefę, której dotyczy ta reguła dodaj --zone=xxxx
success
[root@vlsr08 ~]# firewall-cmd --list-icmp-blocks # aby określić strefę, której dotyczy ta reguła dodaj --zone=xxxx

# pokaż dostępne typy ICMP
[root@vlsr08 ~]# firewall-cmd --get-icmptypes
address-unreachable bad-header beyond-scope communication-prohibited destination-unreachable
echo-reply echo-request failed-policy fragmentation-needed host-precedence-violation host-prohibited
host-redirect host-unknown host-unreachable ip-header-bad neighbour-advertisement neighbour-solicitation
network-prohibited network-redirect network-unknown network-unreachable no-route packet-too-big
parameter-problem port-unreachable precedence-cutoff protocol-unreachable redirect reject-route
required-option-missing router-advertisement router-solicitation source-quench source-route-failed
time-exceeded timestamp-reply timestamp-request tos-host-redirect tos-host-unreachable tos-network-redirect
tos-network-unreachable ttl-zero-during-reassembly ttl-zero-during-transit unknown-header-type unknown-option