[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[RFR] debian-doc://ddp/manuals.sgml/securing-howto/en/before-install.sgml



La versión del documento original en ingles es la 1.13, como pone
en la cabecera del documento.

Un saludo.

-- 
Manuel Parrilla Sánchez

Pon tu granito de arena en el wiki de Debian en español: ;-)
http://wiki.debian.org/FrontPageSpanish
<!-- CVS revision of original english document "1.13" -->

<chapt>Antes y durante la instalación


<sect id="bios-passwd">Elegir una contraseña para la BIOS
<p>
Antes de instalar cualquier sistema operativo en su ordenador, establezca la
contraseña de la BIOS. Tras la instalación (una vez que haya habilitado el
arranque desde el disco duro) debería volver a la BIOS y cambiar la secuencia de
arranque para deshabilitar el arranque desde la disquetera, la unidad de cdrom
o cualquier otro dispositivo desde el que no se debería arrancar. De otra forma
un cracker únicamente necesitará acceso físico y un disquete de arranque para
acceder a todo su sistema.

<p>Incluso mejor es deshabilitar el arranque a menos que se proporcione una
contraseña. Esto puede ser muy efectivo en un servidor, ya que no se rearranca
muy a menudo. El inconveniente de esta táctica es que el rearranque requiere
intervención humana, lo que puede causar problemas si no hay fácil  acceso a la
máquina.

<p>Nota: muchas BIOS tienen contraseñas maestras predeterminadas bien conocidas,
y también existen aplicaciones para recuperar las contraseñas de la
BIOS. Corolario: no confíe en esta medida para proteger el acceso por consola al
sistema.

<sect>Particionar el sistema

<sect1>Elegir un esquema de particiones inteligente
<p>
Un esquema de particiones inteligente depende del uso que vaya a tener la
máquina. Una buena regla general es ser bastante liberal con las particiones y
prestar atención a los siguientes factores:

<list>
<item>Cualquier árbol de directorios en el que un usuario tenga permisos de
escritura, tales como <file>/home</file>, <file>/tmp</file> y
<file>/var/tmp/</file>, deberían estar en una partición separada. Esto reduce el
riesgo de DoS (N. del T.: Denial of Service) de un usuario por llenado del punto
de montaje «/» y de dejar el sistema inutilizable (Nota: esto no es
estrictamente cierto, puesto que siempre hay algún espacio reservado para «root»
que un usuario normal no puede llenar), y también evita ataques basados en
enlaces duros. <footnote> En <url
id="http://www.hackinglinuxexposed.com/articles/20031111.html"; name="The
mysteriously persistently exploitable program (contest)"> y
<url id="http://www.hackinglinuxexposed.com/articles/20031214.html";
name="The mysteriously persistently exploitable program explained">, puede
encontrar un ejemplo muy bueno de esta clase de ataques utilizando /tmp
(observe que el incidente está relacionado con Debian). Básicamente es un ataque
en el que un usuario local oculta un programa vulnerable con permisos de
«setuid» mediante un enlace duro a dicho programa, evitando de manera efectiva
cualquier actualización (o eliminación) del propio binario hecha por el
administrador del sistema. Dpkg se corrigió recientemente para evitar esto (vea
<url id="http://bugs.debian.org/225692"; name="225692">) pero otros binarios con
permisos de «setuid» (no controlados por el gestor de paquetes) se encuentran en
riesgo si las particiones no están configuradas correctamente.
</footnote>
</item>

<item>Cualquier partición que pueda fluctuar, p. ej. <file>/var</file>
(especialmente <file>/var/log</file>) debería estar también en una partición
aparte. En un sistema Debian, debería crear <file>/var</file> un poco mayor que
en otros sistemas, porque los paquetes descargados (la caché de apt) se almacenan
en <file>/var/cache/apt/archives</file>.

<item>Cualquier partición en la que quiera instalar software que no pertenezca a
la distribución debería estar aparte. De acuerdo con la jerarquía estándar de
archivos, debería hacerse con <file>/opt</file> o <file>/usr/local</file>. Si
éstos están en particiones separadas, no se borrarán en caso de tener que
reinstalar Debian.

