Kihagyás

A Linux-ügynök telepítése

A CyberElements a Linux-ügynököt arra használja, hogy korlátozza a felhasználók által elért SSH-kiszolgálókról induló lehetséges hálózati hozzáféréseket (amelyeket a hozzáférési szabályzatok / szerződések határoznak meg).

Előfeltételek

Az ügynök megfelelő működéséhez néhány előfeltételnek teljesülnie kell:

  • Kompatibilis operációs rendszerek: Red Hat 9 és Debian 12
  • Az iptables tűzfal megléte
  • Bejelentkezés a root fióktól eltérő fiókkal

Információ

A Linux-ügynök nem hat a root felhasználóra, mivel ez a felhasználó mindig elegendő joggal rendelkezik ahhoz, hogy feloldja a rá alkalmazott korlátozásokat.

Továbbá, mivel egyes szolgáltatások root szintű jogokat használnak, a hálózati korlátozások hozzáadása instabillá teheti ezeket a szolgáltatásokat.

Működés

A Linux-ügynök több részből áll:

  • Egy cleanroom-filter nevű systemd szolgáltatás
  • Egy pam_clr_filter nevű PAM-modul
  • Egy SELinux-szabályzat Red Hat rendszerhez, amely lehetővé teszi, hogy az SSH-kiszolgáló kommunikáljon a cleanroom-filter szolgáltatással

Az általános működés a következő sorrendet követi:

SaaS-környezet

Az alábbi ábrán a „Mediation Controller” a CyberElements által üzemeltetett CyberElements-felhőszolgáltatást jelöli. Az SSH-szűrési folyamat architektúrája SaaS módban is azonos.

sequenceDiagram
    autonumber
    participant MED as Mediation Controller
    participant GW_SSH as Edge Gateway<br/>SSH-rögzítő
    participant SSH as SSH-cél<br/>SSH-kiszolgáló
    participant PAM as SSH-cél<br/>pam_clr_filter PAM-modul
    participant svc as SSH-cél<br/>cleanroom-filter szolgáltatás

    MED->>GW_SSH: Kérés egy<br/>SSH-alkalmazás megnyitására
    GW_SSH->>+MED: Szűrési információk lekérése<br/>a munkamenethez
    MED->>-GW_SSH: Hálózati szűrési<br/>információk küldése
    GW_SSH->>+SSH: SSH-kapcsolat
    SSH-->-PAM: SSH-munkamenet létrehozása
    PAM->>+svc: A felhasználónév küldése
    Note right of svc: clr-LOGIN nevű iptables-lánc <br/>létrehozása a felhasználó számára
    svc->>-PAM: Egyedi token küldése
    Note over PAM: Az egyedi tokent tartalmazó<br/> CLR-ID környezeti változó hozzáadása<br/> a felhasználó munkamenetéhez
    GW_SSH->>svc: Az engedélyezendő hálózatok listájának küldése
    Note over svc: iptables OUTPUT szabály létrehozása<br/> a felhasználó forgalmának a korábban létrehozott<br/> iptables-láncba történő átirányításához
    Note over svc: Engedélyek hozzáadása a felhasználó<br/> számára létrehozott iptables-lánchoz
    break Az SSH-munkamenet vége
        SSH->>+GW_SSH: Értesítés a munkamenet végéről
        SSH-->svc: Az SSH-munkamenet végének észlelése
        Note over svc: A felhasználó számára létrehozott<br/> iptables OUTPUT szabály törlése
        Note over svc: A felhasználó számára létrehozott<br/> iptables-lánc törlése
        GW_SSH->>-MED: Értesítés a felhasználó<br/> SSH-munkamenetének végéről
    end
Hold "Ctrl" to enable pan & zoom
  1. A Mediation Controller kiszolgáló információt küld az Edge Gateway komponensnek egy új SSH-munkamenet megnyitásához.
  2. Az SSH-rögzítési szolgáltatás lekéri a Mediation Controller kiszolgálótól az SSH-munkamenetre alkalmazandó hálózati szűrési információkat.
  3. A Mediation Controller szolgáltatás az engedélyezett hálózatok listájával válaszol.
  4. Az SSH-rögzítési szolgáltatás ezután létrehozza a kapcsolatot a cél SSH-kiszolgálóval.
  5. Az SSH-kiszolgálóhoz való csatlakozás elindítja a munkamenet-létrehozási folyamatot, és ezáltal az sshd szolgáltatáshoz rendelt PAM-modulokon való áthaladást.
  6. A Linux-ügynök pam_clr_filter PAM-modulja elküldi a felhasználónevet a cleanroom-filter szolgáltatásnak, amely ezután létrehoz egy clr-LOGIN nevű új iptables-láncot, ahol a LOGIN helyére a kapott felhasználónév kerül.
  7. Az iptables-lánc létrehozása után a cleanroom-filter szolgáltatás létrehoz egy véletlenszerű tokent, és elküldi a pam_clr_filter PAM-modulnak. Ez utóbbi hozzáadja a tokent a felhasználó CLR-ID környezeti változójához.
  8. Az SSH-rögzítési szolgáltatás a /usr/local/ipdiva/bin/cleanroom-netfiltersession.py futtatható fájlon keresztül elküldi az engedélyezendő hálózatok listáját a cleanroom-filter szolgáltatásnak. A szolgáltatás ezután létrehoz egy OUTPUT iptables-szabályt, amely a felhasználó – UID-ja alapján azonosított – teljes forgalmát a 6. lépésben létrehozott iptables-láncra irányítja át. A felhasználó számára engedélyezendő összes adatfolyam bekerül az iptables-láncba.
  9. Az SSH-munkamenet befejezésekor az információ eljut az Edge Gateway komponens SSH-rögzítési szolgáltatásához.
  10. A cleanroom-filter szolgáltatás észleli a felhasználó munkamenetének végét, és eltávolítja a hozzáadott iptables-szabályokat: törli a felhasználó forgalmát egy iptables-láncra átirányító OUTPUT direktívát, majd magát a láncot is.
  11. Amint az Edge Gateway komponens megkapta az SSH-munkamenet végét jelző információt, továbbítja azt a Mediation Controller szolgáltatásnak.

Telepítés

Szükséges root engedélyek

Az ügynök telepítéséhez root szintű jogosultság szükséges.

A .deb vagy .rpm csomag a felügyeleti konzolról tölthető le:

  1. Lépjen a „Configurations” munkaterületre a bal felső sarokban található gombbal:
  2. Nyissa meg a „Toolbox” csempét
  3. Az első, „Integration Tools” lapon válassza ki a kívánt operációs rendszernek megfelelő telepítőt

Miután letöltötte a csomagot, másolja át a Linux-kiszolgáló /tmp/ könyvtárába. Ezután kövesse az operációs rendszerére vonatkozó telepítési utasításokat:

Futtassa a következő parancsokat a megfelelő root engedélyekkel:

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

A második parancs automatikusan hozzáad két sort az /etc/pam.d/sshd fájlhoz, de ez a művelet manuálisan is elvégezhető:

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

Futtassa a következő parancsokat root engedélyekkel:

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

A második parancs automatikusan hozzáad két sort az /etc/pam.d/sshd fájlhoz, de ez a művelet manuálisan is elvégezhető:

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