Pāriet uz saturu

Linux aģenta instalēšana

CyberElements Bastion izmanto Linux aģentu, lai ierobežotu iespējamo tīkla piekļuvi no SSH serveriem, kuriem piekļūst lietotāji (definēti piekļuves politikās/līgumos).

Priekšnosacījumi

Lai aģents darbotos pareizi, ir nepieciešami daži priekšnosacījumi:

  • Saderīgās OS: Red Hat 9 un Debian 12
  • Ir pieejams ugunsmūris iptables
  • Pieteikšanās ar kontu, kas nav root

Informācija

Linux aģents neietekmē lietotāju root, jo šim lietotājam vienmēr ir pietiekamas tiesības, lai noņemtu jebkurus tam piemērotos ierobežojumus.

Turklāt, tā kā daži pakalpojumi izmanto root tiesības, tīkla ierobežojumu pievienošana var padarīt šos pakalpojumus nestabilus.

Darbības princips

Linux aģents sastāv no vairākām daļām:

  • systemd pakalpojums ar nosaukumu cleanroom-filter
  • PAM modulis ar nosaukumu pam_clr_filter
  • SELinux politika sistēmai Red Hat, kas ļauj SSH serverim sazināties ar pakalpojumu cleanroom-filter

Vispārīgā darbība notiek šādā secībā:

sequenceDiagram
    autonumber
    participant MED as Mediation Controller
    participant GW_SSH as Edge Gateway<br/>SSH ierakstītājs
    participant SSH as SSH mērķis<br/>SSH serveris
    participant PAM as SSH mērķis<br/>PAM modulis pam_clr_filter
    participant svc as SSH mērķis<br/>pakalpojums cleanroom-filter

    MED->>GW_SSH: Pieprasījums atvērt<br/>SSH lietojumprogrammu
    GW_SSH->>+MED: Filtrēšanas informācijas iegūšana<br/>sesijai
    MED->>-GW_SSH: Tīkla filtrēšanas<br/>informācijas sūtīšana
    GW_SSH->>+SSH: SSH savienojums
    SSH-->-PAM: SSH sesijas izveide
    PAM->>+svc: Lietotājvārda sūtīšana
    Note right of svc: iptables ķēdes clr-LOGIN <br/>izveide lietotājam
    svc->>-PAM: Unikālā marķiera sūtīšana
    Note over PAM: Vides mainīgā CLR-ID<br/> ar unikālo marķieri pievienošana<br/> lietotāja sesijai
    GW_SSH->>svc: Atļaujamo tīklu saraksta sūtīšana
    Note over svc: iptables OUTPUT kārtulas izveide<br/> lietotāja datplūsmas novirzīšanai uz iepriekš izveidoto<br/> iptables ķēdi
    Note over svc: Atļauju pievienošana lietotājam<br/> izveidotajai iptables ķēdei
    break SSH sesijas beigas
        SSH->>+GW_SSH: Paziņojums par sesijas beigām
        SSH-->svc: SSH sesijas beigu noteikšana
        Note over svc: Lietotājam izveidotās<br/> iptables OUTPUT kārtulas dzēšana
        Note over svc: Lietotājam izveidotās<br/> iptables ķēdes dzēšana
        GW_SSH->>-MED: Paziņojums par lietotāja<br/> SSH sesijas beigām
    end
Hold "Ctrl" to enable pan & zoom
  1. Serveris Mediation Controller nosūta komponentam Edge Gateway informāciju jaunas SSH sesijas atvēršanai.
  2. SSH ierakstīšanas pakalpojums pieprasa serverim Mediation Controller tīkla filtrēšanas informāciju, kas jāpiemēro SSH sesijai.
  3. Mediation Controller atbild ar atļauto tīklu sarakstu.
  4. Pēc tam SSH ierakstīšanas pakalpojums izveido savienojumu ar mērķa SSH serveri.
  5. Savienojums ar SSH serveri aktivizē sesijas izveides secību un līdz ar to pāreju caur PAM moduļiem, kas piešķirti sshd.
  6. Linux aģenta PAM modulis pam_clr_filter nosūta lietotājvārdu pakalpojumam cleanroom-filter, kas pēc tam izveido jaunu iptables ķēdi ar nosaukumu clr-LOGIN, kur LOGIN tiek aizstāts ar saņemto lietotājvārdu.
  7. Pēc iptables ķēdes izveides pakalpojums cleanroom-filter ģenerē nejaušu marķieri un nosūta to PAM modulim pam_clr_filter. Tas pievieno šo marķieri lietotāja vides mainīgajam CLR-ID.
  8. SSH ierakstīšanas pakalpojums, izmantojot izpildāmo failu /usr/local/ipdiva/bin/cleanroom-netfiltersession.py, nosūta pakalpojumam cleanroom-filter atļaujamo tīklu sarakstu. Pēc tam pakalpojums izveido iptables kārtulu OUTPUT, lai visu datplūsmu no lietotāja, kuru identificē pēc UID, novirzītu uz iptables ķēdi, kas izveidota 6. darbībā. Visas lietotājam atļaujamās plūsmas tiek pievienotas iptables ķēdei.
  9. Kad tiek aktivizētas SSH sesijas beigas, informācija tiek nosūtīta komponenta Edge Gateway SSH ierakstīšanas pakalpojumam.
  10. Pakalpojums cleanroom-filter konstatē lietotāja sesijas beigas un notīra pievienotās iptables kārtulas: tas dzēš direktīvu OUTPUT, kas novirza lietotāja datplūsmu uz iptables ķēdi, un dzēš pašu ķēdi.
  11. Kad Edge Gateway ir saņēmis SSH sesijas beigas, tas pārsūta šo informāciju komponentam Mediation Controller.

Instalēšana

Nepieciešamas root atļaujas

Lai instalētu aģentu, ir nepieciešamas root privilēģijas.

Pakotni .deb vai .rpm var lejupielādēt no administrēšanas konsoles:

  1. Piekļūstiet darbvietai „Configurations“, izmantojot pogu augšējā kreisajā stūrī:
  2. Atveriet flīzi „Toolbox“
  3. Pirmajā cilnē „Integration Tools“ atlasiet vēlamajai operētājsistēmai atbilstošo instalēšanas programmu

Pēc pakotnes iegūšanas nosūtiet to uz Linux servera direktoriju /tmp/. Pēc tam izpildiet savai operētājsistēmai paredzētos instalēšanas norādījumus:

Izpildiet tālāk norādītās komandas ar atbilstošām root atļaujām:

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

Otrā komanda automātiski pievieno divas rindiņas failam /etc/pam.d/sshd, taču šo darbību var veikt arī manuāli:

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

Izpildiet tālāk norādītās komandas ar root atļaujām:

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

Otrā komanda automātiski pievieno divas rindiņas failam /etc/pam.d/sshd, taču šo darbību var veikt arī manuāli:

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