Estou bastante familiarizado com o iptables e acho iptables -L -v
fácil de ler. Fazer backup é fácil e estou feliz com isso.
No entanto, em versões recentes do Ubuntu, há ufw que polui bastante o iptables. Em vez de uma lista limpa de regras, tenho muitas regras não fáceis de ler:
$ iptables -L -v
Chain INPUT (policy DROP 6114 packets, 331K bytes)
pkts bytes target prot opt in out source destination
131K 76M ufw-before-logging-input all -- any any anywhere anywhere
131K 76M ufw-before-input all -- any any anywhere anywhere
6618 368K ufw-after-input all -- any any anywhere anywhere
6191 346K ufw-after-logging-input all -- any any anywhere anywhere
6191 346K ufw-reject-input all -- any any anywhere anywhere
6191 346K ufw-track-input all -- any any anywhere anywhere
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
390K 324M ufw-before-logging-forward all -- any any anywhere anywhere
390K 324M ufw-before-forward all -- any any anywhere anywhere
4 2160 ufw-after-forward all -- any any anywhere anywhere
4 2160 ufw-after-logging-forward all -- any any anywhere anywhere
4 2160 ufw-reject-forward all -- any any anywhere anywhere
4 2160 ufw-track-forward all -- any any anywhere anywhere
Chain OUTPUT (policy ACCEPT 1 packets, 52 bytes)
pkts bytes target prot opt in out source destination
326K 317M ufw-before-logging-output all -- any any anywhere anywhere
326K 317M ufw-before-output all -- any any anywhere anywhere
164 14960 ufw-after-output all -- any any anywhere anywhere
164 14960 ufw-after-logging-output all -- any any anywhere anywhere
164 14960 ufw-reject-output all -- any any anywhere anywhere
164 14960 ufw-track-output all -- any any anywhere anywhere
...
A partir desta perspectiva. Eu realmente não entendo o propósito do ufw. Parece adicionar complexidade ao iptables sem vantagens reais.
Estou errado?
Se você souber
iptables
, se achariptables -L -v
fácil de ler e se preferir, então não precisaufw
.iptables
trabalha com as tabelas de regras de filtragem de pacotes no kernel Linux. As tabelas, correntes e regras que você pode criar constituem uma ferramenta poderosa e flexível, mas muitas vezes intimidadora e pouco intuitiva. Com eles, coisas avançadas são possíveis, mas as coisas básicas nem sempre são tão fáceis quanto usuários iniciantes (ou usuários em geral) gostariam que fossem.Aqui entra
ufw
(ou outra ferramenta semelhante) como uma camada extra em cima doiptables
. Facilita as coisas básicas, mas não permite necessariamente as coisas avançadas. Qualquer pessoa que prefira GUI pode usargufw
. O Ubuntu vemufw
porque tem como alvo usuários que podem não estar interessados em como as coisas funcionam sob o capô. Eles querem uma interface simples semelhante ao que viram no Windows ou nas interfaces HTTP de seus roteadores domésticos. Usuários avançados podem desativarufw
e usariptables
"manualmente".O objetivo do
ufw
é ter um front-end simples. Para Joe comum, esse front-end é mais simples do que qualquer "lista limpa de regras" equivalente que você pode criar noiptables
. As "muitas regras não fáceis de ler"ufw
realmente criadas são agora o back-end. Você está certoufw
adiciona complexidade, mas Joe nunca vê isso.Depois de decidir usar
ufw
(ou continuar usando, se estiver lá por padrão), você não deve se preocupar com o back-end. Trate o back-end como uma parte interna da ferramenta que fornece o front-end.Se você quer
iptables
ser seu front end então não useufw
, porqueufw
se coloca "mais na frente".