Vai al contenuto

Installazione dell'agente Linux

L'agente Linux viene utilizzato da cyberelements.io / cyberelements Cleanroom per limitare il possibile accesso alla rete dai server SSH accessibili dagli utenti (definito nelle politiche / contratti di accesso).

Prerequisiti

Per il corretto funzionamento dell'agente sono necessari alcuni prerequisiti:

  • Sistema operativo compatibile: Red Hat 9 e Debian 12
  • Presenza del iptables firewall
  • Accesso con un account diverso da root

Info

L'agente Linux non agisce sull'utente root, poiché quest'utente ha sempre i diritti sufficienti per rimuovere qualsiasi restrizione che gli sarebbe applicata.

Inoltre, poiché alcuni servizi root In questo caso, l'aggiunta di restrizioni di rete potrebbe causare l'instabilità di questi servizi.

Operazione

L'agente Linux è suddiviso in diverse parti:

  • Un servizio systemd denominato cleanroom-filter
  • Un modulo PAM denominato pam_clr_filter
  • Una policy SELinux per Red Hat per consentire al server SSH di comunicare con il servizio cleanroom-filter

L'operazione generale segue questa sequenza:

sequenceDiagram
    autonumber
    participant MED as Mediation Controller
    participant GW_SSH as Edge Gateway<br/>SSH Recorder
    participant SSH as SSH Target<br/>SSH Server
    participant PAM as SSH Target<br/>pam_clr_filter PAM Module
    participant svc as SSH Target<br/>cleanroom-filter Service

    MED->>GW_SSH: Request to open an<br/>SSH application
    GW_SSH->>+MED: Retrieve filtering information<br/>for the session
    MED->>-GW_SSH: Send network<br/>filtering information
    GW_SSH->>+SSH: SSH Connection
    SSH-->-PAM: Creating an SSH session
    PAM->>+svc: Sending the username
    Note right of svc: Creating an iptables <br/>chain for the user named clr-LOGIN
    svc->>-PAM: Sending a unique token
    Note over PAM: Adding the CLR-ID environment<br/> variable containing the unique token<br/> to the user's session
    GW_SSH->>svc: Sending the list of networks to be authorized
    Note over svc: Creating an iptables OUTPUT rule<br/> to redirect the user's traffic to the iptables<br/> chain created previously
    Note over svc: Adding authorizations to the iptables<br/> chain created for the user
    break End of SSH session
        SSH->>+GW_SSH: End of session notification
        SSH-->svc: Detection of end of SSH session
        Note over svc: Deletion of iptables OUTPUT<br/> rule created for user 
        Note over svc: Deletion of iptables chain<br/> created for user
        GW_SSH->>-MED: End of SSH session<br/> notification for user
    end
Hold "Ctrl" to enable pan & zoom
  1. Il Mediation Controller Il server invia informazioni al Edge Gateway per aprire una nuova sessione SSH.
  2. Il servizio di registrazione SSH chiede al Mediation Controller server per il filtro di informazioni di rete da applicare alla sessione SSH.
  3. Il Mediation Controller risponde con un elenco di reti autorizzate.
  4. Il servizio di registrazione SSH stabilisce quindi la connessione al server SSH di destinazione.
  5. La connessione al server SSH attiva la sequenza di creazione di sessione e quindi il passaggio attraverso i moduli PAM assegnati a sshd.
  6. L'agente Linux pam_clr_filter Il modulo PAM invia il nome utente al cleanroom-filter servizio, che crea una nuova catena iptables chiamata clr-LOGIN dove LOGIN è sostituito dal nome utente ricevuto.
  7. Dopo aver creato la catena iptables, il cleanroom-filter Il servizio crea e invia un token casuale al pam_clr_filter Il modulo PAM aggiunge questo token al codice di accesso dell'utente. CLR-ID variabile ambientale.
  8. Il servizio di registrazione SSH invia, tramite il /usr/local/ipdiva/bin/cleanroom-netfiltersession.py Il programma di ricerca è stato pubblicato il 1° gennaio 1997 e il suo contenuto è stato pubblicato il 1° gennaio 1998. cleanroom-filter Il servizio crea quindi un OUTPUT iptables regola per reindirizzare tutto il traffico dall'utente, identificato dal suo UID, alla catena iptables creata nel passaggio 6. Tutti i flussi da autorizzare per l'utente vengono aggiunti alla catena iptables.
  9. Quando viene attivato il termine della sessione SSH, le informazioni vengono inviate al servizio di registrazione SSH del server. Edge Gateway.
  10. Il cleanroom-filter Il servizio rileva la fine della sessione dell'utente e pulisce le regole iptables aggiunte: elimina le regole iptables aggiunte e le regole iptables aggiunte. OUTPUT direttiva che reindirizza il traffico dell'utente verso una catena iptables e elimina la catena stessa.
  11. Una volta che il Edge Gateway ha ricevuto la fine della sessione SSH, trasmette questa informazione al Mediation Controller.

Installazione

Permessi root richiesti

Per installare l'agente sono necessari i privilegi root.

Il pacchetto .deb o .rpm può essere scaricato dalla console di amministrazione:

  1. Accedere all'area di lavoro "Configurazioni" utilizzando il pulsante in alto a sinistra:
  2. Aprire il piastrello Toolbox
  3. Selezionare la configurazione appropriata per il sistema operativo desiderato nella prima scheda, Strumenti di integrazione
  1. Accedere all'area di lavoro "Configurazioni" utilizzando il pulsante in alto a sinistra:
  2. Aprire il piastrello Toolbox
  3. Selezionare la configurazione appropriata per il sistema operativo desiderato nella prima scheda, Strumenti di integrazione

Una volta recuperato il pacchetto, invialo al server Linux nella directory /tmp/. Quindi segui le istruzioni di installazione per il tuo sistema operativo:

Eseguire i seguenti comandi con le autorizzazioni root appropriate:

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

Il secondo comando automatizza l'aggiunta di due righe al file /etc/pam.d/sshd, ma questa operazione può essere eseguita anche manualmente:

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

Eseguire i seguenti comandi con root autorizzazioni:

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

Il secondo comando automatizza l'aggiunta di due righe al file /etc/pam.d/sshd, ma questa operazione può essere eseguita anche manualmente:

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