O Traccar pode ser instalado com um banco interno, H2 de “baixo desempenho”, com um banco de dados na mesma instância (MySQL) ou utilizando um banco externo.
Para a primeira etapa desta instalação será utilizado o banco interno, dando preferência para conectar a um banco externo (AWS RDS) quando a instância estiver em produção.
Criar a instância na AWS em um subnet pública, 8 GB de HD são suficientes. Adicionar regras de Security Groups para as portas 22, 80, 443, 8082 (porta de acesso inicial do servidor java) e para as portas de recebimento dos dados de telemetria 5000 à 5150 (TCP e UDP).
Baixar e descompactar os arquivos de instalação do sistema:
1 | sudo yum update -y |
- Executar o arquivo de instalação como sudo:
sudo ./traccar.run
Configuração do banco de dados:
- Caso deixe a configuração padrão, para uso do banco de dados embutido (H2), a seguinte configuração será mantida no arquivo de configuração:
/opt/traccar/conf/traccar.xml
.
1 | <entry key='database.driver'>com.mysql.jdbc.Driver</entry> |
- Caso altere a opção padrão de banco de dados e crie um banco de dados MySQL, o arquivo
/opt/traccar/conf/traccar.xml
deve ser alterado, seguindo o modelo:
1 | cat > /opt/traccar/conf/traccar.xml << EOF |
Iniciar o serviço Traccar:
sudo service traccar start
Testar acesso web pela porta 8082: http://ip-do-servidor:8082
Realizar login com a credencial padrão (admin/admin), desativar o auto-registro de usuários e alterar a senha padrão.
Na segunda estapa desta instalação será configurado o acesso ao site pelo nome de domínio, através da porta 443 (ssl/tls) e instalação de um certificado.
Configurações do Apache e do certificado SSL
Traccar serves web interface and API using regular HTTP protocol which does not use any encryption. This guide provides instructions on how to configure Traccar to use secure HTTPS protocol with SSL/TLS encryption of all traffic Traccar Secure Connection. Examples are for Ubuntu and other Debian-based systems only, but the general idea can be applied to all platforms. For Windows system you can follow this blog post from Freek.
Traccar does not support secure connection out of the box, but a proxy server can be used to tunnel all data through secure protocol. In this guide we will use Apache server with proxy module.
1. First step is to install Apache server and enable required modules:
Install dependencies:
1 | sudo apt-get install ssl-cert apache2 |
2. As a next step we need to add new site configuration:
sudo nano /etc/apache2/sites-available/traccar.conf
Content for the site configuration (replace “demo.traccar.org” with your domain):
1 | <IfModule mod_ssl.c> |
3. Enable site and restart Apache service:
1 | sudo a2ensite traccar |
4. Domain Name:
You need to have a domain name. Check our documentation on how register and to configure a custom domain name with Traccar.5. Generate an SSL certificate for your server using Let’s Encrypt service :
Lets encrypt certbot: Install certbot:
1 | sudo snap install --classic certbot |
Execute Certbot:
1 | sudo certbot --apache |
6. Traccar in subdirectory (non root path) - OPTIONAL:
If you want Traccar to be in a subdirectory, you also need to adjust cookies path. Here is a proxy configuration example:
1 | ProxyRequests off |
7. Redirect unsecure connections HTTP to HTTPS:
1 | sudo a2enmod rewrite |
Add following lines to the configuration:
1 | <VirtualHost *:80> |
Restart Apache server:
1 | sudo service apache2 restart |
- Configurar no Registrar o encaminhamento do nome de subdomínio desejado para o IP/CNAME da instância EC2. Caso seja utilizado um Elastic IP, este deve receber o apontamento do subdomínio desejado.
Configurações adicionais:
Podem ser feitos mais alguns ajustes, a fim de garantir mais algumas restrições de segurança e funcionalidades para o serviço:
- Firewall UFW: Instalar, habilitar e liberar as portas de acesso ao servidor: 5000-5150 (UDP/TCP), 80+443 (TCP), 22 (TCP) caso o servidor ainda precise ser configurado remotamente.
- No momento em que o servidor já esteja em produção não é necessário mais manter liberação de acesso à porta 22, com isso evita-se alguns escaneamentos de bots.
- Caso a porta 22 deva ser mantida aberta, utilize a aplicação fail2ban como método adicional de segurança.
Referências
Traccar Instalation Guide: https://www.traccar.org/install-digitalocean/
Traccar Secure Connection: https://www.traccar.org/secure-connection/
SSL on AWS: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/SSL-on-amazon-linux-2.html
Let’s Encrypt Certbot: https://certbot.eff.org/instructions?ws=apache&os=ubuntufocal