Usando Linux para muchas cosas y disfrutando de videojuegos, en dispositivos moviles, consolas y pc. Using Linux for many things and enjoying video games, mobile devices, consoles and pc

Mostrando entradas con la etiqueta NTP. Mostrar todas las entradas
Mostrando entradas con la etiqueta NTP. Mostrar todas las entradas

Como configurar OPNsense NTP y asignarlo por DHCP

Configurando OPNsense NTP y asignalodolo con DHCP
OPNsense, un firewall router opensource que cada vez cuenta con mas seguidores tiene una funcionalidad muy útil que muchos puede que no usemos y es la de mantener nuestra LAN y dispositivos con fecha y hora sincronizada. Esto es esencial para tus funciones de administrador de sistemas (sysadmin) ya que tus tareas manuales y las que se realicen automáticas (por medio de cron por ejemplo) siempre estarán sincronizadas y ese sera el tema del articulo, como configurar OPNsense NTP paso a paso de forma sencilla.


Me dirás, pero y si mis equipos se conectan directo a un NTP en internet que yo les configuro al agregarlos a la red, pues, es valido solo que en el momento que tengas muchos equipos esa simple tarea te consumirá bastante tiempo cuando mas bien te la puedes ahorrar con un ÚNICO NTP dentro de tu red, sera una única solicitud a internet para sincronizar fecha y hora (ahorrando ancho de banda) y el resto de trafico de sincronizacion sera local, mucho mas rápido. Ya te convencí?, comencemos entonces

Requerimientos para configurar OPNsense NTP

Cómo configurar OPNsense NTP y asignarlo por DHCP

-Toda la configuracion la haremos via Dashboard o consola web de OPNsense por lo que abrimos un browser en un equipo en la LAN y navegamos a su ip logeandonos con la cuenta root


-Ya en el Dashboard damos click al menú vertical izquierdo en la opción Services
Menu Services del Dashboard de OPNsense

Vídeo tutorial configurando OPNsense NTP



-Seguidamente damos click al menú Network Time llegando a General donde veremos una pantalla de opciones. Una característica genial de diseño en OPNsense es el botón full help que vemos a la derecha debajo de los botones de estado del servicio. Este botón muestra u oculta la ayuda de cada opción en pantalla lo que nos permite en caso de dudas activarlo con solo darle un click
Menu General de NTP en OPNsense

-En esta pantalla de General solo veremos un servidor NTP configurado por lo que vamos a agregar otros (se recomienda tener de 3 a 5 servidores configurados). Configuramos:
  • Interfaces(s): LAN o la interfaz donde quieras activar tu NTP, normalmente es para los equipos protegidos por OPNsense
  • Time servers: Agregamos 4 servidores mas dándole click al signo de +. Uno por linea
  • 0.nl.pool.ntp.org
  • 0.pool.ntp.org
  • 1.pool.ntp.org
  • 2.pool.ntp.org
  • 3.pool.ntp.org
Las demás opciones las dejamos sin activar como vienen por default y solo te recomiendo usarlas si necesitas monitorear el servicio con logs y gráficos RRD. Damos click al botón Save

Agregando servidores NTP en OPNsense

-Si vamos al menú Status podemos monitorear el cambio
Verificando el Status de OPNsense NTP

-Y en el menú Log File veremos mas detallado el proceso de ejecución de NTP server en OPNsense
Verificando logs de OPNsense NTP

-Siguiente paso, automatizar el uso de nuestro OPNsense NTP por medio de DHCP para que los equipos que se conecten con ips dinámicas asignadas tomen la definición de NTP apuntando a nuestro recién configurado servicio. Damos click al menú Services - DHCP y en General bajamos en la pantalla de opciones a NTP, le damos click y agregamos la ip de la interfaz donde activamos el servicio de NTP (en mi caso 192.168.5.10 es la ip de la interfaz LAN). Damos click al botón Save para guardar el cambio
Asignando OPNsense en LAN con DHCP

Con esto terminamos la configuracion, no fue complicado cierto? Ya tienes tu LAN con fecha y hora actualizada por medio de OPNsense NTP y distribuida por OPNsense DHCP.

                                           Como configurar OPNsense DHCP server paso a paso
                                           Playlist OPNsense en Youtube