<item>Desde el punto de vista de la seguridad, cobra sentido intentar mover los
datos estáticos a su propia partición, y luego montar esa partición como de sólo
lectura. O mejor todavía, poner los datos en un medio de sólo lectura. Vea más
abajo para ampliar detalles.
</list>

<p>En el caso de un servidor de correo es importante tener una partición aparte
para el directorio del correo. Los usuarios remotos (bien de forma consciente o
inconsciente) pueden llenar el directorio del correo (<file>/var/mail</file> y/o
<file>/var/spool/mail</file>). Si el directorio está en una partición aparte,
esta situación no hará que el sistema quede inutilizable. En caso contrario (si
el directorio del correo está en la misma partición que <file>/var</file>) el
sistema podría tener importantes problemas: no se crearán entradas de registro,
no se instalarán paquetes, y algunos programas podrían incluso tener problemas
para arrancar (si utilizan <file>/var/run</file>).

<p>Además, para particiones en las que no pueda estar seguro de las necesidades
de espacio, puede instalar el gestor de volúmenes lógicos (N. del T., «Logical
Volume Manager» ó LVM) <package>lvm-common</package> y el paquete con los
binarios necesarios para su núcleo, éste podría ser bien
<package>lvm10</package>, <package>lvm6</package>, ó
<package>lvm5</package>. Utilizando <tt>lvm</tt>, usted puede crear un disco
virtual (llamado grupo de volúmenes) que puede extenderse a lo largo de varios
discos físicos.

<sect2>Seleccionar los sistemas de archivos apropiados

<p>Durante el particionamiento del sistema usted tiene que decidir qué sistema
de archivos quiere usar. El sistema de archivos predeterminado, seleccionado en
la instalación de Debian para las particiones de Linux, es <tt>ext2</tt>. Sin
embargo, se recomienda cambiar a un sistema de archivos transaccional, como
<tt>ext3</tt>, <tt>reiserfs</tt>, <tt>jfs</tt> ó <tt>xfs</tt>, para minimizar los
problemas derivados de una caída del sistema en los siguientes casos:

<list>

<item>para ordenadores portátiles en todos los sistemas de archivos
instalados. De esta forma, si se queda sin batería de forma inesperada o el
sistema «se cuelga» debido a un problema hardware (como puede ser la
configuración de las X, lo que es un tanto común), será menos probable perder
datos durante el reinicio del sistema.

<item>para las particiones de los sistemas de producción que almacenan una gran
cantidad de datos (como servidores de correo, servidores de ftp, sistemas de
archivo de red...). De esta forma, en el caso de una caída del sistema al
servidor le llevará menos tiempo recuperarse y comprobar el sistema de archivos,
y será menos probable la pérdida de datos.

</list>

<p>Dejando a un lado los temas de comportamiento relativos a los sistemas de
archivos transaccionales (puesto que esto puede algunas veces convertirse en una
guerra religiosa), por lo general es mejor utilizar el sistema de archivos
<tt>ext3</tt>. La razón para esto es que es compatible hacia atrás con
<tt>ext2</tt>, de forma que si hay algún problema con el transaccional usted
puede deshabilitarlo y tener todavía un sistema de archivos utilizable. Además,
si necesita recuperar el sistema con un disquete de arranque (ó CDROM), no
necesita un núcleo personalizado. Si el núcleo es 2.4, ya tiene disponible
soporte para <tt>ext3</tt>, si es un núcleo 2.2 usted podrá iniciar el sistema
de archivos incluso si pierde las capacidades transaccionales. Si está
utilizando otros sistemas de archivos transaccionales, encontrará que podría no
ser capaz de recuperar el sistema a menos que tenga un núcleo 2.4 con los
módulos necesarios incorporados. Si usted mantiene un núcleo 2.2 en el disco de
rescate, podría ser más difícil aún el acceso a <tt>reiserfs</tt> ó <tt>xfs</tt>.

