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).