MAL - Memória Auxiliar do Lutieri

segunda-feira, novembro 27, 2006

Acesso telnet

Estou terminando de fazer meu firewall com políticas default drop e eis que me deparei com algo que me fez perder uma meia hora do meu dia.

eu tenho uma regra assim:

iptables -A INPUT -i eth1 -s 192.168.1.0/24 -p udp --dport 53 -j ACCEPT

bom como se pode ver estou liberando consultas DNS. Como todos sabem o servidor DNS responde na porta 53 sob protocolo UDP.

eu fazia as consultas normalmente... até que tentei:

telnet 192.168.1.1 53


e pra minha surpresa não respondia ... não retornava resposta... sniffei a rede e via os pacotes chegando no servidor mas não retornavam...

e eu pensando: "Mas eu estou aceitando conexões na porta 53 de todo a rede. Tem que funcionar".

Depois de algum tempo caiu a minha ficha :-D

telnet usa TCP e não UDP. aí tah a explicação de porque funcionavam as consultas DNS e não o telnet.

Impressora HP no cups

Quando for adicionada uma impressora deve apontar a URI, o endereço da impressora...

No caso das HP's pode se usar o comando:

hp-makeuri IP_da_Impressora

Ele vai conectar via snmp, pega a impressora e retornar a URI dela usando o backend a hp. Algo como:

[root@printserver ~]# hp-makeuri 192.168.1.71

HP Linux Imaging and Printing System (ver. 1.6.6a)
Device URI Creation Utility ver. 4.2

Copyright (c) 2003-6 Hewlett-Packard Development Company, LP
This software comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to distribute it
under certain conditions. See COPYING file for more details.

CUPS URI: hp:/net/HP_Color_LaserJet_2600n?ip=192.168.1.71
Tá aí o endereço da bixinha... Mas várias impressoras responde na porta ipp(631). Se você não quer usar esse backend da HP. Então ficaria assim:

socket://192.168.1.71/ipp

ou ainda pode-se usar a porta 9100.

socket://192.168.1.71:9100


Feitooo....

sexta-feira, novembro 17, 2006

Arping - Primo do ping

O que ele faz diferente?!!? Ele executa o ping na camado de enlace(camada 2) isso quer dizer usa o MAC Address pra fazer o ping.

Acabei de testar, acompanhe:

