„Ubuntu bástyagép tűzfal (Fossa)” változatai közötti eltérés

Innen: AdminWiki
a (UFW alapbeállítások)
a (UFW alapbeállítások)
31. sor: 31. sor:
 
IPV6=no
 
IPV6=no
 
[...]</pre>
 
[...]</pre>
 +
===A bejövő forgalom engedélyezése===
 
Alapértelmezésben az ''ufw'' inaktív, és az ''iptables'' nem tartalmaz szabályokat:
 
Alapértelmezésben az ''ufw'' inaktív, és az ''iptables'' nem tartalmaz szabályokat:
 
<pre>ufw status      # inactive
 
<pre>ufw status      # inactive
40. sor: 41. sor:
 
A fenti parancsban az alkalmazással együtt települő alkalmazásleírásra (''/etc/ufw/application.d'' alatti állomány) hivatkoztunk, így nem kellett közvetlenül portszámokat megadni. A létrehozott tűzfal szabályok megtekinthetőek a ''/etc/ufw/user.rules'' állományban.
 
A fenti parancsban az alkalmazással együtt települő alkalmazásleírásra (''/etc/ufw/application.d'' alatti állomány) hivatkoztunk, így nem kellett közvetlenül portszámokat megadni. A létrehozott tűzfal szabályok megtekinthetőek a ''/etc/ufw/user.rules'' állományban.
  
Ezután kapcsoljuk be a csomagszűrést:
+
Ezután bekapcsolhatjuk a csomagszűrést:
 
<pre>ufw enable
 
<pre>ufw enable
 
ufw status verbose  # Status: active
 
ufw status verbose  # Status: active

A lap 2020. május 2., 23:39-kori változata

A Hálózati házirend szerint valamennyi szervert bastion host-ként kell kialakítani, azaz saját (csomagszűrő) tűzfallal kell rendelkezzen. A gyakorlatban ez a Linux kernel netfilter (iptables) konfigurálását jelenti, amelyet ebben a leírásban az Ubuntu terjesztésben alapértelmezetten telepített UFW (Uncomplicated Firewall) parancssori frontend segítségével valósítunk meg.

  • Ez a leírás a majdani publikus eléréshez szükséges, alapvető csomagszűrést valósít meg, egy darab hálózati interface-szel rendelkező szervergépen.
  • Ez a leírás csak IPv4-re vonatkozik - IPv6 TODO!

A beállításokat rendszergazda konzolon (sudo -i) célszerű elvégezni.

Hálózati segédeszközök

Elsősorban az ifconfig használatához szokott rendszergazdáknak opcionálisan célszerű a net-tools csomag telepítése:

apt install net-tools

Az IPv6 tiltása

Tisztán IPv4 környezetben opcionálisan érdemes teljesen letiltani az IPv6 forgalmat. Ehhez készítsünk egy overlay kernel paraméter beállító állományt:

-rw-r--r-- root root /etc/sysctl.d/local.conf

# Disable IPv6 entirely
net.ipv6.conf.all.disable_ipv6=1
net.ipv6.conf.default.disable_ipv6=1
net.ipv6.conf.lo.disable_ipv6=1

Érvényesítsük a beállításokat:

systemctl restart systemd-sysctl

Ellenőrzés: az ifconfig vagy ip a parancsok kimenete már nem mutat IPv6 címeket. Ez a beállítás a rendszer újraindítása után is megmarad.

UFW alapbeállítások

Amennyiben az IPv6-ot fentebb letiltottuk, ezt a beállítást vezessük át a /etc/default/ufw állományban is:

-rw-r--r-- /etc/default/ufw

[...]
# Set to yes to apply rules to support IPv6 (no means only IPv6 on loopback
# accepted). You will need to 'disable' and then 'enable' the firewall for
# the changes to take affect.
IPV6=no
[...]

A bejövő forgalom engedélyezése

Alapértelmezésben az ufw inaktív, és az iptables nem tartalmaz szabályokat:

ufw status      # inactive
iptables -n -L  # mindhárom chain üres

Mivel a /etc/default/ufw állományban előírt ufw policy a bejövő forgalom tiltása, mielőtt aktiválnánk a csomagszűrést, mindenképpen engedélyezzük a kívülről csatlakozást legalább az OpenSSH szolgáltatáshoz:

ufw app info OpenSSH   # case-sensitive! - ellenőrizzük a portszámot
ufw allow OpenSSH      # állítsuk be a szabályt

A fenti parancsban az alkalmazással együtt települő alkalmazásleírásra (/etc/ufw/application.d alatti állomány) hivatkoztunk, így nem kellett közvetlenül portszámokat megadni. A létrehozott tűzfal szabályok megtekinthetőek a /etc/ufw/user.rules állományban.

Ezután bekapcsolhatjuk a csomagszűrést:

ufw enable
ufw status verbose  # Status: active
iptables -n -L      # A létrehozott iptables beállítások

A kimenő forgalom szigorítása

Alapértelmezetten a kimenő forgalomra az ACCEPT policy van beállítva, azaz a kimenő forgalmat nem szűrjük. Opcionálisan de javasoltan érdemes lehet kifelé csak a DNS lekérés, a traceroute, a levélküldés SMTP-vel (+SMTPs, MSA), az időszinkron NTP protokollal, PGP kulcsszerverek elérése (HKP), a web és az FTP forgalmakat engedélyezni. Opcionálisan az SSH is engedélyezett lehet.

Tűzfalnapló átirányítása

Érdemes elkülöníteni a terjedelmes tűzfal naplót a kernel naplójától. Ehhez készítsünk egy overlay állományt a syslog-ng konfigurációjához:

-rw-r--r-- /etc/syslog-ng/conf.d/ufw.conf

# Separate UFW logging

destination d_ufw
    { file ("/var/log/ufw.log" owner(root) group(adm)); };

filter f_ufw
    { match ("[UFW " value ("MESSAGE")); };
                                        
log { source (s_src); filter (f_ufw); destination (d_ufw); flags(final); };

A beállítás érvényesítéséhet indítsuk újra a syslog-ng-t:

systemctl restart syslog-ng

Mivel a /etc/logrotate.d már tartalmazza a vonatkozó konfigurációs állományt, az új log rotálásáról külön gondoskodni nem kell.