"firewall descomplicado" (gufw) está usando o iptables para configurar filtros ip. Então você deve entender o filtro ip e como ele funciona. O iptables conhece as seguintes tabelas para o ip do filtro:
filter- the default table. it is designed for pure filtering. if you do not user "-t it is the default used one. nat - this tables is used for network address translation. like it will be use for DSL or WLAN routers. also it is used to combine one public address with a private network e.g. 192.168.x.x. mangle - this tables is used for packet manipulation. raw - this table could be used for exceptions on connection tracking.
Todas essas tabelas usam correntes:
INPUT - tables:filter, mangle : the rules on this chain will be executed on all packets going to a local process (e.g. ip address / port ) OUTPUT - tables:filter, nat, mangle, raw : the rules on this chain will be executed on all outgoing packets (from a local process) FORWARD - tables:filter, mangle : the rules on this chain are used to all routed packets PREROUTING - tables:nat, mangle, raw : the rules on this chain are used for all packets BEFORE the will be routed POSTROUTING - tables:nat, mangle : the rules on this chain will be execute after a routing operation happend
A coisa "ruim" é que o gufw usa uma cadeia definida pelo usuário que será usada dentro da tabela padrão. até aí tudo bem, mas contanto que você não entenda como o iptables funciona, pode ser mais difícil dar uma olhada sob o gufw hood.
Então deixe-me mostrar como essa regra simples - e é isso que você está procurando - poderia ser implementada usando iptables nativos a partir da linha de comando
O que você precisa é:
sudo iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT #1 sudo iptables -I OUTPUT 1 -p tcp --sport 80 -j ACCEPT #2
# 1 Isto irá inserir uma cadeia para a tabela padrão "filtro" na primeira posição da cadeia de tabelas "INPUT" e permite (aceitar) o tráfego tcp ip vindo de qualquer lugar indo para a porta 80 # 2 Isto irá inserir uma cadeia para a tabela padrão "filtro" na primeira posição da cadeia de tabelas "OUTPUT" e permite (aceitar) tcp ip vindo de um processo local na porta 80 e indo para fora para qualquer endereço IP de destino e qualquer número de porta.
Então eu espero que isso ajude a transferir seu conhecimento para nós também ou talvez você possa jogar o gufw e usar o iptables nativo - porque não é tão complicado para 98% de todos os casos de uso :-) Além disso, talvez este link ajude a acompanhar o ufs - a ferramenta de linha de comando ao lado do gufw: link