Skoči na vsebino

Namestitev agenta za Linux

CyberElements uporablja agenta za Linux za omejevanje morebitnega omrežnega dostopa s strežnikov SSH, do katerih dostopajo uporabniki (določenih v pravilnikih dostopa / pogodbah).

Predpogoji

Za pravilno delovanje agenta je potrebnih nekaj predpogojev:

  • Združljivi operacijski sistemi: Red Hat 9 in Debian 12
  • Prisotnost požarnega zidu iptables
  • Prijava z računom, ki ni root

Informacije

Agent za Linux ne deluje na uporabnika root, ker ima ta uporabnik vedno dovolj pravic, da odstrani vse omejitve, ki bi zanj veljale.

Poleg tega nekatere storitve uporabljajo pravice root, zato bi dodajanje omrežnih omejitev lahko povzročilo nestabilnost teh storitev.

Delovanje

Agent za Linux je sestavljen iz več delov:

  • storitev systemd z imenom cleanroom-filter
  • modul PAM z imenom pam_clr_filter
  • pravilnik SELinux za Red Hat, ki strežniku SSH omogoča komunikacijo s storitvijo cleanroom-filter

Splošno delovanje poteka v tem zaporedju:

Okolje SaaS

Na spodnjem diagramu „Mediation Controller“ predstavlja storitev v oblaku CyberElements, ki jo upravlja CyberElements. Tok filtriranja SSH je v načinu SaaS arhitekturno enak.

sequenceDiagram
    autonumber
    participant MED as Mediation Controller
    participant GW_SSH as Edge Gateway<br/>Snemanje SSH
    participant SSH as Cilj SSH<br/>Strežnik SSH
    participant PAM as Cilj SSH<br/>Modul PAM pam_clr_filter
    participant svc as Cilj SSH<br/>Storitev cleanroom-filter

    MED->>GW_SSH: Zahteva za odprtje<br/>aplikacije SSH
    GW_SSH->>+MED: Pridobitev informacij o filtriranju<br/>za sejo
    MED->>-GW_SSH: Pošiljanje informacij<br/>o filtriranju omrežja
    GW_SSH->>+SSH: Povezava SSH
    SSH-->-PAM: Ustvarjanje seje SSH
    PAM->>+svc: Pošiljanje uporabniškega imena
    Note right of svc: Ustvarjanje verige <br/>iptables za uporabnika z imenom clr-LOGIN
    svc->>-PAM: Pošiljanje enoličnega žetona
    Note over PAM: Dodajanje spremenljivke okolja<br/> CLR-ID z enoličnim žetonom<br/> v sejo uporabnika
    GW_SSH->>svc: Pošiljanje seznama omrežij, ki jih je treba dovoliti
    Note over svc: Ustvarjanje pravila iptables OUTPUT<br/> za preusmeritev prometa uporabnika v<br/> prej ustvarjeno verigo iptables
    Note over svc: Dodajanje avtorizacij v verigo<br/> iptables, ustvarjeno za uporabnika
    break Konec seje SSH
        SSH->>+GW_SSH: Obvestilo o koncu seje
        SSH-->svc: Zaznavanje konca seje SSH
        Note over svc: Brisanje pravila iptables<br/> OUTPUT, ustvarjenega za uporabnika
        Note over svc: Brisanje verige iptables,<br/> ustvarjene za uporabnika
        GW_SSH->>-MED: Obvestilo o koncu<br/> seje SSH uporabnika
    end
