Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Siema, będę stawiał VPS-a z Gentoo w wersji hardened z selinuksem. Mam dwa pytania:
1) Czy lepiej takie usługi jak nginx, postfix dovecot bezpośrednio postawić na serwerze czy je pochować w kontenerach LXC?
2) Czy ma znaczenie czy będzie w kontenerach obraz Gentoo hardened bez selinuxa czy zwykły?
Offline
Profil eselect powinien być hardened, chociaż z SELinuxem będziesz miał pewnie niezłe jazdy.
Ja bym raczej poszedł w Apparmora niż Selinuxa, AA jest łatwiejszy do ogarnięcia jednoosobowo.
Jak sensownie ogarniesz ACL jak Apparmor czy Selinux, to już nie ma wielkiego sensu pchać się w kontenery typu LXC czy Docker.
Przy okazji, domyślnie Nginx i inne demony wstają jako root a potem dopiero formalnie zrzucają uprawnienia na usera systemowego.
Nie zawsze im się to udaje prawidłowo, co było już przyczyną katastrofalnych błędów Nginxa czy nawet Mysqla.
Lepiej odpalać demony sieciowe na prawach użytkownika docelowego, a w ACL całkowicie wywalić uprawnienia SUID/SGID dla tych demonów.
Np tak można odpalić Nginxa od razu na koncie usera przez daemontools:
### cat /service/nginx/run #!/bin/sh exec 2>&1 export TZ='Europe/Warsaw' NGINX="/usr/sbin/nginx" test -d /var/run/nginx || mkdir -p /var/run/nginx; chown nginx:nginx /var/run/nginx; getcap $NGINX | grep cap_net_bind_service 2>&1>/dev/null || setcap cap_net_bind_service+ep $NGINX exec /usr/bin/setuidgid nginx $NGINX -c /etc/nginx/nginx.conf -g 'daemon off;'
Czy działa?
# root ~> svstat /service/nginx /service/nginx: up (pid 3137) 1026 seconds
Czy działa:
# root ~> lsof -i :443 | grep LISTEN nginx 717 nginx 39u IPv4 17581 0t0 TCP *:https (LISTEN) nginx 717 nginx 40u IPv6 17582 0t0 TCP *:https (LISTEN) nginx 3137 nginx 39u IPv4 17581 0t0 TCP *:https (LISTEN) nginx 3137 nginx 40u IPv6 17582 0t0 TCP *:https (LISTEN)
Oczywiście i nigdy ani przez sekundę nie pracował na koncie root.
Pomysł wziął się z Apacha:
https://cwiki.apache.org/confluence/display/httpd/NonRootPortBinding
PS:
Do kontroli zasobów używanych przez demony sieciowe zainteresuj się mechanizmem cgroup.
Pozdro
Ostatnio edytowany przez Jacekalex (2021-10-12 23:21:39)
Offline
Jeszcze mam takie pytanie, czy mogę śmiało używać selinuksa na lapku w połączeniu z xorgiem? Nie będzie to się gryzło?
Offline
Próbować z SELinuxem możesz choć wielkiego sukcesu Ci z SELinuxem nie wróżę.
SELinux to zabawka biznesowa, mająca wykazać wielki profesjonalizm RedHata,
ma bardzo wyraźną przewagę złożoności i trudności nad finalnym rezultatem.
Do developerki SELinuxa trzeba mieć kilka osób, a liczba błędów w politykach SElinuxa w Gen2 powoduje, że jednoosobowo możesz stracić na to zbyt dużo czasu.
Dlatego poza RED-Hat/CentOS/SUSE nie widuję Selinuxa w użyciu,
Android też go używa, ale tam jego polityki są opracowywane przez legion developerów i hakerów.
IMHO łatwiejszy do ogarnięcia i finalnie skuteczniejszy z tego powodu jest Apparmor.
Ostatnio edytowany przez Jacekalex (2021-10-18 17:16:13)
Offline
A właśnie, czy domyślna instalacja OpenBSD z porządnie ogarniętym ssh nie hasła tylko pubkey auth itd. nie oferuje podobnego poziomu bezpieczeństwa co gentoo hardened z selinuxem? Czy mogę śmiało instalować na openie takie rzeczy jak uwsgi, postgresql i mieć dalej bezpieczny system? Chodzi mi o to, czy paczki w repo opena są patchowane przez devów jeśli chodzi o security fixes tak jak w debianie czy po prostu biorą najnowsze wersje i tyle?
Offline
Jeszcze mam drugie pytanie, co sądzisz o projekcie https://www.rsbac.org/? Czy to dobra alternatywa dla selinuksa?
Ostatnio edytowany przez doskanoness (2021-10-18 18:02:02)
Offline