Nomenclatura de los usuarios en linux: igual que las variables, con un maximo de 32 caracteres, en la practica con _ y . como caracteres de puntuacion. Se puede usar $ como ultimo carácter. Useradd no permite mayusculas.

Grupos: control de acceso a ficheros y directorios, y al hardware

Grupo por defecto fuera de /etc/group

Archivo /etc/group menciona los grupos a los que pertenecemos, y que podemos cambiar con newgrp Por ejemplo, tenemos una carpeta que tiene permiso para cierto grupo, y pertenecemos a ese grupo, tendremos que acceder a ella /etc/group: Grupo:password:GID:listadeusuariosmiembros

Comando groups, id, whoami

Funcionamiento de newgrp en ubuntu, y funcionamiento estandar

/home/secreto /home/secretolpic

Lpic102 sausmanager Lpic lunes Lpicnadie domingo

EJERCICIO: Crear un archivo que solo pueda leer el grupo lpic102, y este dentro de una carpeta que solo pueda acceder el grupo lpic

Creacion de usuarios: Uid de sistema 0-100 (ubuntu hasta 200, ver passwd) Uid de usuarios (desde 1000 → windows desde 500, algunas distribuciones tambien) Primer uid, suele ser administrador (miembro del grupo)

Caracteristicas especificas de una distribucion → /etc/login.defs

Es posible que muchos usuarios tengan el mismo uid, y se comportan igual Uid 0

Caso excepcional “rut” user con uid 0, para ciertas,ejem, necesidades hackeriles

Ver caso de “usuario” y los grupos en los que se asignó

Numero de usuarios permitido 4.2 billones americanos ;) en un 2.4.x

Creacion de usuarios: Useradd “usuario” (y ya esta …) -d home directory -g grupo por defecto -G lista exhaustiva de grupos -s shell -u uid de usuario especifico -o “override”, permite que uid este duplicado (es necesario para evitar duplicados accidentales) -k skeleton -e Y-M-D expiracion -p contraseña … ejem

Como contrapartida en ubuntu y otros, adduser (ver file de ambos)

(ejemplo de duplicado despues de hacer el ejemplo de grupo)

/usr/bin/passwd -l lock (!)) -u unlock (cuenta deshabilitada por defecto) -d borra contraseña (ojo, esto no deja la cuenta “sin contraseña”) Teoricamente, se podria forzar, pero … (-f) -S informacion acerca de las distintas fechas asociadas con las contraseñas Formato: (shadow) Pedro NP 10/30/2016 0 99999 7 -1 Np NP,sin contraseña, P con contraseña, L locked 10/30/2016 Ultimo cambio de contraseña 0 Minimo de dias entre cambios de contraseña 99999 Maximo de dias entre cambios de contraseña 7 Dias de aviso antes de que caduque la contraseña -1 Dias que dura la cuenta desde que pasa del maximo sin cambiar la contraseña

Cambiar la contraseña: Root → sobreescribe User → pide contraseña actual primero Caracteres validos: letras, numeros, signos de puntuacion. Arroba y dólar suelen fallar.

Usermod:

  1. d home
  2. m mueve ficheros desde el home anterior
  3. l cambia el nombre del usuario
  4. u cambiar el uid del usuario, pero no de los ficheros
  5. o “override”, obligado para repetir uid

Crear usuario , crear un segundo usuario (mayusculas? Por ejemplo) Crear un fichero en /tmp/ Cambiarle los permisos para que solo lo pueda leer el propietario Emplear usermod para cambiar el uid del segundo usuario al primer usuario Iniciar sesion con el segundo usuario de nuevo e intentar leer su archivo

Chage -l listar informacion de contraseña -m dias entre cambios (minimo) -M dias entre cambios (maximo) -w dias de preaviso -I dias desde expiracion hasta desactivacion

/etc/passwd Formato del fichero: Username:password:UID:GID:comentario:HOME:shell

Username → nombre del usuario Password → x o ! O nada UID GID Comentario: nombre, telefono, direccion HOME → directorio home del usuario Shell → /bin/bash, /usr/bin/passwd, /bin/false, /sbin/shutdown (rsh shutdown -t now)