Hold "Ctrl" to enable pan & zoom
  1. Strežnik Mediation Controller komponenti Edge Gateway pošlje informacije za odprtje nove seje SSH.
  2. Storitev za snemanje SSH od strežnika Mediation Controller zahteva podatke o omrežnem filtriranju, ki jih je treba uporabiti za sejo SSH.
  3. Storitev Mediation Controller odgovori s seznamom dovoljenih omrežij.
  4. Storitev za snemanje SSH nato vzpostavi povezavo s ciljnim strežnikom SSH.
  5. Povezava s strežnikom SSH sproži zaporedje ustvarjanja seje in s tem prehod skozi module PAM, dodeljene sshd.
  6. Modul PAM pam_clr_filter agenta za Linux pošlje uporabniško ime storitvi cleanroom-filter, ki nato ustvari novo verigo iptables z imenom clr-LOGIN, pri čemer se LOGIN nadomesti s prejetim uporabniškim imenom.
  7. Ko je veriga iptables ustvarjena, storitev cleanroom-filter ustvari naključni token in ga pošlje modulu PAM pam_clr_filter. Ta doda token v okoljsko spremenljivko CLR-ID uporabnika.
  8. Storitev za snemanje SSH prek izvršljive datoteke /usr/local/ipdiva/bin/cleanroom-netfiltersession.py storitvi cleanroom-filter pošlje seznam omrežij, ki jih je treba dovoliti. Storitev nato ustvari pravilo iptables OUTPUT, ki ves promet uporabnika, prepoznanega po njegovem UID, preusmeri v verigo iptables, ustvarjeno v koraku 6. Vsi tokovi, ki jih je treba dovoliti za uporabnika, se dodajo v verigo iptables.
  9. Ko se sproži konec seje SSH, se informacija pošlje storitvi za snemanje SSH komponente Edge Gateway.
  10. Storitev cleanroom-filter zazna konec seje uporabnika in počisti dodana pravila iptables: izbriše direktivo OUTPUT, ki preusmerja promet uporabnika v verigo iptables, in izbriše samo verigo.
  11. Ko komponenta Edge Gateway prejme konec seje SSH, to informacijo posreduje storitvi Mediation Controller.

Namestitev

Zahtevana dovoljenja root

Za namestitev agenta so potrebne pravice root.

Paket .deb ali .rpm lahko prenesete iz skrbniške konzole:

  1. Odprite delovni prostor „Configurations“ z gumbom v zgornjem levem kotu:
  2. Odprite ploščico „Toolbox“
  3. Na prvem zavihku, „Integration Tools“, izberite namestitveni program za želeni operacijski sistem

Ko pridobite paket, ga prenesite na strežnik Linux v imenik /tmp/. Nato sledite navodilom za namestitev za vaš operacijski sistem:

Z ustreznimi dovoljenji root zaženite naslednje ukaze:

1
2
dpkg -i /tmp/cleanroom-netfilter_*_amd64.deb
sed -i "s/@include common-session/@include common-session\n\n\# Use the Cleanroom agent to limit network bounces\nsession    optional\tpam_clr_filter.so/g" /etc/pam.d/sshd

Drugi ukaz samodejno doda dve vrstici v datoteko /etc/pam.d/sshd, vendar je to operacijo mogoče izvesti tudi ročno:

27
28
29
30
31
32
33
34
35
36
37
# Standard Un*x session setup and teardown.
@include common-session

# Use the Cleanroom agent to limit network bounces
session    optional     pam_clr_filter.so

# Print the message of the day upon successful login.
# This includes a dynamically generated part from /run/motd.dynamic
# and a static (admin-editable) part from /etc/motd.
session    optional     pam_motd.so  motd=/run/motd.dynamic
session    optional     pam_motd.so noupdate

Z dovoljenji root zaženite naslednje ukaze:

1
2
dnf install /tmp/CleanroomFilter-*-Linux.rpm
sed -i "s/revoke$/revoke\n# Use the Cleanroom agent to limit network bounces\nsession    optional\tpam_clr_filter.so/g" /etc/pam.d/sshd

Drugi ukaz samodejno doda dve vrstici v datoteko /etc/pam.d/sshd, vendar je to operacijo mogoče izvesti tudi ročno:

11
12
13
14
15
16
17
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session    required     pam_selinux.so open env_params
session    required     pam_namespace.so
session    optional     pam_keyinit.so force revoke
# Use the Cleanroom agent to limit network bounces
session    optional     pam_clr_filter.so
session    optional     pam_motd.so