segunda-feira, 25 de novembro de 2013

Como descobrir as regras do IPTables que não estão sendo usadas

Quanto menos regras um firewall tiver, melhor. E um firewall de borda costuma ter centenas, ou mesmo milhares de regras. Quanto mais regras ele tiver, pior será seu desempenho. Portanto, é aconselhável verificar periodicamente o uso das regras do firewall, tanto para desabilitar regras não usadas quando para priorizar as regras mais utilizadas.

No IPTables, isso pode ser feito com o seguinte comando:

# iptables -nL --verbose


Chain INPUT (policy DROP 8513K packets, 940M bytes)
 pkts bytes target     prot opt in     out     source               destination        
    0     0 REJECT     all  --  *      *       172.20.19.149        0.0.0.0/0            reject-with icmp-port-unreachable
   31  1860 REJECT     all  --  *      *       172.20.15.202        0.0.0.0/0            reject-with icmp-port-unreachable
   16  1112 REJECT     all  --  *      *       149.20.56.0/24       0.0.0.0/0            reject-with icmp-port-unreachable
    1    60 REJECT     all  --  *      *       172.20.15.177        0.0.0.0/0            reject-with icmp-port-unreachable
    0     0 REJECT     all  --  *      *       172.20.50.56         0.0.0.0/0            reject-with icmp-port-unreachable
    0     0 REJECT     all  --  *      *       10.90.1.0/24         0.0.0.0/0            reject-with icmp-port-unreachable
    0     0 REJECT     all  --  *      *       172.20.15.79         0.0.0.0/0            reject-with icmp-port-unreachable
1003M 1142G ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
 132K 7916K ACCEPT     tcp  --  eth0   *       172.20.1.82          0.0.0.0/0            multiport dports 10050,10051
35371 2971K ACCEPT     icmp --  eth0   *       172.20.1.82          0.0.0.0/0          
    0     0 ACCEPT     icmp --  eth1   *       200.136.27.146       0.0.0.0/0          
5005K  300M ACCEPT     tcp  --  lo     *       0.0.0.0/0            0.0.0.0/0            multiport dports 3000,3128,8080,16667
   45  2700 ACCEPT     tcp  --  eth0   *       172.20.120.4         0.0.0.0/0            multiport dports 22,81,139,445,666,3000,4200,10000
    0     0 ACCEPT     tcp  --  eth0   *       172.20.120.5         0.0.0.0/0            multiport dports 22,25,81,666,3000,10000
    0     0 ACCEPT     tcp  --  eth0   *       172.20.120.7         0.0.0.0/0            multiport dports 22,25,81,666,3000,10000
    0     0 ACCEPT     tcp  --  eth0   *       172.20.120.6         0.0.0.0/0            multiport dports 22,25,81,666,3000,10000
    0     0 ACCEPT     tcp  --  eth0   *       172.20.120.2         0.0.0.0/0            multiport dports 22,25,81,666,3000,10000
    0     0 ACCEPT     tcp  --  eth0   *       172.20.120.1         0.0.0.0/0            multiport dports 22,25,81,666,3000,10000
    0     0 ACCEPT     tcp  --  eth0   *       172.20.120.8         0.0.0.0/0            multiport dports 22,25,81,666,3000,10000
    0     0 ACCEPT     tcp  --  eth0   *       172.20.1.130         0.0.0.0/0            multiport dports 22,25,81,3000,10000
    0     0 ACCEPT     tcp  --  eth0   *       172.20.1.146         0.0.0.0/0            multiport dports 22

Reparem que essa listagem traz o número de pacotes e o tamanho total dos dados trafegados pela regra. Regras zeradas significam que não estão sendo usadas. Esses valores consideram o período compreendido entre a última ativação do firewall (ou boot o servidor) até o momento presente.