Preskočiť na obsah

Inštalácia agenta pre Linux

Agent pre Linux používa CyberElements Bastion na obmedzenie možného sieťového prístupu zo serverov SSH, ku ktorým používatelia pristupujú (definovaných v zásadách prístupu / zmluvách o prístupe).

Predpoklady

Na správne fungovanie agenta je potrebných niekoľko predpokladov:

  • Kompatibilné operačné systémy: Red Hat 9 a Debian 12
  • Prítomnosť brány firewall iptables
  • Prihlásenie iným účtom ako root

Informácie

Agent pre Linux nepôsobí na používateľa root, pretože tento používateľ má vždy dostatočné práva na odstránenie akýchkoľvek obmedzení, ktoré by sa naň uplatnili.

Okrem toho, keďže niektoré služby používajú práva root, pridanie sieťových obmedzení by mohlo spôsobiť nestabilitu týchto služieb.

Princíp fungovania

Agent pre Linux sa skladá z niekoľkých častí:

  • Služba systemd s názvom cleanroom-filter
  • Modul PAM s názvom pam_clr_filter
  • Zásada SELinux pre Red Hat, ktorá umožňuje serveru SSH komunikovať so službou cleanroom-filter

Všeobecný postup fungovania je nasledujúci:

sequenceDiagram
    autonumber
    participant MED as Mediation Controller
    participant GW_SSH as Edge Gateway<br/>Nahrávanie SSH
    participant SSH as Cieľ SSH<br/>Server SSH
    participant PAM as Cieľ SSH<br/>Modul PAM pam_clr_filter
    participant svc as Cieľ SSH<br/>Služba cleanroom-filter

    MED->>GW_SSH: Požiadavka na otvorenie<br/>aplikácie SSH
    GW_SSH->>+MED: Načítanie informácií o filtrovaní<br/>pre reláciu
    MED->>-GW_SSH: Odoslanie informácií<br/>o filtrovaní siete
    GW_SSH->>+SSH: Pripojenie SSH
    SSH-->-PAM: Vytvorenie relácie SSH
    PAM->>+svc: Odoslanie používateľského mena
    Note right of svc: Vytvorenie reťazca <br/>iptables pre používateľa s názvom clr-LOGIN
    svc->>-PAM: Odoslanie jedinečného tokenu
    Note over PAM: Pridanie premennej prostredia<br/> CLR-ID s jedinečným tokenom<br/> do relácie používateľa
    GW_SSH->>svc: Odoslanie zoznamu sietí, ktoré sa majú povoliť
    Note over svc: Vytvorenie pravidla iptables OUTPUT<br/> na presmerovanie prevádzky používateľa do<br/> predtým vytvoreného reťazca iptables
    Note over svc: Pridanie autorizácií do reťazca<br/> iptables vytvoreného pre používateľa
    break Koniec relácie SSH
        SSH->>+GW_SSH: Oznámenie o konci relácie
        SSH-->svc: Zistenie konca relácie SSH
        Note over svc: Odstránenie pravidla iptables<br/> OUTPUT vytvoreného pre používateľa
        Note over svc: Odstránenie reťazca iptables<br/> vytvoreného pre používateľa
        GW_SSH->>-MED: Oznámenie o konci<br/> relácie SSH používateľa
    end
Hold "Ctrl" to enable pan & zoom
  1. Server Mediation Controller odošle komponentu Edge Gateway informácie na otvorenie novej relácie SSH.
  2. Služba nahrávania SSH požiada server Mediation Controller o informácie o sieťovom filtrovaní, ktoré sa majú uplatniť na reláciu SSH.
  3. Služba Mediation Controller odpovie zoznamom autorizovaných sietí.
  4. Služba nahrávania SSH potom nadviaže pripojenie k cieľovému serveru SSH.
  5. Pripojenie k serveru SSH spustí postupnosť vytvárania relácie, a teda prechod cez moduly PAM priradené k sshd.
  6. Modul PAM pam_clr_filter agenta pre Linux odošle meno používateľa službe cleanroom-filter, ktorá potom vytvorí nový reťazec iptables s názvom clr-LOGIN, kde sa LOGIN nahradí prijatým menom používateľa.
  7. Po vytvorení reťazca iptables služba cleanroom-filter vytvorí náhodný token a odošle ho modulu PAM pam_clr_filter. Ten pridá tento token do premennej prostredia CLR-ID používateľa.
  8. Služba nahrávania SSH odošle prostredníctvom spustiteľného súboru /usr/local/ipdiva/bin/cleanroom-netfiltersession.py službe cleanroom-filter zoznam sietí, ktoré sa majú autorizovať. Služba potom vytvorí pravidlo iptables OUTPUT, ktoré presmeruje všetku komunikáciu používateľa, identifikovaného jeho UID, do reťazca iptables vytvoreného v kroku 6. Všetky toky, ktoré sa majú pre používateľa autorizovať, sa pridajú do reťazca iptables.
  9. Keď sa spustí ukončenie relácie SSH, informácia sa odošle službe nahrávania SSH komponentu Edge Gateway.
  10. Služba cleanroom-filter zistí koniec relácie používateľa a vyčistí pridané pravidlá iptables: odstráni direktívu OUTPUT, ktorá presmerúva komunikáciu používateľa do reťazca iptables, a odstráni aj samotný reťazec.
  11. Keď komponent Edge Gateway prijme informáciu o ukončení relácie SSH, prepošle ju službe Mediation Controller.

Inštalácia

Požadované povolenia root

Na inštaláciu agenta sú potrebné oprávnenia root.

Balík .deb alebo .rpm si môžete stiahnuť z konzoly na správu:

  1. Prejdite do pracovného priestoru „Configurations“ pomocou tlačidla v ľavom hornom rohu:
  2. Otvorte dlaždicu „Toolbox“
  3. Na prvej karte „Integration Tools“ vyberte inštalačný program vhodný pre požadovaný operačný systém

Po získaní balíka ho odošlite na server Linux do adresára /tmp/. Potom postupujte podľa pokynov na inštaláciu pre váš operačný systém:

Spustite nasledujúce príkazy s príslušnými povoleniami root:

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

Druhý príkaz automatizuje pridanie dvoch riadkov do súboru /etc/pam.d/sshd, túto operáciu však možno vykonať aj manuálne:

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

Spustite nasledujúce príkazy s povoleniami root:

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

Druhý príkaz automatizuje pridanie dvoch riadkov do súboru /etc/pam.d/sshd, túto operáciu však možno vykonať aj manuálne:

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