Úvod:
Právě jsem začal používat firewall UFW, což je firewall založený na příkazech terminálu. Nástroj se zpočátku zdál trochu obtížně pochopitelný, ale s trochou pokusů a chyb jsem nakonec něco udělal. Takže tady je to, co jsem udělal.
Nainstaluji UFW firewall:apt-get install ufw
Předpoklad:
Chci splnit následující podmínky:
Seznam portů, které mají být povoleny z interní LAN (192.168.100.0/24):VŠECHNY
Seznam portů, které mají být povoleny z localhost (127.0.0.0/16) :VŠECHNY
Seznam portů, které mají být povoleny k internetu:VŠECHNY
Seznam portů, které mají povolit přístup z Internetu:
ssh:22
FTP:21, 20, 20000-20099 (používá čistý-ftp)
HTTP:80
HTTPS:443
Gerrit:2222
Výsledek:kromě výše uvedených portů by měly být všechny ostatní porty blokovány z internetu.
Příkazy UFW ke konfiguraci nad bránou firewall:
ufw povolit z 192.168.100.0/24
ufw povolit z 127.0.0.0/16
ufw povolit z libovolného do libovolného portu 22
ufw povolit z libovolného do libovolného portu 21
ufw povolit 20000:20099/tcp
ufw povolit z libovolného na jakýkoli port 80
ufw povolit z libovolného do jakéhokoli portu 443
ufw povolit z libovolného do jakéhokoli portu 2222
Poznámka: Výše neexistují žádná pravidla pro propouštění všech paketů z aplikací do Internetu. Důvodem je, že výchozí chování tohoto firewallu je, že umožňuje všem aplikacím odesílat cokoli do Internetu.
To lze ověřit po aktivaci UFW firewallu vydáním následujícího příkazu:iptables - L -n -v | grep 'Chain OUTPUT'
Výsledek:Řetězový OUTPUT (zásady ACCEPT 0 paketů, 0 bajtů)
Nastavení výchozích zásad
To je zcela samovysvětlující.ufw default zakázat příchozí
ufw default povolit odchozí
Firewall ještě není aktivní!
VAROVÁNÍ: V případě, že konfigurujete tento firewall přes SSH připojení, ujistěte se, že následující příkaz byl zahrnut do výše uvedených. Pokud tomu tak není, jakmile aktivujete firewall, budete uzamčeni ze serveru a nebudete mít žádný přístup SSH. Špatné zprávy 🙁ufw povolit z libovolného na jakýkoli port 22
Chcete-li zkontrolovat přidané pravidla před aktivujeme firewall:ufw show added
Nyní aktivujeme firewall příkazem:ufw enable
Na konfiguraci UFW se podíváme zadáním příkazu:ufw status numbered
Měli byste získat následující výsledek:Stav:aktivní
.
Do akce od
-- ------ ----
[ 1] Kdekoli POVOLEJTE 192.168.100.0/24
[ 2] Kdekoli POVOLEJTE 127.0.0.0/16
[ 3] 22 POVOLEJTE kdekoli
[ 4] 21 POVOLETE VSTUP Kdekoli
[ 5] 20000:20099/tcp POVOLETE VSTUP kdekoli
[ 6] 80 POVOLETE VSTUP kdekoli
[ 7] 443 POVOLETE VSTUP kdekoli
[ 8] 2222 POVOLETE VSTUP kdekoli
[ 9] 22 ALLOW IN kdekoli (v6)
[10] 21 ALLOW IN kdekoli (v6)
[11] 20000:20099/tcp ALLOW IN kdekoli (v6)
[ 12] 80 ALLOW IN Anywhere (v6)
[13] 443 ALLOW IN Anywhere (v6)
[14] 2222 ALLOW IN Anywhere (v6)
Pokud potřebujete restartovat znovu, spusťte následující:ufw disable
ufw reset
Pokud potřebujete smazat některá pravidla, například pravidla o portu 2222:(pravidlo 8 a 14), smažeme pravidla tak, že použijeme jejich číslo pravidla začínající posledním, které má být odstraněno v seznamu. Logika je taková, že pokud začnete s prvním, čísla pravidel se po prvním smazání posunou a poslední smazané nebude pravidlo 14, ale pravidlo 13 atd.
Příklad: ufw delete 14
ufw delete 8
Pokud potřebujete vložit pravidlo nad existující, použijete číslo pravidla, které by mělo být po novém. Například pokud chceme přidat pravidlo zakázat port 20005 z Internetu.
Poznámka. Tady to nedává smysl (není praktické), ale jen jako příklad. Nové pravidlo „deny“ bych vložil před pravidlo 11. Zde je příkaz:ufw insert 11 deny 20005
Podívejme se na výsledek:ufw status numbered
Výsledek:Stav:aktivní
.
Do akce od
-- ------ ----
[ 1 ] Kdekoli POVOLEJTE 192.168.100.0/24
[ 2] Kdekoli POVOLEJTE 127.0.0.0/16
[ 3] 22 POVOLEJTE kdekoli
[ 4] 21 POVOLEJTE kdekoli
[ 5] 20005 POVOLEJTE SI kdekoli
[ 6] 20000:20099/tcp POVOLEJTE SI kdekoli
[ 7] 80 POVOLEJTE kdekoli
[ 8] 443 POVOLEJTE kdekoli
[ 9 ] 2222 ALLOW IN Anywhere
[10] 22 ALLOW IN Anywhere (v6)
[11] 21 ALLOW IN Anywhere (v6)
[12] 20005 DENY IN Anywhere (v6)
[13] 20000:20099/tcp ALLOW IN Anywhere (v6)
[14] 80 ALLOW IN Anywhere ( v6)
[15] 443 ALLOW IN kdekoli (v6)
[16] 2222 ALLOW IN kdekoli (v6)
Jak můžete vidět, UFW byl dostatečně chytrý, aby vložil pravidlo pro IPv4 a IPv6 na správné pozice.
Poznámka k restartování:
Kdykoli je UFW firewall „povolen“ a dojde k restartu, všechna pravidla, která jsou již uložena v:/lib/ufw/user.rules
/lib/ufw/user6.rules
NEBO v:/etc/ufw/user.rules
/etc/ufw/user6.rules
bude znovu aktivován při restartu.
VAROVÁNÍ:Nepokoušejte se měnit tyto výše uvedené soubory, protože nějaký hlídací pes zajišťuje, aby nebyly změněny, a automaticky se vrátí k předupravené verzi.;-(. K provedení jakýchkoli změn ve firewallu použijte příkaz UFW.
Používání UFW na Xen DOM0:
Měl jsem nějaké problémy s používáním UFW na XEN DOM0, protože UFW jako výchozí chování blokuje předávání paketů do DOMU.
Chcete-li to napravit, upravte soubor /etc/default/ufw a změňte následující nastavení pro ACCEPT:DEFAULT_FORWARD_POLICY="ACCEPT"
To by chránilo pouze DOM0 a přesměrovalo veškerý další provoz na DOMU, přičemž by každý DOMU chránil své rukávy.
Poté restartujte UFW následovně:ufw vypnout
ufw povolit
Pro více informací na toto téma doporučuji následující odkaz:
https://www.digitalocean.com/community/tutorials/how-to-setup-a-firewall-with-ufw-on-an-ubuntu- a-debian-cloud-server
Protokolování
Logování UFW se standardně provádí do /var/log/syslog . Chcete-li zakázat toto protokolování, postupujte takto:
– Upravte soubor:/etc/rsyslog.d/20-ufw.conf (viz obsah níže), odstraňte znak „#“ začínající na posledním řádku a spusťte následující příkazy k aktualizaci změn brány firewall:ufw disable
ufw enable
Obsah /etc/rsyslog.d/20-ufw.conf :# Zaznamenat zprávy protokolu UFW vygenerované jádrem do souboru
:msg,contains,"[UFW " /var/log/ufw.log
#
# Odebrat komentář následujícím způsobem zastavíte protokolování čehokoli, co odpovídá poslednímu pravidlu.
# Tím se zastaví protokolování zpráv protokolu UFW generovaných jádrem do souboru
# normálně obsahujícího zprávy kern.* (např. /var/log/kern. log)
#&~