Analizando os logs do IPTables 
O IPTables, dentro de suas inúmeras funcionalidades, tem a função de gerar logs do que está acontecendo. Neste artigo vou explicar como analisar essas informações através de um software via web.
[ Hits: 142.058  ]
Por: Luiz Antonio Oliveira em 22/02/2007  
 
 
 
Arquivo básico de IPTables 
 
 
 
Primeiramente vou mostrar um arquivo básico de iptables:
 
# cat /etc/rc.d/rc.firewall 
 
#!/bin/sh 
# Iptables Firewall by Rogerio Gonçalves - roge@roge.org 
#  
 
extnet=eth0 
#intnet=eth1  
IPT="/usr/sbin/iptables" 
tcp="22,25,110,6969" 
udp="53" 
ipnet=`ifconfig eth0 | grep inet | cut -d : -f 2 | cut -d   -f 1` 
#iplan=`ifconfig eth1 | grep inet | cut -d : -f 2 | cut -d   -f 1`  
LOG_FLOOD="1/s" 
#ftp module  
/sbin/modprobe ip_nat_ftp 
/sbin/modprobe ip_conntrack_ftp 
 
# clear  
$IPT -F INPUT 
$IPT -F FORWARD 
$IPT -F OUTPUT 
$IPT -t nat -F PREROUTING 
$IPT -t nat -F POSTROUTING 
 
# drop  
$IPT -P INPUT DROP 
$IPT -P FORWARD DROP 
 
# input  
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT 
 
$IPT -A INPUT -p tcp -d $ipnet --tcp-flags SYN,FIN SYN,FIN -j DROP 
 
$IPT -A INPUT -i $extnet -m state --state NEW -p tcp -m multiport --dport $tcp -j ACCEPT 
 
$IPT -A INPUT -i $extnet -m state --state NEW -p udp -m multiport --dport $udp -j ACCEPT 
 
#$IPT -A INPUT -i $intnet -m state --state NEW -j ACCEPT  
 
$IPT -A INPUT -i lo -j ACCEPT 
 
#VPN  
#$IPT -A INPUT -p udp --dport 5000 -j ACCEPT  
#$IPT -A INPUT -p tcp --dport 5000 -j ACCEPT  
 
# forward  
 
# forward  
#$IPT -A FORWARD -i $intnet -j ACCEPT  
$IPT -A FORWARD -i $extnet -m state --state ESTABLISHED,RELATED -j ACCEPT 
$IPT -P OUTPUT ACCEPT 
 
# nat  
#$IPT -t nat -A POSTROUTING -s 192.168.0.0/24 -d ! 192.168.1.0/24 -o $extnet -j MASQUERADE  
 
