Para deshabilitar los servicios diferentes servicios no utilizados en AIX en servidores productivos es necesario editar los siguientes archivos:
/etc/inittab
Desbabilitar con un : al inicio de la línea lo siguiente:
:rcnfs:23456789:wait:/etc/rc.nfs > /dev/console 2>&1 # Start NFS Daemons :qdaemon:23456789:wait:/usr/bin/startsrc -sqdaemon :writesrv:23456789:wait:/usr/bin/startsrc -swritesrv :piobe:2:wait:/usr/lib/lpd/pioinit_cp >/dev/null 2>&1 # pb cleanup
/etc/rc.tcpip
Deshabilitar las siguientes líneas:
#start /usr/lib/sendmail "$src_running" "-bd -q${qpi}" #start /usr/sbin/snmpd "$src_running" #start /usr/sbin/hostmibd "$src_running" #start /usr/sbin/snmpmibd "$src_running" #start /usr/sbin/aixmibd "$src_running" #start /usr/sbin/muxatmd "$src_running"
/etc/inetd.conf
Deshabilitar los siguientes líneas
#ftp stream tcp6 nowait root /usr/sbin/ftpd ftpd #telnet stream tcp6 nowait root /usr/sbin/telnetd telnetd -a #shell stream tcp6 nowait root /usr/sbin/rshd rshd #login stream tcp6 nowait root /usr/sbin/rlogind rlogind #exec stream tcp6 nowait root /usr/sbin/rexecd rexecd #ntalk dgram udp wait root /usr/sbin/talkd talkd #time stream tcp nowait root internal #echo dgram udp wait root internal #daytime dgram udp wait root internal #time dgram udp wait root internal #xmquery dgram udp wait root /usr/bin/xmtopas xmtopas -p3 #wsmserver stream tcp nowait root /usr/websm/bin/wsmserver wsmserver -start
Editar archivo /etc/security/user con los siguientes valores:
default: admin = false login = true su = true daemon = true rlogin = true sugroups = ALL admgroups = ttys = ALL auth1 = SYSTEM auth2 = NONE tpath = nosak umask = 022 expires = 0 SYSTEM = "compat" logintimes = pwdwarntime = 10 account_locked = false loginretries = 3 histexpire = 4 histsize = 8 minage = 4 maxage = 4 maxexpired = -1 minalpha = 4 minother = 2 minlen = 6 mindiff = 3 maxrepeats = 3 dictionlist = pwdchecks =
default: admin = false # Define el estado administrativo de un usuario login = true # su = true # Permite ejecutar la orden 'su' para cambiar su identidad a la del usuario en cuya stanza se ha definido la directiva daemon = true # rlogin = true # Acceso vi telnet o rlogin sugroups = ALL # Define los grupos cuyos miembros pueden (o que no pueden, si precedemos su nombre por el símbolo `!') acceder mediante la orden su a una cuenta determinada admgroups = # Grupos (separados por comas) de los que el usuario es administrador ttys = ALL # Terminales desde las que puede entrar. auth1 = SYSTEM # Metodo de autenticacion primario (SYSTEM=login,password) auth2 = NONE # Metodo de autenticacion secundario (NONE= no exite autenticacion) tpath = nosak # umask = 022 # Mascara expires = 0 # Fecha de expiracion SYSTEM = "compat" # logintimes = # Horas y dias en las que puede entrar. pwdwarntime = 0 # Numero de dias de antelacion para avisar al usuario antes de obligarlo a cambiar de contraseña. account_locked = false # Indica si una cuenta esta o no bloqueada. loginretries = 0 # Numero de intentos fallidos antes de bloquear la cuenta histexpire = 0 # Semanas en las que no se puede utilzar una contraseña anterior. histsize = 8 # Numero de contraseñas antiguas que no pueden reutilizarse. minage = 0 # Minimo de semanas de vigencia de una contraseña. (0=no hay caducidad, a 52=un año) maxage = 0 # Máximo de semanas de vigencia de una contraseña. (0=no hay caducidad, a 52=un año) maxexpired = -1 # Semanas de acceso al sistem para cambiar la contraseña antes de ser bloqueado(0=no hay caducidad, a 52=un año) minalpha = 4 # Mínimo de caracteres alfabéticos minother = 2 # Mínimo de caracteres no-alfabéticos minlen = 6 # Mínimo de caracteres de una contraseña mindiff = 3 # Mínimo de caracteres nuevos a usar en la nueva contraseña que no hayan sido utilizados en la contraseña anterior. maxrepeats = 3 # Máximo de repeticiones de un caracter en la contraseña. dictionlist = # pwdchecks = # minloweralpha = 0 minupperalpha = 0 mindigit = 0 minspecialchar = 0 dictionlist = default_roles =
account_locked | Una directiva básica almacenada en /etc/security/user es account_locked, que evidentemente indica si una cuenta está bloqueada o no lo está; es una variable booleana, por lo que sus posibles valores son sencillamente true o false (o equivalentemente, yes y always o no y never). Aunque es muy similar a esta, la directiva login (también booleana) no es exactamente igual: si su valor es false o equivalente el usuario no puede acceder al sistema, pero su cuenta no está bloqueada, ya que es posible llegar a ella mediante su. Otra restricción de acceso para un usuario viene determinada por rlogin, que define si un usuario puede acceder al sistema de forma remota a través de telnet o rlogin (otros métodos de acceso, como SSH, no son controlados por esta directiva). |
loginretries | Una entrada de /etc/security/user que hay que tratar con mucho cuidado, ya que incluso puede ser peligrosa para la seguridad de nuestros usuarios, es loginretries; indica el número de intentos fallidos de acceso al sistema que puede efectuar un usuario antes de que su cuenta se bloquee. Evidentemente, esto nos puede ayudar a detener a un atacante que intente acceder al sistema adivinando la contraseña de alguno de nuestros usuarios, pero es también un arma de doble filo: si un pirata quiere causar una negación de servicio a uno o varios usuarios, no tiene más que introducir el login de los mismos y contraseñas aleatorias cuando el sistema se lo solicita, lo que hará que AIX inhabilite el acceso legítimo de esos usuarios causando un perfecto ataque de negación de servicio contra los mismos. Quizás en la mayor parte de los sistemas sea una buena idea no habilitar esta directiva (asignándole un valor de 0, el que tiene por defecto), y prevenir el hecho de que un pirata pueda `adivinar' una contraseña implantando unas políticas de claves adecuadas. |
Fuentes:
Editar archivo /etc/profile, variable TMOUT
# Automatic logout, include in export line if uncommented TMOUT=3600