Eigenes Profil erstellen Beispiel ncat: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| Zeile 1: | Zeile 1: | ||
| − | = | + | <span id="kopieren-der-netzkatze"></span> |
| − | + | = Kopieren der Netzkatze = | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | + | * cp /usr/bin/ncat /usr/local/bin/netzkatze | |
| − | |||
| − | |||
| − | |||
| − | + | <!-----> | |
| − | + | <span id="benutzerdefiniert-richtlinie-für-das-programm-netzkatze-generieren"></span> | |
| + | = 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 | ||
| + | <span id="einrichten-des-neuen-richtlinienmoduls-mithilfe-des-erzeugten-setup-skripts"></span> | ||
| + | = Einrichten des neuen Richtlinienmoduls mithilfe des erzeugten Setup-Skripts = | ||
| − | + | * ./netzkatze | |
| − | * | ||
| − | |||
| − | + | <!-----> | |
| − | + | Building and Loading Policy | |
| − | + | \+ make -f /usr/share/selinux/devel/Makefile netzkatze.pp | |
| − | + | Compiling default netzkatze module | |
| − | + | Creating default netzkatze.pp policy package | |
| − | system_u: | + | 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 | ||
| + | <span id="systemd-dienst-erstellen"></span> | ||
| + | = 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 | ||
| + | <span id="temporäre-änderung-des-kontexts"></span> | ||
| + | == Temporäre Änderung des Kontexts == | ||
| − | + | * chcon -u system_u -t systemd_unit_t /lib/systemd/system/netzkatze.service | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | = | + | <!-----> |
| − | + | <span id="permanente-änderung-des-kontexts"></span> | |
| − | + | == Permanente Änderung des Kontexts == | |
| − | |||
| − | |||
| − | + | * semanage fcontext -a -t systemd_unit_t /lib/systemd/system/netzkatze.service | |
| − | + | * restorecon -v netzkatze.service | |
| − | |||
| − | + | <!-----> | |
| − | + | <span id="service-starten"></span> | |
| + | == Service starten == | ||
| − | + | * systemctl enable –now netzkatze | |
| + | * systemctl status netzkatze | ||
| − | == | + | <!-----> |
| − | + | <span id="einschränkung-überprüfen"></span> | |
| + | = Einschränkung überprüfen = | ||
| − | + | * ps -eZ | grep netzkatze | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | *ps - | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | + | <!-----> | |
| − | + | 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)) | |
| + | <span id="verstöße-anzeigen"></span> | ||
| + | = 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 | ||
| + | <span id="vorgeschlagene-änderungen"></span> | ||
| + | = Vorgeschlagene Änderungen = | ||
| − | + | * ausearch -m AVC -ts recent | audit2allow -R | |
| − | * | ||
Version vom 23. November 2022, 10:25 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
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