Pretendo vivir de mi blog, de enseñar opensource, pero esto no sera posible sin tu apoyo

Donar 25 USD

Satisfech@ con el articulo? Bien, hazme un favor, compártelo en tus redes sociales (compartir es sexy). Escríbeme en los comentarios aquí debajo y pasa la voz compartiendo el tweet.
Sígueme en twitter google+facebook o email y podrás estar enterado de todas mis publicaciones.
Disfrútenlo.


Share/Bookmark

Como agregar un cliente Fedora 16 o sin cliente a FreeIPA

En anteriores artículos creamos un servidor FreeIPA y un servidor replica FreeIPA. Hoy veremos como agregar y conectar un cliente Linux Fedora.
Los comandos los ejecutaremos desde la cuenta root en un Fedora 16 actualizado al día de hoy.

-Instalamos el cliente
yum install freeipa-client --enablerepo=updates-testing

-En caso de ser nuestra estacion de trabajo o de una persona que requerira trabajar con la administración de FreeIPA, el comando seria:

yum install freeipa-client freeipa-admintools --enablerepo=updates-testing

-Ejecutamos el script

ipa-client-install --server ipatest.example.com --domain example.com
DNS domain 'example.com' is not configured for automatic KDC address lookup.
KDC address will be set to fixed value.

Discovery was successful!
Hostname: vefemeca.example.com
Realm: EXAMPLE.COM
DNS Domain: example.com
IPA Server: ipatest.example.com
BaseDN: dc=example,dc=com


Continue to configure the system with these values? [no]:yes

User authorized to enroll computers: admin
Synchronizing time with KDC...
Password for admin@EXAMPLE.COM:

Enrolled in IPA realm EXAMPLE.COM
Created /etc/ipa/default.conf
New SSSD config will be created.
Configured /etc/sssd/sssd.conf
Configured /etc/krb5.conf for IPA realm EXAMPLE.COM
Warning: Hostname (vefemeca.example.com) not found in DNS
Failed to update DNS A record. (Command '/usr/bin/nsupdate -g /etc/ipa/.dns_update.txt' returned non-zero exit status 1)
SSSD enabled
NTP enabled
Client configuration complete.

En este caso da un warning debido a que no tengo (ni quiero) un campo A en la zona DNS para esta pc con Fedora. Pero no es problema.

-Abrimos firefox y apuntamos a https://ipatest.example.com. En caso de no mostrar la interfaz administrativa de FreeIPA si no da el siguiente error mostrado en la imagen

-Le damos click a "follow these directions"
-Importamos el certificado del server FreeIPA dando click en el link mostrado
-Activamos las opciones mostradas y damos click en Ok
-Damos click en el botón "Configure Firefox" y con esto nos queda configurado nuestro browser.

En caso de tener otro equipo al que no le hemos instalado el cliente FreeIPA o no es nuestro, ejemplo, el pc en la casa, que no es de la oficina.

Opción 1

-Para conectarnos desde un equipo que no tenga el cliente kerberos de FreeIPA. Comenzamos copiando la conf de kerberos al equipo que no tiene el cliente.

scp root@ipa.example.com:/etc/krb5.conf /etc/krb5_ipa.conf

-Activamos la variable apuntando a este conf

export KRB5_CONFIG=/etc/krb5_ipa.conf

Opción 2

-Modificamos la conf de apache en el server FreeIPA para que permita logearse con contraseña desde un browser sin kerberos

vi /etc/httpd/conf.d/ipa.conf
# Protect /ipa with Kerberos
<Location "/ipa">
  AuthType Kerberos
  AuthName "Kerberos Login"
  KrbMethodNegotiate on
  KrbMethodK5Passwd on
  KrbServiceName HTTP
  KrbAuthRealms TMG.COM
  Krb5KeyTab /etc/httpd/conf/ipa.keytab
  KrbSaveCredentials on
  Require valid-user
  ErrorDocument 401 /ipa/errors/unauthorized.html
</Location>

-Reiniciamos apache

service httpd restart

-Hacemos el anterior cambio en el servidor replica.

-La interfaz Web de FreeIPA


Disfrútenlo
Share/Bookmark

Como configurar FreeIPA replica

