Eigenes Profil erstellen Beispiel ncat: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| Zeile 25: | Zeile 25: | ||
<!-----> | <!-----> | ||
Building and Loading Policy | Building and Loading Policy | ||
| − | + | + make -f /usr/share/selinux/devel/Makefile netzkatze.pp | |
Compiling default netzkatze module | Compiling default netzkatze module | ||
Creating default netzkatze.pp policy package | Creating default netzkatze.pp policy package | ||
rm tmp/netzkatze.mod tmp/netzkatze.mod.fc | rm tmp/netzkatze.mod tmp/netzkatze.mod.fc | ||
| − | + | + /usr/sbin/semodule -i netzkatze.pp | |
libsemanage.add_user: user sddm not in password file | libsemanage.add_user: user sddm not in password file | ||
| − | + | + sepolicy manpage -p . -d netzkatze_t | |
./netzkatze_selinux.8 | ./netzkatze_selinux.8 | ||
| − | + | + /sbin/restorecon -F -R -v /usr/local/sbin/netzkatze | |
Relabeled /usr/local/sbin/netzkatze from unconfined_u:object_r:bin_t:s0 to system_u:object_r:netzkatze_exec_t:s0 | Relabeled /usr/local/sbin/netzkatze from unconfined_u:object_r:bin_t:s0 to system_u:object_r:netzkatze_exec_t:s0 | ||
| − | + | + pwd | |
| − | + | + pwd=/root/selinux/modules/netzkatze | |
| − | + | + rpmbuild --define _sourcedir /root/selinux/modules/netzkatze --define _specdir /root/selinux/modules/netzkatze --define _builddir /root/selinux/modules/netzkatze --define _srcrpmdir /root/selinux/modules/netzkatze --define _rpmdir /root/selinux/modules/netzkatze --define _buildrootdir /root/selinux/modules/netzkatze/.build -ba netzkatze_selinux.spec | |
./netzkatze.sh: 52: rpmbuild: not found | ./netzkatze.sh: 52: rpmbuild: not found | ||
<span id="systemd-dienst-erstellen"></span> | <span id="systemd-dienst-erstellen"></span> | ||
Version vom 23. November 2022, 10:30 Uhr
Kopieren der Netzkatze
- cp /usr/bin/ncat /usr/local/bin/netzkatze
Benutzerdefiniert Richtlinie für das Programm “netzkatze” generieren
- sepolicy generate –init /usr/local/bin/netzkatze
Failed to retrieve rpm info for selinux-policy Created the following files: /root/selinux/modules/netzkatze/netzkatze.te # Typ-Enforcement-Datei /root/selinux/modules/netzkatze/netzkatze.if # Schnittstellendatei /root/selinux/modules/netzkatze/netzkatze.fc # Dateikontext-Datei /root/selinux/modules/netzkatze/netzkatze_selinux.spec # Spezifikationsdatei /root/selinux/modules/netzkatze/netzkatze.sh # Einrichtungsskript
Einrichten des neuen Richtlinienmoduls mithilfe des erzeugten Setup-Skripts
- ./netzkatze.sh
Building and Loading Policy + make -f /usr/share/selinux/devel/Makefile netzkatze.pp Compiling default netzkatze module Creating default netzkatze.pp policy package rm tmp/netzkatze.mod tmp/netzkatze.mod.fc + /usr/sbin/semodule -i netzkatze.pp libsemanage.add_user: user sddm not in password file + sepolicy manpage -p . -d netzkatze_t ./netzkatze_selinux.8 + /sbin/restorecon -F -R -v /usr/local/sbin/netzkatze Relabeled /usr/local/sbin/netzkatze from unconfined_u:object_r:bin_t:s0 to system_u:object_r:netzkatze_exec_t:s0 + pwd + pwd=/root/selinux/modules/netzkatze + rpmbuild --define _sourcedir /root/selinux/modules/netzkatze --define _specdir /root/selinux/modules/netzkatze --define _builddir /root/selinux/modules/netzkatze --define _srcrpmdir /root/selinux/modules/netzkatze --define _rpmdir /root/selinux/modules/netzkatze --define _buildrootdir /root/selinux/modules/netzkatze/.build -ba netzkatze_selinux.spec ./netzkatze.sh: 52: rpmbuild: not found
Systemd-Dienst erstellen
- cat /lib/systemd/system/netzkatze.service
[Unit] Description=Simple Enforcement test [Service] Type=simple ExecStart=/usr/local/bin/netzkatze -lp 8888 StandardOutput=/tmp/netzkatze.log [Install] WantedBy=default.target
Temporäre Änderung des Kontexts
- chcon -u system_u -t systemd_unit_t /lib/systemd/system/netzkatze.service
Permanente Änderung des Kontexts
- semanage fcontext -a -t systemd_unit_t /lib/systemd/system/netzkatze.service
- restorecon -v netzkatze.service
Service starten
- systemctl enable –now netzkatze
- systemctl status netzkatze
Einschränkung überprüfen
- ps -eZ | grep netzkatze
system_u:system_r:netzkatze_t:s0 3598 ? 00:00:00 netzkatze
- ss -Zlt | grep netzkatze
LISTEN 0 1 0.0.0.0:9999 0.0.0.0:* users:(("netzkatze",pid=3598,proc_ctx=system_u:system_r:netzkatze_t:s0,fd=3))
Verstöße anzeigen
- ausearch -m AVC -ts recent
----
time->Wed Nov 23 11:18:23 2022
type=AVC msg=audit(1669198703.130:210): avc: denied { name_bind } for pid=3598 comm="netzkatze" src=9999 scontext=system_u:system_r:netzkatze_t:s0 tcontext=system_u:object_r:unreserved_port_t:s0 tclass=tcp_socket permissive=1
----
time->Wed Nov 23 11:18:23 2022
type=AVC msg=audit(1669198703.130:211): avc: denied { node_bind } for pid=3598 comm="netzkatze" src=9999 scontext=system_u:system_r:netzkatze_t:s0 tcontext=system_u:object_r:node_t:s0 tclass=tcp_socket permissive=1
----
time->Wed Nov 23 11:18:23 2022
type=AVC msg=audit(1669198703.130:212): avc: denied { listen } for pid=3598 comm="netzkatze" lport=9999 scontext=system_u:system_r:netzkatze_t:s0 tcontext=system_u:system_r:netzkatze_t:s0 tclass=tcp_socket permissive=1
----
time->Wed Nov 23 11:18:23 2022
type=AVC msg=audit(1669198703.130:213): avc: denied { accept } for pid=3598 comm="netzkatze" lport=9999 scontext=system_u:system_r:netzkatze_t:s0 tcontext=system_u:system_r:netzkatze_t:s0 tclass=tcp_socket permissive=1
Vorgeschlagene Änderungen
- ausearch -m AVC -ts recent | audit2allow -R