Páginas

lunes, 26 de abril de 2010

Sudo

Otorgar privilegios extendidos
El comando sudo permite asignar el derecho a ejecutar comandos de administrador a uno o varios usuarios y en una o varias máquinas. Para que un usuario pueda ejecutar un comando que sólo puede ejecutar root, se añade un derecho sudo a este usuario para este comando.

El fichero de configuración /etc/sudoers se edita con el comando visudo, además comprueba la sintaxis del fichero antes de guardarlo.

La sintaxis es la siguiente:

user maquina = (cuenta_user_ejecuta_comando) comando

De manera que para
autorizar al usuario gentoo a ejecutar el comando tune2fs y sus parámetros con derechos root sobre cualquier máquina (donde esté presente esta regla):

gentoo ALL = /sbin/tune2fs

 Se pide la contraseña del usuario y prosigue. La lista de los derechos del usuario se obtiene:

gentoo@syslinux:~$ sudo -l
[sudo] password for gentoo:
User gentoo may run the following commands on this host:
    (root) /sbin/tune2fs

Los mensajes de sudo se transmiten a syslog que puede dirigirlos a un fichero, por ejemplo, /var/log/messages. El registro de destino se puede determinar mediante syslog.conf.

Es posible crear:

  • grupos de usuarios
  • grupos de máquinas
  • grupos de comandos
  • obligar o no el uso de password
  • forzar la ejecución de un comando a usuario distinto de root.
El nombre de los grupos es alias

Alias de usuarios:
Usar_Alias    ADMIN = gentoo, slack

Si la totalidad de administradores deben poder usar el comando tune2fs:
ADMIN      ALL = /sbin/tune2fs

Si los administradores pueden ejecutar sólo en determinadas máquinas utilice el alias de máquinas:
Host_Alias SERVLINUX = syslinux, xena

Se convierte en:
ADMIN      SERVERLINUX = /sbin/tune2fs

Existe la posibilidad de agregar varios comandos con o sín parámetros, por ejemplo, si los ADMIN además pueden ejecutar el comando /sbin/fdisk quedaría como sigue:
ADMIN       SERVERLINUX = /sbin/tune2fs, /sbin/fdisk

Se pueden crear alias de comandos de manera que faciliten la utilización:
Cmnd_Alias   CMDADMIN=/sbin/tune2fs, /sbin/fdisk

Siguiendo con nuestro ejemplo, la línea sudo quedaría:
ADMIN      SERVERLINUX=CMDADMIN

Evitar la introducción del password de uno o varios usuario(s) pasa por utilizar NOPASSWD, así los usuarios del alias ADMIN están exonerados de introducir contraseña para utilizar los comandos del alias CMDADMIN:

ADMIN       SERVERLINUX=NOPASSWD:   CMDADMIN

Obligar al uso de una contraseña también es posible con PASSWD:
ADMIN      SERVERLINUX=NOPASSWD:    CMDADMIN,  \ PASSWD:/sbin/fdisk

A los usuarios del grupo ADMIN podrán iniciar un comando con la identidad de otro usuario distinto de root colocando el alias entre paréntesis:
ADMIN      ALL=(sonia)  PASSWD: /sbin/service

Los usuarios del grupo ADMIN podrán ejecutar el comando /sbin/service. Como condición tendrán que introducir la contraseña de sonia:
gentoo@syslinux:~$ sudo -u sonia /sbin/services

Puede precisar varios usuarios o crear alias:
Runas_Alias       USERLIST=gentoo,sonia

Quedaría asi:
ADMIN      ALL=(USERLIST)    PASSWD: /sbin/service

El alias ALL define conjunto de usuarios, máquinas, comandos, dependiendo del lugar donde esté escrito.

A los usuarios del grupo ADMIN les está permitido ejecutar todos los comandos, en todas las máquinas sin introducir contraseña.
:
ADMIN      ALL=NOPASSWD:    ALL

Para excluir determinados usuarios, comandos, máquinas, de un alias o lista se utiliza el signo de exclamación:
ADMIN       SERVERLINUX=NOPASSWD:   ALL,  !/sbin/fdisk,   PASSWD:/sbin/tune2fs