Continuando nuestro proyecto de FreeIPA, hoy les mostrare como crear un servidor replica del principal. La instalación de Fedora 16 debe ser igual a la de servidor principal y las versiones de los paquetes debe ser la misma para que todo funcione ok. Seguimos el articulo de FreeIPA hasta cuando debemos instalar el server FreeIPA. OJO, no ejecutar ipa-server-install

-Instalamos
yum install freeipa-server --enablerepo=updates-testing

-Generamos la replica en el servidor master. Ya debemos tener configurada la ip en nuestra zona DNS y una zona reverse para la ip del server replica, en caso contrario no funcionara.
 
ipa-replica-prepare ipatest.example.com
Directory Manager (existing master) password:

Preparing replica for ipatest.example.com from ipatest.example.com
Creating SSL certificate for the Directory Server
Creating SSL certificate for the dogtag Directory Server
Creating SSL certificate for the Web Server
Exporting RA certificate
Copying additional files
Finalizing configuration
Packaging replica information into /var/lib/ipa/replica-info-ipatest.example.com.gpg

Este fichero es único, es decir, solo nos servirá para configurar este servidor replica, no para generar un grupo u otro server.

-Copiamos el fichero a nuestro server replica

scp /var/lib/ipa/replica-info-ipatest.example.com.gpg root@ipatest:/var/lib/ipa/

-Ejecutamos el script para configurar la replica

ipa-replica-install /var/lib/ipa/replica-info-ipatest.example.com.gpg
Directory Manager (existing master) password:

Run connection check to master
Check connection from replica to remote master 'ipatest.example.com':
   Directory Service: Unsecure port (389): OK
   Directory Service: Secure port (636): OK
   Kerberos KDC: TCP (88): OK
   Kerberos KDC: UDP (88): OK
   Kerberos Kpasswd: TCP (464): OK
   Kerberos Kpasswd: UDP (464): OK
   HTTP Server: Unsecure port (80): OK
   HTTP Server: Secure port (443): OK

Connection from replica to master is OK.
Start listening on required ports for remote master check
Get credentials to log in to remote master
admin@EXAMPLE.COM password:

Execute check on remote master
Check connection from master to remote replica 'ipatest.example.com':
   Directory Service: Unsecure port (389): OK
   Directory Service: Secure port (636): OK
   Kerberos KDC: TCP (88): OK
   Kerberos KDC: UDP (88): OK
   Kerberos Kpasswd: TCP (464): OK
   Kerberos Kpasswd: UDP (464): OK
   HTTP Server: Unsecure port (80): OK
   HTTP Server: Secure port (443): OK

Connection from master to replica is OK.

Connection check OK
Configuring ntpd
  [1/4]: stopping ntpd
  [2/4]: writing configuration
  [3/4]: configuring ntpd to start on boot
  [4/4]: starting ntpd
done configuring ntpd.
Configuring directory server: Estimated time 1 minute
  [1/29]: creating directory server user
  [2/29]: creating directory server instance
  [3/29]: adding default schema
  [4/29]: enabling memberof plugin
  [5/29]: enabling referential integrity plugin
  [6/29]: enabling winsync plugin
  [7/29]: configuring replication version plugin
  [8/29]: enabling IPA enrollment plugin
  [9/29]: enabling ldapi
  [10/29]: configuring uniqueness plugin
  [11/29]: configuring uuid plugin
  [12/29]: configuring modrdn plugin
  [13/29]: enabling entryUSN plugin
  [14/29]: configuring lockout plugin
  [15/29]: creating indices
  [16/29]: configuring ssl for ds instance
  [17/29]: configuring certmap.conf
  [18/29]: configure autobind for root
  [19/29]: configure new location for managed entries
  [20/29]: restarting directory server
  [21/29]: setting up initial replication
Starting replication, please wait until this has completed.
Update in progress
Update in progress
Update in progress
Update succeeded
  [22/29]: adding replication acis
  [23/29]: setting Auto Member configuration
  [24/29]: initializing group membership
  [25/29]: adding master entry
  [26/29]: configuring Posix uid/gid generation
  [27/29]: enabling compatibility plugin
Restarting IPA to initialize updates before performing deletes:
  [1/2]: stopping directory server
  [2/2]: starting directory server
done configuring dirsrv.
  [28/29]: tuning directory server
  [29/29]: configuring directory to start on boot
