Puncte:1

Pe Fedora, cum configurez selinux pentru a permite un port pentru un nou tip de serviciu nedefinit?

drapel br

Am câteva lucruri pe care mi-ar plăcea să le pot susține ca servere pe Fedora. Știu că pot rula măcar unele dintre acestea podman sau docher dar știu deja cum să fac asta. De asemenea, știu deja cum să-l permit pentru serviciile existente, cum ar fi ssh dacă tot ce vreau să fac este să folosesc un port personalizat prin:

sudo semanage port -a -t ssh_port_t -p tcp 2222

Dar problema mea este că selinux deja definește ssh_port_t tip. Ce se întâmplă dacă am o aplicație personalizată pe care nu pot sau nu vreau să o rulez într-un container dintr-un anumit motiv, cum aș permite un port pentru ceva care nu NU au un tip deja predefinit semanage port --list?

Pentru acest exemplu, să presupunem că încerc să rulez /path/myNiftyGameServer și vreau să îi permit să se conecteze pe portul udp 12345 (care este în prezent neutilizat pe sistemul meu). Cum pot face acest lucru?

Din punct de vedere istoric, nu pretind că sunt un guru, dar mă simt relativ priceput cu bash și Linux în general, dar sunt încă un începător când vine vorba de SELinux (știu despre etichete, restaurare, și unele de bază semanage comenzi dar încă învăț).

Vă rugăm să presupuneți că nu vreau să dezactivez pur și simplu SELinux (pentru că sunt). Dacă această întrebare pare nepractică, este bine să fac sugestii suplimentare, dar întreb în principal pentru că sunt curios cum s-ar rezolva această problemă în SELinux și nu am reușit să găsesc singur o soluție, cu excepția tipurilor existente precum ssh-ul meu exemplu de mai sus. Vă rugăm să nu ezitați să sugerați alte subiecte relevante de lectură pentru începătorii SELinux.

Editare: Din căutări suplimentare și pe baza constatării mele a Server Starbound pe Centos si a Politica de server dedicat Soldat, Bănuiesc că poate trebuie să învăț cum să scriu o politică SELinux? Nebun că am nevoie de atât de mult când un serviciu pur și simplu nu are un nume, dar tot vreau să învăț cum să o fac.

Editarea 2: După ce am avut timp să le citesc în detaliu, linkul Starbound nu pare să fie ceea ce caut; singura scriere a politicii SELinux a fost pentru un server Apache separat (Apache este deja definit), mai degrabă decât pentru un server de jocuri. Cel de Soldat pare foarte aproape de ceea ce caut, dar cred ca am nevoie de o instructie de redactare a politicilor pentru a putea ajunge acolo. În special, mă interesează doar cum să deschid un port pentru un server / serviciu web personalizat. Setarea accesului la calea fișierelor sună bine, dar o pot gestiona cu conturile de utilizator, în timp ce chiar dacă deschid un port de rețea în firewall-cmd (firewalld), acesta va fi blocat de SELinux dacă nu mă înșel (știu că am avut asta problemă în trecut, dar presupun că aș putea retesta pentru a fi sigur).

Puncte:1
drapel jp

Un lucru cheie de înțeles aici este că politica implicită SELinux este vizate. Adică constrânge doar lucruri cunoscute. Cu mult, cu mult timp în urmă am încercat cealaltă abordare (blocați tot ceea ce nu este permis de politică) și atât de multe lucruri s-au rupt tot timpul încât toată lumea a oprit-o.

Deci, dvs myNiftyGameServer va rula într-un domeniu neconfinat oricum în mod implicit â dacă doriți să o înăspriți, va trebui fie să o rulați într-un container, fie să scrieți o anumită politică.

De aceea nu găsești o modalitate ușoară de a adăuga doar un tip de port aleatoriu... nu ar fi foarte util.

Există un ghid rapid decent pentru a crea o politică personalizată pentru un demon în RHEL 8 Docs

drapel br
Tocmai am testat acest lucru și, desigur, aveți dreptate. Vă mulțumesc că mi-ați îndreptat concepția greșită și, de asemenea, pentru link.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.