<p>En cualquier caso, la integridad de los datos podría estar mejor bajo
<tt>ext3</tt> puesto que éste hace transacciones de datos, mientras que otros
hacen únicamente transacciones de metadatos, vea <url
id="http://lwn.net/2001/0802/a/ext3-modes.php3";>.

<sect>No se conecte a Internet hasta que no esté preparado

<p>No debería conectarse a Internet de forma inmediata durante la
instalación. Esto puede sonar como algo estúpido, pero la instalación por la
red es un método común. Puesto que el sistema instalará y activará servicios de
forma inmediata, si está conectado a Internet y los servicios no están
configurados de forma apropiada, el sistema está abierto a un ataque.

<p>Observe también que algunos servicios podrían tener vulnerabilidades de
seguridad no corregidas, en los paquetes que esté utilizando para la
instalación. Esto es normalmente cierto si usted está realizando la instalación
desde un medio antiguo (como CD-ROMs). En este caso, ¡el sistema podría estar
comprometido incluso antes de terminar la instalación!

<p>Como la instalación y las actualizaciones de Debian pueden hacerse por
Internet, podría usted pensar que es una buena idea utilizar esta característica
en la instalación. Si el sistema se va a conectar directamente a Internet (sin
la protección de un cortafuegos o NAT), es mejor instalar sin conexión a
Internet, utilizando una réplica local de los paquetes tanto para las fuentes de
Debian como para las actualizaciones de seguridad. Puede configurar las réplicas
de paquetes, utilizando otro sistema conectado a Internet con herramientas
específicas de Debian (si es un sistema Debian) como <package>apt-move</package> ó
<package>apt-proxy</package>, u otras herramientas de replicación comunes, para
proporcionar el archivo al sistema instalado. Si no puede hacer esto, puede
configurar reglas de cortafuego para limitar el acceso al sistema mientras hace
la actualización (vea <ref id="fw-security-update">).

<sect>Establecer una contraseña para «root»
<p>
Establecer una buena contraseña para «root» es el requerimiento más básico para
tener un sistema seguro. Vea <manref section="1" name="passwd"> para obtener
algunos consejos sobre cómo crear buenas contraseñas. Puede utilizar también un
programa de generación automática de contraseñas (vea <ref id="user-pwgen">).

<p>
En Internet puede encontrar mucha información sobre cómo elegir buenas
contraseñas; dos sitios que proporcionan un resumen aceptable y razonado son
<url name="How to: Pick a Safe Password"
id="http://wolfram.org/writing/howto/password.html";> de Eric Wolfram y <url
name="Unix Password Security"
id="http://www.ja.net/CERT/Belgers/UNIX-password-security.html";> de Walter
Belgers.

<sect>Activar contraseñas ocultas y contraseñas MD5
<p>
Al final de la instalación se le preguntará si quiere habilitar contraseñas
ocultas (N. del T., shadow passwords). Si contesta que sí a esta cuestión, las
contraseñas se guardarán en el archivo <file>/etc/shadow</file>. Únicamente el
superusuario y el grupo «shadow» tienen acceso de lectura a este archivo,
por tanto ningún usuario podrá copiar, ni apoderarse de este archivo para
ejecutar contra él algún programa para «reventar» contraseñas. Puede alternar
entre contraseñas ocultas y contraseñas normales en cualquier momento utilizando
<tt>shadowconfig</tt>.

<p>Lea más sobre contraseñas ocultas en
<url
name="Shadow Password"
id="http://www.tldp.org/HOWTO/Shadow-Password-HOWTO.html";>
(<file>/usr/share/doc/HOWTO/en-txt/Shadow-Password.txt.gz</file>).

<p>Además, la instalación utiliza de forma predeterminada contraseñas cifradas
con MD5. Generalmente es muy buena idea puesto que permite contraseñas más
largas y un mejor cifrado. MD5 permite contraseñas de más de 8 caracteres. Esto,
si se usa con prudencia, puede dificultar a los atacantes averiguar las
contraseñas del sistema mediante el método de «fuerza-bruta». Con respecto a las
contraseñas MD5, ésta es la opción predeterminada cuando se instale el paquete
más actual de <package>passwd</package>. Puede reconocer las contraseñas MD5 en
el archivo <file>/etc/shadow</file> por su prefijo $1$.