done configuring dirsrv.
Configuring Kerberos KDC: Estimated time 30 seconds
  [1/9]: adding sasl mappings to the directory
  [2/9]: writing stash file from DS
  [3/9]: configuring KDC
  [4/9]: creating a keytab for the directory
  [5/9]: creating a keytab for the machine
  [6/9]: adding the password extension to the directory
  [7/9]: enable GSSAPI for replication
  [8/9]: starting the KDC
  [9/9]: configuring KDC to start on boot
done configuring krb5kdc.
Configuring ipa_kpasswd
  [1/2]: starting ipa_kpasswd
  [2/2]: configuring ipa_kpasswd to start on boot
done configuring ipa_kpasswd.
Configuring the web interface: Estimated time 1 minute
  [1/12]: disabling mod_ssl in httpd
  [2/12]: setting mod_nss port to 443
  [3/12]: setting mod_nss password file
  [4/12]: enabling mod_nss renegotiate
  [5/12]: adding URL rewriting rules
  [6/12]: configuring httpd
  [7/12]: setting up ssl
  [8/12]: publish CA cert
  [9/12]: creating a keytab for httpd
  [10/12]: configuring SELinux for httpd
  [11/12]: restarting httpd
  [12/12]: configuring httpd to start on boot
done configuring httpd.
Applying LDAP updates
Restarting IPA to initialize updates before performing deletes:
  [1/2]: stopping directory server
  [2/2]: starting directory server
done configuring dirsrv.
Restarting the directory server
Restarting the KDC
Restarting the web server
 
-Agregamos a nuestra zona DNS, teniendo cuidado de colocar los '_' frente a cada linea y el nombre de nuestro server replica

_ldap._tcp IN SRV 0 100 389 ipareplica.example.com
_kerberos._tcp IN SRV 0 100 88 ipareplica.example.com
_kerberos._udp IN SRV 0 100 88 ipareplica.example.com
_kerberos-master._tcp IN SRV 0 100 88 ipareplica.example.com
_kerberos-master._udp IN SRV 0 100 88 ipareplica.example.com
_kpasswd._tcp IN SRV 0 100 464 ipareplica.example.com
_kpasswd._udp IN SRV 0 100 464 ipareplica.example.com
_ntp._udp IN SRV 0 100 123 ipareplica.example.com


-En caso de error, debemos desinstalar, corregir el error y volver a ejecutar el script. Ejemplo

ipa-server-install --uninstall

Disfrútenlo Share/Bookmark

FreeIPA en tu oficina

Algo común es tener varias contraseñas para varios servicios y a la hora de cambiarlas o agregar o sacar a un usuario, es un dolor de cabeza. Por eso existe LDAP pero si vamos un poco mas allá, tenemos a Kerberos, dándole mas seguridad al proceso de autenticación. NTP y DNS aseguran que todos tengan la misma información.
Hoy veremos FreeIPA, una solución muy asequible que poco a poco a ido ganando madurez.
Debido a que es un proyecto para RedHat probado en Fedora, haremos nuestra instalación en un Fedora 16 con lo mínimo instalado y actualizado al día.

-Requerimientos:
Server con ip publica
Zona DNS que apunte al hostname del server, no funcionara con una ip privada o con localhost. Si tiene dudas de como generar la zona DNS al instalar puede usar --setup-dns para que se genere una que pueda colocar en su DNS

-Abrimos los puertos necesitados en iptables.

vi /etc/sysconfig/iptables

#http/https
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
#LDAP/LDAPS
-A INPUT -m state --state NEW -m tcp -p tcp --dport 389 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 636 -j ACCEPT
#Kerberos
-A INPUT -m state --state NEW -m tcp -p tcp --dport 88 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 88 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 464 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 464 -j ACCEPT
#DNS
-A INPUT -m state --state NEW -m tcp -p tcp --dport 53 -j ACCEPT
# NTP
-A INPUT -m state --state NEW -m udp -p udp --dport 123 -j ACCEPT
# Dogtag
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9180 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9443 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9444 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9445 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9446 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9701 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 7389 -j ACCEPT

-Salimos salvando y reiniciamos el servicio

service iptables restart

