POLíTICA DE COOKIES
Este sitio web le informa de que hace uso de cookies propias y de terceros con la finalidad de recopilar datos estadísticos anónimos de uso de la web, así como la mejora del funcionamiento y personalización de la experiencia de navegación del usuario. Si continúa navegando, consideraremos que acepta su uso. Pulse en Aceptar para verificar que está de acuerdo con el uso de Cookies. Aceptar Más información
rrc2software Blog Proyectos
rrc2software Blog Proyectos

Instalar UniFi Controller en CentOS 7

Como paso inicial, instalamos el repositorio EPEL, necesario para la instalación de paquetes adicionales:

yum -y install epel-release

Configuramos el repositorios de MongoDB, para poder utilizar la cversión con la cual funciona correctamente 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

Instalamos los servicios necesarios:

yum -y install mongodb-org java-1.8.0-openjdk unzip wget jq
systemctl disable mongod.service
systemctl mask mongod.service

Creamos el usuario que ejecutará el servicio:

useradd -r ubnt -s /bin/nologin

Descargamos y descomprimimos la última versión 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

Creamos el script de inicio del servicio necesarios para funcionar con Systemd:

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

Configuramos las reglas del firewall:

# En caso de tener 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

# En caso de tener 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

Configuramos SELinux:

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

Habilitamos el servicio:

systemctl daemon-reload 
systemctl enable unifi.service
Tweet Share Share Pin Share Email

Última modificación: Jun 1, 2020

Volver al inicio