La línea anterior da a los ADMIN todos los derechos sobre todos los programas sin contraseña excepto /sbin/tune2fs que requier contraseña y /sbin/fdisk que está prohibido.


Linux es genial.

miércoles, 21 de abril de 2010

Comando cpio


cpio es el nombre de una utilidad binaria creada inicialmente para el almacenamiento de copias de seguridad en cintas magnéticas de forma contigua. Hace una copia de seguridad sobre la salida standard de los
ficheros cuyos nombres están insertados en la entrada standard, por tanto, es posible utilizar las redirecciones. No comprime los archivos.
  • -o output creación de la copia de seguiridad en salida
  • -L copia los archivos y no los vínculos simbólicos.
  • -v información detallada
  • -c copia atributos de los ficheros en forma ASCII para el intercambio entre varios Sistemas operativos.
Archivar y comprimir el  directorio xtecat:
gentoo ~ $ find xtecat -print | cpio -ocv | gzip > xtecat.cpio.gz
xtecat
xtecat/net-win
xtecat/netcat.txt
xtecat/traceroute
xtecat/192.168.1.1
xtecat/xtecat
xtecat/nudge.txt
xtecat/whois.txt
xtecat/nmap
xtecat/xte

la sintaxis para listar:

cpio -it nombrearchivo

 -i lectura del archivo en entrada
 -t lista el contenido del archivo

gentoo ~ $ cat xtecat.cpio.gz | gzip -cd | cpio -it
xtecat
xtecat/net-win
xtecat/netcat.txt
xtecat/traceroute
xtecat/192.168.1.1
xtecat/xtecat
xtecat/nudge.txt
xtecat/whois.txt
xtecat/nmap
xtecat/xtecports
37 blocks

La sintaxis general para restaurar:

cpio -i[umd]
  • -u restauración incondicional, borra los ficheros existentes. No se restauran los ficheros si los que están presentes en el disco tienen como fecha de última modificación la misma o posterior.
  • -m los ficheros restaurados conservan su última ficha de modificación 
  • -d cpio reconstruye el árbol de directorios y subdirectorios que faltan.
gentoo ~ $ cat xtecat.cpio.gz | gzip -cd | cpio -iuvd
xtecat
xtecat/net-win
xtecat/netcat.txt
xtecat/traceroute
xtecat/192.168.1.1
xtecat/xtecat
xtecat/nudge.txt
xtecat/whois.txt
xtecat/nmap
xtecat/xtecports
37 blocks

Linux es genial.

Comando tar

La utilidad tar para archivar.
Tar crea archivos de los ficheros, incluida su estructura, en cualquier tipo de soporte, incluido en otro fichero con extensión .tar. El archivo así creado puede extenderse a varios volúmenes. Su sintaxis es:
tar cvf archivo.tar fichero(s)

gentoo ~ $ tar cvf xtecat.tar xtecat/
xtecat/
xtecat/net-win
xtecat/netcat.txt
xtecat/traceroute
xtecat/192.168.1.1
xtecat/xtecat
xtecat/nudge.txt
xtecat/whois.txt
xtecat/nmap
xtecat/xtecports
  • -c creacion de archivo
  • -v muestra lo que hace
  • -f el siguiente parámetro es el nombre del archivo
gentoo ~ $ ls -l xtecat.tar
-rw-r--r-- 1 gentoo users 30720 abr 21 10:00 xtecat.tar

Listar el contenido el archivo creado con anterioridad:

gentoo ~ $ tar tvf xtecat.tar
drwxr-xr-x gentoo/users      0 2010-02-09 14:42 xtecat/
-rw-r--r-- gentoo/users    245 2010-02-02 23:01 xtecat/net-win
-rw-r--r-- gentoo/users   1934 2010-02-02 22:38 xtecat/netcat.txt
-rw-r--r-- gentoo/users   2726 2010-02-01 06:04 xtecat/traceroute
-rw-r--r-- gentoo/users    172 2010-02-09 14:42 xtecat/192.168.1.1
-rw-r--r-- gentoo/users   2931 2010-02-01 05:30 xtecat/xtecat
-rw-r--r-- gentoo/users     15 2010-02-02 22:36 xtecat/nudge.txt
-rw-r--r-- gentoo/users   4241 2010-02-09 13:02 xtecat/whois.txt
-rw-r--r-- gentoo/users   5159 2010-02-02 22:48 xtecat/nmap
-rw-r--r-- gentoo/users    481 2010-02-09 14:39 xtecat/xtecports

Restaurar el contenido del archivo anterior:
gentoo ~ $ tar xvf xtecat.tar
xtecat/
xtecat/net-win
xtecat/netcat.txt
xtecat/traceroute
xtecat/192.168.1.1
xtecat/xtecat
xtecat/nudge.txt
xtecat/whois.txt
xtecat/nmap
xtecat/xtecports

Tar permite gestionar los formatos de compresión directamente
  • z - comprime el archivo al formato gzip
  • Z - comprime el archivo al formato compress
  • j - comprime el archivo al formato bzip2
Para el formato de compresión gzip, siguiendo con el ejemplo anterior:
gentoo ~ $ tar cvzf xtecat.tar.gz xtecat/
xtecat/
xtecat/net-win
xtecat/netcat.txt
xtecat/traceroute
xtecat/192.168.1.1
xtecat/xtecat
xtecat/nudge.txt
xtecat/whois.txt
xtecat/nmap
xtecat/xtecports

gentoo ~ $ ls -l xtecat.tar*
-rw-r--r-- 1 gentoo users 30720 abr 21 10:00 xtecat.tar
-rw-r--r-- 1 gentoo users  7008 abr 21 11:19 xtecat.tar.gz

Pueden utilizarse las opciones de compresión con c, t, x. En caso de un soporte que gestiona por sí mismo la compresión es preferible no especificar una opción de compresión.

Si desea guardar compatibilidad con los parámetros por defecto de tar o si comprime su archivo para destinarlo a otros sistemas, puede utilizar:

gentoo ~ $ gzip -cd xtecat.tar.gz | tar xvf -

El - final indica a tar que debe recuperar el flujo por la entrada standar. El parámetro -d le dice a gzip que debe descomprimir el fichero y -c pasa el resultado por la salida standar.

Linux es genial.

jueves, 15 de abril de 2010

Encabezamientos ARP

El parámetro dinámico del núcleo arp_announce permite modificar los encabezamientos ARP en función de la dirección de destino del paquete. Una máquina que disponga de varias tarjetas de red, el valor por defecto no es el más idoneo ya que Linux puede contestar con la dirección de una tarjeta cualquiera. La tarjeta tiene que contestar con una dirección de la misma subred que la de destino.

Parámetros del núcleo que se ven involucrados:

xena@2.6.31-gentoo-r6 # sysctl -a | grep arp_announce

net.ipv4.conf.all.arp_announce = 1
net.ipv4.conf.default.arp_announce = 0
net.ipv4.conf.lo.arp_announce = 0
net.ipv4.conf.eth0.arp_announce = 0
net.ipv4.conf.wmaster0.arp_announce = 0
net.ipv4.conf.wlan0.arp_announce = 0

Modificar de manera dinámica para el conjunto de adaptadores el valor arp_announce  a 1 utilizando el parámetro -w:

xena@2.6.31-gentoo-r6 # sysctl -w net.ipv4.conf.all.arp_announce=1

Hacer esta modificación definitiva pasa por modificar el fichero /etc/sysctl.conf y cargarlo de nuevo:

xena@2.6.31-gentoo-r6 # vim /etc/sysctl.config

Añadir:
net.ipv4.conf.all.arp_announce = 1

Guardar y cargar los nuevos valores:

xena@2.6.31-gentoo-r6 # sysctl -p

net.ipv4.conf.default.rp_filter = 1
net.ipv4.ip_forward = 0
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.all.arp_announce = 1
vm.swappiness = 10

Linux es Genial.