ping localhost
PING localhost (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.054 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.042 ms

--- localhost ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.042/0.048/0.054/0.006 ms


Agora eu vou bloquear os pacotes icmp:

iptables -A INPUT -p icmp -j DROP

vou pingar:

ping localhost
PING localhost (127.0.0.1) 56(84) bytes of data.

--- localhost ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 2004ms


Ok... naum está aceitando pacotes do ping.

usamos o primo dele então:

arping localhost
ARPING 127.0.0.1 from 10.1.1.11 eth0
Unicast reply from 127.0.0.1 [00:15:E9:B2:45:47] 0.992ms
Unicast reply from 127.0.0.1 [00:15:E9:B2:45:47] 0.780ms
Sent 2 probes (1 broadcast(s))
Received 2 response(s)


tcharã...pingou!!!

Outra utilidade é ver se um determinado endereço IP já está em uso na rede. Para evitar ip duplicados. O código a seguir está desenhado para ser usado em scripts:


[root@dietrich]# arping -D -q -I eth0 -c 2 192.168.99.35
[root@dietrich]# echo $?
1

[root@dietrich]# arping -D -q -I eth0 -c 2 192.168.99.36
[root@dietrich]# echo $?
0


A opção -D é usada para fazer a checagem de IP duplicado.
A opção -q é modo quieto.
A opção -I para especificar a interface(não é obrigatório).
A opção -c 2 diz para executar dois pings e concluir.
Seguido do IP que deve ser consultado na rede.


Na primeira situação ele retornou 1. Isso quer dizer que a opção -D(Detecção de Endereço Duplicado) foi ativo, ou seja, o endereço já está uso.

Na segunda situação ele retornou 0. Informando que o endereço IP consultado naum foi encontrado na rede. Está disponível para uso.


Como disse anteriormente os comandos acima estão prontos para serem usados em algum script. Pode-se, por exemplo, montar 1 script que antes de setar o ip na placa de rede verifica a disponibilidade do mesmo.

Procurando por portas e serviços ativos

Nunca esqueça de verificar quais serviçios estão esperando por conexões ou já estabelecidas em seu sistema. Para isso pode ser usado os comandos abaixo:


netstat exibe informações sobre a rede(roteamento, conexões, sockets)

Algumas opções do nosso amigo:

-r -> exibe informações sobre roteamento assim como o comando "route"
-i -> informações sobre as interfaces de rede
-a -> exibe todos os tipos de sockets(unix, tcp, udp...) e as ouvintes também
-t -> exibe apenas conexões tcp(não ouvintes)
-l -> exibe conexões que estão escutando(listening)
-u -> exibe apenas conexões udp(não ouvintes)
-n -> modo numérico, não converte portas, serviços e endereços.
-c -> modo contínuo... como se fosse "tail -f"
-p -> mostra o PID do programa que responde pela conexão
-e -> exibe o usuário


Obs: Pode ser feita qualquer combinação entre as opções acima listadas.

Obs2: Local Address (endereço local) e Foreign Address(Endereço Remoto)



lsof Exibe uma lista de arquivos abertos

lsof -u usuário -> Exibe todos os arquivos abertos por esse usuário

lsof -p X -> Mostra os arquivos abertos pelo processo de PID X

lsof -i -> Exibe os arquivos relacionados a internet e rede(ótimo para ver quais serviçoes estão ouvindo)

lsof /pasta/arquivo -> Exibe processos que tem /pasta/arquivo aberto

Data e hora em logs

Sempre me deparei em alguns logs com a seguinte informação. Ex. de log do squid(access.log):

1161403560.693 13 10.1.1.20 TCP_HIT/200 313 GET http://groups.google.com.br/groups/img/dot_clear.gif - NONE/- image/gif

O problema todo é que esse primeiro valor corresponde a data e hora do acesso. Se você utiliza o sarg, por exemplo, ele pega esse valores transforma na forma humanamente legível e coloca em seus relatórios.

Essa semana vagando pelo site do gentoo encontrei um dica de como converter esses valores para uma forma legível. Segue o treco do texto com as dicas de conversão. Se você não entende inglês não tem problema apenas utilize algum dos comando em negrito:


Jorge Almeida wanted to know if the cryptic numbers (e.g., "1161911504") at the beginning of each line in his emerge log were dates, and if so, how to render them human readable. Harm Geerts confirmed that the figure was Unix time ("the number of seconds elapsed since midnight UTC on the morning of January 1, 1970, not counting leap seconds") and suggested translating it using Python.

Code Listing 2.1: Converting from UNIX time with python

$ python -c "import time; print time.ctime(1161911504)"

Bo Ørsted Andresen suggested using awk, instead.

Code Listing 2.2: Converting from UNIX time with awk #1

$ tail /var/log/emerge.log | awk -F: '{print strftime("%D %X %Z", $1),$2}'

Peter Ruskin amended this to be shorter and less internationally ambiguous in its output.

Code Listing 2.3: Converting from UNIX time with awk #2

$ tail /var/log/emerge.log | awk -F: '{print strftime("%c", $1),$2}'

The last (and to Jorge most suitable) solution was Richard Fish's.

Code Listing 2.4: Converting from UNIX time using date

$ date -d @1161911504


Essa última eu acho a mais interessante mas fica a seu critério a escolha.

Só por curiosidade esse valor enorme (1161403560.693) é número de segundos transcorridos desde a meia noite da segunda-feira 1º de Janeiro de 1970.


Fonte: http://www.gentoo.org/news/en/gwn/20061030-newsletter.xml

Teh mais....



Chat with Lutieri G. B.

Subscribe in a reader