Este tópico permite a impossibilidade de invasão tanto pela rede, como por meio de internet, para que não haja preocupação por parte do usuário
Linux.
Antes de tudo é necessário verificar as portas abertas. O programa
nmap é utilizado para rastrear sistemas em busca de portas de serviços ativas. Seu uso mais simples é sem argumentos, especificando apenas um nome ou endereço de host a ser rastreado.
O nmap possui muitas opções de rastreamento que podem ser consultadas através de sua página manual (man nmap). É possível, por exemplo, fazer um rastreamento para tentar descobrir as portas passíveis de conexão e qual o sistema operacional do host em questão:
# nmap -sS -O localhost
Starting nmap 3.93 ( http://www.insecure.org/nmap/ )
Interesting ports on localhost (127.0.0.1):
(The 1666 ports scanned but not shown below are in state: closed)
PORT STATE SERVICE
631/tcp open ipp
6000/tcp open X11
Device type: general purpose
Running: Linux 2.4.X|2.5.X|2.6.X
OS details: KDE 3.5.5 - , Linux 3.5.5 - 2.6.7
Nmap finished: 1 IP address (1 host up) scanned in 3.240 seconds
Existe um programa parecido, suas funções são semelhantes, o nome dele é
netstat. Com ele, é possível monitorar as conexões ativas. Algumas de suas opções são:
- -t - Mostra todas as conexões tcp ativas;
- -l - Mostra todas as portas abertas à conexões;
- -c - Execução contínua, renova as informações a cada segundo.
O netstat é capaz de obter e mostrar várias outras informações (tabelas de rotas, estatísticas de interface etc). Mais detalhes sobre sua operação na página manual (man netstat).
Feito isso, podemos dar início a criação de um firewall.
Primeiro vamos apagar todas as regras da tabela filter:
# iptables -t filter -F
Comece a estabelecer política de descartar os pacotes em todas chains da tabela filters:
# iptables -t filter -P INPUT DROP
# iptables -t filter -P FORWARD DROP
# iptables -t filter -P OUTPUT DROP
Liberando todos os pacotes (saída e entrada) da interface local:
# iptables -t filter -A INPUT -i lo -s 0/0 -d 0/0 -j ACCEPT
# iptables -t filter -A OUTPUT -o lo -s 0/0 -d 0/0 -j ACCEPT
Liberando pacotes saindo através da interface eth0:
# iptables -t filter -A OUTPUT -o eth0 -s 0/0 -d 0/0 -j ACCEPT
Liberado para entrar pela interface eth0 somente os pacote pertencentes (ESTABLISHED) ou relacionados (RELATED) a uma conexão existente:
# iptables -t filter -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -s 0/0 -d 0/0 -j ACCEPT
Listando as configurações de filtros novas:
# iptables -t filter -L -v
Chain INPUT (policy DROP 39 packets, 12431 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- lo any anywhere anywhere
0 0 ACCEPT all -- eth0 any anywhere anywhere state RELATED,ESTABLISHED
Chain FORWARD (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy DROP 12 packets, 816 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- any lo anywhere anywhere
0 0 ACCEPT all -- any eth0 anywhere anywhere
Este firewall irá descartar qualquer tentativa de conexão, seja por programas remotos ou por arquivos compartilhados e até mesmo por mensagens instantâneas.
Voltar à configuração padrão (aceite indiscriminado):
# iptables -t filter -F INPUT
# iptables -t filter -P INPUT ACCEPT
# iptables -t filter -F FORWARD
# iptables -t filter -P FORWARD ACCEPT
# iptables -t filter -F OUTPUT
# iptables -t filter -P OUTPUT ACCEPT
Pronto, temos nosso Firewall simples, mas criado.
É isso aí, se protejam, pois a moçada não perdoa.