systeme:selinux
                Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| systeme:selinux [2017/04/29 11:28] – root | systeme:selinux [2020/02/21 18:36] (Version actuelle) – [sepolicy network] root | ||
|---|---|---|---|
| Ligne 63: | Ligne 63: | ||
| < | < | ||
| $ touch / | $ touch / | ||
| + | </ | ||
| + | |||
| + | |||
| + | ====== Compiler une règle te en pp ====== | ||
| + | Compiler une rule **te** : | ||
| + | < | ||
| + | $ checkmodule -M -m -o gigix-tlp.mod gigix-tlp.te | ||
| + | checkmodule: | ||
| + | checkmodule: | ||
| + | checkmodule: | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | $ semodule_package -m gigix-tlp.mod -o gigix-tlp.pp | ||
| + | </ | ||
| + | |||
| + | On installe le module : | ||
| + | < | ||
| + | $ semodule -i gigix-tlp.pp | ||
| </ | </ | ||
| Ligne 373: | Ligne 392: | ||
| $ sesearch --auditallow | $ sesearch --auditallow | ||
| </ | </ | ||
| + | |||
| + | < | ||
| + | $ sesearch -T -s unconfined_t -t initrc_exec_t | ||
| + | Found 1 semantic te rules: | ||
| + |  | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | $ sesearch -T -s unconfined_t -c process -C | ||
| + | </ | ||
| + | |||
| ===== matchpathcon ===== | ===== matchpathcon ===== | ||
| La commande **// | La commande **// | ||
| Ligne 412: | Ligne 442: | ||
| $ useradd myuser | $ useradd myuser | ||
| $ semanage login -a -s user_u myuser | $ semanage login -a -s user_u myuser | ||
| + | </ | ||
| + | |||
| + | Ou | ||
| + | < | ||
| + | $ useradd -Z user_u test | ||
| + | </ | ||
| + | |||
| + | ==== Mapping des utilsateurs par défaut | ||
| + | |||
| + | < | ||
| + | $ semanage login -m -S targeted -s " | ||
| + | </ | ||
| + | |||
| + | Pour revenir au mapping original: | ||
| + | < | ||
| + | $ semanage login -m -S targeted -s " | ||
| + | </ | ||
| + | |||
| + | |||
| + | Créez un nouvel utilisateur SELinux et spécifiez le rôle SELinux par défaut et un rôle d' | ||
| + | < | ||
| + | $ semanage user -a -r s0-s0: | ||
| </ | </ | ||
| Ligne 470: | Ligne 522: | ||
| $ semanage permissive -d httpd_t | $ semanage permissive -d httpd_t | ||
| </ | </ | ||
| + | |||
| * Pour lister les domaine désactivé : | * Pour lister les domaine désactivé : | ||
| < | < | ||
| $ semanage permissive -l | $ semanage permissive -l | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | seinfo --permissive -x | ||
| </ | </ | ||
| Ligne 556: | Ligne 613: | ||
| $ semanage fcontext -l | $ semanage fcontext -l | ||
| </ | </ | ||
| + | |||
| + | * Pour vérifier le contexte: | ||
| + | < | ||
| + | $ matchpathcon -V / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | </ | ||
| + | |||
| ==== Booléen ==== | ==== Booléen ==== | ||
| Les booléens permettent de modifier une politique SELinux, sans avoir la moindre connaissance ou compétence sur le sujet de la rédaction de politiques. L' | Les booléens permettent de modifier une politique SELinux, sans avoir la moindre connaissance ou compétence sur le sujet de la rédaction de politiques. L' | ||
| Ligne 633: | Ligne 699: | ||
| </ | </ | ||
| - | * Lister tous les utilisateurs | + | * Lister tous les utilisateurs | 
| < | < | ||
| - | $ seinfo | + | $ seinfo -u -x | 
| - |  | + | |
| Users: 8 | Users: 8 | ||
| - | sysadm_u | + | user guest_u roles guest_r level s0 range s0; | 
| - | system_u | + | user root roles { staff_r system_r sysadm_r unconfined_r } level s0 range s0 - s0: | 
| - | xguest_u | + | user staff_u roles { staff_r system_r sysadm_r unconfined_r } level s0 range s0 - s0: | 
| - | root | + | user sysadm_u roles sysadm_r level s0 range s0 - s0: | 
| - | guest_u | + | user system_u roles { system_r unconfined_r } level s0 range s0 - s0: | 
| - | staff_u | + | user unconfined_u roles { system_r unconfined_r } level s0 range s0 - s0: | 
| - |  | + | user user_u | 
| - | unconfined_u | + | user xguest_u roles xguest_r level s0 range s0; | 
| </ | </ | ||
| - | * Lister tous les types d'utilisateurs | + |  | 
| + | < | ||
| + | $ seinfo -r -x | ||
| + | </ | ||
| + | |||
| + |  | ||
| < | < | ||
| $ seinfo -auserdomain -x | $ seinfo -auserdomain -x | ||
| Ligne 668: | Ligne 738: | ||
| </ | </ | ||
| - | * Lister | + | * Lister | 
| < | < | ||
| $ seinfo -usystem_u -x | $ seinfo -usystem_u -x | ||
| Ligne 678: | Ligne 748: | ||
|  |  | ||
|  |  | ||
| - | </ | ||
| - | |||
| - | * Lister tous les domaines : | ||
| - | < | ||
| - | $ seinfo -adomain -r | ||
| - |  | ||
| - | |||
| - | Roles: 14 | ||
| - |  | ||
| - |  | ||
| - |  | ||
| - |  | ||
| - |  | ||
| - |  | ||
| - |  | ||
| - |  | ||
| - |  | ||
| - |  | ||
| - |  | ||
| - |  | ||
| - |  | ||
| - |  | ||
| </ | </ | ||
| Ligne 707: | Ligne 755: | ||
| </ | </ | ||
| - | * Afficher | + | * Afficher les types d'un attribut | 
| < | < | ||
| - | $ seinfo -adomain | + | $ seinfo -avirt_domain | 
| + | |||
| + | Type Attributes: 1 | ||
| + |  | ||
| + | svirt_t | ||
| + | svirt_tcg_t | ||
| </ | </ | ||
| Ligne 737: | Ligne 791: | ||
| < | < | ||
| $ runcon system_u: | $ runcon system_u: | ||
| + | </ | ||
| + | |||
| + | ===== sepolicy ===== | ||
| + | ==== sepolicy generate ==== | ||
| + | Générer une policy pour un service: | ||
| + | < | ||
| + | $ sepolicy generate --init -n myprogram / | ||
| + | </ | ||
| + | |||
| + | Voir https:// | ||
| + | |||
| + | ==== sepolicy transition ==== | ||
| + | Interroger la stratégie SELinux pour voir si un domaine de traitement source peut transitionner vers un domaine de traitement cible: | ||
| + | < | ||
| + | $ sepolicy transition -s httpd_t | ||
| + | </ | ||
| + | |||
| + | ==== sepolicy network ==== | ||
| + | Interroger les stratégies SELinux relatives aux information réseau: | ||
| + | < | ||
| + | $ sepolicy network -p 22 | ||
| + | 22: tcp ssh_port_t 22 | ||
| + | 22: udp reserved_port_t 1-511 | ||
| + | 22: tcp reserved_port_t 1-511 | ||
| + | 22: sctp reserved_port_t 1-511 | ||
| + | </ | ||
| + | |||
| + | ==== sepolicy booleans ==== | ||
| + | Interroger la stratégie SELinux pour voir les descriptions des booléens: | ||
| + | < | ||
| + | $ sepolicy booleans -a | ||
| + | $ sepolicy booleans -b user_ping | ||
| + | </ | ||
| + | |||
| + | ==== sepolicy communicate ==== | ||
| + | Interroger la stratégie SELinux pour voir si les domaines peuvent communiquer ensemble: | ||
| + | < | ||
| + | $ sepolicy communicate -s syslogd_t -t httpd_t -c file | ||
| </ | </ | ||
| Ligne 750: | Ligne 842: | ||
| $ auditctl -l | $ auditctl -l | ||
| </ | </ | ||
| + | |||
| + | |||
| + | ====== Scripts ====== | ||
| + | Download and extract and set the variable **POLICY_LOCATION**. | ||
| + | |||
| + | Add to your '' | ||
| + | <code bash> | ||
| + | POLICY_LOCATION=" | ||
| + | |||
| + | # sefindif - Find interface definitions that have a string that matches the | ||
| + | # given regular expression | ||
| + | sefindif() { | ||
| + | REGEXP=" | ||
| + | pushd ${POLICY_LOCATION}/ | ||
| + | for FILE in */*.if; | ||
| + | do | ||
| + | awk "/ | ||
| + | done | ||
| + | popd > /dev/null 2>& | ||
| + | } | ||
| + | |||
| + | # seshowif - Show the interface definition | ||
| + | seshowif() { | ||
| + | INTERFACE=" | ||
| + | pushd ${POLICY_LOCATION}/ | ||
| + | for FILE in */*.if; | ||
| + | do | ||
| + | grep -A 9999 " | ||
| + | done | ||
| + | popd > /dev/null 2>& | ||
| + | } | ||
| + | |||
| + | # sefinddef - Find macro definitions that have a string that matches the given | ||
| + | # regular expression | ||
| + | sefinddef() { | ||
| + | REGEXP=" | ||
| + | grep -H " | ||
| + | } | ||
| + | |||
| + | # seshowdef - Show the macro definition | ||
| + | seshowdef() { | ||
| + | MACRONAME=" | ||
| + | pushd ${POLICY_LOCATION}/ | ||
| + | for FILE in *.spt; | ||
| + | do | ||
| + | grep -A 9999 " | ||
| + | done | ||
| + | popd > /dev/null 2>& | ||
| + | } | ||
| + | |||
| + | # sefindcon - Find macro definitions for constrains | ||
| + | sefindcon() { | ||
| + | awk "/ | ||
| + | } | ||
| + | |||
| + | # selist - List all templates/ | ||
| + | selist() { | ||
| + | pushd ${POLICY_LOCATION}/ | ||
| + | ( | ||
| + | egrep ' | ||
| + | egrep ' | ||
| + | egrep ' | ||
| + | egrep ' | ||
| + | ) | nl | sed -e "s:$: :g"; | ||
| + | popd > /dev/null 2>& | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | $ sefindif ' | ||
| + | services/ | ||
| + | services/ | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | $ seshowif systemd_tmpfilesd_managed | ||
| + | interface(`systemd_tmpfilesd_managed', | ||
| + | gen_require(` | ||
| + | type systemd_tmpfiles_t; | ||
| + | ') | ||
| + | |||
| + | allow systemd_tmpfiles_t $1:$2 { setattr relabelfrom relabelto create }; | ||
| + | ') | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | $ sefinddef ' | ||
| + | obj_perm_sets.spt: | ||
| + | obj_perm_sets.spt: | ||
| + | obj_perm_sets.spt: | ||
| + | obj_perm_sets.spt: | ||
| + | obj_perm_sets.spt: | ||
| + | obj_perm_sets.spt: | ||
| + | obj_perm_sets.spt: | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | $ seshowdef manage_files_pattern | ||
| + | define(`manage_files_pattern', | ||
| + | allow $1 $2:dir rw_dir_perms; | ||
| + | allow $1 $3:file manage_file_perms; | ||
| + | ') | ||
| + | </ | ||
| + | |||
systeme/selinux.1493465338.txt.gz · Dernière modification :  de root
                
                