# protect  
echo 1 > /proc/sys/net/ipv4/tcp_syncookies 
$IPT -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT # syn  
$IPT -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT # scans  
$IPT -A FORWARD -p icmp --icmp-type echo-reply -m limit --limit 1/s -j RETURN # ping of dead   
for i in /proc/sys/net/ipv4/conf/*/rp_filter; do  # spoof ip  
   echo 1 >$i 
done 
echo "2048" > /proc/sys/net/ipv4/ip_conntrack_max 
 
# log  
#$IPT -A INPUT -p tcp --dport 21 -j LOG --log-prefix "Serviço: FTP"  
#$IPT -A INPUT -p tcp --dport 22 -j LOG --log-prefix "Serviço: SSH"  
#$IPT -A INPUT -p tcp --dport 110 -j LOG --log-prefix "Serviço: POP "  
#$IPT -A INPUT -p tcp --dport 80 -j LOG --log-prefix "Serviço: HTTP "  
#$IPT -A INPUT -p tcp --dport 25 -j LOG --log-prefix "Serviço: SMTP "  
#$IPT -A INPUT -p tcp --dport 143 -j LOG --log-prefix "Serviço: IMAP"  
 
$IPT -A INPUT -p icmp -m limit --limit $LOG_FLOOD -j LOG --log-level info --log-prefix "ICMP Dropped " 
$IPT -A INPUT -p tcp -m limit --limit $LOG_FLOOD -j LOG --log-level info --log-prefix "TCP Dropped "  
$IPT -A INPUT -p udp -m limit --limit $LOG_FLOOD -j LOG --log-level info --log-prefix "UDP Dropped "  
$IPT -A INPUT -f -m limit --limit $LOG_FLOOD -j LOG --log-level warning --log-prefix "FRAGMENT Dropped " 
$IPT -A INPUT -m limit --limit 1/minute --limit-burst 3 -j LOG --log-level DEBUG --log-prefix "IPT INPUT packet died: " 
$IPT -A INPUT -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level DEBUG --log-prefix "IPT INPUT packet died: " 
 
#msn lan  
#$IPT -I FORWARD -s 192.168.0.111/24 -p tcp --dport 1863 -j REJECT  
#$IPT -I FORWARD -s 192.168.0.111/24 -d loginnet.passport.com -j REJECT  
#$IPT -I FORWARD -s 192.168.0.111/24 -d webmessenger.msn.com -j REJECT  
# dnat  
#$IPT -t nat -A PREROUTING -i $extnet -p tcp --dport 25 -j DNAT --to 192.168.23.21  
#$IPT -t nat -A PREROUTING -i $extnet -p tcp --dport 110 -j DNAT --to 192.168.23.223  
#$IPT -t nat -A PREROUTING -i $intnet -p tcp --dport 80 -j REDIRECT --to-port 3128  
#$IPT -t nat -A PREROUTING -i $extnet -p tcp --dport 3389 -j DNAT --to 192.168.23.134  
#$IPT -t nat -I PREROUTING -i $extnet -p tcp --dport 1999 -j DNAT --to 192.168.23.56  
 
echo "Inicializando firewall.."
 
Essas linhas mandarão as mensagens do iptables para o arquivo /var/log/messages:
 
$IPT -A INPUT -p icmp -m limit --limit $LOG_FLOOD -j LOG --log-level info --log-prefix "ICMP Dropped " 
$IPT -A INPUT -p tcp -m limit --limit $LOG_FLOOD -j LOG --log-level info --log-prefix "TCP Dropped " 
$IPT -A INPUT -p udp -m limit --limit $LOG_FLOOD -j LOG --log-level info --log-prefix "UDP Dropped " 
$IPT -A INPUT -f -m limit --limit $LOG_FLOOD -j LOG --log-level warning --log-prefix "FRAGMENT Dropped " 
$IPT -A INPUT -m limit --limit 1/minute --limit-burst 3 -j LOG --log-level DEBUG --log-prefix "IPT INPUT packet died: " 
$IPT -A INPUT -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level DEBUG --log-prefix "IPT INPUT packet died: "
 
Se você executar o comando:
 
# tail -f /var/log/messages s
 
Aparecera algo assim no seu console:
 
Oct  5 04:08:11 qmail kernel: UDP Dropped IN=eth0 OUT= MAC=ff:ff:ff:ff:ff:ff:00:e0:06:f8:9e:9f:08:00 SRC=10.1.27.91 DST=10.1.27.255 
LEN=229 TOS=0x00 PREC=0x00 TTL=128 ID=28651 PROTO=UDP SPT=138 DPT=138 LEN=209 
Oct  5 04:09:47 qmail kernel: UDP Dropped IN=eth0 OUT= MAC=ff:ff:ff:ff:ff:ff:00:e0:06:f8:9e:9f:08:00 SRC=10.1.27.91 DST=10.1.27.255 
LEN=78 TOS=0x00 PREC=0x00 TTL=128 ID=28656 PROTO=UDP SPT=137 DPT=137 LEN=58 
Oct  5 04:09:47 qmail kernel: UDP Dropped IN=eth0 OUT= MAC=ff:ff:ff:ff:ff:ff:00:e0:06:f8:9e:9f:08:00 SRC=10.1.27.91 DST=10.1.27.255 
LEN=78 TOS=0x00 PREC=0x00 TTL=128 ID=28657 PROTO=UDP SPT=137 DPT=137 LEN=58 
Oct  5 04:09:48 qmail kernel: UDP Dropped IN=eth0 OUT= MAC=ff:ff:ff:ff:ff:ff:00:e0:06:f8:9e:9f:08:00 SRC=10.1.27.91 DST=10.1.27.255 
LEN=78 TOS=0x00 PREC=0x00 TTL=128 ID=28659 PROTO=UDP SPT=137 DPT=137 LEN=58
 
Aí você se pergunta... e como eu entendo esse monte de letras e números? 
 
 
 
       Próxima página 
Páginas do artigo
   1. Arquivo básico de IPTables
   2. 
Instalando o analisador 
   3. 
Configurando e executando 
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada
   Site seguro com Apache-SSL em 15 minutos
   Defesa pessoal com o GPG, Nautilus Scripts, partições encriptadas e leves doses de paranoia
   Servidor Samba "Autoservice"
   EcryptFS - Usando, Desvendando suas Chaves e Recuperando seus Arquivos
   Gerenciar e configurar inetd e serviços relacionados
 
  
 
Comentários
	
		
		 
		Bacana... Parabéns pelo artigo.
	
	
	
	
	
	
	
 
	
		
		 
		Parabéns, muito útil. 
Estou começando com o Firewall na empresa agora, já ocorreu algumas rejeições por parte de usuários. 
o VOL tem ajudado muito. 
Abraços 
 
Alex Reis
	
	
	
	
	
	
	
		
			
				
				
					 
					 
					
					
						
							Mensagem 
							Parabéns, muito útil.
Estou começando com o Firewall na empresa agora, já ocorreu algumas rejeições por parte de usuários.
o VOL tem ajudado muito.
Abraços
Alex Reis 
						 
					
	
					 
				 
			 	
			
		 
	 
	 
	
 
	
		
		 
		Bacana esse software... 
 
Parabéns pelo artigo.
	
	
	
	
	
	
	
		
			
				
				
					 
					 
					
					
						
							Mensagem 
							Bacana esse software...
Parabéns pelo artigo. 
						 
					
	
					 
				 
			 	
			
		 
	 
	 
	
 
	
		
		 
		Olá artigo muito bom esse. 
 
É necessário ter um ambiente gráfico para conseguir acessar esse log?
	
	
	
	
	
	
	
		
			
				
				
					 
					 
					
					
						
							Mensagem 
							Olá artigo muito bom esse.
É necessário ter um ambiente gráfico para conseguir acessar esse log? 
						 
					
	
					 
				 
			 	
			
		 
	 
	 
	
 
	
		
		 
		Olá, 
 
Quando estou executando o fwanalog.sh está apresentando o seguinte erro: 
 
fwanalog: No input files in the '/var/log/fw/' directory 
named /var/log/fw/messages* and under  days old. 
 
 
O que pode está acontecendo ?
	
	
	
	
	
	
	
		
			
				
				
					 
					 
					
					
						
							Mensagem 
							Olá,
Quando estou executando o fwanalog.sh está apresentando o seguinte erro:
fwanalog: No input files in the '/var/log/fw/' directory
named /var/log/fw/messages* and under  days old.
O que pode está acontecendo ? 
						 
					
	
					 
				 
			 	
			
		 
	 
	 
	
 
	
		
		 
		como faço aquele configuração do apache sitada ali em cima, sou novo no mundo linux e nao compreendi bem 
 
se alguem puder me ajudar agradeço  
	
	
	
	
	
	
	
		
			
				
				
					 
					 
					
					
						
							Mensagem 
							como faço aquele configuração do apache sitada ali em cima, sou novo no mundo linux e nao compreendi bem
se alguem puder me ajudar agradeço 
 
						 
					
	
					 
				 
			 	
			
		 
	 
	 
	
 
	
		
		 
		      Boa noite Renatoledo. 
 
 
    execute estes procedimentos: 
 
- entre com o usuario root; 
- vá até o diretorio de instalação do apache, se a distro for Ubuntu, é no /etc/apache2/mods-available; 
- edite o arquivo dir.conf 
- no final da linha DirectoryIndex, acrescente alldates.html 
 
Caso você não encontre este arquivo, execute o comando abaixo, ele procura uma string nos subdiretórios, a partir do diretório que você está posicionado, "/etc/apache2", depois é só editar o arquivo e acrescentar o "alldates.html"; 
- execute este comando: grep -iR "DirectoryIndex" *, este comando retornará o arquivo em que a string procurada se encontra.
	
	
	
	
	
	
	
		
			
				
				
					 
					 
					
					
						
							Mensagem 
							      Boa noite Renatoledo.
    execute estes procedimentos:
- entre com o usuario root;
- vá até o diretorio de instalação do apache, se a distro for Ubuntu, é no /etc/apache2/mods-available;
- edite o arquivo dir.conf
- no final da linha DirectoryIndex, acrescente alldates.html
Caso você não encontre este arquivo, execute o comando abaixo, ele procura uma string nos subdiretórios, a partir do diretório que você está posicionado, "/etc/apache2", depois é só editar o arquivo e acrescentar o "alldates.html";
- execute este comando: grep -iR "DirectoryIndex" *, este comando retornará o arquivo em que a string procurada se encontra. 
						 
					
	
					 
				 
			 	
			
		 
	 
	 
	
 
	
		
		 
		     Pessoal, vocês sabem como faço para mostrar no relatório gerado o NOME ao invés do IP dos sites acessados? 
 
   Obrigado.
	
	
	
	
	
	
	
		
			
				
				
					 
					 
					
					
						
							Mensagem 
							     Pessoal, vocês sabem como faço para mostrar no relatório gerado o NOME ao invés do IP dos sites acessados?
   Obrigado. 
						 
					
	
					 
				 
			 	
			
		 
	 
	 
	
 
 
 
Contribuir com comentário 
 
Enviar