INSTALACIÓN TAKSERVER 5.2
Descripción
Vamos a instalar y configurar el servidor oficial de takserver sobre una vps con ubuntu 22 server. Todo está basado en el manual de configuración de takserver de tak.gov y otras fuentes como https://mytecknet.com/lets-build-a-tak-server/
Requisitos
• 8 GB RAM
• 40 GB disk storage
Instalación
Descripción general y archivos de instalación
Preparación vps
Pasar el archivo de instalación
Requisitos previos
Necesitaremos modificar los límites del módulo de autenticación conectable de Linux establecidos en /etc/security/limits.conf. Dentro de este archivo, necesitamos aumentar la cantidad de identificadores de archivos permitidos dentro del límite por usuario para archivos abiertos para admitir subprocesos de Java.
# Aumentar los subprocesos de JVM
# Cada 'tabulador' tiene seis espacios cuando se escribe manualmente
echo -e "* soft nofile 32768\n* hard nofile 32768\n" | sudo tee --append /etc/security/limits.conf
Nos tiene que aparecer el siguiente contenido:
Instalación de paquetes adicionales para Enterprise Linux
# Install PostgreSQL/PostGIS 15 for Ubuntu/Raspberry Pi OS
sudo sh -c 'echo "deb https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
wget -O- https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/postgresql.org.gpg > /dev/null
# Actualizamos
sudo apt update -y
sudo apt upgrade -y
Instalación de Java OpenJDK
Finalmente, instale la versión de Java OpenJDK adecuada para la versión adecuada descrita en los requisitos.
En algunas distribuciones, Java viene preinstalado. Si no se encuentra el comando, significa que necesitará instalar OpenJDK-17-jre.
# Install Java 17 for Ubuntu/Raspberry Pi OS
sudo apt install openjdk-17-jre
Instalación takserver
# Nos vamos a la carpeta donde tengamos el archivo y ejecutamos la instalación
sudo apt install ./takserver_5.2-RELEASE16_all.deb -y
Generación de certificados
Primero, determine cuántos certificados de cliente necesitará. Lo ideal es tener un certificado de cliente diferente para cada dispositivo ATAK en su red.
Edite el archivo de configuración de generación de certificados, en esta ubicación:
cd /opt/tak/certs
nano cert-metadata.sh
Establezca opciones para país, estado, ciudad, organización y unidad organizativa y guarde el archivo con ctrl+x
Configurar el firewall del sistema
Descripción general
Uno de los problemas más comunes que tienen las personas es que el firewall predeterminado del sistema bloquea su tráfico.
El
procedimiento completo para configurar el firewall es complejo y está
fuera del alcance de esta guía, y es una preocupación importante para la
configuración del sistema.
#
UFW (Uncomplicated Firewall) es una utilidad para administrar
firewalls. Si no está instalado en su servidor, instálelo con lo
siguiente:
sudo apt install ufw
# Ejecute los siguientes comandos para establecer reglas iniciales para su firewall:
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
# Activar el firewall:
sudo ufw enable
#
Agregar configuración predeterminada a los puertos del servidor
TAK:(estos son los puertos por defectos que usa el takserver, si se
quiere añadir más puertos mismos pasos)
sudo ufw allow 8089
sudo ufw allow 8443
sudo ufw allow 8446
# Comprobar estado y puertos
sudo ufw status
# El siguiente paso es cambiar el firewall en la web de la vps

# Deja los mismos puertos que antes

