Gitlab SSH nu mai funcționează după upgrade-ul la 19.3 pe Alma Linux

  • 1 minute de citit
  • 3 exemple de cod în Shell

Disponibil și în English

Salut tuturor!

Am avut câteva probleme cu Gitlab în ultimele zile, după ce l-am actualizat la 19.3 împreună cu dependențele mele de Alma Linux, push-ul și pull-ul prin SSH au încetat să funcționeze, iar cauza a fost o deriva politicilor SELinux.

Am încercat să rulez gitlab-ctl apply-sepolicy, reconfigurarea și alte comenzi, dar nimic nu părea să funcționeze. Mi-a luat ceva timp să găsesc cauza de bază a problemei. Inițial am crezut că clientul meu SSH din Fedora este defect, și folosesc și 1Password pentru a gestiona cheile SSH. Ei bine, nu asta era problema: ssh -vvv [email protected] este foarte detaliat și m-a ajutat la depanare, problema era pe server.

Cel mai bun mod de a rezolva politicile SELinux este să folosești comanda audit2allow. De fiecare dată când SELinux refuză o acțiune, daemonul o înregistrează în jurnal, iar utilitarul de mai sus te poate ajuta să generezi reguli care pot fi adăugate în SELinux.

După ce am rulat de mai multe ori următoarele comenzi, am obținut toate regulile lipsă.

sudo ausearch -m AVC -ts recent \  | audit2allowsudo ausearch -m AVC -ts recent \  | audit2allow

Dacă ai aceleași probleme, nu trebuie să rulezi audit2allow, am salvat fișierul .te, pe care îl poți compila și împacheta pentru a-l instala ca modul SELinux.

Salvează următorul conținut ca „gitlab_ssh.te”

module gitlab_ssh 1.0;require {        type sshd_session_t;        type gitlab_shell_t;        class file { getattr open read };        class dir { getattr search };}#============= sshd_session_t ==============#!!!! Acest avc este permis în politica actualăallow sshd_session_t gitlab_shell_t:dir search;allow sshd_session_t gitlab_shell_t:dir getattr;#!!!! Acest avc este permis în politica actualăallow sshd_session_t gitlab_shell_t:file { getattr open read };

Pentru a-l instala, execută următoarele comenzi:

➜  ~ checkmodule -M -m -o gitlab_ssh.mod gitlab_ssh.te➜  ~ semodule_package -o gitlab_ssh.pp -m gitlab_ssh.mod➜  ~ sudo semodule -i gitlab_ssh.pp

Gata! Sper că ți-am economisit ceva timp de depanare.