/etc/shadow:

Username:password:ultimo cambio passwd:minimo dias cambio passwd:dias hasta cambio obligatorio:dias de aviso antes fecha limite: dias antes de desactivacion tras tope:expiracion(caducidad)

Username→ obvio Password: crypted

1- Md5
5- Sha-256
6- Sha-512

El resto, en dias desde 1-1-1970 (numero magico …) Ojo, en consolas de texto nada mas En blanco, no se usa, o -1 o 0, según el caso

Userdel: -r incluye borrar los archivos

Groupadd: grupo

  1. g GID
  2. o override

Groupmod: grupo

Cambiar el GID o el nombre
-g GID
-n nuevo nombre
-o override

Gpasswd: -r borra el password de un grupo -A añade un administrador de un grupo -M lista exhaustiva de usuarios de un grupo -R desactiva newgrp para ese grupo (lo bloquea con !)

/etc/gshadow Nombredelgrupo:password:adminsitradores:miembros

Si figura aquí, no es necesario que introduzca la contraseña. Igual que si figurase en /etc/group

$(mkpasswd –method=sha-512 –password-fd=0 )

Fuente: https://www.enmimaquinafunciona.com/pregunta/1433/useradd-no-encriptar-contrasenas-en-etcshadow

Mkpasswd

  1. m help
  2. m sha-512
  3. S salto
  4. s Entrada estandar (no getpasswd)

Cambiar la seguridad (7algorimo) de encriptacion de las contraseñas del sistema, con un ejemplo #Set stronger password hasing /usr/sbin/authconfig –test | grep sha512 > /dev/null if [ $? -ne 0 ]; then echo “Configuring sha512 password hashing” sudo /usr/sbin/authconfig –enableshadow –passalgo=sha512 –updateall fi

Fuente: https://www.enmimaquinafunciona.com/pregunta/515/como-crear-una-contrasena-hash-sha-512-para-sombra

Desde <https://www.enmimaquinafunciona.com/pregunta/515/como-crear-una-contrasena-hash-sha-512-para-sombra>

Syslogd

Tradicionalmente, syslogd y klogd, actualemente rsyslogd /etc/syslog.conf

Descripcion: Facility.priority Action

Facilities: Auth,authpriv,cron,daemon,kern,lpr,mail,mark,news,security,syslog,user,uucp,local0-17 Demonios de ciertos servicios especificos: cron,mail,kern Demonios (servidores) generic: daemon Auth: security Mark: para uso interno de syslog (cuando pasa un tiempo sin mensajes, por ejemplo) Se pueden poner varias seguidas separasdas por comas

(mail,news.info /var/log/info)

Priority:

Debug, info, notice, warning, warn, error,err, crit, alert, emerg,panic

Realmente:

Debug, info, notice, warning, err, crit, alert, emerg

Ya que error, warn y panic ya estan en extincion (deprecated)

• (asterisco) comodin

Mail.* /var/log/mail.log

