Instalar UniFi Controller en CentOS 7
Este artículo detalla el proceso completo de instalación y configuración de UniFi Controller en un sistema Linux. Incluye la instalación de dependencias necesarias como MongoDB y Java, la creación de un usuario específico para ejecutar el servicio, y la descarga e instalación de la última versión de UniFi. Además, cubre la configuración de un archivo de servicio Systemd, la apertura de puertos en el firewall, la configuración de SELinux, y la habilitación del servicio para que inicie automáticamente. Ideal para administradores que deseen implementar UniFi Controller de forma segura y eficiente.
Instalación del repositorio EPEL
Como paso inicial, instalamos el repositorio EPEL, necesario para la instalación de paquetes adicionales:
yum -y install epel-release
Configuración del repositorio de MongoDB
A continuación, configuramos el repositorio de MongoDB, para utilizar la versión compatible con UniFi Controller:
cat << 'EOF' >> /etc/yum.repos.d/mongodb-org.repo
[mongodb-org-3.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc
EOF
Instalación de los servicios necesarios
Instalamos los paquetes necesarios para que UniFi Controller funcione correctamente:
yum -y install mongodb-org java-1.8.0-openjdk unzip wget jq
systemctl disable mongod.service
systemctl mask mongod.service
Creación del usuario para el servicio
Creamos el usuario que ejecutará el servicio de UniFi:
useradd -r ubnt -s /bin/nologin
Descarga y descompresión de UniFi Controller
Descargamos y descomprimimos la última versión disponible de UniFi Controller:
LATEST_VERSION=$(wget -q -O - "https://fw-update.ubnt.com/api/firmware?filter=eq~~product~~unifi-controller&filter=eq~~platform~~unix&filter=eq~~channel~~release&sort=-version&limit=1" | jq -r "._embedded.firmware[0]._links.data.href")
cd ~ && wget -O UniFi.unix.zip $LATEST_VERSION
unzip -q UniFi.unix.zip -d /opt
chown -R ubnt:ubnt /opt/UniFi
rm -f UniFi.unix.zip
Creación del script de inicio para Systemd
Creamos el archivo de configuración del servicio Systemd para UniFi Controller:
cat << 'EOF' >> /etc/systemd/system/unifi.service
#
# Systemd unit file for UniFi Controller
#
[Unit]
Description=UniFi Controller
After=syslog.target network.target
[Service]
Type=simple
User=ubnt
WorkingDirectory=/opt/UniFi
ExecStart=/usr/bin/java -Xmx1024M -jar /opt/UniFi/lib/ace.jar start
ExecStop=/usr/bin/java -jar /opt/UniFi/lib/ace.jar stop
SuccessExitStatus=143
[Install]
WantedBy=multi-user.target
EOF
Configuración de las reglas del firewall
Configuramos las reglas del firewall para permitir el acceso a los puertos necesarios. Dependiendo de tu sistema de firewall (FirewallD o iptables), utiliza uno de los siguientes conjuntos de comandos:
Para FirewallD:
firewall-cmd --zone=public --add-port=8081/tcp --permanent
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --zone=public --add-port=8443/tcp --permanent
firewall-cmd --zone=public --add-port=8880/tcp --permanent
firewall-cmd --zone=public --add-port=8843/tcp --permanent
firewall-cmd --zone=public --add-port=10001/udp --permanent
firewall-cmd --zone=public --add-port=3478/udp --permanent
firewall-cmd --reload
Para iptables:
/sbin/iptables -A INPUT -p tcp -m tcp --dport 8080 -m conntrack --ctstate NEW -j ACCEPT
/sbin/iptables -A INPUT -p tcp -m tcp --dport 8081 -m conntrack --ctstate NEW -j ACCEPT
/sbin/iptables -A INPUT -p tcp -m tcp --dport 8443 -m conntrack --ctstate NEW -j ACCEPT
/sbin/iptables -A INPUT -p tcp -m tcp --dport 8880 -m conntrack --ctstate NEW -j ACCEPT
/sbin/iptables -A INPUT -p tcp -m tcp --dport 8843 -m conntrack --ctstate NEW -j ACCEPT
/sbin/iptables -A INPUT -p udp -m udp --dport 10001 -m conntrack --ctstate NEW -j ACCEPT
/sbin/iptables -A INPUT -p udp -m udp --dport 3478 -m conntrack --ctstate NEW -j ACCEPT
service iptables save
Configuración de SELinux
A continuación, configuramos SELinux para permitir que UniFi Controller funcione correctamente:
semanage port -a -t mongod_port_t -p tcp 27117
semanage fcontext -a -t mongod_var_lib_t /opt/UniFi/data
semanage fcontext -a -t mongod_var_lib_t /opt/UniFi/logs
semanage fcontext -a -t httpd_sys_content_t /opt/UniFi/lib
semanage fcontext -a -t httpd_sys_content_t /opt/UniFi/webapps
semanage fcontext -a -t httpd_sys_content_t /opt/UniFi/work
restorecon -R /opt/UniFi
setsebool -P httpd_can_network_connect=1
setsebool -P httpd_can_network_connect_db=1
Habilitación del servicio
Finalmente, habilitamos el servicio para que se inicie automáticamente:
systemctl daemon-reload
systemctl enable unifi.service
Tweet Share Share Pin Share Email Última modificación: Nov 14, 2024