Um killswitch para o UFW

16-08-2020

Olá pessoal! Estamos aqui batendo cabeça com um killswitch que funciona e usa o firewall UFW.

O que é UFW? Bom …

Firewall descomplicado (UFW)

Um dos muitos aspectos anunciados do Linux é sua segurança.

Do desktop ao servidor, você encontrará todas as ferramentas de que precisa para manter essas máquinas bloqueadas da forma mais rígida possível.

Por muito tempo, a segurança do Linux esteve nas mãos do iptables (que funciona com o sistema netfilter subjacente). Embora incrivelmente poderoso, o iptables é complicado – especialmente para usuários mais novos. Para realmente tirar o máximo proveito desse sistema, pode levar semanas ou meses para ficar pronto.

Felizmente, um front end muito mais simples para iptables está pronto para ajudar a tornar seu sistema tão seguro quanto necessário.

Esse front-end é Uncomplicated Firewall (UFW). O UFW oferece uma estrutura muito mais amigável para gerenciar o netfilter e uma interface de linha de comando para trabalhar com o firewall.

Além disso, se você preferir não lidar com a linha de comando, o UFW tem algumas ferramentas de GUI que tornam o trabalho com o sistema incrivelmente simples.


Criamos um shell script que faz o kill switch existir. O código está logo abaixo :

Nome do bash shell script : ufw_killswitch.sh
#!/bin/bash

#############################################
## CONFIGURA UM UFW KILL SWITCH MANUAL PARA OPENVPN NO
## GNU/LINUX
## SCRIPT: ufw_killswitch.sh
## DATA: 16-08-2020
## OBS: ao reiniciar o sistema não precisa
## executar o script de novo.
## De vez em quando volto para
## as configurações originais do UFW
## para atualizar o relógio do sistema com
## o da rede (ntp) o sistema
## não funciona direito se o horário estiver
## incorreto.
## Para isto, uso outro script chamado: unfirewall.sh
#############################################
## voltando/iniciando as config normais/originais
## do ufw ... Quais? Estas : 
## default deny incoming
## allow outgoing
#############################################
## CONECÇÃO OPENVPN VIA NETWORK-MANAGER
#############################################
## OBS:
## O NETWORK-MANAGER É UM BEBÊ CHORÃO.
## O NETWORK-MANAGER É UMA MENININHA CHORONA.
#############################################

NORmconf(){
# faz o ufw voltar as configurações normais
	echo -e "\n\e[1;88;40m*** Unfirewall UFW ***\e[0m\n"
	sleep 8

	echo -e "\e[82msudo ufw reset & sudo ufw disabe\e[0m"
	sudo ufw disable
	sleep 1
	sudo ufw enable
	sleep 1
# --------------------------
	echo -e "\e[82msudo ufw --force reset\e[0m"
	sudo ufw --force reset
	sleep 1
# --------------------------
	echo -e "\e[82msudo ufw enable\e[0m"
	sudo ufw enable
	sleep 1
# --------------------------
	echo -e "\e[82msudo ufw status\e[0m"
	sudo ufw status
	sleep 8
# --------------------------
	echo -e "\e[82msudo ufw status verbose\e[0m"
	sudo ufw status verbose
	sleep 8
# --------------------------
	echo -e "\e[82msudo ufw default deny incoming\e[0m"
	sudo ufw default deny incoming
	sleep 2
# --------------------------
	echo -e "\e[82msudo ufw default allow outgoing\e[0m"
	sudo ufw default allow outgoing
	sleep 2
# --------------------------
	echo -e "\e[82msudo systemctl enable ufw\e[0m"
	sudo systemctl enable ufw
	sleep 2
# --------------------------
	echo -e "\e[82msudo ufw status verbose\e[0m"
	sleep 2
	sudo ufw status verbose
	sleep 8
# --------------------------
	echo -e "\e[82msudo ufw status numbered\e[0m"
	sleep 2
	sudo ufw status numbered
	echo ""
	sleep 2
}
NORmconf

# --------------------------

read -p "*** Conecte a VPN e depois tecle enter aqui ***"

# --------------------------

## PREPARAÇÃO PARA O KILLSWITCH 01
## PERMITIR SSH
## ACESSO A LAN NETWORK
sudo ufw allow in to 192.168.0.1/24
sudo ufw allow out to 192.168.0.1/24
# --------------------------
## PREPARAÇÃO PARA O KILLSWITCH 02
## permite a máquina se conectar a dispositivos
sudo ufw allow in on tun0 from any to any
# -------------------------
## PREPARAÇÃO PARA O KILLSWITCH 03
## PERMITIR OPENVPN
sudo ufw allow out 1198/udp
sudo ufw allow in 1198/udp
# --------------------------
## PREPARAÇÃO PARA O KILLSWITCH 04
## PARA NÃO TER QUE FICAR CONECTANDO E DESCONECTANDO
sudo ufw allow out from any to 192.168.0.1/24
# ---------------------------

## O KILLSWITCH ## O MOTIVO DE TUDO
sudo ufw default deny outgoing
sudo ufw default deny incoming
sudo ufw allow out on tun0 from any to any

# --------------------------
## KILLSWITCH É AQUI UM BASH SHELL SCRIPT QUE
## CONFIGURA REGRAS DO PROGRAMA UFW.
## O KILLSWITCH É UMA NEGAÇÃO DUPLA DO
## UFW FIREWALL QUE NÃO PERMITE DE 
## FORMA ALGUMA ENTRADA E SAÍDA DE NADA.
## SÓ PERMITE, SE FOR POR CONECÇÃO VPN UDP
## NO CASO DO LINUX ESTA É A OPÇÃO ESCOLHIDA
## POR HORA.
# --------------------------

## ADICIONANDO PORTAS OBTIDAS DE ARQUIVOS .OVPN
## DA EMPRESA QUE OFERECE OS SERVIÇOS DE VPN

# ----------------------------
sudo ufw allow out to 84.184.165.146 port 1194 proto udp

sudo ufw allow out to 84.120.218.64 port 1194 proto udp

sudo ufw allow out to 41.182.186.285 port 1194

sudo ufw allow out to 84.84.112.20 port 1194

sudo ufw allow out to 41.182.186.285 port 1194

sudo ufw allow out on eth0 to 144.124.142.48 port 1194  proto udp

sudo ufw allow out on eth0 to 84.184.165.146 port 1194  proto udp

sudo ufw allow out on eth0 to 148.284.148.188 port 1194  proto udp

sudo ufw allow out on eth0 to 84.184.165.146 port 1194  proto udp

sudo ufw allow out on eth0 to 84.14.58.66 port 1194  proto udp

sudo ufw allow out on eth0 to 144.124.142.48 port 1194  proto udp

## AVISO DE CONCLUSÃO
echo ""
read -p "*** O KillSwitch está ativado. Tecle Ctrl+C para sair ***"
echo ""

No momento é só isto. Usamos e parece ser útil. Para funcionar para você o script deve ser alterado em :

a) ACESSO A LAN NETWORK
b) 192.168.0.1
c) PORTAS OBTIDAS DE ARQUIVOS .OVPN

Até Breve!

🙂