PDA

Ver la versión completa : Opciones de seguridad en Linux a travXs de /proc (I)



Giskard
25-11-2002, 00:57
-----BEGIN PGP SIGNED MESSAGE-----

-------------------------------------------------------------------
Hispasec - una-al-día 24/11/2002
Todos los días una noticia de seguridad www.hispasec.com
-------------------------------------------------------------------

Opciones de seguridad en Linux a través de /proc (I)
----------------------------------------------------

Diversos parámetros de seguridad de las máquinas que ejecuten Linux
pueden ser controlados a través del sistema de archivos virtual /proc.

/proc es un pseudo-sistema de archivos, ya que en realidad ni él ni
ninguno de los archivos y directorios contenidos en su interior existen
realmente. /proc nos facilita una interfaz para acceder y, en algunos
casos, modificar, algunas estructuras de datos del núcleo del sistema
operativo.

/proc está disponible en el sistema operativo Linux cuando el núcleo se
ha compilado con la opción CONFIG_PROC_FS=Y. También deberemos
seleccionar la opción CONFIG_SYSCTL=Y para poder modificar el valor de
determinados parámetros, como veremos más adelante. La mayoría de
distribuciones incluyen núcleos compilados con esta opción y, como regla
general, es aconsejable seleccionarla en el momento de recompilar el
núcleo.

El sistema de archivos /proc puede montarse automáticamente en el
momento de iniciar el sistema (si así se indica en el archivo
/etc/fstab). En el caso de que sea necesario montarlo manualmente, debe
utilizarse la siguiente orden:

mount -t proc proc /proc

Es aconsejable que /proc sea montado automáticamente al sistema y que el
núcleo siempre se compile para dar soporte a este pseudo- sistema de
archivos. En caso de no disponer del soporte, muchos programas de
utilidad no funcionarán y no podremos modificar en tiempo de ejecución
algunos parámetros del núcleo del sistema operativo. Muchos de estos
parámetros que nos pueden interesar modificar son muy importantes desde
el punto de vista de seguridad.


Contenido de /proc

Dentro del directorio /proc encontramos dos tipos básicos de
información. En primer lugar, para cada proceso activo existe un
directorio. Dentro del directorio de cada proceso hay diversos archivos
así como un subdirectorio con información específica del proceso
(parámetros pasado en la línea de órdenes, enlace al directorio actual
del proceso, las variables de entorno dentro del contexto del proceso,
los descriptores de los archivos abiertos en el proceso, mapa e
información acerca de la utilización de la memoria...).

Adicionalmente, existen una serie de directorios con información acerca
de los diferentes módulos del sistema operativo. En el archivo proc.txt
(disponible en el directorio Documentation/filesystems del código fuente
del núcleo de Linux) hay información detallada de todo lo que podemos
encontrar dentro de /proc. Otro documento de interés es ip-sysctl.txt,
disponible en el directorio Documentation/networking del código fuente
del núcleo de Linux.

No todos los parámetros existentes en /proc son modificables
directamente por el usuario. De hecho, la mayoría son valores de sólo
lectura y otros son mucho mejor controlados por el núcleo o mediante la
utilización de los diversos mandatos y herramientas existentes en el
sistema.


/proc/sys/net/ipv4

Dentro de este directorio disponemos de una serie de archivos con los
valores y parámetros para el protocolo IPv4. Se trata de los valores
directamente utilizados por el núcleo del sistema operativo en las
comunicaciones TCP/IP basadas en el protocolo IPv4.

Para determinar el valor de uno de estos parámetros lo único que tenemos
que hacer es mirar su contenido. Por ejemplo:

$cat /proc/sys/net/ipv4/icmp_echo_ignore_all
0

nos muestra que actualmente el sistema operativo tiene asignado el valor
0 (desactivado) al parámetro ICMP_ECHO_IGNORE_ALL.

El usuario root del sistema tiene el privilegio de modificar el valor de
estas variables:

# echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
# cat /proc/sys/net/ipv4/icmp_echo_ignore_all
1

