Instalação de Open Light Speed em VPS Ubuntu 24.04 (LTS)
1. Atualizar o sistema
sudo apt update && sudo apt upgrade -y
2. Instalar OpenLiteSpeed
Adicionar repositório oficial LiteSpeed:
wget -O - https://repo.litespeed.sh | sudo bash
Instalar:
sudo apt install openlitespeed -y
Verificar:
sudo systemctl status lsws
3. Definir password do painel
sudo /usr/local/lsws/admin/misc/admpass.sh
4. Instalar e configurar o firewalld
sudo apt install firewalld -y
sudo systemctl enable --now firewalld
Abrir as portas necessárias:
sudo firewall-cmd --permanent --add-service=ssh # SSH
sudo firewall-cmd --permanent --add-port=7080/tcp # WebAdmin OLS
sudo firewall-cmd --permanent --add-service=http # Porta 80
sudo firewall-cmd --permanent --add-service=https # Porta 443
sudo firewall-cmd --permanent --add-port=8088/tcp # Página default OLS
sudo firewall-cmd --reload
Verificar:
sudo firewall-cmd --list-all
5. Instalar CrowdSec
curl -s https://packagecloud.io/install/repositories/crowdsec/crowdsec/script.deb.sh | sudo bash
sudo apt install crowdsec -y
CrowdSec instala-se como um serviço e começa logo a monitorizar logs.
6. Instalar o firewalld bouncer
Para a instalação do bouncer para o firewalld o melhor é instalar no Ubuntnu 24.04 o bouncer para nftables, já que são nftables que o firewalld usa. (nftables é o sucessor de iptables)
sudo apt install crowdsec-firewall-bouncer-nftables -y
sudo systemctl enable --now crowdsec-firewall-bouncer
Confirma que está ativo:
systemctl status crowdsec-firewall-bouncer
7. Testar
- Painel OLS:
https://teu-ip:7080
- Site de teste:
http://teu-ip:8088
- Ver se CrowdSec está a bloquear IPs maliciosos:
sudo cscli decisions list
Snippet para integrar os logs do OpenLiteSpeed no CrowdSec.
Localização dos logs do OLS
Por defeito ficam em:
- Access log →
/usr/local/lsws/logs/access.log
- Error log →
/usr/local/lsws/logs/error.log
Snippet de configuração CrowdSec
Cria (ou edita) o ficheiro de aquisição de logs do CrowdSec:
sudo nano /etc/crowdsec/acquis.d/ols.yaml
E coloca este conteúdo:
filenames:
- /usr/local/lsws/logs/access.log
labels:
type: nginx
---
filenames:
- /usr/local/lsws/logs/error.log
labels:
type: syslog
Passos seguintes
Verificar se está a ler os logs: sudo cscli metrics
Procura por algo como nginx-logs
e syslog
.
Recarregar o CrowdSec: sudo systemctl restart crowdsec
Criar o Cloudflare Origin Certificate
- Acede ao painel da Cloudflare → SSL/TLS → Origin Server → Create Certificate
- Seleciona:
- Key Type: RSA ou ECDSA (RSA recomendado)
- Validity: 15 anos (ou outro valor)
- Hostnames:
admin.seudominio.com
e*.seudominio.com
(ou apenas o necessário)
- Faz download dos dois ficheiros gerados:
- Certificate:
cert.pem
- Private Key:
key.pem
- Certificate:
Colocar os certificados no servidor
sudo mkdir -p /etc/ssl/cloudflare
sudo mv cert.pem /etc/ssl/cloudflare/cert.pem
sudo mv key.pem /etc/ssl/cloudflare/key.pem
sudo chmod 600 /etc/ssl/cloudflare/key.pem
sudo chmod 644 /etc/ssl/cloudflare/cert.pem
Configurar o Admin Panel do OLS para usar SSL
- Abre o ficheiro de configuração do Admin OLS:
sudo nano /usr/local/lsws/admin/conf/admin_config.conf
- Altera ou adiciona as linhas SSL:
adminSSL 1
adminSSLCertificateFile /etc/ssl/cloudflare/cert.pem
adminSSLCertificateKeyFile /etc/ssl/cloudflare/key.pem
- Guarda e sai do editor.
Reiniciar o OpenLiteSpeed
sudo systemctl restart lsws
Testa:
https://localhost:7080
ou via IP se estiver permitido (mais tarde bloquearemos externo).
Criar o Cloudflare Tunnel
Abre os portos na firewall para a comunicação com o Cloudflare
# DNS para saída (comunicação com o cloudlfare)
sudo firewall-cmd --permanent --add-port=53/tcp # DNS TCP
sudo firewall-cmd --permanent --add-port=53/udp # DNS UDP
- Instala o
cloudflared
:
sudo apt install cloudflared -y
- Autentica com Cloudflare:
cloudflared login
- Cria o tunnel:
cloudflared tunnel create ols-admin
- Guarda o Tunnel ID e credenciais em
/etc/cloudflared/<TUNNEL-ID>.json
.
Criar a entrada DNS no Cloudflare
- Acede ao painel → DNS → Add Record
- Tipo: CNAME
- Nome:
admin
- Aponta para:
<Tunnel-UUID>.cfargotunnel.com
- Proxy status: Proxied
Configurar config.yml
do tunnel
tunnel: <TUNNEL-ID>
credentials-file: /etc/cloudflared/<TUNNEL-ID>.json
ingress:
- hostname: admin.seudominio.com
service: https://localhost:7080
- service: http_status:404
Inicia o tunnel como serviço:
sudo cloudflared service install
sudo systemctl enable --now cloudflared
Configurar firewall para 7080 apenas em localhost
sudo firewall-cmd --permanent --remove-port=7080/tcp
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="127.0.0.1" port protocol="tcp" port="7080" accept'
sudo firewall-cmd --reload
Testes finais
- Testa localmente no servidor:
curl -vk https://localhost:7080
- Testa via Cloudflare Tunnel (externo):
https://admin.seudominio.com
A porta 7080 não deve estar acessível publicamente, apenas pelo tunnel
Deverá abrir o painel OLS com o certificado de origem