Jun 1, 2020
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