Keri sisuni

Linuxi agendi installimine

CyberElements Bastion kasutab Linuxi agenti, et piirata võimalikku võrgujuurdepääsu SSH-serveritest, millele kasutajad juurde pääsevad (määratletud juurdepääsupoliitikates / -lepingutes).

Eeltingimused

Agendi nõuetekohaseks toimimiseks on vajalikud mõned eeltingimused:

  • Ühilduv OS: Red Hat 9 ja Debian 12
  • Tulemüüri iptables olemasolu
  • Sisselogimine muu kontoga kui root

Teave

Linuxi agent ei mõjuta kasutajat root, kuna sellel kasutajal on alati piisavad õigused, et eemaldada kõik talle rakendatavad piirangud.

Lisaks, kuna mõni teenus kasutab root-õigusi, võib võrgupiirangute lisamine muuta need teenused ebastabiilseks.

Toimimine

Linuxi agent koosneb mitmest osast:

  • systemd-teenus nimega cleanroom-filter
  • PAM-moodul nimega pam_clr_filter
  • Red Hati SELinuxi poliitika, mis lubab SSH-serveril suhelda teenusega cleanroom-filter

Üldine toimimine järgib seda järjestust:

sequenceDiagram
    autonumber
    participant MED as Mediation Controller
    participant GW_SSH as Edge Gateway<br/>SSH-salvesti
    participant SSH as SSH-sihtmärk<br/>SSH-server
    participant PAM as SSH-sihtmärk<br/>PAM-moodul pam_clr_filter
    participant svc as SSH-sihtmärk<br/>teenus cleanroom-filter

    MED->>GW_SSH: Taotlus avada<br/>SSH-rakendus
    GW_SSH->>+MED: Filtreerimisteabe hankimine<br/>seansi jaoks
    MED->>-GW_SSH: Võrgufiltreerimise<br/>teabe saatmine
    GW_SSH->>+SSH: SSH-ühendus
    SSH-->-PAM: SSH-seansi loomine
    PAM->>+svc: Kasutajanime saatmine
    Note right of svc: iptables-ahela clr-LOGIN <br/>loomine kasutaja jaoks
    svc->>-PAM: Unikaalse tokeni saatmine
    Note over PAM: Unikaalset tokenit sisaldava<br/> keskkonnamuutuja CLR-ID lisamine<br/> kasutaja seansile
    GW_SSH->>svc: Lubatavate võrkude loendi saatmine
    Note over svc: iptables OUTPUT-reegli loomine<br/> kasutaja liikluse suunamiseks varem loodud<br/> iptables-ahelasse
    Note over svc: Lubade lisamine kasutajale<br/> loodud iptables-ahelasse
    break SSH-seansi lõpp
        SSH->>+GW_SSH: Teatis seansi lõpust
        SSH-->svc: SSH-seansi lõpu tuvastamine
        Note over svc: Kasutajale loodud<br/> iptables OUTPUT-reegli kustutamine
        Note over svc: Kasutajale loodud<br/> iptables-ahela kustutamine
        GW_SSH->>-MED: Teatis kasutaja<br/> SSH-seansi lõpust
    end
Hold "Ctrl" to enable pan & zoom
  1. Mediation Controller server saadab Edge Gateway komponendile teabe uue SSH-seansi avamiseks.
  2. SSH-salvestusteenus küsib Mediation Controller serverilt võrgufiltreerimise teavet, mida SSH-seansile rakendada.
  3. Mediation Controller vastab lubatud võrkude loendiga.
  4. Seejärel loob SSH-salvestusteenus ühenduse siht-SSH-serveriga.
  5. Ühenduse loomine SSH-serveriga käivitab seansi loomise jada ja seega sshd jaoks määratud PAM-moodulite läbimise.
  6. Linuxi agendi PAM-moodul pam_clr_filter saadab kasutajanime teenusele cleanroom-filter, mis loob seejärel uue iptablesi ahela nimega clr-LOGIN, kus LOGIN asendatakse saadud kasutajanimega.
  7. Pärast iptablesi ahela loomist loob teenus cleanroom-filter juhusliku tokeni ja saadab selle PAM-moodulile pam_clr_filter. Viimane lisab selle tokeni kasutaja keskkonnamuutujasse CLR-ID.
  8. SSH-salvestusteenus saadab käivitatava faili /usr/local/ipdiva/bin/cleanroom-netfiltersession.py kaudu lubatavate võrkude loendi teenusele cleanroom-filter. Seejärel loob teenus iptablesi reegli OUTPUT, mis suunab kogu UID järgi tuvastatud kasutaja liikluse etapis 6 loodud iptablesi ahelasse. Kõik kasutajale lubatavad andmevood lisatakse iptablesi ahelasse.
  9. Kui SSH-seansi lõpp käivitatakse, saadetakse teave Edge Gateway komponendi SSH-salvestusteenusele.
  10. Teenus cleanroom-filter tuvastab kasutaja seansi lõpu ja puhastab lisatud iptablesi reeglid: see kustutab direktiivi OUTPUT, mis suunab kasutaja liikluse iptablesi ahelasse, ja kustutab ahela enda.
  11. Kui Edge Gateway on saanud teate SSH-seansi lõpu kohta, edastab see selle teabe Mediation Controller teenusele.

Installimine

Nõutavad root-load

Agendi installimiseks on vaja root-privileege.

.deb- või .rpm-paketi saab alla laadida halduskonsoolist:

  1. Avage tööruum „Configurations“ vasakus ülanurgas asuva nupu abil:
  2. Avage paan „Toolbox“
  3. Valige esimesel vahekaardil „Integration Tools“ soovitud operatsioonisüsteemile sobiv installiprogramm

Kui olete paketi hankinud, saatke see Linuxi serveri kataloogi /tmp/. Seejärel järgige oma operatsioonisüsteemi installijuhiseid:

Käivitage järgmised käsud sobivate root-lubadega:

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

Teine käsk lisab faili /etc/pam.d/sshd automaatselt kaks rida, kuid seda toimingut saab teha ka käsitsi:

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

Käivitage järgmised käsud root-lubadega:

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

Teine käsk lisab faili /etc/pam.d/sshd automaatselt kaks rida, kuid seda toimingut saab teha ka käsitsi:

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