Preskoči na sadržaj

Instalacija agenta za Linux

CyberElements Bastion upotrebljava agent za Linux kako bi ograničio moguće mrežne pristupe sa SSH poslužitelja kojima korisnici pristupaju (definiranih u pravilnicima o pristupu / ugovorima o pristupu).

Preduvjeti

Za ispravan rad agenta potrebno je nekoliko preduvjeta:

  • Kompatibilni operacijski sustavi: Red Hat 9 i Debian 12
  • Prisutnost vatrozida iptables
  • Prijava računom koji nije root

Informacije

Agent za Linux ne djeluje na korisnika root jer taj korisnik uvijek ima dovoljna prava da ukloni sva ograničenja koja bi se na njega primijenila.

Osim toga, budući da neke usluge koriste prava root, dodavanje mrežnih ograničenja moglo bi uzrokovati nestabilnost tih usluga.

Način rada

Agent za Linux sastoji se od nekoliko dijelova:

  • Usluga systemd naziva cleanroom-filter
  • Modul PAM naziva pam_clr_filter
  • Pravilnik SELinux za Red Hat koji poslužitelju SSH omogućuje komunikaciju s uslugom cleanroom-filter

Opći način rada odvija se ovim slijedom:

sequenceDiagram
    autonumber
    participant MED as Mediation Controller
    participant GW_SSH as Edge Gateway<br/>Snimanje SSH
    participant SSH as Cilj SSH<br/>Poslužitelj SSH
    participant PAM as Cilj SSH<br/>Modul PAM pam_clr_filter
    participant svc as Cilj SSH<br/>Usluga cleanroom-filter

    MED->>GW_SSH: Zahtjev za otvaranje<br/>aplikacije SSH
    GW_SSH->>+MED: Dohvaćanje informacija o filtriranju<br/>za sesiju
    MED->>-GW_SSH: Slanje informacija<br/>o filtriranju mreže
    GW_SSH->>+SSH: Veza SSH
    SSH-->-PAM: Stvaranje sesije SSH
    PAM->>+svc: Slanje korisničkog imena
    Note right of svc: Stvaranje lanca <br/>iptables za korisnika pod nazivom clr-LOGIN
    svc->>-PAM: Slanje jedinstvenog tokena
    Note over PAM: Dodavanje varijable okruženja<br/> CLR-ID s jedinstvenim tokenom<br/> u sesiju korisnika
    GW_SSH->>svc: Slanje popisa mreža koje treba dopustiti
    Note over svc: Stvaranje pravila iptables OUTPUT<br/> za preusmjeravanje prometa korisnika u<br/> prethodno stvoreni lanac iptables
    Note over svc: Dodavanje autorizacija u lanac<br/> iptables stvoren za korisnika
    break Kraj sesije SSH
        SSH->>+GW_SSH: Obavijest o kraju sesije
        SSH-->svc: Otkrivanje kraja sesije SSH
        Note over svc: Brisanje pravila iptables<br/> OUTPUT stvorenog za korisnika
        Note over svc: Brisanje lanca iptables<br/> stvorenog za korisnika
        GW_SSH->>-MED: Obavijest o kraju<br/> sesije SSH korisnika
    end
Hold "Ctrl" to enable pan & zoom
  1. Poslužitelj Mediation Controller šalje komponenti Edge Gateway informacije za otvaranje nove sesije SSH.
  2. Usluga snimanja SSH traži od poslužitelja Mediation Controller informacije o mrežnom filtriranju koje treba primijeniti na sesiju SSH.
  3. Usluga Mediation Controller odgovara popisom dopuštenih mreža.
  4. Usluga snimanja SSH zatim uspostavlja vezu s ciljnim poslužiteljem SSH.
  5. Povezivanje s poslužiteljem SSH pokreće slijed stvaranja sesije, a time i prolazak kroz module PAM dodijeljene usluzi sshd.
  6. Modul PAM pam_clr_filter agenta za Linux šalje korisničko ime usluzi cleanroom-filter, koja zatim stvara novi lanac iptables naziva clr-LOGIN, gdje se LOGIN zamjenjuje primljenim korisničkim imenom.
  7. Nakon stvaranja lanca iptables usluga cleanroom-filter stvara nasumični token i šalje ga modulu PAM pam_clr_filter. Taj modul dodaje token u varijablu okruženja CLR-ID korisnika.
  8. Usluga snimanja SSH putem izvršne datoteke /usr/local/ipdiva/bin/cleanroom-netfiltersession.py šalje usluzi cleanroom-filter popis mreža koje treba dopustiti. Usluga zatim stvara pravilo iptables OUTPUT koje sav promet korisnika, identificiranog prema vrijednosti UID, preusmjerava u lanac iptables stvoren u koraku 6. Svi tokovi koje treba dopustiti korisniku dodaju se u lanac iptables.
  9. Kada se pokrene završetak sesije SSH, informacija se šalje usluzi snimanja SSH komponente Edge Gateway.
  10. Usluga cleanroom-filter otkriva završetak sesije korisnika i čisti dodana pravila iptables: briše direktivu OUTPUT koja preusmjerava promet korisnika u lanac iptables i briše sam lanac.
  11. Kada komponenta Edge Gateway primi završetak sesije SSH, prosljeđuje tu informaciju usluzi Mediation Controller.

Instalacija

Potrebne dozvole root

Za instalaciju agenta potrebne su privilegije root.

Paket .deb ili .rpm može se preuzeti iz administracijske konzole:

  1. Pristupite radnom prostoru „Configurations“ pomoću gumba koji se nalazi u gornjem lijevom kutu:
  2. Otvorite pločicu „Toolbox“
  3. Na prvoj kartici, „Integration Tools“, odaberite instalacijski program prikladan za željeni operacijski sustav

Nakon preuzimanja paketa prenesite ga na poslužitelj Linux u direktorij /tmp/. Zatim slijedite upute za instalaciju za svoj operacijski sustav:

Pokrenite sljedeće naredbe s odgovarajućim dozvolama 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

Druga naredba automatizira dodavanje dvaju redaka u datoteku /etc/pam.d/sshd, ali tu je operaciju moguće izvršiti i ručno:

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

Pokrenite sljedeće naredbe s dozvolama 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

Druga naredba automatizira dodavanje dvaju redaka u datoteku /etc/pam.d/sshd, ali tu je operaciju moguće izvršiti i ručno:

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