Edición 1.0
Negrita monoespaciado
To see the contents of the filemy_next_bestselling_novelin your current working directory, enter thecat my_next_bestselling_novelcommand at the shell prompt and press Enter to execute the command.
Press Enter to execute the command.Press Ctrl+Alt+F1 to switch to the first virtual terminal. Press Ctrl+Alt+F7 to return to your X-Windows session.
Mono-spaced Bold. For example:
File-related classes includefilesystemfor file systems,filefor files, anddirfor directories. Each class has its own associated set of permissions.
Choose from the main menu bar to launch Mouse Preferences. In the Buttons tab, click the Left-handed mouse check box and click to switch the primary mouse button from the left to the right (making the mouse suitable for use in the left hand).To insert a special character into a gedit file, choose from the main menu bar. Next, choose from the Character Map menu bar, type the name of the character in the Search field and click . The character you sought will be highlighted in the Character Table. Double-click this highlighted character to place it in the Text to copy field and then click the button. Now switch back to your document and choose from the gedit menu bar.
Mono-spaced Bold Italic or Proportional Bold Italic
To connect to a remote machine using ssh, typesshat a shell prompt. If the remote machine isusername@domain.nameexample.comand your username on that machine is john, typessh john@example.com.Themount -o remountcommand remounts the named file system. For example, to remount thefile-system/homefile system, the command ismount -o remount /home.To see the version of a currently installed package, use therpm -qcommand. It will return a result as follows:package.package-version-release
When the Apache HTTP Server accepts requests, it dispatches child processes or threads to handle them. This group of child processes or threads is known as a server-pool. Under Apache HTTP Server 2.0, the responsibility for creating and maintaining these server-pools has been abstracted to a group of modules called Multi-Processing Modules (MPMs). Unlike other modules, only one module from the MPM group can be loaded by the Apache HTTP Server.
romano monoespaciado y presentada así:
libros Escritorio documentación borradores mss fotos cosas svn libros_tests Escritorio1 descargas imágenes notas scripts svgs
romano monoespaciado, pero se presentan y resaltan de la siguiente manera:
package org.jboss.book.jca.ex1;
import javax.naming.InitialContext;
public class ExClient
{
public static void main(String args[])
throws Exception
{
InitialContext iniCtx = new InitialContext();
Object ref = iniCtx.lookup("EchoBean");
EchoHome home = (EchoHome) ref;
Echo echo = home.create();
System.out.println("Created Echo");
System.out.println("Echo.echo('Hello') = " + echo.echo("Hello"));
}
}
nmap, seguido por el nombre del equipo o dirección IP de la máquina a analizar.
nmap foo.ejemplo.com
Starting Nmap 4.68 ( http://nmap.org ) Interesting ports on foo.ejemplo.com: Not shown: 1710 filtered ports PORT STATE SERVICE 22/tcp open ssh 53/tcp open domain 70/tcp closed gopher 80/tcp open http 113/tcp closed auth
| Debilidades | Descripción | Notas | |||
|---|---|---|---|---|---|
| Contraseñas nulas o predeterminadas | Dejando las contraseñas administrativas en blanco o el uso de una contraseña predeterminada puesta por el vendedor. Esto es lo más común en hardware como ruteadores y cortafuegos, por lo que algunos servicios que corren en Linux pueden contener contraseñas administrativas predeterminadas (aunque Fedora 11 no viene con ellas). |
| |||
| Claves compartidas predeterminadas | Los servicios de seguridad algunas veces empaquetan claves de seguridad establecidas por defecto, ya sea para su desarrollo, o para comprobar su desempeño. Si estas claves se mantienen inalteradas y se colocan en un entorno de producción en Internet todos los usuarios con las misma sclaves establecidas por defecto tendrán acceso a ese recurso de clave compartida, y a cualquier tipo de información que en él se guarde. |
| |||
| Imitación de IP | Una máquina remota actúa como un nodo en su red local, busca debilidades en sus servidores, e instala un programa de puerta trasera o troyano para ganar el control de los recursos de la red. |
| |||
| Escuchas | La escucha se realiza para la recolección de datos que pasan entre dos nodos activos en una red. |
| |||
| Debilidades de servicios | Un atacante encuentra una brecha o hueco en un servicio que corre a través de Internet; a través de esta vulnerabilidad, el atacante compromete el sistema entero y cualquier dato que pueda contener, y puede posiblemente comprometer otros sistemas en la red. |
| |||
| Debilidades de aplicaciones | Los atacantes encuentran fallas en las aplicaciones de un equipo de escritorio o de una estación de trabajo (como ser por ejemplo un cliente de correo electrónico), y ejecutan un código cualquiera, colocan caballos troyanos para futuros daños, o simplemente destruyen el sistema. Pueden ocurrir futuras catástrofes si la estación de trabajo vulnerada posee privilegios administrativos sobre el resto de la red. |
| |||
| Ataques de Negación de Servicio (DoS) | Un atacante, o un grupo de atacantes coordinados contra la red o los recursos de red de alguna organización, enviando paquetes no autorizados al equipo elegido (ya sea un servidor, un enrutador o una estación de trabajo). Esto obliga al recurso atacado a quedar inhabilitado para ser utilizado por los usuarios legítimos. |
|
/mnt/cdrom, use el siguiente comando para importarla dentro del administrador de claves (keyring, una base de datos de claves confiables en el sistema):
rpm --import /mnt/cdrom/RPM-GPG-KEY
rpm -qa gpg-pubkey*
gpg-pubkey-db42a60e-37ea5438
rpm -qi seguido de la salida del comando previo, como en este ejemplo:
rpm -qi gpg-pubkey-db42a60e-37ea5438
rpm -K /tmp/updates/*.rpm
gpg OK. Sino, asegúrese que está usando la clave pública de Fedora correcta, así como la fuente del contenido. Los paquetes que no pasan las verificaciones GPG no se deben instalar, porque pueden haber sido alterados por alguien.
rpm -Uvh /tmp/updates/*.rpm
rpm -ivh /tmp/updates/<paquete-de-kernel>
<paquete-del-kernel> en el ejemplo previo con el nombre del RPM del kernel.
rpm -e <paquete-del-kernel-viejo>
<paquete-del-kernel-viejo> en el ejemplo previo con el nombre del RPM del kernel viejo.
glibc, que se usan por un número de aplicaciones y servicios. Las aplicaciones que usan una biblioteca compartida normalmente cargan el código compartido cuando la aplicación se inicia, por lo que todas las aplicaciones que usen la versión actualizada de la biblioteca se deben detener y reiniciar.
lsof como en el siguiente ejemplo:
lsof /lib/libwrap.so*
tcp_wrappers es actualizado.
sshd, vsftpd, y xinetd.
/sbin/service como en el ejemplo siguiente:
/sbin/service <nombre-servicio> restart
<service-name> con el nombre del servicio, como ser por ejemplo, sshd.
xinetdxinetd solo se ejecutan cuando exista una conexión activa. Ejemplos de servicios controlados por xinetd osn Telnet, IMAP, y POP3.
xinetd inicia nuevas instancias de estos servicios cada vez que se reciba un nuevo pedido, las conexiones que tengan lugar luego de una actualización serán administradas por el software actualizado. Sin embargo, si existen conexiones activas en el momento en que el servicio controlado por xinetd es actualizado, estas conexiones seguirán funcionando controladas por la versión anterior.
xinetd, actualice el paquete para el servicio, y luego detenga todos los procesos que se encuentren en ejecución. Para determinar si el proceso está ejecutándose, utilice el comando ps y luego los comandos kill o killall para detener las instancias actuales del servicio.
imap son liberados, actualice los paquetes, y luego, como usuario root, ingrese el siguiente comando en una terminal:
ps -aux | grep imap
kill <PID>
kill -9 <PID>
<PID> con el número de identificación del proceso (que puede encontrarlo en la segunda columna del comando ps).
killall imapd
[1] http://law.jrank.org/pages/3791/Kevin-Mitnick-Case-1999.html
[2] http://www.livinginternet.com/i/ia_hackers_levin.htm
[3] http://www.theregister.co.uk/2007/05/04/txj_nonfeasance/
[4] http://www.healthcareitnews.com/story.cms?id=9408
[5] http://www.internetworldstats.com/stats.htm
[6] http://www.cert.org
[7] http://www.cert.org/stats/fullstats.html
[8] http://www.newsfactor.com/perl/story/16407.html
[9] http://www.csoonline.com/article/454939/The_Global_State_of_Information_Security_
[10] http://www.sans.org/resources/errors.php
cat.
/sbin/grub-md5-crypt
/boot/grub/grub.conf. Abra el archivo y debajo de la línea timeout en la sección principal del documento, añada la siguiente:
password --md5 <hash-de-contraseña>
/boot/grub/grub.conf.
title del sistema operativo que desea asegurar, y añada otra línea con la directiva lock inmediatamente debajo de ella.
title DOS lock
password debe estar presente en la sección principal del archivo /boot/grub/grub.conf para el correcto funcionamiento de este método. De lo contrario, un atacante puede acceder a la interfaz del editor del GRUB y eliminar la línea de bloqueo.
lock a las presentes seguida de una línea de contraseña.
title DOS lock password --md5 <password-hash>
/etc/passwd, lo que hace que el sistema sea vulnerable a los ataques de descubrimiento de contraseñas fuera de línea. Si un intruso puede obtener acceso a la máquina como un usuario regular, puede copiar el archivo /etc/passwd a su propio equipo, y ejecutar cualquier cantidad de programas de descubrimiento de contraseñas sobre él. Si existe una contraseña no segura en el archivo, es sólo cuestión de tiempo antes que el atacante la encuentre.
/etc/shadow, que solo puede ser leído por el usuario root.
peryatdb,valcdla.
7 por t el arroba (@) por a:
pery@7db,v@lcdl@.
B.
pery@7dB,v@lcdl@.
passwd, que es compatible con el Administrador de módulos de autenticación conectables (PAM, por las iniciales en inglés de Pluggable Authentication Manager), y por lo tanto verifica si la contraseña es demasiado corta o demasaido fácil de descubrir. Esta comprobación es realizada utilizando el módulo PAM pam_cracklib.so. Ya que PAM es personalizable, es posible añadir más verificadores de la integridad de las contraseñas, como ser por ejemplo, pam_passwdqc (disponible en http://www.openwall.com/passwdqc/), o escribir un módulo nuevo. Para conocer una lista de módulos PAM disponibles, vea http://www.kernel.org/pub/linux/libs/pam/modules.html. Para obtener mayor información acerca de PAM, vaya a la Sección 2.4, “Módulos de autenticación conectables (PAM, por las iniciales en inglés de Pluggable Authentication Modules)”.
chage o la aplicación gráfica Administración -> Usuarios y Grupos (system-config-users).
-M del comando chage especifica el número máximo de días en los cuales será válida la contraseña. Por ejemplo, para poner la contraseña del usuario para que venza en 90 días, use el siguiente comando:
chage -M 90 <nombre-de-usuario>
<nombre-de-usuario> con el nombre del usuario. Para deshabilitar el vencimiento de la contraseña, es tradicional usar el valor 99999 espués de la opción -M (esto es cerca de 273 años).
chage en modo interactivo para modificar el envejecimiento de varias contraseñas y detalles de cuenta. Use el siguiente comando para ingresar en modo interactivo:
chage <nombre-de-usuario>
[root@interch-dev1 ~]# chage davido Cambiando la información de envejecimiento de davido Ingrese el valor nuevo o presione INTRO para el predeterminado Edad Mínima de la Contraseeña [0]: 10 Edad Máxima de la Contraseña [99999]: 90 Último Cambio de la Contraseña (YYYY-MM-DD) [2009-08-18]: Advertencia de Vencimiento de la Contraseña [7]: Contraseña Inactiva [-1]: Fecha de Vencimiento de la Cuenta (YYYY-MM-DD) [1969-12-31]: [root@interch-dev1 ~]#
system-config-users en un indicador de shell.

sudo o su. Se denomina un programa de tipo setuid a aquel que opera con el ID de usuario (UID) del dueño del programa, en lugar del ID de usuario de quien sea que esté utilizando el programa. Tales programas son identificados con una s en la sección de pertenencia del listado de formato extenso, como se muestra en el siguiente ejemplo:
-rwsr-xr-x 1 root root 47324 May 1 08:09 /bin/su
s puede figurar en mayúscula o en minúscula. Si aparece en mayúscula, significa que el bit de los permisos subyacentes no ha sido definido.
pam_console.so, algunas actividades normalmente reservadas solo para el usuario root, como ser reiniciar o montar medios removibles, son permitidas para el primer usuario que se registre en la consola física (para obtener mayor información acerca del módulo pam_console.so, vaya a la Sección 2.4, “Módulos de autenticación conectables (PAM, por las iniciales en inglés de Pluggable Authentication Modules)”. Sin embargo, otras tareas importantes en el sistema, como ser modificar parámetros de red, configurar un nuevo ratón, o montar dispositivos de red, no será posible realizarlas sin privilegios administrativos. Como resultado, los administradores del sistema deben decidir cuánto acceso deben otorgarle a los usuarios de la red.
| Método | Descripción | Efectos | No afecta | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Cambio del shell para root. |
Edite el archivo /etc/passwd y cambie la terminal de /bin/bash a /sbin/nologin.
|
|
| |||||||||||||||
| Deshabilitar el acceso root mediante cualquier dispositivo de consola (tty) |
Un archivo /etc/securetty vacío previene los intentos de accesos root a cualquier dispositivo asociado con la computadora.
|
|
| |||||||||||||||
| Deshabilitación de las opciones de ingreso como root por SSH. |
Edite el archivo /etc/ssh/sshd_config y establezca el parámetro PermitRootLogin en no.
|
|
| |||||||||||||||
| Utilice PAM para limitar el acceso root a los servicios. |
Edite el archivo para el servicio en cuestión en el directorio /etc/pam.d/. Asegúrese que el archivo pam_listfile.so sea requerido para autenticación.[a]
|
|
| |||||||||||||||
[a] Para concer más detalles, vea la Sección 2.1.4.2.4, “Deshabilitando root usando PAM”. | ||||||||||||||||||
/sbin/nologin en el archivo /etc/passwd. Esto previene el acceso a la cuenta root mediante comandos que necesiten una terminal, como por ejemplo el comando su y los comandos ssh.
sudo, pueden todavía tener acceso a la cuenta root.
/etc/securetty. Este archivo muestra todos los dispositivos a los que el usuario root puede registrarse. Si el archivo no existiese, el usuario root puede registrarse a través de cualquier dispositivo de comunicación en el sistema, ya sea mediante la utilización de la consola, o mediante una interfaz de red. Esto es peligroso ya que un usuario puede registrarse en su máquina como usuario root mediante Telnet, que transmite en la red la contraseña en formato de texto simple. Por defecto, el archivo /etc/securetty de Fedora sólo permite que el usuario root se registre en la consola asociada físicamente en la máquina. Para prevenir al usuario root que se registre, elimine los contenidos de este archivo con la utilización del siguiente comando:
echo > /etc/securetty
/etc/securetty vacío no evita que el usuario root se registre remotamente en el sistema utilizando el conjunto de herramientas OpenSSH, ya que la consola no se inicia hasta luego de la autenticación.
/etc/ssh/sshd_config). Cambie la línea en la que se lee:
PermitRootLogin yes
PermitRootLogin no
kill -HUP `cat /var/run/sshd.pid`
/lib/security/pam_listfile.so, permite gran flexibilidad a la hora de denegar cuentas específicas. El administrador puede utilizar este módulo para hacer referencia a una lista de usuarios que no tienen permitido registrarse. Más abajo mostramos un ejemplo acerca de cómo el módulo es utilizado por el servidor FTP vsftpd en el archivo de configuración de PAM /etc/pam.d/vsftpd (el caracter \ al final de la primera línea en el ejemplo no es necesario si la directiva se encuentra en una sola línea):
auth required /lib/security/pam_listfile.so item=user \ sense=deny file=/etc/vsftpd.ftpusers onerr=succeed
/etc/vsftpd.ftpusers y que niegue el acceso al servicio al usuario listado. El administrador puede modificar el nombre en este archivo, y puede tener diferentes listas para cada servicio, o utilizar una lista principal para negar el acceso a múltiples servicios.
/etc/pam.d/pop y /etc/pam.d/imap para clientes e correo, o /etc/pam.d/ssh para clientes SSH.
su o sudo.
susu, se le solicita la contraseña de root y, luego de la autenticación, le es dado un indicador de consola.
su, el usuario es el usuario root y tiene accesos admisnitrativos absolutos en el sistema [13]. Además, una vez que el usuario se ha convertido en root, es posible la utilización del comando su para convertirse en cualquier otro usuario en el sistema sin que por eso se le pida ningún tipo de contraseña.
usermod -G wheel <nombreusuario>
<username> con el nombre del usuario que desee añadir al grupo wheel .
system-config-users en un indicador de shell.
su (/etc/pam.d/su) en un editor de textos, y elimine el comentario # de la siguiente línea:
auth required /lib/security/$ISA/pam_wheel.so use_uid
wheel pueden usar este programa.

wheel.
sudosudo ofrece un nuevo punto de vista a la cuestión acerca de si otorgarle o no accesos administrativos a los usuarios. Cuando un usuario confiable le anteponga el comando sudo a un comando administrativo, le será pedida su propia contraseña. Entonces, cuando sea autenticado y asumiendo que el comando le sea permitido, el comando administrativo en cuestión será ejecutado como si este usuario fuera el usuario root.
sudo son los siguientes:
sudo <comando>
<command> debería ser reemplazado por un comando que por lo general esté reservado al usuario root, como ser por ejemplo, mount.
sudo deberían tener mucho cuidado y cancelar esta herramienta antes de abandonar sus equipos, ya que en un período de tiempo de cinco minutos, los usuarios sudo pueden utilizar el comando nuevamente sin que por ello les sea pedida una contraseña. Esta configuración puede modificarse desde el archivo de configuración /etc/sudoers.
sudo permite un alto grado de flexibilidad. Por ejemplo, solo a los usuarios listados en el archivo de configuración /etc/sudoers les es permitido utilizar el comando sudo, y el comando es ejecutado en la terminal del usuario, no en una consola de usuario root. Esto significa que la consola del usuario root puede ser completamente deshabilitada, como se indicó en Sección 2.1.4.2.1, “Deshabilitando la cuenta shell de root”.
sudo también ofrece un método fácil de entender para su control. Cada autenticación exitosa es registrada en el archivo /var/log/messages, y el comando ingresado, junto con el nombre del usuario que lo ingresó, se registran en el archivo /var/log/secure.
sudo es que un administrador puede permitir a diferentes usuarios acceder a comandos específicos de acuerdo a sus necesidades.
/etc/sudoers, el archivo de configuración del comando sudo, deberían utilizar el comando visudo.
visudo, y agregue una línea similar a la siguiente en la sección de especificaciones de los privilegios del usuario:
juan ALL=(ALL) ALL
juan, puede utilizar el comando sudo desde cualquier equipo y ejecutar cualquier comando.
sudo:
%users localhost=/sbin/shutdown -h now
/sbin/shutdown -h now, siempre y cuando lo haga desde una consola.
sudoers contiene una lista detallada de opciones.
cupsd — El servidor de impresión por defecto para Fedora.
lpd — Un servidor de impresión alternativo.
xinetd — Un súper servidor que controla las conexiones de un rango de servidores subordinados, como son, por ejemplo gssftp y telnet.
sendmail — El Agente de transporte de correo (MTA, por las iniciales en inglés de Mail Transport Agent) de Sendmail es activado por defecto, pero solo escucha las conexiones del localhost.
sshd — El servidor OpenSSH, es un reemplazo seguro para Telnet.
cupsd prendido. Lo mismo vale para portmap. Si usted no monta volumenes NFSv3, o utiliza NIS (el servicio ypbind), entonces portmap debería deshabilitarse.

netdump, transmiten el contenido de la memoria sobre una red sin encriptar . Los volcados de memoria pueden contener contraseñas o, peor aún, entradas a base de datos o información sensible.
finger y rwhod revelan información sobre usuarios del sistema.
rlogin, rsh, telnet, y vsftpd.
rlogin, rsh, y telnet) deberían ser evitados en favor de la utilización de SSH. Para obtener mayor información acerca de sshd, vea la Sección 2.1.7, “Herramientas de comunicación de seguridad mejorada”.
finger
authd (antes llamado identd en versiones anteriores de Fedora.)
netdump
netdump-server
nfs
rwhod
sendmail
smb (Samba)
yppasswdd
ypserv
ypxfrd
system-config-firewall). Esta herramienta genera reglas amplias de iptables para un cortafuegos de propósitos generales, utilizando una interfaz de panel de control.
iptables. Para obtener mayor información, vea la Sección 2.8, “Cortafuegos”. Para una guía detallada de la utilización del comando iptables, vea la Sección 2.9, “IPTables”.
telnet y rsh. Open SSH ofrece un servicio de red llamado sshd y tres aplicaciones de cliente mediante la línea de comandos:
ssh — Un cliente seguro para acceso a consola remota.
scp — Un comando de copia remota segura.
sftp — Un pseudo cliente ftp seguro que permite sesiones interactivas de transferencias de archivos.
sshd es en sí mismo seguro, el servicio debe mantenerse actualizado para prevenir amenazas a la seguridad. Para obtener mayor información, vea la Sección 1.5, “Actualizaciones de seguridad”.
xinetd, un super servidor que ofrece acceso adicional, registrado, vinculación, redireccionamiento y control de la utilización de los recursos.
xinetd, para generar redundancia dentro de los controles de acceso al servicio. Para obtener más información acerca de la implementación de cortafuegos con comandos iptable, vea la Sección 2.8, “Cortafuegos”.
hosts_options para obtener información acerca de la funcionalidad de los encapsuladores TCP y el lenguaje de control.
banner.
vsftpd. Para comenzar, cree un archivo de pancarta. Puede ser en cualquier lugar del sistema, pero debe tener el mismo nombre que el demonio. Para este ejemplo, el archivo es llamado /etc/banners/vsftpd y contiene la siguiente linea:
220-Hola, %c 220-Toda actividad en ftp.ejemplo.com es registrada. 220-El uso inapropiado resultará en la remoción de los privilegios de acceso.
%c proveé de una serie de información del cliente, como el nombre de usuario y el nombre de huésped o el nombre de usuario y la dirección IP para hacerlo más intimidante.
/etc/hosts.allow:
vsftpd : ALL : banners /etc/banners/
spawn.
/etc/hosts.deny para denegar cualquier intento de conexión desde esa red, y para registrar los intentos a un archivo en especial:
ALL : 206.182.68.0 : spawn /bin/ 'date' %c %d >> /var/log/intruder_alert
%d proveé el nombre del servicio al que el atacante está tratando de acceder.
spawn en el archivo /etc/hosts.allow.
spawn ejecuta cualquier comando, es una buena idea crear un programa especial para notificar al administrador o ejecutar una cadena de comandos en el evento de un cliente en particular tratando de conectarse al servidor.
severity.
emerg en los archivos de registro en lugar de la bandera por defecto info y deniegue la conexión.
/etc/hosts.deny:
in.telnetd : ALL : severity emerg
authpriv, pero eleva la prioridad del valor por defecto info a emerg, lo cual escribe los mensajes de registro directamente a la consola.
xinetd para crear un servicio de trampa y usarlo para controlar los niveles de recurso disponibles para cualquier servicio xinetd. Crear límites de recursos para los servicios puede ayudar a frustrar ataques de denegación de servicio (Denial of Service, DoS). Refiérase a las páginas del manual para xinetd y xinetd.conf para una lista de opciones disponibles.
xinetd es su habilidad para agregar equipos a una lista no_access global. Los equipos en esta lista no pueden crear conexiones subsecuentes a servicios manejados por xinetd por un periodo específico de tiempo, o hasta que xinetd sea reiniciado. Usted puede hacer esto usando el atributo SENSOR. Esta es una manera fácil de bloquear equipos que intentan explorar puertos en el servidor.
SENSOR es escoger que servicio no está planeado a usarse. En este ejemplo es utilizado telnet.
/etc/xinetd.d/telnet y cambie la linea flags a:
flags = SENSOR
deny_time = 30
deny_time son FOREVER, el cual mantiene el veto en efecto hasta que xinetd es reiniciado y NEVER, el cual permite la conexión y la registra.
disable = no
SENSOR es una buena idea para detectar y detener conexiones desde equipos indeseables, tiene dos características en contra:
SENSOR esta corriendo puede montar un ataque de denegación de servicio contra un servidor en particular al forjar su dirección IP y conectarse al puerto prohibido.
xinetd es su habilidad de declarar límites de recursos para los servicios bajo su control.
cps = <number_of_connections> <wait_period> — Limita el ritmo de las conexiones entrantes. Esta directiva toma dos argumentos:
<number_of_connections> — El número de conexiones por segundo a manejar. Si el ritmo de conexiones es más alto que esto, el servicio se deshabilita temporalmente. El valor por defecto es cincuenta (50).
<wait_period> — El número de segundos a esperar antes de rehabilitar el servicio después de que ha sido deshabilitado. El valor por defecto es diez (10) segundos.
instances = <number_of_connections> — Especifica el número total de conexiones permitidas a un servicio. Esta directiva acepta ya sea un valor entero o UNLIMITED.
per_source = <number_of_connections> — Especifica el número de conexiones permitidas a un servicio para cada huésped. Esta directiva acepta ya sea un número entero o UNLIMITED.
rlimit_as = <number[K|M]> — Especifica el monto de espacio de dirección de memoria que el servicio puede ocupar en kilobytes o megabytes. Esta directiva acepta ya sea un número entero o UNLIMITED.
rlimit_cpu = <number_of_seconds> — Especifica el monto de tiempo en segundos que un servicio puede ocupar del CPU. Esta directiva acepta un valor entero o UNLIMITED.
xinetd de abrumar el sistema, resultando en una denegación de servicio.
portmap es un demonio de asignación dinámica de puertos para servicios RPC como NIS y NFS. Tiene mecanismos débiles de autenticación y tiene la habilidad de asignar un amplio rango de puertos para los servicios que controla. Por estas razones, es difícil de asegurar.
portmap solo afecta a las implementaciones NFSv2 y NFSv3, ya que desde NFSv4 ya no es requerido. Si usted planea implementar un servidor NFSv2 o NFSv3, entonces portmap es requerido, y la siguiente sección aplica.
portmap dado que no tiene una forma propia de autenticación.
portmap, es una buena idea agregar reglas de iptables al servidor y restringir el acceso a redes específicas.
portmap) desde la red 192.168.0.0/24. El segundo permite conexiones TCP al mismo puerto localmente. Esto es necesario para el servicio sgi_fam usado por Nautilus. Todos los demás paquetes son ignorados.
iptables -A INPUT -p tcp -s! 192.168.0.0/24 --dport 111 -j DROP iptables -A INPUT -p tcp -s 127.0.0.1 --dport 111 -j ACCEPT
iptables -A INPUT -p udp -s! 192.168.0.0/24 --dport 111 -j DROP
ypserv, el cual es usado en conjunto con portmap y otros servicios relacionados para distribuir mapas de nombres de usuario, contraseñas y otros tipos de información sensible dentro de su propio dominio.
/usr/sbin/rpc.yppasswdd — También denominado servicio yppasswdd. Este demonio permite que los usuarios modifiquen sus contraseñas NIS.
/usr/sbin/rpc.ypxfrd — También denominado servicio ypxfrd. Este demonio es el responsable de las transferencias de mapas NIS sobre la red.
/usr/sbin/yppush — Esta aplicación se encarga de distribuir las bases de datos NIS que han sido modificadas hacia diferentes servidores NIS.
/usr/sbin/ypserv — Este es el demonio del servidor NIS.
portmap (como se puede observar en la Sección 2.2.2, “Asegurando Portmap”), y que luego continúe con los siguientes eventos, como la planificación de la red.
/etc/passwd:
ypcat -d<NIS_domain>-h<DNS_hostname>passwd
/etc/shadow ingresando el siguiente comando:
ypcat -d<NIS_domain>-h<DNS_hostname>shadow
/etc/shadow no se encuentra almacenado dentro de un mapa NIS.
o7hfawtgmhwg.domain.com. De manera similar, genere aleatoriamente un nombre de dominio NIS distinto. Esto hace que para un atacante sea mucho más dificil ingresar en el servidor NIS.
/var/yp/securenets/var/yp/securenets está vacío o no existe (como es el caso luego de una instalación por defecto), NIS escucha a todos los puertos. Una de las primeras cosas a realizar es ingresar pares máscara de red/red (netmask/network) en el archivo de modo que ypserv solo responda a las peticiones de una red adecuada.
/var/yp/securenets:
255.255.255.0 192.168.0.0
/var/yp/securenets.
rpc.yppasswdd — el demonio que permite a los usuarios modificar sus contraseñas de logueo. Asignar puertos a rpc.ypxfrd y ypserv, los restantes demonios de servidores NIS, permite la creación de reglas de cortafuegos, y de esta manera poder proteger a los demonios de futuras intrusiones.
/etc/sysconfig/network:
YPSERV_ARGS="-p 834" YPXFRD_ARGS="-p 835"
iptables -A INPUT -p ALL -s! 192.168.0.0/24 --dport 834 -j DROP iptables -A INPUT -p ALL -s! 192.168.0.0/24 --dport 835 -j DROP
/etc/shadow por la red. Si un intruso obtiene acceso a un dominio NIS y observa el tráfico en la red, puede recolectar los hashes de nombres de usuarios y contraseñas. Con el tiempo suficiente, un programa de descifrado de contraseñas puede adivinar aquellas que son débiles, y el atacante puede obtener acceso a una cuenta válida en esa red.
portmap como se lo indica en la Sección 2.2.2, “Asegurando Portmap”. El tráfico NFS, en lugar de UDP ahora utiliza TCP para todas sus versiones, y lo solicita al utilizar NFSv4. NFSv4 ahora incluye autenticación Kerberos para grupos y usuarios, como parte del módulo del kernel RPCSEC_GSS. Sigue existinedo información incluida acerca de portmap, desde que Fedora tiene soporte para NFSv2 y NFSv3, ya que ambos utilizan portmap.
/etc/exports. Tenga cuidado de no agregar espacios extraños cuando edite este archivo.
/etc/exports comparte el directorio /tmp/nfs/ con el equipo juan.ejemplo.com con permisos de lectura y escritura.
/tmp/nfs/ juan.ejemplo.com(rw)
/etc/exports comparte el mismo directorio con el equipo juan.ejemplo.com, sólo con permisos de lectura, y además lo comparte con el mundo con permisos de lectura y de escritura, debido a un simple espacio en blanco dejado luego del nombre del equipo.
/tmp/nfs/ juan.ejemplo.com (rw)
showmount y verificar qué es lo que está siendo compartido:
showmount -e <hostname>
no_root_squashnfsnobody, una cuenta de usuario sin privilegios. Esto modifica la pertenencia de todos los archivos creados por el usuario root, y se los otorga a nfsnobody, evitando de esta forma la carga de programas definidos con bit de tipo setuid.
no_root_squash, los usuarios root remotos tienen la posibilidad de modificar cualquier archivo en el sistema de archivos compartido, y dejar aplicaciones infectadas con troyanos para que otros usuarios las ejecuten sin saberlo.
MOUNTD_PORT — puerto TCP y UDP para mountd (rpc.mountd)
STATD_PORT — puerto TCP y UDP para status (rpc.statd)
LOCKD_TCPPORT — puerto TCP para nlockmgr (rpc.lockd)
LOCKD_UDPPORT — UDP port nlockmgr (rpc.lockd)
rpcinfo -p sobre el servidor NFS para conocer qué programas RPC y qué puertos están siendo utilizados.
chown root <nombre_de_directorio>
chmod 755 <nombre_de_directorio>
/etc/httpd/conf/httpd.conf):
FollowSymLinks/.
IndexesUserDirUserDir se encuentra deshabilitada por defecto, debido a que puede confirmar la presencia de una cuenta de usuario en el sistema. Para permitir que se examinen directorios de usuario en el servidor, utilice las siguientes directivas:
UserDir enabled UserDir disabled root
/root/. Para añadir usuarios a la lista de las cuentas desactivadas, añada a esos usuarios en una lista separada por espacios en la línea UserDir disabled.
IncludesNoExec. Por defecto, el módulo Server-Side Includes (SSI) no puede ejecutar comandos. Se recomienda no cambiar estas configuraciones a no ser que sea absolutamente necesario, ya que potencialmente podría permitir que un atacante ejecute comandos en el sistema.
gssftpd — Un demonio basado en xinetd con soporte para Kerberos que no transmite informaciones de autenticación sobre la red.
tux) — Un servidor web en el espacio del kernel con capacidades FTP.
vsftpd — Una implementación orientada a la seguridad del servicio FTP.
vsftpd.
vsftpd, agregue la siguiente directiva en el archivo /etc/vsftpd/vsftpd.conf:
ftpd_banner=<insert_greeting_here>
<insert_greeting_here> con el texto del mensaje de bienvenida.
/etc/banners/. En nuestro ejemplo, el archivo de imagen para conexiones FTP es /etc/banners/ftp.msg. A continuación se puede observar cómo puede llegar a lucir un archivo con esstas características:
######### # Hola, cualquier tipo de actividad dentro de ftp.ejemplo.com es registrada. #########
220, como se lo indica en la Sección 2.2.1.1.1, “Encapsuladores TCP y pancartas de conexión”.
vsftpd, añada la siguiente directiva en el archivo /etc/vsftpd/vsftpd.conf:
banner_file=/etc/banners/ftp.msg
/var/ftp/ activa la cuenta anónima.
vsftpd. Este paquete establece un árbol de directorios para usuarios anónimos y configura los permisos de manera tal que estos usuarios sólo puedan leer sus contenidos.
/var/ftp/pub/, con permisos de escritura solamente.
mkdir /var/ftp/pub/subidas
chmod 730 /var/ftp/pub/subidas
drwx-wx--- 2 root ftp 4096 Feb 13 20:05 subidas
vsftpd, añada la siguiente línea en el archivo /etc/vsftpd/vsftpd.conf:
anon_upload_enable=YES
vsftpd, agregue la siguiente directiva en /etc/vsftpd/vsftpd.conf:
local_enable=NO
sudo, la manera más sencilla de hacerlo es utilizar un archivo de lista PAM como se explica en la Sección 2.1.4.2.4, “Deshabilitando root usando PAM”. El archivo de configuración PAM para vsftpd es /etc/pam.d/vsftpd.
vsftpd, agregue el nombre del usuario en /etc/vsftpd.ftpusers
/etc/mail/sendmail.mc, la efectividad de ataques de ese tipo se ve disminuida.
confCONNECTION_RATE_THROTTLE — El número de conexiones que el servidor puede recibir por segundo. Por defecto, Sendmail no limita el número de conexiones. Si se alcanza un límite previamente establecido, las siguientes conexiones son demoradas.
confMAX_DAEMON_CHILDREN — El máximo número de procesos hijo que pueden ser generados por el servidor. Por defecto, Sedmail no atribuye un límite a la cantidad de estos procesos. Si se alcanza un límite previamente establecido, las siguientes conexiones serán demoradas.
confMIN_FREE_BLOCKS — El número mínimo de bloques libres que deben estar disponibles para que el servidor acepte correos. La cantidad establecida por defecto es de 100 bloques.
confMAX_HEADERS_LENGTH — El tamaño máximo aceptable (en bytes) para un encabezado de mensaje.
confMAX_MESSAGE_SIZE — El tamaño máximo aceptable (en bytes) para un solo mensaje.
/var/spool/mail/, en un volumen NFS compartido.
SECRPC_GSS no utiliza autenticaciones basadas en UID. Sin embargo, todavía hoy es considerada una buena costumbre la de no colocar el directorio mail spool en volúmenes NFS compartidos.
/etc/passwd deberían definirse como /sbin/nologin (con la posible excepción del usuario root).
netstat -an o lsof -i. Este método es menos confiable debido a que estos programas no se conectan a la máquina desde la red, sino que verifican qué es lo que se está ejecutando en el sistema. Por esta razón, estas aplicaciones frecuentemente son reemplazadas por atacantes. Alguien que quiera ocultar el rastro que está dejando al ingresar, o al abrir sin autorización los puertos de un sistema, intentará reemplazar netstat y lsof, con sus versiones personales y modificadas.
nmap.
nmap -sT -O localhost
Starting Nmap 4.68 ( http://nmap.org ) at 2009-03-06 12:08 EST Interesting ports on localhost.localdomain (127.0.0.1): Not shown: 1711 closed ports PORT STATE SERVICE 22/tcp open ssh 25/tcp open smtp 111/tcp open rpcbind 113/tcp open auth 631/tcp open ipp 834/tcp open unknown 2601/tcp open zebra 32774/tcp open sometimes-rpc11 Device type: general purpose Running: Linux 2.6.X OS details: Linux 2.6.17 - 2.6.24 Uptime: 4.122 days (since Mon Mar 2 09:12:31 2009) Network Distance: 0 hops OS detection performed. Please report any incorrect results at http://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 1.420 seconds
portmap debido a la presencia del servicio sunrpc. Sin embargo, existe además un servicio misterioso en el puerto 834. Para verificar si el puerto está asociado con la lista oficial de servicios conocidos, ingrese:
cat /etc/services | grep 834
netstat o lsof. Para verificar el puerto 834 utilizando netstat, ingrese el siguiente comando:
netstat -anp | grep 834
tcp 0 0 0.0.0.0:834 0.0.0.0:* LISTEN 653/ypbind
netstat es un reaseguro, ya que si un atacante ha abierto un puerto en un sistema en el que no está autorizado a ingresar, seguramente no permitirá que sea detectada su presencia mediante este comando. Además, la opción [p] revela el proceso ID (PID) del servicio que ha abierto el puerto. En este caso, el puerto abierto pertenece a ypbind (NIS), que es un servicio RPC administrado conjuntamente con el servicio portmap.
lsof muestra información similar a netstat, ya que también es capaz de enlazar puertos con servicios:
lsof -i | grep 834
ypbind 653 0 7u IPv4 1319 TCP *:834 (LISTEN) ypbind 655 0 7u IPv4 1319 TCP *:834 (LISTEN) ypbind 656 0 7u IPv4 1319 TCP *:834 (LISTEN) ypbind 657 0 7u IPv4 1319 TCP *:834 (LISTEN)
lsof, netstat, nmap, y services.
nss-tools.
certutil -A -d /etc/pki/nssdb -n "root ca cert" -t "CT,C,C" -i ./ca_cert_in_base64_format.crt
/etc/pam_pkcs11/pam_pkcs11.conf y ubique la siguiente línea:
enable_ocsp = false;
enable_ocsp = true;
/etc/pam_pkcs11/cn_map.
cn_map:
MY.CAC_CN.123454 -> myloginid
MY.CAC_CN.123454 es el nombre común en su CAC y myloginid es su ID de logueo UNIX.
pklogin_finder debug
pklogin_finder en modo de depuración, mientras una tarjeta inteligente registrada se encuentre conectada, intentará mostrar información acerca de los certificados válidos, y si tiene éxito, intentará mapear un ID de registro desde los certificados que existan en la tarjeta.


about:config para ver una lista actualizada de las opciones de configuración disponibles.
negotiate para restringir la lista de opciones.
.ejemplo.com.

kinit para obtenerlos. Para mostrar la lista de los tickets disponibles, ingrese klist. A continuación se muestra un ejemplo del resultado de estos comandos:
[user@host ~] $ kinit
Password for user@EXAMPLE.COM:
[user@host ~] $ klist
Ticket cache: FILE:/tmp/krb5cc_10920
Default principal: user@EXAMPLE.COM
Valid starting Expires Service principal
10/26/06 23:47:54 10/27/06 09:47:54 krbtgt/USER.COM@USER.COM
renew until 10/26/06 23:47:54
Kerberos 4 ticket cache: /tmp/tkt10920
klist: You have no tickets cached
export NSPR_LOG_MODULES=negotiateauth:5 export NSPR_LOG_FILE=/tmp/moz.log
/tmp/moz.log, y podría darle alguna pista hacerca del problema. Por ejemplo:
-1208550944[90039d0]: entering nsNegotiateAuth::GetNextToken() -1208550944[90039d0]: gss_init_sec_context() failed: Miscellaneous failure No credentials cache found
kinit.
kinit exitosamente desde su máquina pero no puede autenticarse, debería ver algo similar a lo siguiente en el archivo log:
-1208994096[8d683d8]: entering nsAuthGSSAPI::GetNextToken() -1208994096[8d683d8]: gss_init_sec_context() failed: Miscellaneous failure Server not found in Kerberos database
/etc/krb5.conf. Por ejemplo:
.example.com = EXAMPLE.COM example.com = EXAMPLE.COM
/etc/pam.d/ contiene los archivos de configuración de PAM para cada aplicación que utilice PAM. En versiones anteriores de PAM, se usaba el archivo /etc/pam.conf, pero este archivo se dejado de usar y sólo se utilizará si el directorio /etc/pam.d/ no existe.
/etc/pam.d/. Cada archivo en este directorio tiene el mismo nombre del servicio al que controla el acceso.
/etc/pam.d/. Por ejemplo, el programa login define su nombre de servicio como login e instala el archivo de configuración PAM /etc/pam.d/login.
<interfase del módulo><bandera de control><nombre de módulo><argumentos del módulo>
auth — Esta interfaz de módulo autentica el uso. Por ejemplo, pide y verifica la validez de una contraseña. Los módulos con esta interfaz también pueden poner credenciales, como membresías de grupo o tickets Kerberos.
account — Esta interfaz de módulo verifica que el acceso esté permitido. Por ejemplo, puede chequear si una cuenta a vencido o si un usuario puede ingresar en una hora particular del día.
password — Esta interfaz de módulo se usa para cambiar contraseñas del usuario.
session — Esta interfaz de módulo configura y administra sesiones del usuario. Los módulos con esta interfaz pueden también permitir tareas adicionales que necesitan permitir accesos, tales como el montaje del directorio de inicio del usuario y poner disponible la casilla de correo del usuario.
pam_unix.so provee las cuatro interfaces de módulo.
auth required pam_unix.so
auth del módulo pam_unix.so.
reboot normalmente usa varios módulos apilados, como se ve en su archivo de configuración PAM:
[root@MiServidor ~]# cat /etc/pam.d/reboot #%PAM-1.0 auth sufficient pam_rootok.so auth required pam_console.so #auth include system-auth account required pam_permit.so
auth sufficient pam_rootok.so — Esta línea usa el módulo pam_rootok.so para verificaar si el usuario actual es root, confirmandoo que su UID sea 0. Si esto tiene éxito, no se consulta ningún otro módulo y el comando se ejecuta. Si esto falla, se consulta el módulo siguiente.
auth required pam_console.so — Esta línea utiliza el módulo pam_console.so para intentar autenticar al usuario. Si este usuario ya se encuentra dentro de la consola, pam_console.so verifica si dentro del directorio /etc/security/console.apps/ hay un archivo con el mismo nombre que el del servicio (reboot). Si existe ese archivo, la autenticación es existosa y el control es pasado al siguiente módulo.
#auth include system-auth — Esta línea es comentada y no se procesa.
account required pam_permit.so — Esta línea usa el módulo pam_permit.so para permitir al usuario root o cualquier otro que haya ingresado en la consola reiniciar el sistema.
required — El resultado del módulo debe ser exitoso para que pueda continuar la autenticación. Si la prueba falla en este punto, el usuario no se notifica hasta que se completan con los resultados de todas las pruebas de los módulos que referencian a esa interfaz.
requisite — El resultado del módulo debe ser exitoso para que continúe la autenticación. Sin embargo, si una prueba falla en este punto, el usuario se notifica inmediatamente con un mensaje que muestra el primer fallo del módulo required o requisite.
sufficient — El resultado del módulo es ignorado si falla. Sin embargo, si el resultado de un módulo marcado con bandera sufficient tiene éxito y no hay módulos previos marcados con required que hayan fallado, entonces no se necesitan otros resultados y el usuario es autenticado con el servicio.
optional — El resultado del módulo se ignora. Un módulo marcado como optional sólo se vuelve necesario para una autenticación exitosa cuando no hay otros módulos referenciados en la interfaz.
required se llaman no es crítico. Sólo las banderas sufficient y requisite hacen que el orden se haga importante.
pam.d, y la documentación de PAM, ubicada en el directorio /usr/share/doc/pam-<version-number>/, donde <version-number> es el número de versión PAM en su sistema, explica esta nueva sintaxis en detalle.
/lib64/security/, el nombre del directorio es omitido dado que la aplicación está enlazada con la versión correcta de libpam, que puede encontrar la versión correcta del módulo.
pam_userdb.so utiliza información almacenada en un archivo de base de datos Berkeley para autenticar al usuario. Berkeley es una base de datos de código abierto que se encuentra en muchas otras aplicaciones. El módulo toma un argumento db de modo que Berkeley sepa qué base de datos utilizar para el servicio solicitado.
pam_userdb.so en una configuración de PAM. El <direccion-del-archivo> es la dirección completa del archivo base de datos DB de Berkeley:
auth required pam_userdb.so db=<direccion-del-archivo>
/var/log/secure.
#%PAM-1.0 auth required pam_securetty.so auth required pam_unix.so nullok auth required pam_nologin.so account required pam_unix.so password required pam_cracklib.so retry=3 password required pam_unix.so shadow nullok use_authtok session required pam_unix.so
#) al comienzo de la línea.
auth required pam_securetty.so — Este módulo asegura que si el usuario intenta ingresar como root, el tty donde el usuario está ingresando debe estar listado en el archivo /etc/securetty, si ese archivo existe.
Login incorrect.
auth required pam_unix.so nullok — Este módulo pide una contraseña al usuario, que luego confirma utilizando la información almacenada en /etc/passwd, y /etc/shadow, si es que existe.
nullok le indica al módulo pam_unix.so que permita el ingreso de una contraseña vacía.
auth required pam_nologin.so — Este es el último momento de la autenticación. Confirma que exista y en qué lugar, el archivo /etc/nologin. Si existe, pero el usuario no es root, la autenticación falla.
auth se encuentran verificados, aún si falló el primer módulo auth. Esto evita que los usuarios conozcan el momento exacto en que su autenticación falló. En manos de un atacante, el conocimiento de ese dato podría permitirle deducir más fácilmente cómo vulnerar el sistema.
account required pam_unix.so — Este módulo realiza cualquier tipo de verificación de cuenta que sea necesario. Por ejemplo, si se ha activado el enmascaramiento de contraseñas, la interfaz de la cuenta del módulo pam_unix.so verifica que la cuenta no haya expirado, o que el usuario no haya modificado la contraseña dentro del período permitido.
password required pam_cracklib.so retry=3 — Si una contraseña ha expirado, el componente contraseña del módulo pam_cracklib.so solicita una nueva. En seguida confirma que la nueva contraseña pueda o no ser fácilmente revelada por un programa de obtención de contraseñas basado en diccionarios.
retry=3 indica que si esta prueba falla la primera vez, el usuario tiene dos oportunidades más para crear una contraseña más poderosa.
password required pam_unix.so shadow nullok use_authtok — Esta línea indica que si el programa modifica la contraseña del usuario, debería utilizar para ello la interfaz password del módulo pam_unix.so.
shadow le indica al módulo la creación de contraseñas ocultas cada vez que actualice la contraseña del usuario.
nullok le indica al módulo que le permita al usuario modificar su contraseña desde una contraseña en blanco. De lo contrario, una contraseña vacía será tratada como un bloqueo de cuenta.
use_authtok, ofrece un buen ejemplo de la importancia que tiene el orden en que se "apilen" los modulos PAM. Este argumento le indica al módulo que no le solicite al usuario una nueva contraseña, y que en su lugar acepte cualquier contraseña que haya sido almacenada por un módulo anterior. De esta manera, todas las nuevas contraseñas deben pasar la prueba de pam_cracklib.so para confirmar que sean seguras antes de ser aceptadas
session required pam_unix.so — La línea final le indica a la interfaz de sesión del módulo pam_unix.so que administre la sesión. Este módulo registra el nombre de usuario y el tipo de servicio en /var/log/secure al comienzo y al final de cada sesión. Este módulo puede ser suplementado si se lo "apila" con otros módulos de sesión y poder así agregarle funcionalidades.
/usr/share/doc/pam-<version-number>/, donde <version-number> es el número de versión PAM de su sistema.
pam_timestamp.so. Es importante entender como funciona este mecanismo, ya que si algún usuario abandona la terminal mientras continue vigente pam_timestamp.so, dejará a ese equipo libre para ser manipulado por quienquiera que tenga acceso físico a la consola.
pam_timestamp.so crea un archivo de registro de tiempo. Por defecto, es creado en el directorio /var/run/sudo/. Si el archivo ya existe, los programas administrativos gráficos no solicitarán una contraseña. En su lugar, el módulo pam_timestamp.so actualizará el archivo de registro de tiempo, reservando cinco minutos extra de acceso administrativo sin contraseñas al usuario.
/var/run/sudo/<usuario>. Para el escritorio, el archivo importante es unknown:root. Si se encuentra presente y su registro de tiempo es menor a cinco minutos de antigüedad, las credenciales son válidas.

ssh, utilice el comando /sbin/pam_timestamp_check -k root para destruir el archivo de registro de tiempo.
/sbin/pam_timestamp_check -k root desde la misma ventana de la terminal desde la que inició la aplicación con este privilegio.
pam_timestamp.so, de modo de poder utilizar el comando /sbin/pam_timestamp_check -k. No se registre como usuario root para utilizarlo.
/sbin/pam_timestamp_check -k root </dev/null >/dev/null 2>/dev/null
pam_timestamp_check para obtener más información acerca del uso de pam_timestamp_check para destruir el archivo de registro de tiempo.
pam_timestamp.so acepta varias indicaciones. Las siguientes dos opciones son algunas de las más utilizadas:
timestamp_timeout — Especifica el periodo (en segundos) durante el cual el archivo de registro de tiempo es válido. El valor establecido por defecto es 300 (cinco minutos).
timestampdir — Indica el directorio en donde el archivo de registro de tiempo será almacenado. El valor establecido por defecto es /var/run/sudo/.
pam_timestamp.so.
pam_console.so.
pam_console.so es llamado mediante el comando login, o mediante algunos de los programa gráficos de logueo, como ser gdm, kdm, y xdm. Si este usuario es el primero en loguearse en la consola física — denominada consola del usuario — el modulo le asegura al usuario el dominio de una gran variedad de dispositivos que normalmente le pertenecen al usuario root. Estos dispositivos le pertenecen a la consola del usuario hasta que finalice su última sesión local. Una vez que este usuario haya finalizado su sesión, la pertenencia de los dispositivos vuelve a ser del usuario root.
pam_console.so editando los siguientes archivos:
/etc/security/console.perms
/etc/security/console.perms.d/50-default.perms
50-default.perms, debería crear uno nuevo (por ejemplo xx-name.perms) y luego ingresar las modificaciones requeridas. El nombre del nuevo archivo modelo debe comenzar con un número superior a 50 (por ejemplo 51-default.perms). Esto va a sustituir lo indicado en el archivo 50-default.perms.
<console> y <xconsole> del archivo /etc/security/console.perms con los siguientes valores:
<console>=tty[0-9][0-9]* vc/[0-9][0-9]* :0\.[0-9] :0 <xconsole>=:0\.[0-9] :0
<xconsole>, al mismo tiempo que modificar la directiva <console> con el valor siguiente:
<console>=tty[0-9][0-9]* vc/[0-9][0-9]*
/etc/security/console.apps/.
/sbin y /usr/sbin.
/sbin/halt
/sbin/reboot
/sbin/poweroff
pam_console.so como un requisito para usarlas.
pam — Buena información de presentación de PAM, que incluye la estructura y propósito de los archivos de configuración de PAM.
/etc/pam.conf como a los archivos de configuración individuales del directorio /etc/pam.d/. Por defecto, Fedora utiliza los archivos de configuración individual del directorio, ignorando el archivo /etc/pam.conf, aún si efectivamente existe.
pam_console — Describe el propósito del módulo pam_console.so. También describe la sintaxis apropiada para una entrada dentro del archivo de configuración de PAM.
console.apps — Describe el formato del archivo de configuración /etc/security/console.apps, que define qué aplicaciones son accesibles por el usuario de consola asignado por PAM.
console.perms — Describe el formato del archivo de configuración /etc/security/console.perms, que especifica los permisos del usuario de consola asignados por PAM.
pam_timestamp — Describe el módulo pam_timestamp.so.
/usr/share/doc/pam-<version-number> — Contiene una Guía de administradores de sistema, un Manual para escritores de módulos, y el Manual para desarrolladores de aplicación, y al mismo tiempo, una copia del stándard PAM DCE-RFC 86.0, donde <version-number> es el número de la versión de PAM.
/usr/share/doc/pam-<version-number>/txts/README.pam_timestamp — Contiene información relacionada con el módulo PAM pam_timestamp.so, donde <version-number> es el número de versión de PAM.
iptables, no permiten el ingreso a la configuración del kernel a todos aquellos paquetes que no hayan sido solicitados. Para los servicios de red que lo utilizan, los Encapsuladores TCP añaden una capa de protección adicional al definir los equipos que tienen o no permitida la conexión a los servicios de red "encapsulados". Tal servicio de red encapsulado es el súper servidor xinetd. Este servicio es llamado un súper servidor debido a que controla las conexiones de una serie de subservicios de red y posteriormente refina el control de acceso.

xinetd al controlar acceso a los servicios de red, y analiza de qué manera estas herramientas pueden ser utilizadas para mejorar tanto el registro como la administración de su utilización. Para obtener mayor información utilizando cortafuegos con iptables, vea la Sección 2.9, “IPTables”.
tcp_wrappers) se encuentra instalado por defecto y ofrece control de acceso a los servicios de red basado en los equipos. El componente más importante de este paquete es la biblioteca /usr/lib/libwrap.a. En términos generales, un servicio encapsulado por TCP es un servicio que ha sido compilado con la biblioteca libwrap.a.
/etc/hosts.allow y /etc/hosts.deny) para determinar en qué casos el equipo tiene permitida la conexión. Generalmente, luego utiliza al demonio syslog (syslogd) para escribir el nombre del cliente solicitante y del servicio solicitado en los archivos /var/log/secure o /var/log/messages.
libwrap.a. Algunas de estas aplicaciones son /usr/sbin/sshd, /usr/sbin/sendmail, y /usr/sbin/xinetd.
libwrap.a, ingrese el siguiente comando como usuario root:
ldd <nombre-binario> | grep libwrap
<binary-name> con el nombre del servicio de red ejecutable.
libwrap.a.
/usr/sbin/sshd se encuentra enlazado con libwrap.a:
[root@myServer ~]# ldd /usr/sbin/sshd | grep libwrap
libwrap.so.0 => /lib/libwrap.so.0 (0x00655000)
[root@myServer ~]#
/etc/hosts.allow
/etc/hosts.deny
/etc/hosts.allow. — El servicio encapsulado por TCP analiza secuencialmente el archivo /etc/hosts.allow y aplica la primera regla especificada para ese servicio. Si encuentra una regla concordante, permite la conexión. Si no, avanza al siguiente paso.
/etc/hosts.deny. — El servicio encapsulado por TCP analiza secuencialmente el archivo /etc/hosts.deny. Si encuentra una regla concordante, niega la conexión. Si no, permite el acceso al servicio.
hosts.allow, dejan un precedente sobre las reglas especificadas en hosts.deny. De este modo, si el acceso a un servicio es permitido en hosts.allow, será ignorada una regla negando el acceso al mismo servicio del archivo hosts.deny.
hosts.allow o hosts.deny, tienen efecto inmediato, sin necesidad de reiniciar los servicios de red.
/var/log/messages, o bien en /var/log/secure. Este es el mismo caso de una regla que abarca líneas múltiples sin utilizar el carcater de línea invertida. El siguiente ejemplo muestra la sección que nos interesa del fracaso de una regla debido a alguna de las circunstancias recién descritas:
warning: /etc/hosts.allow, line 20: missing newline or line too long
/etc/hosts.allow como de /etc/hosts.deny es el mismo. Cada regla debe estar en su propia línea. Líneas vacías o líneas que empiezan con el símbolo numeral (#) son ignoradas.
<daemon list>:<client list>[:<option>:<option>: ...]
<daemon list> — Una lista separadas por comas de nombres de procesos (y no el nombre de los servicios), o la opción ALL. La lista del demonio también acepta operadores (vea la Sección 2.5.2.1.4, “Operadores”) para permitir mayor flexibilidad.
<client list> — Una lista separada por comas de nombres de equipos, direcciones IP de los equipos, patrones especiales o comodines que identifican a los equipos afectados por la regla. La lista de cliente también acepta los operadores mostrados en la Sección 2.5.2.1.4, “Operadores” para permitir mayor flexibilidad.
<opcion> — Una acción, o una lista de acciones optativas separadas por puntos y comas, a realizarse cuando la regla sea disparada. Los campos de opción tienen soporte para expansiones, comandos de apertura de terminales, permitir o negar acceso, y modificar la conducta de registro.
vsftpd : .ejemplo.com
vsftpd) desde cualquier equipo en el dominio ejemplo.com. Si esta regla aparece en hosts.allow, la conexión es aceptada. Si esta regla figura en hosts.deny, la conexión es negada.
sshd : .example.com \ : spawn /bin/echo `/bin/date` access denied>>/var/log/sshd.log \ : deny
sshd) desde algún equipo del dominio example.com, ejecute el comando echo para añadir el intento en un archivo de log especial, y negar la conexión. Debido a que la directiva opcional deny es utilizada, esta línea niega el acceso aún si figura en el archivo hosts.allow. Para conocer en detalle otras opciones disponibles, vea la Sección 2.5.2.2, “Campos de opción”.
ALL — Se corresponde con todo. Puede ser utilizado tanto para la lista del demonio como con la lista del cliente.
LOCAL — Se corresponde con cualquier equipo que no contenga un punto (.), como por ejemplo el equipo local.
KNOWN — Se corresponde con cualquier equipo cuyo nombre y la dirección sean conocidas o donde el usuario sea conocido.
UNKNOWN — Se corresponde con cualquier equipo cuyo nombre o dirección sean desconocidos, o donde el usuario sea desconocido.
PARANOID — Se corresponde con cualquier equipo cuyo nombre no concuerde con su dirección.
KNOWN, UNKNOWN, y PARANOID deben ser utilizados con cuidado, ya que dependen del servidor DNS que se esté utilizando para su operación correcta. Cualquier interrupción de la resolución de nombres podría causar que se les niegue acceso al servicio a los usuarios legítimos.
ejemplo.com:
ALL : .ejemplo.com
192.168.x.x:
ALL : 192.168.
192.168.0.0 hasta 192.168.1.255:
ALL : 192.168.0.0/255.255.254.0
3ffe:505:2:1:: hasta 3ffe:505:2:1:ffff:ffff:ffff:ffff:
ALL : [3ffe:505:2:1::]/64
ejemplo.com:
ALL : *.ejemplo.com
/etc/telnet.hosts para todas las conexiones Telnet.
in.telnetd : /etc/telnet.hosts
hosts_access.
Portmap de los encapsuladores TCP no tiene soporte para búsqueda de equipos, lo que significa que Portmap no puede utilizar los nombres de los equipos para identificarlos. Por lo tanto, las reglas de control de acceso para portmap en hosts.allow o hosts.deny, deben ser direcciones IP, o la palabra clave ALL para especificar equipos.
portmap podrían no tener efecto inmediatamente. Tal vez necesite reiniciar el servicio portmap.
portmap para funcionar, de modo que tenga en cuenta estas limitaciones.
EXCEPT. Puede ser utilizado tanto en la lista de demonio como en la lista cliente de una regla.
EXCEPT permite excepciones específicas para ampliar las correspondencias dentro de una misma regla.
hosts.allow, todos los equipos ejemplo.com tienen permitido conectarse a todos los servicios, exepcto cracker.ejemplo.com:
ALL: .ejemplo.com EXCEPT cracker.ejemplo.com
hosts.allow, los clientes de la red 192.168.0.x pueden utilizar todos los servicios con excepción de FTP:
ALL EXCEPT vsftpd: 192.168.0.
EXCEPT. Esto permite que otros administradores analicen rápidamente los archivos apropiados para ver a qué equipos se les permite o se les niega el acceso a los servicios, sin tener que organizar los operadores EXCEPT.
severity.
ejemplo.com son registradas en la herramienta authpriv syslog establecida por defecto (debido a que ningún valor de la herramienta es especificado) con una prioridad de emerg:
sshd : .example.com : severity emerg
severity. El siguiente ejemplo registra cualquier intento de conexión SSH realizada por equipos del dominio ejemplo.com a la herramienta local0, con una prioridad de alert:
sshd : .ejemplo.com : severity local0.alert
syslogd) sea configurado para registrarse en la herramienta local0. Para obtener mayor información acerca de cómo configurar herramientas de registro establecidas por defecto, vea la página man de syslog.conf.
allow o deny como la opción final.
client-1.example.com, pero niegan conexiones de client-2.example.com:
sshd : client-1.example.com : allow sshd : client-2.example.com : deny
hosts.allow, o bien hosts.deny. Algunos administradores consideran a esto como una forma sencilla de organizar las reglas de acceso.
spawn — Inicia un comando de terminal como un proceso hijo. Esta directiva puede realizar tareas como ser la utilización de /usr/sbin/safe_finger para obtener mayor información acerca del cliente que está realizando una determinada petición, o crear archivos de registro especiales mediante la utilización del comando echo.
ejemplo.com que intentan acceder a servicios Telnet, son registrados silenciosamente en un archivo especial:
in.telnetd : .ejemplo.com \
: spawn /bin/echo `/bin/date` from %h>>/var/log/telnet.log \
: allow
twist — Reemplaza el servicio solicitado con el comando indicado. Esta directiva es a menudo utilizada para establecer trampas a los intrusos (también denominadas "tacitas de miel"). Puede también ser utilizada para enviar mensajes a los cllientes que estén conectándose. La directiva twist debe tener lugar al final de la línea de la regla.
ejemplo.com, se les envía un mensaje utilizando el comando echo.
vsftpd : .ejemplo.com \
: twist /bin/echo "421 This domain has been black-listed. Access denied!"
hosts_options.
spawn y twist, las expansiones proveen información acerca del cliente, servidor, y los procesos involucrados.
%a — Informa la dirección IP del cliente.
%A — Informa la dirección IP del servidor.
%c — Informa una gran cantidad de datos del cliente, como ser por ejemplo, el nombre de usuario y el nombre del equipo, o el nombre de usuario y la dirección IP.
%d — Informa el nombre del demonio encargado del proceso.
%h — Informa el nombre del equipo del cliente (o la dirección IP, si es que el nombre del equipo no está disponible).
%H — Informa el nombre del equipo del servidor (o su dirección IP, en caso que el nombre no esté disponible).
%n — Informa el nombre del equipo cliente. Si no está disponible, se muestra unknown. Si el nombre del equipo y la dirección del cliente no concuerdan, se muestra paranoid.
%N — Informa el nombre del equipo del servidor. Si no está disponible, se muestra unknown. Si el nombre del equipo del servidor y la dirección no concuerdan, se muestra paranoid.
%p — Informa el ID del proceso del demonio.
%s — Informa diferentes tipos de datos acerca del servidor, como ser por ejemplo, si el proceso del demonio y la dirección del equipo o dirección IP del servidor.
%u — Informa el nombre de usuario del cliente. Si no está disponible, se muestra unknown.
spawn para identificar el equipo del cliente en un archivo de registro modificado.
sshd) desde un equipo del dominio ejemplo.com, ejecute el comando echo para registrar el intento en un archivo especial, incluyendo el nombre del cliente (utilizando la expanción %h).
sshd : .ejemplo.com \
: spawn /bin/echo `/bin/date` access denied to %h>>/var/log/sshd.log \
: deny
ejemplo.com, se les informa que han sido eliminados del servidor:
vsftpd : .ejemplo.com \ : twist /bin/echo "421 %h has been banned from this server!"
hosts_access (man 5 hosts_access), y la página man de hosts_options.
xinetd es un súper servicio encapsulado por TCP, que controla el acceso a un subconjunto de servicios de red muy utilizados, como por ejemplo FTP, IMAP y Telnet. También ofrece opciones de configuración de servicio específicas para control de acceso, registros mejorados, uniones, redirecciones y control de la utilización de los recursos.
xinetd, el súper servicio recibe la petición y verifica la existencia de reglas de control de acceso para encapsuladores TCP.
xinetd verifica que la conexión sea permitida bajo sus propias reglas de acceso para ese servicio. También verifica que el servicio pueda tener más recursos disponibles, y que no esté en contradicción con ninguna otra regla definida.
xinetd inicia una instancia del servicio solicitado y le pasa el control de la conexión. Luego que la conexión haya sido establecida, xinetd deja de formar parte en la comunicación entre el cliente y el servidor.
xinetd son los siguientes:
/etc/xinetd.conf — El archivo de configuración general de /etc/xinetd.conf.
/etc/xinetd.d/ — El directorio continente de todos los archivos específicos para cada servicio.
/etc/xinetd.conf contiene parámetros de configuraciones generales que afectan cada servicio controlado por xinetd. Es leido cuando el servicio xinetd es iniciado por primera vez, de modo que para que los cambios en la configuración tengan efecto, habrá que reiniciar el servicio xinetd. El siguiente es un ejemplo del archivo /etc/xinetd.conf.
defaults
{
instances = 60
log_type = SYSLOG authpriv
log_on_success = HOST PID
log_on_failure = HOST
cps = 25 30
}
includedir /etc/xinetd.d
xinetd:
instances — Indica el número máximo de peticiones simultáneas que puede procesar xinetd.
log_type — Configura xinetd para utilizar la herramienta de registro authpriv, que guarda entradas de registro en el archivo /var/log/secure. Agregar una directiva como FILE /var/log/xinetdlog podría crear un archivo de registro modificado denominado xinetdlog en el directorio /var/log/.
log_on_success — configura xinetd para registrar intentos de conexión exitosos. Por defecto, son registradas la dirección IP del equipo remoto y los ID de los procesos del servidor que está procesando la petición.
log_on_failure — Configura xinetd para registrar intentos de conexión fallidos, o casos en que la conexión fue negada.
cps — Configura xinetd para permitir más de 25 conexiones por segundo hacia cualquier servicio dado. Si el límite es superado, el servicio se retira durante 30 segundos.
includedir /etc/xinetd.d/ — Incluye opciones declaradas en los archivos de configuración propios de cada servicio, ubicados en el directorio /etc/xinetd.d/. Para obtener mayor infirmación, consulte Sección 2.5.4.2, “El directorio /etc/xinetd.d/”.
log_on_success como log_on_failure establecidas en /etc/xinetd.conf son modificadas posteriormente en los archivos de configuración propios de cada servicio. Por lo tanto existirá mayor información en el archivo de registro de un servicio dado, que la que pueda indicar el archivo /etc/xinetd.conf. Para mayor información, vea la Sección 2.5.4.3.1, “Opciones para registrado”.
/etc/xinetd.d/ contiene los archivos de configuración para cada servicio administrado por xinetd, y los nombres de los archivos correspondientes al servicio. Del mismo modo que con xinetd.conf, este directorio es de solo lectura cuando el servicio xinetd es iniciado. Para que cualquier cambio pueda tener efecto, el administrador debe reiniciar el servicio xinetd.
/etc/xinetd.d/ utiliza las mismas convenciones que /etc/xinetd.conf. La principal razón por la que la configuración de cada servicio sea almacenada en un archivo diferente, es para hacer más sencilla la personalización, y menos propensa a modificar otros servicios.
/etc/xinetd.d/krb5-telnet:
service telnet
{
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/kerberos/sbin/telnetd
log_on_failure += USERID
disable = yes
}
telnet:
service — Especifica el nombre del servicio, generalmente uno de aquellos listados en el archivo /etc/services
flags — Establece alguno de los atributos para la conexión. REUSE le indica a xinetd que vuelva a utilizar el socket para una conexión Telnet.
REUSE es obsoleta. Todos los servicios hoy en día utilizan la marca REUSE.
socket_type — Establece el tipo de socket de red a stream.
wait — Especifica cuando el servicio es tratado como de uno solo hilo de ejecución (yes) o como de múltiples hilos de ejecución (no).
user — Especifica bajo qué ID de usuario se está ejecutando el proceso.
server — Especifica el binario ejecutable a ser lanzado.
log_on_failure — Especifica parámetros de registro para log_on_failure, además de los que ya están definidos en xinetd.conf.
disable — Especifica cuándo el servicio debe ser desactivado (yes), o activado (no).
xinetd.conf.
xinetd. En esta sección se detallan algunas de las opciones más comunmente utilizadas.
/etc/xinetd.conf como para los archivos de configuración del servicio específico en el directorio /etc/xinetd.d/.
ATTEMPT — Registra el hecho de haberse realizado un intento fallido (log_on_failure).
DURATION — Registra el período de tiempo total en que ha sido utilizado el servicio por un sistema remoto (log_on_success).
EXIT — Registra el estado de salida, o la señal de finalización del servicio (log_on_success).
HOST — Registra la dirección IP del equipo remoto (log_on_failure y log_on_success).
PID — Registra el ID de los procesos del servidor que recibe el pedido (log_on_success).
USERID — Registra a los usuarios remotos que utilizan el método definido en RFC 1413 para todos los servicios stream de aspectos múltiples (log_on_failure ylog_on_success).
xinetd.conf.
xinetd pueden elegir entre utilizar las reglas de acceso de los equipos con encapsuladores TCP, o proveer control de acceso mediante los archivos de configuración de xinetd, o una mezcla de ambos. Para obtener mayor información acerca del control de acceso de los equipos con encapsuladores TCP, consulte la Sección 2.5.2, “Archivos de configuración de los encapsuladores TCP”.
xinetd para controlar el acceso a los servicios.
xinetd reinicia el servicio xinetd.
xinetd solo afecta a los servicios controlados por xinetd.
xinetd difiere del método utilizado por encapsuladores TCP. Mientras que los encapsuladores TCP colocan todas las configuraciones de acceso en dos archivos, /etc/hosts.allow y /etc/hosts.deny, el control de acceso de xinetd se encuentra en cada uno de los archivos de configuración de los servicios dentro del directorio /etc/xinetd.d/.
xinetd:
only_from — Permite la utilización del servicio sólo a los equipos especificados.
no_access — Impide la utilización del servicio a los equipos indicados.
access_times — Establece el período de tiempo en que un servicio particular puede ser utilizado. Este período debe ser indicado con notaciones en formato de 24 horas, HH:MM-HH:MM.
only_from y no_access pueden utilizar una lista de direcciones IP o nombres de archivo, o pueden especificar una red entera. Del mismo modo que los encapsuladores TCP, combinar el control de acceso de xinetd con la configuración mejorada de registro puede aumentar la seguridad evitando las peticiones de los equipos bloqueados, al mismo tiempo que se registra cada intento de conexión.
/etc/xinetd.d/telnet puede utilizarse para bloquear accesos Telnet desde un grupo de determinado, y restringir el tiempo total en que pueden registrarse incluso los usuarios autorizados:
service telnet
{
disable = no
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/kerberos/sbin/telnetd
log_on_failure += USERID
no_access = 172.16.45.0/24
log_on_success += PID HOST EXIT
access_times = 09:45-16:15
}
10.0.1.0/24, como por ejemplo 10.0.1.2 intenta acceder al servicio Telnet, recibe el siguiente mensaje:
Conexión cerrada por el equipo remoto.
/var/log/messages de la manera siguiente:
Sep 7 14:58:33 localhost xinetd[5285]: FAIL: telnet address from=172.16.45.107 Sep 7 14:58:33 localhost xinetd[5283]: START: telnet pid=5285 from=172.16.45.107 Sep 7 14:58:33 localhost xinetd[5283]: EXIT: telnet status=0 pid=5285 duration=0(sec)
xinetd, es importante comprender la relación entre ambos mecanismos de control de acceso.
xinetd cada vez que un cliente solicite una conexión:
xinetd obtiene las reglas de acceso de los equipos con encapsuladores TCP, utilizando una llamada de biblioteca libwrap.a. Si una regla de negación concuerda con el cliente, se abandona la conexión. Si una regla de conexión concuerda con el cliente, la conexión es entregada a xinetd.
xinetd verifica sus propias reglas de control de acceso tanto para el servicio xinetd, como para el servicio solicitado. Si una regla de negación concuerda con el cliente, se abandona la conexión. De lo contrario, xinetd inicia una instancia del servicio solicitado y entrega el control de la conexión a ese servicio.
xinetd. Un error de configuración puede causar efectos no deseados.
xinetd tienen soporte para asociar el servicio con una dirección IP, y redireccionar las peticiones entrantes para ese servicio hacia otra dirección IP, nombre de equipo, o puerto.
bind en el archivo de configuración específico de cada servicio, y enlaza ese servicio con una dirección IP en el sistema. Cuando esto es configurado, la opción bind sólo acepta peticiones para acceder al servicio de la dirección IP correcta. Puede utilizar este método para asociar diferentes servicios con diferentes interfases de acuerdo a sus propias necesidades.
redirect acepta una dirección IP o nombre de equipo seguido por un número de puerto. Configura el servicio de modo tal de poder redireccionar cualquier petición para este servicio hacia el equipo y número de puerto indicado. Esta herramienta puede ser utilizada para dirigirse hacia otro número de puerto en el mismo sistema, redireccionar la petición hacia una dirección IP diferente en la misma máquina, intercambiar la petición con un sistema y número de puerto totalmente diferente, o combinar entre ellas cualesquiera de estas opciones. Un usuario conectándose con un servicio determinado de un sistema, por lo tanto puede ser reruteado hacia otro sistema sin sufrir ningún tipo de interrupción.
xinetd es capaz de lograr este redireccionamiento extendiendo un proceso activo durante todo el tiempo que dure la conexión, entre la máquina del cliente que realiza la petición y el equipo que efectivamente está proveyendo el servicio, transfiriendo los datos entre ambos sistemas.
bind y redirect se hacen más evidentes cuando se utilizan de manera conjunta. Al asociar un servicio con una dirección IP determinada de un sistema, y luego redireccionar las peticiones para este servicio hacia una segunda máquina que sólo pueda ser vista por la primera, puede entonces utilizarse un sistema interno que ofrezca servicios para una red comopletamente diferente. Alternativamente, estas opciones pueden ser utilizadas para limitar la exposición de un servicio determinado en una máquina hacia una dirección IP conocida, al mismo tiempo que redirecciona cualquier petición para ese servicio hacia otra máquina configurada para ese propósito.
service telnet
{
socket_type = stream
wait = no
server = /usr/kerberos/sbin/telnetd
log_on_success += DURATION USERID
log_on_failure += USERID
bind = 123.123.123.123
redirect = 10.0.1.13 23
}
bind y redirect de este archivo aseguran que el servicio Telnet en la máquina está unido a la dirección IP externa (123.123.123.123), por medio de la cual se conecta a Internet. Además, cualquier petición para el servicio Telnet enviada a 123.123.123.123, es redireccionada hacia una dirección IP interna mediante un segundo adaptador de red (10.0.1.13) a la que solo el cortafuegos y los sistemas internos pueden acceder. El cortafuegos entonces envía la comunicacién entre ambos sistemas, y el sistema que está conectándose piensa que lo ha hecho con 123.123.123.123, cuando en realidad está conectado con una máquina diferente.
xinetd son configurados con las opciones bind y redirect, la máquina que hace de puerta de enlace puede actuar como un proxy entre los sistemas externos y una máquina interna determinada que haya sido configurada para ofrecer el servicio. Además, las diferentes opciones de registro y de control de acceso de xinetd, están disponibles para establecer protección adicional.
xinetd puede ofrecer un nivel de protección básico para los ataques de Denegación de Servicio (DoS, por las iniciales en inglés de Denial of Service). La siguiente es una lista de directivas que pueden ayudar a disminuir la efectividad de tales ataques:
per_source — Establece el número máximo de instancias para un servicio desde cada dirección IP. Acepta solo valores enteros como argumentos y puede ser utilizada tanto en xinetd.conf como en el archivo de configuración específico del servicio en cuestión del directorio xinetd.d/.
cps — Establece el numero máximo de conexiones por segundo. Esta directiva necesita de dos argumentos enteros separados por un espacio. El primer argumento es el número máximo de conexiones permitidas por segundo al servicio. El segundo argumento es la cantidad de segundos que xinetd debe esperar antes de reactivar el servicio. Acepta solo enteros como argumentos y puede ser utilizado tanto en el archivo xinetd.conf, como el los archivos de configuración propios de cada servicio en el directorio xinetd.d/.
max_load — Define la utilización del CPU o el umbral de carga de utilización promedio de un servicio. Acepta un número de punto flotante como argumento.
uptime, who, y procinfo
xinetd. Para obtener mayor información, consulte la página man de xinetd.conf.
xinetd se encuentra disponible en Internet y en la documentación del sistema.
xinetd, y control de acceso.
/usr/share/doc/tcp_wrappers-<version>/ — Este directorio contiene un archivo README en el que se explica cómo funcionan los encapsuladores TCP, y algunos de los muchos riesgos de suplantación de identidad que existen para los nombres de los equipos y sus direcciones.
/usr/share/doc/xinetd-<version>/ — Este directorio contiene un archivo README en el que se detallan aspectos relacionados con el control de acceso, y un archivo sample.conf, con varias ideas para modificar los archivos de configuración propios para cada servicio que se encuentran en el directorio /etc/xinetd.d/.
xinetd — Existen una cantidad de páginas man para varias aplicaciones y archivos de configuración relacionadas con encapsuladores TCP y xinetd. Las siguientes con algunas de las más importantes:
man xinetd — La página man para xinetd.
man 5 hosts_access — La página man para los archivos de control de acceso de equipos con encapsuladores TCP.
man hosts_options — La página man para los campos de opción de los encapsuladores TCP.
man xinetd.conf — La página man que ofrece opciones de configuración para xinetd.
xinetd, que contiene archivos de configuración a modo de ejemplo, lista completa de herramientas, y una sección informativa de preguntas frecuentes (FAQ, por las iniciales en inglés de Frecuently Asked Questions).
xinetd establecidos por defecto, de manera de poder alcanzar objetivos de seguridad específicos.
xinetd.
/etc/passwd o /etc/shadow hacia una base de datos para contraseñas Kerberos, ya que no hay ningún mecanismo automatizado para realizar esta tarea. Consulte la pregunta 2.23 en el FAQ en línea de Kerberos:
kinit. El archivo keytab establecido por defecto es /etc/krb5.keytab. El servidor que administra el KDC /usr/kerberos/sbin/kadmind, es el único servicio que utiliza cualquier otro archivo (utiliza /var/kerberos/krb5kdc/kadm5.keytab).
kinit permite a un principal que ya ingresó obtener y hacer caché del ticket inicial de garantía de tickets (TGT). Vaya a la página man de kinit para más información.
root[/instance]@REALM. Para un usuario típico, el root es el mismo que su ID de inicio de sesión. La instance es opcional. Si el principal tiene una instancia, será diferenciada del root con una barra invertida ("/"). Una cadena vacía ("") es considerada una instancia válida (que difiere de la instancia NULL establecida por defecto), pero utilizarla puede llegar a ser confuso. Todos los principales de un dominio poseen su propia clave, que para los usuarios es derivada desde una contraseña, o es un conjunto de servicios aleatorios.
kinit luego que el usuario se haya logueado.
kinit en el cliente, se encarga de desencriptar el TGT utilizando la clave del usuario, que se analiza desde la contraseña del usuario. La clave del usuario es utilizada sólo en la máquina cliente y no se transmite en la red.
ntpd. Consulte /usr/share/doc/ntp-<version-number>/index.html para obtener más detalles acerca de cómo definir servidores de Protocolos de Horarios de Red (donde <version-number>) es el número de versión del paquete ntp instalado en su sistema).
/usr/share/doc/krb5-server-<version-number> para obtener más información, (donde <version-number> es el número de versión del paquete krb5-server instalado en su sistema).
pam_krb5 (provisto en el paquete pam_krb5) se encuentra instalado. El paquete pam_krb5 contiene archivos de ejemplos de configuración que permiten que servicios como login o gdm puedan autenticar usuarios al mismo tiempo que obtienen credenciales de inicio utilizando sus contraseñas. Si el acceso a los servicios de red es siempre realizado utilizando servicios kerberizados, o servicios que utilicen GSS-API como por ejemplo lo es IMAP, entonces puede considerarse a la red como razonablemente segura.
ntp para este propósito. Consulte /usr/share/doc/ntp-<version-number>/index.html (donde <version-number> es el número de versión del paquete ntp instalado en su sistema) para conocer detalles acerca de cómo configurar servidores con Protocolos de Horario de Red, o http://www.ntp.org, para obtener más información acerca de NTP.
krb5-libs, krb5-server y krb5-workstation en la máquina dedicada que correrá KDC. Esta máquina necesita ser muy segura — si es posible, no debe correr ningún otro servicio más que KDC.
/etc/krb5.conf y /var/kerberos/krb5kdc/kdc.conf para reflejar el nombre del reinado y los mapeos dominio-a-reinado. Un reinado simple puede ser construido reemplazando instancias de EJEMPLO.COM y ejemplo.com con el nombre correcto del dominio — siendo seguro mantener la forma correcta de los nombres en mayúscula y en mínuscula — y cambiando el KDC de kerberos.elemplo.com al nombre del servidor kerberos. Por convención, todos los nombres de reinados se escriben en mayúsculas, y todos los nombres de equipos y de dominios DNS en minúsculas. Para obtener información detallada acerca de los formatos de estos archivos de configuración, consulte sus respectivas páginas man.
kdb5_util desde una terminal:
/usr/kerberos/sbin/kdb5_util create -s
create genera la base de datos que almacena las clves para el reinado de Kerberos. El interruptor -s obliga a la creación de un archivo stash en el cual la clave del servidor principal es almacenada. Si no existe un archivo stash desde donde poder leer la clave, el servidor kerberos (krb5kdc) le pedirá al usuario que ingrese la contraseña principal del servidor (que puede ser utilizada para generar nuevamente la clave) cada vez que se inicie.
/var/kerberos/krb5kdc/kadm5.acl. Este archivo es usado por kadmind para determinar qué principales tienen acceso administrativo a la base de datos de Kerberos y sus niveles de acceso. La mayoría de las organizaciones pueden obtenerlo por una única línea:
*/admin@EJEMPLO.COM *
kadmind en el servidor, cualquier usuario puede acceder sus servicios ejecutando kadmin en cualquier cliente o servidores en el reino. Sin embargo, sólo los usuarios listados en el archivo kadm5.acl pueden modificar la base de datos de ninguna forma, excepto para cambiar sus propias contraseñas.
kadmin permite la comunicación con el servidor kadmind a través de la red, y utiliza kerberos para manipular la autenticación. Consecuentemente, el primer principal debe existir previamente antes de intentar conectarse con el servidor a través de la red para administrarlo. Genere el primer principal con el comando kadmin.local, que ha sido específicamente diseñado para ser utilizado en el mismo equipo en el que funciona el KDC, y no utiliza Kerberos para su autenticación.
kadmin.local en la terminal KDC para crear el primer principal:
/usr/kerberos/sbin/kadmin.local -q "addprinc nombreusuario/admin"
/sbin/service krb5kdc start /sbin/service kadmin start /sbin/service krb524 start
addprinc dentro de kadmin. kadmin y kadmin.local son interfaces de líneas de comando al KDC. Como este, existen disponibles otros comandos — como por ejemplo addprinc — luego de iniciar el programa kadmin. Para obtener mas información, consulte la página man de kadmin.
kinit para obtener un tique y guardarlo en un archivo cache de credencial. Luego, use klist para ver la lista de credenciales en el caché y use kdestroy para destruir el caché y las credenciales que contiene.
kinit intenta autenticarse utilizando el mismo nombre de usuario del de inicio de sesión (no el del servidor Kerberos). Si ese nombre de usuario no se corresponde con un principal en la base de datos de Kerberos, kinit envía un mensaje de error. Si eso sucede, indiquele a kinit el nombre del principal correcto, como un argumento en la línea de comando (kinit <principal>).
krb5.conf válido. Mientras que ssh y slogin son los métodos preferidos para loguearse remotamente en sistemas cliente, las versiones Kerberizadas de rsh y rlogin siguen estando disponibles, aunque para habilitarlas es necesario realizar algunos cambios adicionales en la configuración.
krb5-libs y krb5-workstation en todas las máquinas clientes. Provea un archivo /etc/krb5.conf válido para cada cliente (normalmente este puede ser el mismo archivo krb5.conf usado por el KDC).
ssh, o mediante los rsh o rlogin Kerberizados, debe tener su propio equipo principal en la base de datos de Kerberos. Los programas de servidor sshd, kshd, y klogind, necesitan todos acceder a las llaves para los servicios del host principal. Además, para poder utilizar los servicios kerberizados rsh y rlogin, esa estación de trabajo debe tener el paquete xinetd instalado.
kadmin se agrega un principal de equipo para la estación de trabajo en el KDC. En este caso, la instancia es el nombre del equipo de la estación de trabajo. Utilice la opción -randkey para el comando addprinc de kadmin, para crear el principal y asignarle una llave en forma azarosa:
addprinc -randkey host/bla.ejemplo.com
kadmin en la misma estación de trabajo y usando el comando ktadd dentro de kadmin:
ktadd -k /etc/krb5.keytab host/bla.ejemplo.com
ssh — OpenSSH usa GSS-API para autenticar los usuarios en los servidores si la configuración del cliente y del servidor tienen ambas GSSAPIAuthentication habilitado. Si el cliente tiene también GSSAPIDelegateCredentials habilitado, las credenciales del usuario se hacen disponibles en el sistema remoto.
rsh y rlogin — Para usar las versiones kerberizadas de rsh y rlogin, habilite klogin, eklogin y kshell.
krb5-telnet.
ftp. Asegúrese de poner la instancia al nombre de equipo completo del servidor FTP, luego habilite gssftp.
cyrus-imap utilizará Kerberos 5, si también se encuentra instalado el paquete cyrus-sasl-gssapi. El paquete cyrus-sasl-gssapi contiene el complemento Cyrus SASL que tiene soporte para autenticación GSS-API. Cyrus IMAP debería funcionar correctamente con Kerberos siempre y cuando el usuario cyrus sea capaz de encontrar la clave correspondiente en /etc/krb5.keytab, y que la raíz para el principal esté definida para imap (creada con kadmin).
cyrus-imap se puede encontrar en el paquete dovecot, que también se incluye en Fedora. Este paquete contiene un servidor IMAP pero no da soporte a GSS-API y Kerberos por el momento.
gserver usa un principal con una raíz de cvs y por lo demás es idéntico al servidor CVS pserver.
foo.ejemplo.org → EJEMPLO.ORG
foo.ejemplo.com → EJEMPLO.COM
foo.hq.ejemplo.com → HQ.EJEMPLO.COM
krb5.conf del cliente. Por ejemplo:
[domain_realm] .ejemplo.com = EJEMPLO.COM ejemplo.com = EJEMPLO.COM
kadmind (que también es el admin server de su reinado), y uno o más KDCs (esclavos) conservan copias de solo lectura de la base de datos, y ejecutan kpropd.
krb5.conf y kdc.conf del KDC maestro fueron copiados al KDC esclavo.
kadmin.local desde una consola raíz en el KDC maestro, y utilice su comando add_principal para crear una nueva entrada para el servicio host del KDC maestro, y luego utilice su comando ktadd para definir una llave aleatoria para el servicio, y al mismo tiempo almacenarla en el archivo keytab establecido por defecto. Esta llave será utilizada por el comando kprop para autenticarse a los servidores esclavos. Usted necesitará hacer esto sólo una vez, sin importar la cantidad de servidores esclavos que tenga instalados.
#kadmin.local -r EXAMPLE.COMAuthenticating as principal root/admin@EXAMPLE.COM with password.kadmin:add_principal -randkey host/masterkdc.example.comPrincipal "host/host/masterkdc.example.com@EXAMPLE.COM" created.kadmin:ktadd host/masterkdc.example.comEntry for principal host/masterkdc.example.com with kvno 3, encryption type Triple DES cbc mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5.keytab. Entry for principal host/masterkdc.example.com with kvno 3, encryption type ArcFour with HMAC/md5 added to keytab WRFILE:/etc/krb5.keytab. Entry for principal host/masterkdc.example.com with kvno 3, encryption type DES with HMAC/sha1 added to keytab WRFILE:/etc/krb5.keytab. Entry for principal host/masterkdc.example.com with kvno 3, encryption type DES cbc mode with RSA-MD5 added to keytab WRFILE:/etc/krb5.keytab.kadmin:quit
kadmin como usuario root desde una terminal en el KDC esclavo, y utilice el comando add_principal para crear una nueva entrada para su servicio host. Luego utilice el comando ktadd, de kadmin, para establecer (y al mismo tiempo almacenar) en el archivo keytab del esclavo, una llave aleatoria para el servicio. Esta llave es utilizada por el servicio kpropd cuando se necesite autenticar a los clientes.
#kadmin -p jimbo/admin@EXAMPLE.COM -r EXAMPLE.COMAuthenticating as principal jimbo/admin@EXAMPLE.COM with password.Password for jimbo/admin@EXAMPLE.COM:kadmin:add_principal -randkey host/slavekdc.example.comPrincipal "host/slavekdc.example.com@EXAMPLE.COM" created.kadmin:ktadd host/slavekdc.example.com@EXAMPLE.COMEntry for principal host/slavekdc.example.com with kvno 3, encryption type Triple DES cbc mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5.keytab. Entry for principal host/slavekdc.example.com with kvno 3, encryption type ArcFour with HMAC/md5 added to keytab WRFILE:/etc/krb5.keytab. Entry for principal host/slavekdc.example.com with kvno 3, encryption type DES with HMAC/sha1 added to keytab WRFILE:/etc/krb5.keytab. Entry for principal host/slavekdc.example.com with kvno 3, encryption type DES cbc mode with RSA-MD5 added to keytab WRFILE:/etc/krb5.keytab.kadmin:quit
kprop con una nueva base de datos del reinado. Para restringir el acceso, el servicio kprop en el KDC esclavo solo aceptará actualizaciones de clientes cuyos nombre de principal estén listados en /var/kerberos/krb5kdc/kpropd.acl. Agregue el nombre del equipo KDC maestro a esa lista.
# echo equipo/kdcmaestro.ejemplo.com@EJEMPLO.COM > /var/kerberos/krb5kdc/kpropd.acl
/var/kerberos/krb5kdc/.k5.REALM), cópiela en el KDC esclavo utilizando cualquier método disponible que sea seguro, o cree una base de datos y un archivo escondite falsos en el KDC esclavo ejecutando kdb5_util create -s (la base de datos falsa será sobreescrita con la primera propagación de base de datos que sea exitosa), e indicando la misma contraseña.
kprop. Luego, vuelva a chequear si el servicio kadmin está deshabilitado.
kprop leerá (/var/kerberos/krb5kdc/slave_datatrans) y luego use el comando kprop para transmitir su contenido al KDC esclavo.
# /usr/kerberos/sbin/kdb5_util dump /var/kerberos/krb5kdc/slave_datatrans# kprop slavekdc.example.com
kinit, verifique que un sistema cliente cuyo krb5.conf liste sólo el KDC esclavo en su lista de KDCs para su reinado, pueda ahora obtener correctamente las credenciales iniciales del KDC esclavo.
kprop para transmitir la base de datos a cada KDC esclavo por vez, y configure el servicio cron para correr el script periódicamente.
A.EJEMPLO.COM acceda a un servicio en el reinado B.EJEMPLO.COM, ambos reinados deben compartir una clave para el principal con nombre krbtgt/B.EJEMPLO.COM@A.EJEMPLO.COM, y ambas claves deben tener el mismo número de versión de clave asociadas a ellas.
# kadmin -r A.EXAMPLE.COMkadmin: add_principal krbtgt/B.EXAMPLE.COM@A.EXAMPLE.COMEnter password for principal "krbtgt/B.EXAMPLE.COM@A.EXAMPLE.COM": Re-enter password for principal "krbtgt/B.EXAMPLE.COM@A.EXAMPLE.COM": Principal "krbtgt/B.EXAMPLE.COM@A.EXAMPLE.COM" created. quit # kadmin -r B.EXAMPLE.COMkadmin: add_principal krbtgt/B.EXAMPLE.COM@A.EXAMPLE.COMEnter password for principal "krbtgt/B.EXAMPLE.COM@A.EXAMPLE.COM": Re-enter password for principal "krbtgt/B.EXAMPLE.COM@A.EXAMPLE.COM": Principal "krbtgt/B.EXAMPLE.COM@A.EXAMPLE.COM" created. quit
get_principal para verificar que ambas entradas tienen un número de versión de claves (valores kvno) y tipos de encriptados coincidentes.
-randkey del comando add_principal, para asignar una clave aleatoria en lugar de una contraseña, descargar la nueva entrada desde una base de datos del primer reinado, e importarla al segundo. Esto no va a funcionar a menos que las claves maestras de la base de datos del reinado sean idénticas, ya que las claves contenidas en una base de datos descargada, son encriptadas utilizando la clave maestra.
A.EJEMPLO.COM son capaces ahora de autenticarse en los servicios del reinado B.EJEMPLO.COM. Dicho de otra manera, el reinado B.EJEMPLO.COM ahora confía en el reinado A.EJEMPLO.COM, o, más sencillo aún, ahora B.EJEMPLO.COM confía en A.EJEMPLO.COM.
B.EJEMPLO.COM podría confiar en clientes del reinado A.EJEMPLO.COM para autenticarse en sus servicios, pero este hecho no significa que el reinado A.EJEMPLO.COM confíe en los clientes del reinado B.EJEMPLO.COM cuando estos intenten autenticarse en sus servicios. Para establecer una confianza bidireccional entre dos reinados, ambos van a necesitar compartir claves para el servicio krbtgt/A.EJEMPLO.COM@B.EJEMPLO.COM (tome nota de la forma invertida de acuerdo a los dos reinados comparados en el ejemplo anterior).
A.EJEMPLO.COM pueden autenticarse en servicios del reinado B.EJEMPLO.COM, y los clientes del reinado B.EJEMPLO.COM pueden autenticarse en servicios del reinado C.EJEMPLO.COM, entonces los clientes de A.EJEMPLO.COM pueden también autenticarse en los servicios del reinado C.EJEMPLO.COM, aún cuando C.EJEMPLO.COM no confíe directamente en los clientes del reinado A.EJEMPLO.COM. Esto significa que lo ideal para poder reducir la cantidad de esfuerzo al configurar una red con múltiples reinados, que necesiten confiar unos en otros, será realizar las elecciones correctas a la hora de definir las relaciones de confianza entre ellos.
service/server.ejemplo.com@EJEMPLO.COM
EJEMPLO.COM es el nombre del reinado.
domain_realm del archivo /etc/krb5.conf para mapear ya sea el nombre del equipo (server.ejemplo.com) o el nombre del dominio DNS (.ejemplo.com) hacia el nombre del reinado (EJEMPLO.COM).
A.EJEMPLO.COM, B.EJEMPLO.COM, and EJEMPLO.COM. Cuando un cliente del reinado A.EJEMPLO.COM intente autenticarse en un servicio del reinado B.EJEMPLO.COM, por defecto, lo primero que hará será intentar obtener credenciales para el reinado EJEMPLO.COM, y luego utilizar esas credenciales para obtener unas nuevas para poder utilizarlas en el reinado B.EJEMPLO.COM.
A.EJEMPLO.COM, autenticando a un servicio en B.EJEMPLO.COMA.EJEMPLO.COM → EJEMPLO.COM → B.EJEMPLO.COM A.EJEMPLO.COM y EJEMPLO.COM comparten una clave para krbtgt/EJEMPLO.COM@A.EJEMPLO.COM
EJEMPLO.COM y B.EJEMPLO.COM comparten una clave krbtgt/B.EJEMPLO.COM@EJEMPLO.COM
SITIO1.VENTAS.EJEMPLO.COM, para autenticar a un servicio en CUALQUIERLUGAR.EJEMPLO.COMSITIO1.VENTAS.EJEMPLO.COM → VENTAS.EJEMPLO.COM → EJEMPLO.COM → CUALQUIERLUGAR.EJEMPLO.COM SITIO1.VENTAS.EJEMPLO.COM y VENTAS.EJEMPLO.COM comparten una clave para krbtgt/VENTAS.EJEMPLO.COM@SITIO1.VENTAS.EJEMPLO.COM
VENTAS.EJEMPLO.COM y EJEMPLO.COM comparten una clave para krbtgt/EJEMPLO.COM@VENTAS.EJEMPLO.COM
EJEMPLO.COM y CUALQUIERLUGAR.EJEMPO.COM comparten una clave para krbtgt/CUALQUIERLUGAR.EJEMPLO.COM@EJEMPLO.COM
DEVEL.EJEMPLO.COM y PROD.EJEMPLO.ORG DEVEL.EJEMPLO.COM → EJEMPLO.COM → COM → ORG → EJEMPLO.ORG → PROD.EJEMPLO.ORG DEVEL.EJEMPLO.COM y EJEMPLO.COM comparten una clave para krbtgt/EJEMPLO.COM@DEVEL.EJEMPLO.COM
EJEMPLO.COM y COM comparten una clave para krbtgt/COM@EJEMPLO.COM
COM y ORG comparten una clave para krbtgt/ORG@COM
ORG y EJEMPLO.ORG comparten una clave para krbtgt/EJEMPLO.ORG@ORG
EJEMPLO.ORG y PROD.EJEMPLO.ORG comparten una clave para krbtgt/PROD.EJEMPLO.ORG@EJEMPLO.ORG
capaths del archivo /etc/krb5.conf, de modo que los clientes que tengan credenciales para un reinado específico, deberán buscar qué reinado es el que le sigue en la cadena y que, eventualmente, será quien permita su autenticación con los servidores.
capaths es relativamente sencillo: cada entrada en la sección tiene el mismo nombre que el reinado en el que pudiera existir el cliente. Dentro de cada subsección, el conjunto de los reinados intermedios desde donde el cliente tiene que obtener las credenciales, se muestran como los valores de la llave que se corresponde con el reinado en el que puede residir el servicio. Si no existen reinados intermedios, será utilizado el valor ".".
[capaths]
A.EJEMPLO.COM = {
B.EJEMPLO.COM = .
C.EJEMPLO.COM = B.EJEMPLO.COM
D.EJEMPLO.COM = B.EJEMPLO.COM
D.EJEMPLO.COM = C.EJEMPLO.COM
}
A.EJEMPLO.COM pueden obtener credenciales de reinados cruzados para B.EJEMPLO.COM directamente del KDC de A.EJEMPLO.COM.
C.EJEMPLO.COM, necesitarán obtener primero credenciales necesarias del reinado B.EJEMPLO.COM (esto requiere que krbtgt/B.EJEMPLO.COM@A.EJEMPLO.COM exista), y entonces utilizar esas credenciales para obtener otras para ser utilizadas en el reinado C.EJEMPLO.COM (utilizando krbtgt/C.EJEMPLO.COM@B.EJEMPLO.COM).
D.EJEMPLO.COM, necesitarán obtener primero las credenciales necesarias del reinado B.EJEMPLO.COM, y luego las credenciales del reinado C.EJEMPLO.COM, antes de obtener, finalmente, las credenciales necesarias para utilizar con el reinado D.EJEMPLO.COM.
A.EJEMPLO.COM pueden obtener credenciales cruzadas del reinado B.EJEMPLO.COM directamente. Sin el "." indicando esto, el cliente intentaría sino usar un camino jerárquico, en este caso:
A.EXAMPLE.COM → EXAMPLE.COM → B.EXAMPLE.COM
/usr/share/doc/krb5-server-<version-number>/ (donde <version-number> es el número de versión del paquete krb5-server instalado en su sistema).
/usr/share/doc/krb5-workstation-<version-number>/ (donde <version-number> es el número de versión del paquete krb5-workstation instalado en su sistema).
man kerberos — Una introducción al sistema Kerberos que describe cómo funcionan las credenciales y provee recomendaciones para obtener y destruir tickets de Kerberos. Al final de la página man hay referencias hacia otras páginas man relacionadas con el tema.
man kinit — Describe cómo usar este comando para obtener y hacer caché de un ticket de garantía de tickets.
man kdestroy — Describe cómo usar este comando para destruir las credenciales de Kerberos.
man klist — Describe cómo usar este comando para listar las credenciales cacheadas de Kerberos.
man kadmin — Describe cómo usar este comando para administrar con la base de datos de Kerberos V5.
man kdb5_util — Describe cómo usar este comando para crear y realizar funciones administrativas de bajo nivel en la base de datos de Kerberos V5.
man krb5kdc — Describe las opciones de la línea de comando del KDC de Kerberos V5.
man kadmind — Describe las opciones de la línea de comando para el servidor de administración de Kerberos V5.
man krb5.conf — Describe el formato y las opciones disponibles dentro del archivo de configuración para la biblioteca de Kerberos V5.
man kdc.conf — Describe el formato y las opciones disponibles dentro del archivo de configuración del AS y el KDC de Kerberos V5.
racoon administra la distribución y el intercambio de clave IKE. Para obtener mayor información acerca de este demonio, vea la página man de racoon.
ipsec-tools en todos los equipos IPsec (si es que se está utilizando una configuración de tipo equipo-a-equipo), o enrutadores (si es es que se está utilizando una configuración de tipo red-a-red). El paquete RPM contiene bibliotecas esenciales, demonios, y archivos de configuración para establecer la conexión IPsec, como por ejemplo:
/sbin/setkey — manipula la administración de clave y los atributos de seguridad para IPsec en el kernel. Este ejecutable es controlado por el demonio de administración de clave racoon. Para obtener mayor información, consulte la página man número 8 de setkey.
/usr/sbin/racoon — el demonio de administración de clave IKE, utilizado para administrar y controlar las asociaciones de seguridad y el compartido de clave entre los sistemas conectados con IPsec.
/etc/racoon/racoon.conf — el archivo de configuración del demonio racoon utilizado para configurar varios aspectos de la conexión IPsec, incluyendo los métodos de autenticación y los algoritmos de encriptado utilizados en ella. Para conocer una lista con todas las directivas, consulte la página man número 5 de racoon.conf.
system-config-network para iniciar la Herramienta de administración de red.
ipsec0. Si lo necesita, tilde la casilla para activar automáticamente la conexión cada vez que encienda el equipo. Haga clic en para continuar.
racoon se encarga de administrar la clave del encriptado. El paquete ipsec-tools debe estar instalado si quiere utilizar la encriptación automática.
[root@myServer ~] # /sbin/ifconfig <device>
<device> es el dispositivo Ethernet que quiere utilizar para la conexión VPN.
eth0 Link encap:Ethernet HWaddr 00:0C:6E:E8:98:1D
inet addr:172.16.44.192 Bcast:172.16.45.255 Mask:255.255.254.0
inet addr:.
[root@myServer ~]# service network restart

/etc/sysconfig/network-scripts/ifcfg-<nickname>
/etc/sysconfig/network-scripts/keys-<nickname>
/etc/racoon/<ip-remota>.conf
/etc/racoon/psk.txt
/etc/racoon/racoon.conf.
/etc/racoon/racoon.conf se modifica para que pueda inlcuir a <remote-ip>.conf.
ipsec1. Esto es utilizado para identificar la conexión IP