-Verificamos ports
iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination        
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
ACCEPT     icmp --  anywhere             anywhere           
ACCEPT     all  --  anywhere             anywhere           
ACCEPT     all  --  anywhere             anywhere           
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:http
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:https
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:ldap
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:ldaps
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:kerberos
ACCEPT     udp  --  anywhere             anywhere             state NEW udp dpt:kerberos
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:kpasswd
ACCEPT     udp  --  anywhere             anywhere             state NEW udp dpt:kpasswd
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:domain
ACCEPT     udp  --  anywhere             anywhere             state NEW udp dpt:domain
ACCEPT     udp  --  anywhere             anywhere             state NEW udp dpt:ntp
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:9180
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:tungsten-https
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:wso2esb-console
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:9445
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:9446
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:9701
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:7389
REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination        
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
ACCEPT     icmp --  anywhere             anywhere           
ACCEPT     all  --  anywhere             anywhere           
ACCEPT     all  --  anywhere             anywhere           
REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

-Verificamos nuestro file hosts, ejemplo de uno bien configurado. OJO, cambiar la ip privada por la publica que usen.

cat /etc/hosts

127.0.0.1    localhost.localdomain    localhost
::1        localhost6.localdomain6    localhost6
192.168.1.1    ipatest.example.com    ipatest

-Desactivamos NetworkManager y activamos network

chkconfig NetworkManager off
service NetworkManager stop
chkconfig NetworkManagerDispatcher off
service NetworkManagerDispatcher stop
chkconfig network on
service network start

-Reiniciamos el server
reboot

-Instalamos, hora de ir por un cafe ;-)
yum install freeipa-server --enablerepo=updates-testing

-En caso de presentarse un error con libipa_hbac eliminarlo para que instale otra version

rpm -e libipa_hbac-1.8.2-10.fc16.i686 --nodeps

-Comenzamos a configurar. Para aceptar los defaults damos ENTER

ipa-server-install

Si todo marcha bien, después de un largo proceso terminara creándonos una zona de ejemplo para DNS en /tmp y diciéndonos que ports debemos abrir en el firewall.
Un motivo común de error es no tener el server en una ip publica con un domain valido en nuestros DNS y la ip con una reverse zone. Para eso agregamos el hostname a una zona que ya tengamos con nuestro domain y verificamos que tengamos una reverse zone para la ip publica que estamos usando. Si no tenemos esto, el script simplemente abortara. Lo podremos ejecutar nuevamente cuando tengamos esto listo.
Agregamos a nuestra zona DNS los parámetros que nos da en la zona de ejemplo:

ipatest            IN A            192.168.1.1
;
; ldap servers
_ldap._tcp        IN SRV 0 100 389    ipatest
;kerberos realm
_kerberos        IN TXT EXAMPLE.COM
; kerberos servers
_kerberos._tcp        IN SRV 0 100 88        ipatest
_kerberos._udp        IN SRV 0 100 88        ipatest
_kerberos-master._tcp    IN SRV 0 100 88        ipatest
_kerberos-master._udp    IN SRV 0 100 88        ipatest
_kpasswd._tcp        IN SRV 0 100 464    ipatest
_kpasswd._udp        IN SRV 0 100 464    ipatest
;ntp server
_ntp._udp        IN SRV 0 100 123    ipatest
; ldap servers
;kerberos realm
;ntp server

-Reiniciamos el servicio sshd para que lea los cambios.

service sshd restart

-Probamos la configuración. El pass es el que colocamos a Directory Manager

/usr/bin/kinit admin

-Verificamos haya creado un ticket

/usr/bin/klist

-Verificamos usuario

/usr/bin/ipa user-find admin
--------------
1 user matched
--------------
  User login: admin
  Last name: Administrator
  Home directory: /home/admin
  Login shell: /bin/bash
  UID: 878200000
  GID: 878200000
  Account disabled: False
  Keytab: True
  Password: True
----------------------------
Number of entries returned 1
----------------------------

-Hacemos un backup de ca-agent.p12 y cacert.p12

mkdir ca-backup
cp ca-agent.p12 cacert.p12 ca-backup

Con esto ya tenemos instalado y configurado un server Fedora con FreeIPA, en proximos articulos les mostrare como configurar una replica y conectar clientes.
Disfrútenlo
Share/Bookmark