• `;' (punto y coma) Es posible dirigir los mensajes de varios servicios y prioridades a un mismo destino, separándolos por este carácter: # Guardamos los mensajes de prioridad “info” y “notice” # en el archivo /var/log/messages *.info;*.notice /var/log/messages

• `=' (igual) De este modo solo se almacenan los mensajes con la prioridad exacta especificada y no incluyendo las superiores: # Guardar todos los mensajes criticos en /var/adm/critical # *.=crit /var/adm/critical • • `!' (exclamación) Preceder el campo de prioridad con un signo de exclamación sirve para ignorar todas las prioridades, teniendo la posibilidad de escoger entre la especificada (!=prioridad) y la especificada más todas las superiores (!prioridad). Cuando se usan conjuntamente los caracteres `=' y `!', el signo de exclamación `!' debe preceder obligatoriamente al signo igual `=', de esta forma: !=. # Guardar mensajes del kernel de prioridad info, pero no de # prioridad err y superiores # Guardar mensajes de mail excepto los de prioridad info kern.info;kern.!err /var/adm/kernel-info mail.*;mail.!=info /var/adm/mail

Desde <http://www.ibiblio.org/pub/Linux/docs/LuCaS/Manuales-LuCAS/SEGUNIX/unixsec-2.1-html/node86.html>

.= priority, lee estos y no los superiores ni inferiores .!priority, no lee estos (errata del roderick ???)

Action:

*.err;kern.notice;auth.notice /dev/console *.err;kern.debug;daemon.notice;mail.crit /var/adm/messages *.alert;kern.err;daemon.err operator *.alert root *.emerg *

Desde <http://www.ibiblio.org/pub/Linux/docs/LuCaS/Manuales-LuCAS/SEGUNIX/unixsec-2.1-html/node86.html>

Signo - si queremos que no se escriba y se sincronice inmediatamente el disco /dev/tty12, /dev/console, /dev/sysmsg

Desde <http://serverfault.com/questions/392299/syslog-written-on-console>

@@hostname Marcos (usuario del sistema, pero solo si esta conectado fisicamente en consola)

Logger -p facility.priority mensaje

/etc/rsyslog.conf /etc/rsyslog.d/50-default.conf

auth,authpriv.* /var/log/auth.log *.*;auth,authpriv.none -/var/log/syslog #cron.* /var/log/cron.log #daemon.* -/var/log/daemon.log kern.* -/var/log/kern.log #lpr.* -/var/log/lpr.log mail.* -/var/log/mail.log #user.* -/var/log/user.log

/var/log/syslog Suele contener informacion relacionada con la seguridad de la maquina y el funcionamiento de los dispositivos

/var/log/messages Datos informativos, de baja prioridad, de arranque, etc

/var/log/wtmp Binario, ultimas conexiones de la maquina (who, last)

/var/log/utmp Binario, usuarios conectados

/var/log/lastlog Ultima conexión (lastlog)

/var/log/faillog Faillog - password erroneo … mmmm

http://www.ibiblio.org/pub/Linux/docs/LuCaS/Manuales-LuCAS/SEGUNIX/unixsec-2.1-html/node92.html (errata . Usa comando last) Ver man last, ver man who

Explicar comando netcat con opcion -l

Ejercicio por parejas: pipe netcat, y luego log cruzado (se puede probar iniciando sesion)

Rsyslog configuracion para remoto:

$ModLoad imudp $UDPServerRun 514

Desde <http://proyectosbeta.net/2012/07/configurar-rsyslog-en-debian-squeeze/>

$template FILENAME,“/var/log/%fromhost-ip%/syslog.log”

# Log all messages to the dynamically formed file. Now each clients log (192.168.1.2, 192.168.1.3,etc…), will be u$ *.* ?FILENAME

Desde <http://proyectosbeta.net/2012/07/configurar-rsyslog-en-debian-squeeze/>

El fichero debe existir El fichero debe poder ser escrito por el usuario … que lo intenta escribir, syslog.adm

Logger:

-s ademas de logear en syslog, tambien en stderr -f logea el contenido de un fichero -p facility.priority -t un taq para anotar en el fichero en lugar de logger

Logrotate: (se puede comprobar que lo llamabamos en el crontab) Opciones: Daily, weekly, monthly Rotate # (numero de ficheros a mantener) Create (para crear de nuevo el fichero para seguir registrando) Create file permisos propietario grupo nombredefichero Compress (los anteriores registros) Include /etc/logrotate.d/

/var/log/wtmp {

Monthly
Create 0664 root wtmp
Rotate 1 (es decir, un archivo)

}

Otras opciones: Dateext → en lugar de .1, .2 . Fecha Compresscmd bzip2 #kMG, rotar al llegar a ese tamaño, en lugar del tiempo. Esto tambien influye cuando se ejecuta el logrotate, claro Mail correo@local.com → cada vez que se rota un archivo, enviar un correo electronico. Prerotate Comandos Endrotate

Postrotate Comandos Endrotate

Ver archivos de logs:

cat Less, more Vi Nano Head Tail Tail -f

Grep, grep -v (ejemplo de filtrado recursivo de un log)

nsswitch, hosts; tcp wrappers, host allow. comando find /-perm, -type, -name, -exec, -print ulimit?

Whois → paquete whois, que integra mkpasswd. Dominios .com, los .es tienen que estar explicitamente autorizados.