Product SiteDocumentation Site

3.6. Instale o mínimo de software necessário

O Debian vem com uma grande quantidade de software, por exemplo o Debian 3.0 woody inclui quase 6 CD-ROMs de software e milhares de pacotes. Apesar da grande quantidade de software, a instalação do sistema base utiliza poucos pacotes. [6] você pode estar mal informado e instalar mais que o realmente necessário para seu sistema.
Sabendo o que seu sistema realmente precisa, você deve instalar apenas o que for realmente necessário para seu trabalho. Qualquer ferramenta desnecessária pode ser usada por um usuário malicioso para comprometer o sistema ou por um invasor externo que tenha acesso ao shell (ou código remoto através de serviços exploráveis).
A presença, por exemplo, de utilitários de desenvolvimento (um compilador C) ou linguagens interpretadas (como perl, python, tcl...) pode ajudar um atacante a comprometer o sistema da seguinte maneira:
É claro que um invasor com acesso ao shell local pode baixar suas próprias ferramentas e executá-las, além disso o próprio shell pode ser usado para fazer complexos programas. Remover software desnecessário não impedirá o problema mas dificultará a ação de um possível atacante. Então, se você deixar disponíveis ferramentas em um sistema de produção que poderiam ser usadas remotamente para um ataque (veja Seção 8.1, “Ferramentas de verificação remota de vulnerabilidades”), pode acontecer de um invasor usá-las.
Please notice that a default installation of Debian sarge (i.e. an installation where no individual packages are selected) will install a number of development packages that are not usually needed. This is because some development packages are of Standard priority. If you are not going to do any development you can safely remove the following packages from your system, which will also help free up some space:
Package                    Size
------------------------+--------
gdb                     2,766,822
gcc-3.3                 1,570,284
dpkg-dev                  166,800
libc6-dev               2,531,564
cpp-3.3                 1,391,346
manpages-dev            1,081,408
flex                      257,678
g++                         1,384 (Note: virtual package)
linux-kernel-headers    1,377,022
bin86                      82,090
cpp                        29,446
gcc                         4,896 (Note: virtual package)
g++-3.3                 1,778,880
bison                     702,830
make                      366,138
libstdc++5-3.3-dev        774,982
This is something that is fixed in releases post-sarge, see http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=301273 and http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=301138. Due to a bug in the installation system this did not happen when installing with the installation system of the Debian 3.0 woody release.

3.6.1. Removendo Perl

Remover o perl pode não ser fácil em um sistema Debian pois ele é muito usado. O pacote perl-base tem prioridade classificada como requerida (Priority: required), o que já diz tudo. Você pode removê-lo mas não será capaz de rodar qualquer aplicação perl no sistema; você ainda terá que enganar o sistema de gerenciamento de pacotes para ele pensar que o perl-base ainda está instalado. [8]
Quais utilitários usam perl? Você mesmo pode verificar:
  $ for i in /bin/* /sbin/* /usr/bin/* /usr/sbin/*; do [ -f $i ] && {
  type=`file $i | grep -il perl`; [ -n "$type" ] && echo $i; }; done
Estes incluem os seguintes utilitários em pacotes com prioridade required ou important:
  • /usr/bin/chkdupexe do pacote util-linux.
  • /usr/bin/replay of package bsdutils.
  • /usr/sbin/cleanup-info do pacote dpkg.
  • /usr/sbin/dpkg-divert do pacote dpkg.
  • /usr/sbin/dpkg-statoverride do pacote dpkg.
  • /usr/sbin/install-info do pacote dpkg.
  • /usr/sbin/update-alternatives do pacote dpkg.
  • /usr/sbin/update-rc.d do pacote sysvinit.
  • /usr/bin/grog of package groff-base.
  • /usr/sbin/adduser of package adduser.
  • /usr/sbin/debconf-show do pacote debconf.
  • /usr/sbin/deluser of package adduser.
  • /usr/sbin/dpkg-preconfigure do pacote debconf.
  • /usr/sbin/dpkg-reconfigure do pacote debconf.
  • /usr/sbin/exigrep of package exim.
  • /usr/sbin/eximconfig of package exim.
  • /usr/sbin/eximstats of package exim.
  • /usr/sbin/exim-upgrade-to-r3 do pacote exim.
  • /usr/sbin/exiqsumm of package exim.
  • /usr/sbin/keytab-lilo do pacote lilo.
  • /usr/sbin/liloconfig of package lilo.
  • /usr/sbin/lilo_find_mbr do pacote lilo.
  • /usr/sbin/syslogd-listfiles do pacote sysklogd.
  • /usr/sbin/syslog-facility do pacote sysklogd.
  • /usr/sbin/update-inetd do pacote netbase.
Assim, sem Perl e, a menos que você recompile estes utilitários em um script shell, você provavelmente não será capaz de gerenciar nenhum pacote (assim você também não será capaza de atualizar o sistema, o que não é uma coisa boa).
Se você está determinado a remover o Perl do Debian e tem tempo de sobra, envie os relatórios de bugs referentes aos pacotes acima referidos incluindo possíveis substituições para os utilitários escritas em shell.
If you wish to check out which Debian packages depend on Perl you can use
$ grep-available -s Package,Priority -F Depends perl
or
$ apt-cache rdepends perl


[6] Por exemplo, no Debian Woody ela gira em torno de 40Mbs, tente isto para ver quanto os pacotes necessários ocupam no sistema:
 $ size=0 $ for i in `grep -A 1 -B 1 "^Section: base" /var/lib/dpkg/available | grep -A 2 "^Priority: required" |grep "^Installed-Size" |cut -d : -f 2 `; do size=$(($size+$i)); done $ echo $size 34234
[7] Muitas invasões são feitas mais para acessar os recursos e executar atividades ilícitas (ataques denial of service, spam, rogue ftp servers, poluição dns...) do que para obter dados confidenciais dos sistemas comprometidos.
[8] Você pode fazer (em outro sistema) um pacote dummy com o equivs