Crea un certificado de autoridad (CA):
cd opt/tak/certs
./makeRootCa.sh
Siga las instrucciones para nombrar la CA. En este caso le he dado el nombre de admin y nos creará el certificado con ese nombre
Creación de la autoridad de certificación intermedia
La CA intermedia actuará en nombre de nuestra CA raíz y firmará y emitirá certificados para nuestros clientes. Para crear la CA intermedia, necesitamos usar el script makeCert.sh con el modificador ca para que el script sepa que vamos a crear una CA y convertirla en nuestra autoridad de emisión y firma.
./makeCert.sh ca intermediateca
Cuando se le pregunte ¿Desea que mueva los archivos para que los futuros certificados de servidor y cliente estén firmados por esta nueva CA? [Y/N] escriba y ya que este es el resultado deseado.
Cree un certificado de servidor:
./makeCert.sh server takserver
Este comando generará un certificado de servidor denominado ‘/opt/tak/certs/files/takserver.jks’
Cree uno o más certificados de cliente. Debe utilizar un certificado de cliente diferente para cada dispositivo ATAK en su red. Este nombre de usuario se proporcionará en el certificado como CN (nombre común). Al utilizar certificados en dispositivos que están conectados a una entrada configurada para el filtrado de grupos sin mensajes de autenticación, el servidor TAK utilizará este nombre de usuario para buscar información de membresía de grupo en un repositorio de autenticación, como Active Directory (AD).
Los almacenes de confianza y certificados de CA generados se ubicarán aquí:
/opt/tak/certs/files
Modificación de la configuración principal
En este punto, hemos creado la configuración básica para iniciar nuestro servidor TAK. Para resumir, hemos creado tanto nuestra CA raíz como la intermedia y luego nuestro certificado de servidor. A continuación, debemos modificar el archivo CoreConfig.example.xml que contiene la configuración de referencia para nuestro servidor TAK. Una vez que iniciamos el servidor TAK, este archivo CoreConfig.example.xml creará el archivo CoreConfig.xml que es la configuración activa a la que nuestro servidor TAK hará referencia para todas las operaciones. Al editar el archivo CoreConfig.example.xml, nos aseguramos de tener la misma configuración de referencia incluso si eliminamos el archivo CoreConfig.xml accidentalmente o hacemos un cambio y nuestro servidor TAK no se inicia. Dentro del archivo CoreConfig.example.xml, debemos cambiar el valor predeterminado almacenado para nuestra CA de la CA raíz a nuestra CA intermedia recién creada.
Esto hace dos cosas: permite que nuestro servidor TAK se inicie correctamente, ya que el servidor TAK es esencialmente un cliente de sí mismo y, como tal, debe confiar en quién firmó el certificado. Además, nuestro servidor TAK emitirá certificados de cliente y debe confiar en los propios clientes a través de la cadena de CA de confianza. Esto se conoce como nuestro almacén de claves de cliente y luego tenemos nuestro almacén de confianza del servidor. Para modificar nuestro CoreConfig.example.xml a nuestra nueva CA, editaremos el archivo.
nano /opt/tak/CoreConfig.example.xml
del certificado de autoridad intermedia
Inicio del servidor TAK
sudo systemctl daemon-reload
sudo systemctl enable takserver.service
# Iniciar el servicio del servidor TAK:
sudo systemctl start takserver.service
# Comprobar estado del servicio del servidor TAK:
sudo systemctl status takserver.service
Tiene que aparecer en verde activo si funciona correctamente
Para verificar que nuestro servidor TAK se ha iniciado, queremos consultar los registros para ver su estado. Los registros del servidor TAK se almacenan en el directorio /opt/tak/logs/. El registro que estamos buscando es takserver-messaging.log. Puede que la creación de este registro lleve algún tiempo. Verifique periódicamente este registro hasta que se cree. Una vez que se haya creado, supervisaremos el contenido del registro para comprobar si hay errores.
tail -f /opt/tak/logs/takserver-messaging.log
Creación del certificado de administrador
Ahora que nuestro servidor TAK está iniciado, necesitamos poder administrar el servidor. Para ello, necesitamos crear una cuenta de administrador. La mejor y más segura forma de hacerlo es creando un certificado de cliente y elevando este certificado para la administración. Para crear nuestro certificado administrativo, necesitamos cambiar de directorio al directorio certs para ejecutar nuevamente el comando makeCert.sh. Una vez que estemos allí, usaremos ./makeCert.sh client webadmin para crear nuestro certificado de cliente primero.
# Cambiar directorio a certs
cd /opt/tak/certs
# Crear el certificado de administrador
./makeCert.sh client webadmin
UserManager.jar
El UserManager.jar nos permite modificar tanto las credenciales de usuario como los certificados. Además, tenemos la opción de gestionar grupos y permisos. Por ahora, necesitamos modificar el certificado de administrador que acabamos de crear y convertirlo en administrador. Para ello, utilizaremos el modificador certmod de UserManager.jar. (Hay que esperar un rato después de haber iniciado el takserver)
sudo java -jar /opt/tak/utils/UserManager.jar certmod -A /opt/tak/certs/files/webadmin.pem
Si ha ido bien aparecerá así con el nuevo usuario añadido
El panel administrativo
Cogeremos el archivo webadmin.p12 por sftp para pasarlo a nuestro ordenador para poder acceder a la interfaz web
Importa este certificado de cliente a tu navegador.
Si estás usando Firefox, ve a Configuración -> Preferencias -> Privacidad y seguridad -> Certificados ->
Ver certificados
Ve a Importar. Sube este archivo:
/opt/tak/certs/files/webadmin.p12
Se introduce la contraseña atakatak
Nos dirigimos a autoridades y buscamos el certificado instalado.
Clicamos en editar confianza y habilitamos las dos casillas
Nos vamos al buscador de firefox e ingresamos https://direcciónip:8443
Seleccione el certificado de administrador para iniciar sesión.
Un mensaje de error similar que no se ha importado el certificado de cliente correcto al navegador, le damos a avanzadas,aceptamos el riesgo y elegimos el certificado correspondiente.
Panel Marti
Métricas
El panel de métricas de TAK Server está disponible en el menú de Monitoreo. El panel muestra continuamente la siguiente información:
Hora de inicio del servidor y Tiempo de actividad del servidor Esto le indica cuándo se encendió el servidor y cuánto tiempo ha estado funcionando.
Clientes conectados Esto le indica cuántas conexiones está atendiendo actualmente su cliente. Esto corresponde a la cantidad de clientes que se muestran en el panel del cliente.
Uso de pila El servidor TAK se ejecuta dentro de una o más máquinas virtuales Java (JVM). La pila comprometida es la cantidad de memoria de pila en MB que se asigna al proceso de API para el servidor TAK, y la pila utilizada es la cantidad de esa memoria que se está utilizando actualmente.
E/S de red y lecturas/escrituras Esto le indica cuánto tráfico TCP y UDP está manejando actualmente el servidor, así como un breve historial.
Uso de CPU La cantidad de CPU de la máquina en la que se ejecuta el servidor que se está utilizando actualmente.
Asistente de configuración para configurar TAK Server
El asistente de configuración de TAK Server le ayudará a configurar las opciones de configuración habituales una vez que haya instalado e iniciado TAK Server. El asistente le guiará a través del proceso de configuración para lograr una configuración segura, utilizando los puertos predeterminados a los que se conectarán ATAK y WinTAK.
Una vez que haya creado sus credenciales de inicio de sesión de administrador como en la sección anterior, vaya a:
https://localhost:8443/setup/ (recomendado. Utiliza el certificado de cliente más seguro)
Luego siga las indicaciones para comenzar la configuración. El asistente primero le guiará a través de la configuración de seguridad recomendada:
1.Yes
2. Next
3. Skip
NOTA: Los puertos inseguros son un riesgo potencial para la seguridad y pueden permitir que los atacantes obtengan acceso al sistema y que se divulgue información personal y confidencial. Se debe evitar el uso de puertos no cifrados
para garantizar una implementación segura del servidor TAK.
Administración de usuarios y grupos
Esta es la tarea más común que realizaremos como administradores. Debemos comprender que tenemos dos métodos para administrar nuestros usuarios y grupos.
Manualmente tenemos makeCert.sh y UserManager.jar que ya hemos utilizado, el otro es usar el panel de control de administración de usuarios.
Con makeCert.sh creamos certificados que se generan manualmente y luego UserManager.jar coloca ese certificado en un grupo.
Gestión de certificados manuales
Para generar certificados con este método, seguiremos la misma secuencia que utilizamos para crear el certificado de administrador. Para crear un certificado de cliente,navegaremos hasta el directorio /opt/tak/certs/
# Navegue hasta el directorio /opt/tak/certs
cd /opt/tak/certs
Una vez que estemos en este directorio, utilizaremos el script makeCert.sh para crear otro certificado de cliente. La sintaxis básica para esta tarea es ./makeCert.sh client <nombre>.
# Crear certificados de cliente
./makeCert.sh client <nombre>
# EJEMPLO
./makeCert.sh client alfa1
Una vez creado nuestro certificado, necesitamos usar UserManager.jar para poder administrarlo en el panel web de Marti. Esta vez, nuestra sintaxis será java -jar /opt/tak/utils/UserManager.jar certmod -g <grupo> /opt/tak/certs/files/<nombre>. A continuación, agregaremos el cliente alfa1 al grupo __ANON__.
El grupo ANON se identifica mediante el doble guión bajo al principio y al final del nombre. Este también es el grupo predeterminado al que se vinculan los clientes si no completa este paso. Además, no estarán disponibles en el panel web de Marti.
# Agregar el cliente a un grupo
java -jar /opt/tak/utils/UserManager.jar certmod -g __ANON__ /opt/tak/certs/files/<nombre>
# EJEMPLO
java -jar /opt/tak/utils/UserManager.jar certmod -g __ANON__ /opt/tak/certs/files/alfa1.pem
Si sale correctamente aparecerá el usuario añadido al grupo _ANON_
Esto completa la creación básica de un certificado de software de usuario; Además, vamos a copiar un archivo adicional que es nuestro archivo de certificado público de TAK Server. Si está siguiendo este procedimiento, debería ser truststore-intermediateca.p12
Copiamos el certificado de usuario llamado alfa1.p12 y el certificado público de TAK Server truststore-intermediateca.p12 y los pasamos al móvil.
En el atak nos vamos a configuraciones / network preferences / preferencias de conexiones de red
Inscripción automática de certificados
Este proceso implica cambiar algunas configuraciones en nuestro servidor TAK para emitir certificados a los clientes luego de una autenticación exitosa. Para nuestra fuente de autenticación, utilizaremos el servidor TAK para almacenar las credenciales de nuestros clientes. Para comenzar la configuración, debemos determinar quién es nuestra autoridad de firma y seleccionar un archivo de almacén de confianza adecuado.
# Identificar nuestro almacén de confianza de firma
ls -l /opt/tak/certs/files/*-signing.jks
Archivo de almacén de claves de firma = certs/files/<CACommonName>-signing.jks
Contraseña de almacén de claves de firma = atakatak predeterminada o la contraseña definida en el archivo cert-metadata.sh
Días de validez = Ingrese los días durante los cuales el certificado será válido. Cuando haya transcurrido el período del certificado, el cliente deberá volver a ingresar sus credenciales para solicitar un nuevo certificado.
# Cambie los directorios al directorio tak
cd /opt/tak
# Edite el archivo CoreConfig.xml
<TAKServerCAConfig keystore="JKS" keystoreFile="certs/files/intermediateca-signing.jks" keystorePass="atakatak" validationDays="30" signatureAlg="SHA256WithRSA" CAkey="/opt/tak/certs/files/<CAcommonName>" CAcertificate="/opt/tak/certs/files/<CAcommonName>"/>
<TAKServerCAConfig keystore="JKS" keystoreFile="certs/files/intermediateca-signing.jks" keystorePass="atakatak" validationDays="30" signatureAlg="SHA256WithRSA" CAkey="/opt/tak/certs/files/intermediateca" CAcertificate="/opt/tak/certs/files/intermediateca"/>
sudo systemctl restart takserver.service
# Supervisar el registro en busca de errores
tail -f /opt/tak/logs/takserver-messaging.log
Inscripción de clientes
Crear archivo zip para los usuarios
Dependiendo del método de implementación que desee, el archivo config.pref contendrá como mínimo la siguiente información. Deberá cambiar las siguientes cadenas de atributos para que coincidan con su entorno:
<preferences>
<preference version="1" name="cot_streams">
<entry key="count" class="class java.lang.Integer">1</entry>
<entry key="description0" class="class java.lang.String">TS</entry>
<entry key="enabled0" class="class java.lang.Boolean">true</entry>
<entry key="connectString0" class="class java.lang.String">direcciónip:ssl</entry>
<entry key="caLocation0" class="class java.lang.String">cert/truststore-intermediateca.p12</entry>
<entry key="caPassword0" class="class java.lang.String">atakatak</entry>
<entry key="enrollForCertificateWithTrust0" class="class java.lang.Boolean">true</entry>
<entry key="useAuth0" class="class java.lang.Boolean">true</entry>
<entry key="cacheCreds0" class="class java.lang.String">Cache credentials</entry>
</preference>
<preference version="1" name="com.atakmap.app_preferences">
<entry key="displayServerConnectionWidget" class="class java.lang.Boolean">true</entry>
</preference>
</preferences>
Dentro de los elementos de Contenidos, identificaremos los archivos y la estructura dentro de nuestro paquete de datos.
<Configuration>
<Parameter name="name" value="TS.zip"/>
<Parameter name="onReceiveDelete" value="true"/>
</Configuration>
<Contents>
<Content ignore="false" zipEntry="certs/config.pref"/>
<Content ignore="false" zipEntry="certs/truststore-intermediateca.p12"/>
</Contents>
</MissionPackageManifest>
Ingresamos el usuario y contraseña que creamos antes en la web
Revocación de certificados
Gestión de usuarios y grupos en TAK
La siguiente figura muestra la forma en que se escriben o leen los eventos en relación con la ubicación del usuario en un grupo. Así es como se lee: si el usuario está en el grupo de salida, puede leer pero no escribir en el grupo de destino. Si el usuario está en el grupo de entrada, puede escribir pero no leer en el grupo de destino.
Actualizar versión de takserver (esto es para actualizar a una versión posterior)
sudo apt install ./takserver-5.1-RELEASEx_all.deb
Si lo que deseas es una reinstalación desde cero, necesitas:
🔻 Eliminar la instalación previa del .deb
sudo apt remove takserver -ysudo apt purge takserver -y
sudo rm -rf /opt/tak
sudo rm -f /etc/systemd/system/takserver.service
sudo systemctl daemon-reload