<p>Esto, en realidad, modifica todos los archivos bajo <file>/etc/pam.d</file>
mediante la sustitución de la línea de «password» y la inclusión de md5 en ella:
<example>
      password required pam_unix.so md5 nullok obscure min=6 max=16
</example>
<p>Si <tt>max</tt> no se establece como mayor que 8 los cambios no serán útiles
en absoluto. Para más información sobre esto lea <ref id="auth-pam">.

<p>Nota: la configuración predeterminada de Debian, incluso si se activan las
contraseñas MD5, no modifica el valor de <tt>max</tt> establecido previamente.

<sect>Ejecute el mínimo número de servicios requeridos

<p>Los servicios son programas como los servidores de ftp y los servidores de
web. Puesto que éstos tienen que estar <em>escuchando</em> las conexiones
entrantes para detectar solicitudes de servicio, ordenadores externos pueden
conectarse a los suyos. Los servicios son algunas veces vulnerables
(p. ejem. pueden resultar comprometidos por un ataque determinado) y presentan
por tanto un riesgo para la seguridad.

<p>No debería instalar servicios que su máquina no necesite. Cada servicio
instalado podría introducir nuevos, quizás no obvios (o conocidos), agujeros de
seguridad en su ordenador.

<p>Como quizás ya sepa, cuando instala un servicio dado el comportamiento
predeterminado es activarlo. En una instalación Debian por omisión, sin
servicios instalados, el número de servicios en ejecución es bastante bajo y el
número de servicios orientados a red es aún menor. En una instalación estándar
de Debian 3.1 por omisión, usted terminará con OpenSSH, Exim (dependiendo de cómo
lo configuró) y RPC Portmapper como servicios de red disponibles<footnote>La
huella en Debian 3.0 y versiones anteriores no era tan fuerte, puesto que se
habilitaban de forma predeterminada algunos servicios de
<prgn>inetd</prgn>. Además, las instalaciones estándar de Debian 2.2 instalaban
el servidor de NFS así como el servidor de telnet</footnote>. Si no realizó una
instalación estándar, sino que seleccionó una instalación experta, puede
terminar sin servicios de red activos. El RPC portmapper se instala por omisión
porque es necesario para que muchos servicios, por ejemplo NFS, se ejecuten en un
sistema dado. Sin embargo, puede quitarse fácilmente, vea <ref id="rpc"> para
obtener más información sobre cómo proteger o deshabilitar los servicios de RPC.

