Mine sisu juurde

Küpsiste seaded

Vali iga liigi kohta, milliseid küpsiseid lubad. Oma valikut saad alati muuta iga lehe allosas oleva lingi „Küpsiste seaded“ kaudu. Privaatsuspoliitika

Vajalikud

Alati sees

Vajalikud sisselogimiseks, ostukorvi säilitamiseks ja sinu valikute meelespidamiseks. Need on alati sees.

Millised küpsised?
  • weboke_sessie, weboke_klant, weboke_remember: sinu seanss ja sisselogituks jäämine
  • weboke_basket: sinu ostukorv
  • wkBtwIncl: hindade näitamine koos käibemaksuga või ilma
  • wok_cookies: sinu küpsisevalik, 12 kuud

Mõõdab, milline reklaam viib külastuse või tellimuseni, et me ei maksaks reklaamide eest, mis midagi ei anna.

Millised küpsised?
  • Google Ads Google Tag Manageri kaudu (_gcl_au, _gcl_aw), kuni 90 päeva
  • OpenAI Ads, reklaamid ChatGPT-s
  • wok_aff: millise partneri kaudu meie juurde jõudsid (partnerprogramm), 60 päeva

4,6

Riik ja keel

Igal riigil on oma sait, selle riigi hindade ja käibemaksuga.

Vaata

Tulemüür ufw ja nftablesiga

Moodul 5: Võrgu kaitsmine · Lugemisaeg: 12 minutit

Õpieesmärk: Pärast seda õppetundi oskad seadistada tulemüüri, mis lubab ainult vajalikku, nii IPv4 kui ka IPv6 jaoks, ilma ennast välja lukustamata. Samuti tead, mille eest tulemüür sinu serveris ei kaitse.

Põhimõisted: paketifilter, netfilter, nftables, iptables-nft, ufw, vaikepoliitika, allow, deny, reject, limit, IPv6 ufw-s, teenusepakkuja tulemüür, firewalld, Docker ja tulemüür

Mida tulemüür teeb

Serveri tulemüür on paketifilter: iga sissetuleva võrgupaketi puhul vaatab see reeglite nimekirja ja otsustab, kas pakett pääseb läbi. Linuxis asub see filter kernelis ja selle nimi on netfilter. Seadistad seda mõne programmiga:

  • nftables (käsk nft) on praegune tööriist. Debian kasutab seda vaikimisi alates Debian 10-st.
  • iptables on vana tööriist. Tänapäevastes süsteemides on iptables enamasti tõlge nftablesi peale (iptables-nft), et vanad juhendid töötaksid edasi.
  • ufw (Uncomplicated Firewall) on lihtne kiht selle peal. Ubuntus on see vaikimisi olemas ja Debianisse saad selle paigaldada ühe käsuga. Ühe serveri jaoks on ufw kõige lihtsam valik. See õppetund kasutab ufw-d ja näitab seejärel, kuidas samad reeglid nftablesis välja näevad.

Tulemüür on sinu teine kaitsekiht. Esimene on see, et teenused kuulavad ainult õigel aadressil (õppetund 5.1). Koos tagavad need, et viga ühes kihis ei tähenda kohe avatud ust.

Kõigepealt: kuidas pääsed tagasi, kui midagi läheb valesti?

Klassikaline viga: lülitad tulemüüri sisse, unustad SSH lubada ja ühendus katkeb. SSH kaudu sa enam serverisse ei pääse. Enne alustamist:

  1. Tea, kuidas avada oma teenusepakkuja konsooli (õppetund 1.2). See töötab võrgust sõltumatult, seega ka siis, kui tulemüür kõik kinni paneb. Logi seal sisse ja sisesta ufw disable.
  2. Tee kahtluse korral hetktõmmis (snapshot).
  3. Hoia praegune SSH-seanss lahti ja testi teise seansiga.

ufw viie sammuga

Samm 1: paigalda ja vali vaikeseaded.

anna@web1:~$ sudo apt install ufw
anna@web1:~$ sudo ufw default deny incoming
Default incoming policy changed to 'deny'
anna@web1:~$ sudo ufw default allow outgoing
Default outgoing policy changed to 'allow'

Vaikepoliitika kehtib kõigele, mille kohta reeglit pole. "Deny incoming" tähendab: kõik sissetulev on keelatud, välja arvatud see, mida järgmisena lubad. See on ainus turvaline alus. Väljaminevat liiklust (näiteks kui server laadib uuendusi) lubad.

Samm 2: luba SSH enne, kui tulemüüri sisse lülitad.

anna@web1:~$ sudo ufw allow OpenSSH
Rules updated
Rules updated (v6)