Otra forma de configurar los valores es utilizando la utilidad sysctl.
Utilizando el ejemplo anterior, para determinar el valor debemos
utilizar:

$ sysctl net.ipv4.icmp_echo_ignore_all
net.ipv4.icmp_echo_ignore_all = 0

y para establecer el valor:

# sysctl -w net.ipv4.icmp_echo_ignore_all=1
net.ipv4.icmp_echo_ignore_all = 0

Ambas formas son equivalentes y podemos utilizar aquella con la que nos
encontremos más cómodos.

Una última forma de modificar los valores de los parámetros, de forma
que estos se mantengan incluso después de reiniciar el sistema es a
través del archivo /etc/sysctl.conf. Podemos obtener más detalles del
formato de este archivo ejecutando

man systcl.conf

Si se modifica el archivo /etc/sysctl.conf, los parámetros sólo se
activarán la próxima vez que se reinicie la máquina o bien después de
reiniciar el soporte de red, ejectuando

/etc/rc.d/init.d/network restart

Opina sobre esta noticia:
http://www.hispasec.com/unaaldiacom.asp?id=1491

Más información

The /proc filesystem
Archivo incluido en el directorio Documentation/filesystems del
código fuente del núcleo de Linux
http://test.bb-zone.com/Talks/Proc-Talk/
Versión parcialmente traducida en
http://ulises.adi.uam.es/LuCAS/NuLies/web/2.2/Documentation/proc.txt

Network Security with /proc/sys/net/ipv4
http://www.linuxsecurity.com/articles/network_security_article-4528.html

Exploring the /proc/net Directory
http://linux.oreillynet.com/pub/a/linux/2000/11/16/LinuxAdmin.html

Exploring the Linux /proc filesystem
http://www.freeos.com/articles/2879/

The Official Red Hat Linux Security Guide
http://www.redhat.com/docs/manuals/linux/RHL-8.0-Manual/pdf/rhl-sg-en-80.pdf


Xavier Caballé
[email protected]


Tal día como hoy:
-----------------

24/11/2001: Vulnerabilidad en el procesador de archivos asf de Windows Media Player
http://www.hispasec.com/unaaldia.asp?id=1126

24/11/2000: El gusano "Sonic", capaz de actualizar su código
http://www.hispasec.com/unaaldia.asp?id=761

24/11/1999: Corregida la vulnerabilidad en Lettera
http://www.hispasec.com/unaaldia.asp?id=393

24/11/1998: Netscape también permite leer ficheros
http://www.hispasec.com/unaaldia.asp?id=28


-------------------------------------------------------------------
Llave pública PGP en www.hispasec.com/claves/NoticiasHispasec.asc
-------------------------------------------------------------------
(c) Hispasec, 2002 www.hispasec.com/copyright.asp
-------------------------------------------------------------------


-----BEGIN PGP SIGNATURE-----
Version: PGP 6.5.2

iQCVAwUBPeE1qetaAupcB1VZAQEWqgQAiGHIJo9sj28MP96bwf WJaHb0Di24091y
UF5Ziz/AJtqmzPpHkM3COKMNsMp0/gLZcWr4H9vcmYKHvErm+MhgxJ8r63i8iM2W
R3s/z1631fr9LW15vzZ5pqQVlnvgDEzQYF3KBQdyTmy3A5vmMUJNah/5J7aipLc2
/vBPvkUULWk=
=unV2
-----END PGP SIGNATURE-----

judas666
16-12-2002, 14:58
Es muy util evitar el acceso al sistema del usuario "root" como tal. Es decir, q con la contraseña del root nadie pueda hacer nada si no tiene, además, la d un user :)
Para evitar el login fisico (es decir, en la propia maquina), hay q editar el archivo /etc/securetty, y para evitar el acceso por SSH, hay q incluir la linea "PermitRootLogin No" en /etc/ssh/sshd_config (debian)

...pq las pequeñas cosas, tb son importantes!