De acordo com a
Wikipédia:
"Firewall é o nome dado ao dispositivo de uma rede de computadores que tem por objetivo aplicar uma política de segurança a um determinado ponto de controle da rede. Sua função consiste em regular o tráfego de dados entre redes distintas e impedir a transmissão e/ou recepção de acessos nocivos ou não autorizados de uma rede para outra. Este conceito inclui os equipamentos de filtros de pacotes e de proxy de aplicações, comumente associados a redes TCP/IP...
Existe na forma de software e hardware, ou na combinação de ambos (neste caso, normalmente é chamado de "appliance"). A complexidade de instalação depende do tamanho da rede, da política de segurança, da quantidade de regras que autorizam o fluxo de entrada e saída de informações e do grau de segurança desejado...
Falar sobre firewall nesse espaço é uma coisa bastante comum, pois segurança é uma das coisas que mais almejamos nas nossas vidas e ao utilizar computadores não poderíamos agir de maneira diferente."
A classe de aplicações de firewall é extensa, os usuários mais experientes, administradores de rede, certamente preferem escrever suas regras "na unha" ou irão utilizar ferramentas como o IPCop, Shorewall, fwBuider etc.
Os usuários domésticos ou menos experientes, muito provavelmente utilizaram um firewall com interface gráfica, como os famosos Guarddog e Firestarter e o menos famoso GuFW (interface gráfica para o ufw).
Cansado de seguir "receitas de bolo" onde a maioria das vezes a segurança das regras era tão extrema que passava a enforcar minha conexão, resolvi buscar uma nova ferramenta para utilizar como firewall, eu a encontrei na forma do excelente
Arno's Iptables Firewall.
Instalação padrão
Como sou usuário do Debian, nas mensagens abaixo aparecem /etc/init.d/ pois este é o seu padrão, para outras distros
GNU/Linux vai aparecer a pasta correspondente.
Para instalar o Arno Iptables Firewall, baixem o pacote mais recente com:
wget -c http://rocky.eld.leidenuniv.nl/arno-iptables-firewall/arno-iptables-firewall_1.9.2j.tar.gz
tar -zxvf arno-iptables-firewall_1.9.2j.tar.gz
$ cd arno-iptables-firewall_1.9.2j/
$ su
# ./install
Aparecerão as seguintes mensagens:
# Install Script v1.02c
# Continue install (Y/N)?
Tecle "Y"
# ** Install done **
# Do you want to run the configuration script (Y/N)?
Tecle "Y"
# Arno's Iptables Firewall Script v1.9.2j
# Configure Script v1.02a
# Do you want to start the firewall at boot (via /etc/init.d/) (Y/N)?
# Obs1: se você quer que firewall inicie automaticamente.
O padrão é "Y"
# "/etc/rcS.d/S41arno-iptables-firewall" -> "/etc/init.d/arno-iptables-firewall"
# Your firewall.conf is not configured yet.
# Do you want me to help you setup a basic configuration (Y/N)?
# Obs2: se você quer ajuda para realizar a configuração do firewall.
O padrão é "Y"
# "/etc/arno-iptables-firewall/firewall.conf" -> "/etc/arno-iptables-firewall.conf.bak"
# We will now setup the most basic settings of the firewall
# What is your external (aka. internet) interface (multiple interfaces should be comma separated)?
# Obs3: agora iremos adicionar nossa interface de rede com acesso externo.
# Obs4: no meu caso a interface externa é ppp0
O padrão é "ppp0" ou "eth0"
# * Auto-detected external net(s): XXX.YYY.ZZZ.000
# Obs5: no caso acima, como eu estava conectado a internet o programa detectou o endereço ip utilizado!.
# Does your external interface get its IP through DHCP (Y/N)?
# Obs6: se queremos utilizar o DHCP.
O padrão é "Y"
# Do you want to be pingable from the internet (Y/N)? No
# Obs7: se queremos responder a pings.
O padrão é "N" # caso queira tecle "Y"
# Which TCP ports do you want to allow from the internet? (eg. 22=SSH, 80=HTTP, etc.) (comma separate multiple ports)?
# Obs8: no meu caso vou abrir as portas TCP 44662 e 51413 para o aMule e Transmission.
4662 51413
# Which UDP ports do you want to allow from the internet? (eg. 53=DNS, etc.) (comma separate multiple ports)?
# Obs9: no meu caso vou abrir as portas UDP 4665 4672 e 51413 para o aMule e Transmission.
4665 4672 51413
# Do you have an internal(aka LAN) interface that you want to setup (Y/N)? No
# Obs10: agora iremos adicionar nossa interface de rede interna.
# Obs11: não possuo rede interna.
Tecle "Y" # apenas se possui rede interna.
# Do you want the init script to be verbose (print out what it's doing) (Y/N)?
# Obs12: se deseja que o firewall seja executado no modo verbose.
O padrão é "N" # mais limpo!.
# ----------------------------------------------------------------
# ** NOTE: You can now (manually) start the firewall by executing
# ** "/etc/init.d/arno-iptables-firewall start"
# ** It is recommended however to first review the settings in
# ** /etc/arno-iptables-firewall/firewall.conf!
Para verificar o status do firewall e as regras ativas basta executar como root:
# iptables -L -nv (ou com o comando sudo no início)
Para iniciar, parar ou reiniciar o firewall, usaremos o comando "
service arno-iptables-firewall" seguido dos parâmetros start, stop, restart ou status. Ex.:
# service arno-iptables-firewall start
Agora vamos testar a eficácia do mesmo acessando o site: