Leonardo Pinto <[EMAIL PROTECTED]> writes: > Só me resta uma curiosidade: Como a turma Apache, Bind, etc consegue abrir > portas privilegiadas com seus próprios usuários?! O nome desses usuários tem > "carta marcada" no kernel?! Ou a execução se dá como root, porém a cada > instrução é checado os privilégios nos respectivos acessos?
Eles não abrem com seus próprios usuários. Tente iniciar o Apache como um usuário sem privilégios e, a menos que haja algum SUID bit ajustado para o binário, você vai ter um erro. O que acontece em todo programa que é consciente da necessidade de segurança é a baixa de privilégios. Uma vez iniciado o servidor e conectada a porta privilegiada, iniciam-se processos com privilégios reduzidos que farão todo o serviço. Isso é extremamente comum. De qualquer maneira, há a manutenção de um processo com permissões de superusuário que será capaz de criar novos processos sob IDs distintos. Como você mesmo citou o Apache, eis o comportamento dele: 11:52 strongwill:~ # ps aux | grep htt root 24466 0.0 0.5 51188 2620 ? Ss Jun17 0:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf -DSSL wwwrun 24467 0.0 0.4 55320 2464 ? S Jun17 0:05 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf -DSSL wwwrun 24468 0.0 1.1 62188 6180 ? S Jun17 0:08 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf -DSSL wwwrun 24469 0.0 1.1 55580 5844 ? S Jun17 0:04 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf -DSSL wwwrun 24470 0.0 0.6 62132 3372 ? S Jun17 0:12 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf -DSSL wwwrun 24471 0.0 0.6 61008 3248 ? S Jun17 0:07 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf -DSSL wwwrun 24477 0.0 0.5 56100 2948 ? S Jun17 0:05 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf -DSSL wwwrun 24479 0.0 0.8 57196 4348 ? S Jun17 0:06 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf -DSSL wwwrun 25061 0.0 0.5 62144 2876 ? S Jun17 0:10 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf -DSSL wwwrun 25266 0.0 0.4 55432 2256 ? S Jun17 0:10 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf -DSSL wwwrun 27193 0.0 1.3 62932 6732 ? S Jun17 0:08 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf -DSSL 11:52 strongwill:~ # Verificar os privilégios a cada instrução é algo que não traria benefício nenhum e adicionaria uma carga extra, enquanto que baixar os privilégios sempre já faria com que as instruções rodassem sob uma menor autoridade no sistema. Há MUITA documentação para programar servidores de forma segura. Há MUITA coisa errada também... Mas creio que possas te basear em programas notadamente seguros para o teu projeto e para entender o código. Para um programa que roda sob várias identidades distintas e que permite a configuração de novos processos sugiro que dês uma olhada no Postfix. O Wietse Venema é um cara bastante preocupado com segurança e que possui uma boa experiência em projeto de software. -- Jorge Godoy <[EMAIL PROTECTED]> --------------------------------------------------------------------------- Esta lista é patrocinada pela Conectiva S.A. Visite http://www.conectiva.com.br Arquivo: http://bazar2.conectiva.com.br/mailman/listinfo/linux-br Regras de utilização da lista: http://linux-br.conectiva.com.br FAQ: http://www.zago.eti.br/menu.html
