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:
- d home
- m mueve ficheros desde el home anterior
- l cambia el nombre del usuario
- u cambiar el uid del usuario, pero no de los ficheros
- 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
- g GID
- 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
- m help
- m sha-512
- S salto
- 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.