OpenSSH on rakenduseprofiil, mida ufw tunneb (see tähendab porti 22/tcp). Kui SSH töötab muul pordil, kasuta numbrit: sudo ufw allow 2222/tcp. Pane tähele rida "Rules updated (v6)": ufw loob reegli ka IPv6 jaoks. Ta teeb seda, sest failis /etc/default/ufw on rida IPV6=yes, mis on vaikeseade. Kontrolli seda igaks juhuks; kui seal on no, kehtib tulemüür ainult IPv4 jaoks.

Samm 3: mida sul veel vaja on.

anna@web1:~$ sudo ufw allow 80/tcp
anna@web1:~$ sudo ufw allow 443/tcp
anna@web1:~$ sudo ufw allow 443/udp       # ainult siis, kui kasutad HTTP/3

Reegli saad piirata ühe lähteaadressiga, näiteks halduspordi puhul, mis peab olema avatud ainult sinu kontorist:

anna@web1:~$ sudo ufw allow from 198.51.100.20 to any port 9090 proto tcp

Samm 4: lülita sisse.

anna@web1:~$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

Samm 5: kontrolli. Ava teine aken ja logi uuesti sisse. Kui see õnnestub, on SSH korras. Seejärel vaata reegleid:

anna@web1:~$ sudo ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), deny (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
22/tcp (OpenSSH)           ALLOW IN    Anywhere
80/tcp                     ALLOW IN    Anywhere
443/tcp                    ALLOW IN    Anywhere
22/tcp (OpenSSH (v6))      ALLOW IN    Anywhere (v6)
80/tcp (v6)                ALLOW IN    Anywhere (v6)
443/tcp (v6)               ALLOW IN    Anywhere (v6)

Reegli eemaldamiseks kasuta numbreid: sudo ufw status numbered ja seejärel sudo ufw delete 3.

deny, reject ja limit

  • deny laseb paketil vaikselt kaduda: väljastpoolt paistab port "filtreeritud" (õppetund 5.1).
  • reject saadab tagasi keeldumise: väljastpoolt paistab port "suletud". Sinu enda teenuste puhul viisakam, kuid see reedab, et seal on server.
  • limit lubab ühenduse, aga blokeerib aadressi, mis proovib 30 sekundi jooksul kuus või enam korda ühendust luua. Kasulik SSH jaoks: sudo ufw limit OpenSSH asemel allow. See on jäme meetod (loeb ühendusi, mitte ebaõnnestunud sisselogimisi); fail2ban (õppetund 5.3) on täpsem.

Samad reeglid nftablesis

ufw kirjutab kapoti all netfilteri reegleid. Kui tahad töötada ilma ufw-ta, kirjutad ise nftablesi faili. Debianis asub see failis /etc/nftables.conf ja laed selle teenusega nftables:

#!/usr/sbin/nft -f
flush ruleset

table inet filter {
    chain input {
        type filter hook input priority 0; policy drop;
        ct state established,related accept
        ct state invalid drop
        iif "lo" accept
        meta l4proto { icmp, ipv6-icmp } accept
        tcp dport { 22, 80, 443 } accept
    }
    chain forward {
        type filter hook forward priority 0; policy drop;
    }
    chain output {
        type filter hook output priority 0; policy accept;
    }
}

Loe seda nii. Tabeli nimi on filter ja see kuulub perekonda inet: üks tabel korraga nii IPv4 kui ka IPv6 jaoks, nii et IPv6 ei saa ununeda. Ahelas input on poliitika drop. Edasi: vastused juba olemasolevatele ühendustele tohivad tagasi tulla (established,related), kõik loopbackil on lubatud, ICMP on lubatud (vajalik muu hulgas IPv6 ja paketisuuruse veateadete jaoks) ning pordid 22, 80 ja 443 on lubatud.

anna@web1:~$ sudo nft -c -f /etc/nftables.conf    # kontrollib ilma laadimata
anna@web1:~$ sudo systemctl enable --now nftables
anna@web1:~$ sudo nft list ruleset

Kasuta kas ufw-d või oma nftablesi faili, mitte mõlemat: need kirjutavad samasse netfilterisse ja võivad teineteise reeglitega vastuollu minna.

Mille eest tulemüür ei kaitse

  • Teenused, mida ise lubad. Port 443 on sinu veebisaidi jaoks avatud; seega on ka veebisaidi turvaauk lihtsalt kättesaadav. Tulemüür kaitseb ainult suletud porte.
  • Docker. Kui avaldad Dockeriga pordi (-p 5432:5432), lisab Docker oma netfilteri reeglid, mis suunavad liikluse ümber enne, kui ufw reeglid rakenduvad. Dockeri dokumentatsioon ütleb sõna-sõnalt, et Docker ja ufw ei sobi hästi kokku. Konteineri port võib seega olla väljast avatud, kuigi ufw status seda ei näita. Lahenduse (avaldamine aadressil 127.0.0.1) õpid õppetunnis 9.3.
  • Väljaminev liiklus. "Allow outgoing" puhul võib häkitud programm ühenduda kuhu iganes. Enamiku väikeste serverite jaoks on see vastuvõetav valik; ranges keskkonnas piiratakse ka väljaminevat liiklust.

Sinu teenusepakkuja tulemüür

Paljudel teenusepakkujatel on ka võrgus, sinu serveri ees, tulemüür, mida seadistad kliendipaneelis (mõnikord nimega "cloud firewall" või "security group"). See on suurepärane lisakiht ja töötab ka siis, kui serveris endas midagi valesti seadistad. Kuid see ei asenda serveri tulemüüri: kui kolid serveri või vahetad teenusepakkujat, ei tule see kaasa, ja mitte iga teenusepakkuja seda ei paku. Seepärast hoia alati tulemüür ka serveris endas.

AlmaLinuxis ja Rocky Linuxis

Seal on vaikimisi sees firewalld, mis kasutab tsoone. Olulisemad käsud:

[root@web1 ~]# firewall-cmd --list-all
[root@web1 ~]# firewall-cmd --permanent --add-service=http --add-service=https
[root@web1 ~]# firewall-cmd --reload

Ilma --permanent-ta kehtib muudatus ainult järgmise taaskäivituseni; --permanent-ga alles pärast käsku --reload. Vaiketsoonis on SSH juba avatud.

Praktikas

Kui lukustad end WebOké VPS-ist siiski välja, ava VPS-i vaates konsool, logi sisse ja lülita tulemüür välja (ufw disable) või võta viimane reegel tagasi. Teistel teenusepakkujatel kannab see hädasissepääs samuti nime konsool, VNC või rescue. Tea, kus see nupp asub, enne kui seda vajad.

Kokkuvõte

  • Tulemüür on sinu teine kiht pärast põhimõtet "kuula ainult seal, kus vaja"; nftables on kerneli tööriist, ufw lihtne kiht selle peal.
  • Alusta käsuga default deny incoming, luba SSH enne käsku ufw enable, testi teise seansiga ja tunne oma teenusepakkuja konsooli.
  • Kontrolli, et ufw kataks ka IPv6 (IPV6=yes); nftablesis teeb perekond inet seda korraga.
  • deny annab väljastpoolt tulemuse "filtreeritud", reject tulemuse "suletud"; limit pidurdab korduvaid ühendusi.
  • Dockeri pordid lähevad ufw-st mööda (õppetund 9.3); teenusepakkuja tulemüür on lisakiht, mitte asendus.

Test (quiz)

1. Mis järjekorras lülitad ufw esimest korda sisse serveris, kuhu oled SSH kaudu sisse loginud?



2. Pärast käsku ufw enable ei tööta sinu veebisait IPv4 kaudu enam, aga SSH töötab. Mis on kõige tõenäolisem põhjus?



3. Avaldad Dockeriga andmebaasikonteineri pordi 5432. ufw status ei näita pordi 5432 kohta ühtegi reeglit. Kas andmebaas on väljast kättesaadav?



4. Miks kasutab nftablesi näide perekonna inet tabelit?



5. Sinu teenusepakkujal on kliendipaneelis võrgutulemüür. Kas sul on siis veel serveris tulemüüri vaja?



Ülesanne

Ülesanne O5.2: Seadista oma tulemüür. Lülita oma serveris sisse tulemüür ufw-ga (või nftablesiga, või AlmaLinuxis/Rockys firewalld-ga): vaikimisi kõik sissetulev kinni, SSH lubatud ja lisaks see, mida sul tõesti vaja on. Testi teise seansiga, kontrolli, kas IPv6 on kaetud, ja vaata väljastpoolt käsuga nc, kas mõni lubamata port on suletud või filtreeritud. Täida kontrollnimekiri ja kleebi oma ufw status verbose (või nft list ruleset); märgi iga avatud pordi juurde, milleks see on.

Ülesanne O5.2: Seadista oma tulemüür

Selle ülesande teed ise, keegi ei kontrolli seda. Märgi ära, mida tegid, ja märgi ülesanne tehtuks.



Su linnukesed ja märkmed jäävad ainult sellesse brauserisse, me ei saada neid kuhugi. Kui oled sisse loginud, salvestame Minu kursustes ainult info, et tegid ülesande ära.

Loe edasi

Hetk…

Seadista oma domeenid

Määra iga domeeni jaoks nimeserverid, seos sinu majutusega ja kes saab omanikuks.

Laadin sinu domeene…