<p>Cuando instala un nuevo servicio relacionado con la red (demonio) en su
sistema Debian GNU/Linux, puede habilitarlo de dos formas: por medio del
superdemonio <prgn>inetd</prgn> (esto es, añadiendo una línea a
<file>/etc/inetd.conf</file>) o por medio de un programa autónomo que enlace con
sus interfaces de red. Los programas autónomos se controlan a través de los
archivos de <file>/etc/init.d</file>, los cuales son llamados durante el arranque
por medio de los mecanismos de SysV (o un alternativo) utilizando enlaces
simbólicos en <file>/etc/rc?.d/*</file> (para más información sobre cómo se hace
esto, lea <file>/usr/share/doc/sysvinit/README.runlevels.gz</file>).

<p>Si quiere mantener algunos servicios que usa en contadas ocasiones, utilice
las órdenes de actualización, p. ejem. <prgn>update-inetd</prgn> y
<prgn>update-rc.d</prgn>, para eliminarlos del proceso de arranque. Para obtener
más información sobre cómo deshabilitar servicios de red, lea <ref
id="disableserv">. Si quiere cambiar el comportamiento predeterminado del
arranque de servicios en la instalación de sus paquetes asociados<footnote>Esto
es deseable si está configurando un chroot de desarrollo</footnote> utilice
<prgn>policy-rc.d</prgn>, por favor lea
<file>/usr/share/doc/sysv-rcREADME.policy-rc.d.gz</file> para obtener más
información.

<sect1 id="disableserv">Deshabilitar servicios

<p>Deshabilitar un servicio es muy sencillo. O bien elimina el paquete que
proporciona el programa para dicho servicio, o elimina o cambia el nombre a los
enlaces de arranque en <file>/etc/rc${runlevel}.d/</file>. Si les cambia el
nombre asegúrese de que no comiencen con «S» para que no sean iniciados por
<prgn>/etc/init.d/rc</prgn>. No elimine todos los enlaces disponibles o el
sistema de gestión de paquetes los regenerará en las actualizaciones de los
paquetes, asegúrese de que deja al menos un enlace (típicamente un enlace que
comienza con K, que quiere decir matar, N. del T.: kill en inglés).

<p>Usted puede eliminar estos enlaces manualmente o utilizar
<tt>update-rc.d</tt> (vea <manref section="8" name="update-rc.d">). Por ejemplo
puede deshabilitar un servicio de los niveles de ejecución de multiusuario
mediante:

<example>
  update-rc.d stop <var>XX</var> 2 3 4 5 .
</example>

<p>Donde <em>XX</em> es un número que determinará cuándo se ejecutará la acción
de parada de ese servicio. Por favor observe que, si <em>no</em> utiliza
<package>file-rc</package>, <tt>update-rc.d -f <var>service</var> remove</tt> no
funcionará correctamente, puesto que se eliminarán <em>todos</em> los enlaces, y
éstos se regenerarán con la reinstalación o actualización del paquete (que
probablemente no sea lo que desea). Si piensa que esto no es intuitivo,
probablemente tenga razón (vea <url id="http://bugs.debian.org/67095"; name="Bug
67095">). De la página del manual:

<example>
  Si alguno de los archivos /etc/rcrunlevel.d/[SK]??nombre ya existe, entonces
  update-rc.d no hará nada. Esto es así para que el administrador del sistema
  pueda reorganizar los enlaces, y siempre que deje al menos un enlace sin
  eliminar, su configuración no se sobreescribirá.
</example>

<p>Si utiliza <package>file-rc</package> toda la información relativa al
arranque de servicios se manipula por un archivo de configuración común y se
mantiene incluso si los paquetes se eliminan del sistema.

<p>Puede utilizar TUI (Text User Interface. N. del T.: interfaz de usuario en
modo texto), proporcionado por <package>sysv-rc-conf</package>, para realizar
fácilmente todos estos cambios (<prgn>sysv-rc-conf</prgn> funciona tanto para
<package>file-rc</package> como para los normales niveles de ejecución de System
V). También encontrará GUIs (N. del T., interfaz de usuario en modo gráfico)
similares para sistemas de escritorio.

<p>Otros métodos (no recomendados) de deshabilitar servicios son:

<list>

<item>cambiarle el nombre al «script»
<file>/etc/init.d/<var>service_name</var></file> (por ejemplo
<file>/etc/init.d/OFF.<var>service_name</var></file>) o eliminarlo. Esto dejará
en <file>/etc/rc${runlevel}.d/</file> enlaces simbólicos apuntando a «scripts» que
no existen , lo que generará mensajes de error durante el arranque.

<item>quitarle los permisos de ejecución al archivo
<file>/etc/init.d/<var>service_name</var></file>. Esto también generará mensajes
de error durante el arranque.

<item>editar el «script» <file>/etc/init.d/<var>service_name</var></file> para que
se detenga inmediatamente al ejecutarse (añadiendo al principio una línea con
<prgn>exit 0</prgn> o comentando las líneas de <tt>start-stop-daemon</tt>).

</list>

<p>No obstante los archivos de <file>/etc/init.d</file> son archivos de
configuración y no deberían sobreescribirse durante la actualización de paquetes
si usted ha hecho cambios locales en ellos.

<p>A diferencia de otros sistemas operativos (UNIX), los servicios en Debian no
pueden deshabilitarse mediante la modificación de los archivos en
<file>/etc/default/<var>service_name</var></file>.

<p>ARRÉGLEME: Añada más información sobre la manipulación de demonios utilizando
file-rc

<sect1 id="inetd">Deshabilitar <prgn>inetd</prgn> o sus servicios
<p>
Debería comprobar si realmente necesita actualmente el demonio
<prgn>inetd</prgn>. Inetd era siempre una forma de compensar las deficiencias
del núcleo, pero estas han sido cuidadas en los modernos núcleos de
Linux. Existen posibilidades de Denegación de Servicio (N. del T.: Denial of
Service) contra <prgn>inetd</prgn> (lo que puede incrementar enormemente la carga
de la máquina), y mucha gente prefiere utilizar siempre demonios autónomos en
lugar de llamar servicios por medio de <prgn>inetd</prgn>. Si todavía quiere
ejecutar alguna clase de servicio de <prgn>inetd</prgn>, entonces cambie al
menos a un demonio de Inet más configurable como <prgn>xinetd</prgn>,
<prgn>rlinetd</prgn> o <prgn>openbsd-inetd</prgn>.
<p>
Debería detener todos los servicios de Inetd innecesarios en su sistema, como
<prgn>echo</prgn>, <prgn>chargen</prgn>, <prgn>discard</prgn>,
<prgn>daytime</prgn>, <prgn>time</prgn>, <prgn>talk</prgn>, <prgn>ntalk</prgn>
y r-servicios (<prgn>rsh</prgn>, <prgn>rlogin</prgn> y <prgn>rcp</prgn>) que son
considerados ALTAMENTE inseguros (utilice en su lugar <prgn>ssh</prgn>).

<p>Puede deshabilitar servicios editando directamente
<file>/etc/inetd.conf</file>, pero Debian proporciona una mejor alternativa:
<tt>update-inetd</tt> (que comenta los servicios en una forma que hace fácil
volver a activarlos). Podría detener el demonio de <prgn>telnet</prgn> mediante
la ejecución de estos comandos para cambiar el archivo de configuración y
volver a arrancar el demonio (en este caso el servicio de <prgn>telnet</prgn>
está deshabilitado):

<example>
  /usr/sbin/update-inetd --disable telnet
</example>
<!-- # No es necesario /etc/init.d/inetd restart puesto que la página del manual
dice que update-inetd envía una señal de SIGHUP, comentado como sugerencia de
Dariusz Puchalak -->

<p>Si quiere tener servicios escuchando, pero no quiere tenerlos escuchando en
todas las direcciones IP de su ordenador principal, podría querer utilizar una
característica no documentada de <prgn>inetd</prgn> (remplazar el nombre del
servicio por la sintaxis servicio@ip) o utilizar un demonio alternativo como
<prgn>xinetd</prgn>.

<sect>Instalar la cantidad mínima de software necesaria

<p>Debian viene con <em>gran cantidad</em> de software, por ejemplo la versión
Debian 3.0 <em>woody</em> incluye 6 o 7 (dependiendo de la arquitectura) CD-ROMs
de software y miles de paquetes, y la versión Debian 3.1 <em>sarge</em> viene
con unos 13 CD-ROMs de software. Con tanto software, e incluso si se instala un
sistema base bastante reducido
<footnote>Por ejemplo, en Debian woody es de unos 400-500 Mbs, pruebe esto:
<example>
  $ 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
  47762
</example>
</footnote>
podría dejarse llevar e instalar más de lo que realmente necesita su sistema.

<p>Puesto que ya sabe para lo que es su sistema (¿o no?) únicamente debería
instalar el software necesario para realizar ese trabajo. Cualquier herramienta
innecesaria instalada podría ser utilizada por un usuario que quiera comprometer
el sistema o por un intruso externo que haya conseguido acceder al intérprete de
órdenes (o ejecución de código remoto a través de un servicio explotable).

<p>La presencia, por ejemplo, de utilidades de desarrollo (un compilador de C) o
lenguajes interpretados (tales como <prgn>perl</prgn> - pero mire más abajo -,
<prgn>python</prgn>, <prgn>tcl</prgn>...) podría ayudar a un atacante a
comprometer el sistema aún más:

<list>
<item>permitir incrementar los privilegios. ¡Es más fácil, por ejemplo,
ejecutar código malicioso en el sistema si hay un depurador y un compilador
preparados para compilarlo y probarlo!

<item>proporcionar herramientas que podrían ayudar al atacante a utilizar el
sistema comprometido como una <em>base de ataques</em> contra otros sistemas
<footnote>
Muchas intrusiones se hacen con el único propósito de acceder a recursos para
realizar actividades ilegítimas (ataques de denegación de servicio, envío masivo
de correo, servidores de ftp malintencionados, contaminación de dns...) en lugar
de hacerlo para obtener datos confidenciales del sistema comprometido.
</footnote>

</list>

<p>Por supuesto, un intruso con acceso local al intérprete de órdenes puede
descargar su propio conjunto de herramientas y ejecutarlas, e incluso puede
utilizar el intérprete de órdenes para construir programas complejos. Eliminar el
software innecesario no ayudará a <em>evitar</em> el problema, pero al atacante
le resultará ligeramente más complicado proceder (y alguno podría abandonar en
esta situación, buscando objetivos más fáciles). Así, si deja herramientas en un
sistema de producción que pudieran ser utilizadas para atacar sistemas de forma
remota (véase <ref id="vuln-asses">) puede esperar que un intruso las utilice si
están disponibles.

<p>Por favor, observe que una instalación predeterminada de Debian
<em>sarge</em> (una instalación sin seleccionar paquetes individuales) instalará
un número de paquetes de desarrollo que no se necesitarán habitualmente. Esto es
debido a que algunos paquetes de desarrollo son de prioridad
<em>Estándar</em>. Si no va a realizar desarrollos puede eliminar los siguientes
paquetes de su sistema de forma segura, lo que le ayudará también a liberar
algo de espacio:

<example>
Paquete                   Tamaño
------------------------+--------
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 (Nota: paquete virtual)
linux-kernel-headers    1,377,022
bin86                      82,090
cpp                        29,446
gcc                         4,896 (Nota: paquete virtual)
g++-3.3                 1,778,880
bison                     702,830
make                      366,138
libstdc++5-3.3-dev        774,982
</example>

<p>Esto es algo que probablemente se corrija en versiones posteriores a sarge,
véase <url id="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=301273";
name="Bug #301273"> y
<url id="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=301138"; name="Bug
#301138"> para revisar el estado actual del tema. Debido a un error en el
sistema de instalación esto no ocurría al instalar la versión Debian 3.0
<em>woody</em>.

<sect1>Eliminar Perl

<p>Tiene que tener en cuenta que eliminar <prgn>perl</prgn> podría no ser
demasiado sencillo (de hacho puede ser bastante difícil) en un sistema Debian
puesto que lo utilizan muchas utilidades del sistema. Además, el paquete
<package>perl-base</package> es de <em>Prioridad: requerido</em> (lo que ya lo
dice todo). Aún así puede hacerse, pero no podrá ejecutar ninguna aplicación
<prgn>perl</prgn> en el sistema; también tendrá que engañar al sistema de
gestión de paquetes para que crea que <package>perl-base</package> está
instalado aunque no lo esté realmente. <footnote>Puede construir (en otro
sistema) un paquete falso con <package>equivs</package>
</footnote>

<p>¿Qué utilidades usan <prgn>perl</prgn>? Puede verlo usted mismo:

<example>
  $ for i in /bin/* /sbin/* /usr/bin/* /usr/sbin/*; do [ -f $i ] && {
  type=`file $i | grep -il perl`; [ -n "$type" ] && echo $i; }; done
</example>

Entre ellas están las siguientes utilidades contenidas en paquetes con prioridad
<em>requerido</em> o <em>importante</em>:

<list>
<item><file>/usr/bin/chkdupexe</file> del paquete
<package>util-linux</package>.

<item><file>/usr/bin/replay</file> del paquete
<package>bsdutils</package>.

<item><file>/usr/sbin/cleanup-info</file> del paquete
<package>dpkg</package>.

<item><file>/usr/sbin/dpkg-divert</file> del paquete
<package>dpkg</package>.

<item><file>/usr/sbin/dpkg-statoverride</file> del paquete
<package>dpkg</package>.

<item><file>/usr/sbin/install-info</file> del paquete
<package>dpkg</package>.

<item><file>/usr/sbin/update-alternatives</file> del paquete
<package>dpkg</package>.

<item><file>/usr/sbin/update-rc.d</file> del paquete
<package>sysvinit</package>.

<item><file>/usr/bin/grog</file> del paquete
<package>groff-base</package>.

<item><file>/usr/sbin/adduser</file> del paquete
<package>adduser</package>.

<item><file>/usr/sbin/debconf-show</file> del paquete
<package>debconf</package>.

<item><file>/usr/sbin/deluser</file> del paquete
<package>adduser</package>.

<item><file>/usr/sbin/dpkg-preconfigure</file> del paquete
<package>debconf</package>.

<item><file>/usr/sbin/dpkg-reconfigure</file> del paquete
<package>debconf</package>.

<item><file>/usr/sbin/exigrep</file> del paquete
<package>exim</package>.

<item><file>/usr/sbin/eximconfig</file> del paquete
<package>exim</package>.

<item><file>/usr/sbin/eximstats</file> del paquete
<package>exim</package>.

<item><file>/usr/sbin/exim-upgrade-to-r3</file> del paquete
<package>exim</package>.

<item><file>/usr/sbin/exiqsumm</file> del paquete
<package>exim</package>.

<item><file>/usr/sbin/keytab-lilo</file> del paquete
<package>lilo</package>.

<item><file>/usr/sbin/liloconfig</file> del paquete
<package>lilo</package>.

<item><file>/usr/sbin/lilo_find_mbr</file> del paquete
<package>lilo</package>.

<item><file>/usr/sbin/syslogd-listfiles</file> del paquete
<package>sysklogd</package>.

<item><file>/usr/sbin/syslog-facility</file> del paquete
<package>sysklogd</package>.

<item><file>/usr/sbin/update-inetd</file> del paquete
<package>netbase</package>.

</list>

<p>Así, sin Perl y, a menos que rehaga estas utilidades en «scripts», no podrá
probablemente gestionar paquetes (por tanto no podrá actualizar el sistema, lo
cual <em>no es Bueno</em>).

<p>Si está decidido a eliminar Perl del sistema base Debian, y tiene tiempo
libre, remita informes de errores para los paquetes anteriores incluyendo (como
un parche) las sustituciones en forma de «scripts» para dichas utilidades.

<p>Si desea comprobar qué paquetes de Debian dependen de Perl pude utilizar

<example>
$ grep-available -s Package,Priority -F Depends perl
</example>

<sect>Lea las listas de correo de seguridad de Debian

<p>Nunca está de más echar un vistazo a la lista de correo
debian-security-announce, donde el equipo de seguridad de Debian anuncia los
avisos y reparaciones para los paquetes publicados, o a la lista <url
id="mailto:debian-security@lists.debian.org";>, donde puede participar en
discusiones sobre asuntos relacionados con la seguridad en Debian.

<p>Con objeto de recibir alertas sobre actualizaciones de seguridad importantes,
envíe un correo a <url name="debian-security-announce-request@lists.debian.org"
id="mailto:debian-security-announce-request@lists.debian.org";> con la palabra
"subscribe" en el asunto. También puede suscribirse a esta lista de correo
moderada a través de la página web <url
name="http://www.debian.org/MailingLists/subscribe";
id="http://www.debian.org/MailingLists/subscribe";>

<p>Esta lista de correo tiene un volumen de mensajes muy bajo, y al suscribirse
comenzará inmediatamente a recibir alertas de actualizaciones de seguridad para
la distribución Debian. Esto le permitirá descargarse rápidamente nuevos
paquetes con los errores de seguridad reparados, lo que es muy importante para
mantener un sistema seguro. (Vea <ref id="security-update"> para obtener
detalles sobre cómo hacer esto.)

Reply to: