Boa tarde.
Ultimamente ando sem tempo para postar, mas ai vai um shell script que criei para capturar toda a tabela ARP do meu gateway e formatar ela no formato do "dhcpd.conf". Assim você não precisa sair amarrando cada MAC a um IP manualmente no arquivo.
#!/bin/bash
#INTERFACE DE REDE QUE O DHCPD FUNCIONA
RLAN=eth0
#ARQUIVO DE SAIDA DO SCRIPT
MACOK=/tmp/gerado.txt
#LIMPEZA DE ARQUIVOS ANTERIORES
rm -f $MACOK
echo -e "[*] Extraindo IPS e MACs da tabela arp atual.\n[*] Iniciando processo."
#FORMATAÇÃO DOS MAC/IPS NO FORMATO DHCPD.CONF
arp -ani $RLAN | awk '{print $2" "$4}'\
| sed s/"[(|)]"/""/g \
| awk '{print "\nhost PC_"$1" {\nhardware ethernet "$2";\nfixed-address " $1";\n}"}'\
> $MACOK
echo -e "[*] Processo finalizado.\n[*] Arquivo salvo em: $MACOK !"
O resultado será um arquivo no formato do "dhcpd.conf" com todos os IP's conhecidos do seu gateway já amarrados com seus devidos MAC's.
Qualquer duvida estou a disposição.
29 Março, 2012
18 Fevereiro, 2012
Entendendo: /etc/profile, /etc/bash.bashrc, ~/.bashrc, ~/.bash_profile, ~/.bash_login, e ~/.profile
Uma dúvida no cotidiano do Linux são os scripts de inicialização do bash. Várias perguntas como a ordem e quando cada arquivo é lido e executado predominam as pessoas.
Lendo o manual do bash no Debian, fica mais claro a ordem destes arquivos.
Quando um shell sem login é iniciado (que não pede senha, exemplo o gnome-terminal), o bash lê e executa comandos a partir de /etc/bash.bashrc e ~/.bashrc, se estes arquivos existirem e forem legíveis.
Quando o bash é invocado como um shell de login (que pede senha, exemplo o ssh), o bash lê e executa comandos a partir de /etc/profile, depois de ler este arquivo ele procura ~/.bash_profile, ~/.bash_login, e ~/.profile, nesta ordem, se os arquivos existirem e forem legíveis.
Pegadinhas:
1 - Quando o /etc/profile é executado, ele chama o /etc/bash.bashrc.
2- Nos sistemas Debian, o profile (que seria o
3 - Bash e sh são interpretadores diferentes! Na inicialização do sh são ignorados os arquivos /etc/bash.bashrc, ~/.bash_profile, ~/.bashrc que são arquivos de configuração usados somente pelo Bash.
Plus:
Vale lembrar que ao se deslogar, quando é um login com senha, o arquivo ~/.bash_logout é lido.
Qualquer duvida estou a disposição.
11 Janeiro, 2012
Utilizando o tshark de maneira elegante.
O tshark é um sniffer de rede muito utilizando para realizar troubleshooting em redes de computadores.
Vou demostrar através de exemplos de como trabalhar de maneira mais elegante com ele.
Filtrando pacotes que tenham destino a porta 80:
tshark -f "dst port 80"
Filtrando pacotes que tenham origem da porta 80:
tshark -f "src port 80"
Filtrando pacotes que tenham origem do IP 192.168.1.100:
tshark -f "src host 192.168.1.100"
Filtrando pacotes que tenham destino o IP 192.168.1.100:
tshark -f "dst host 192.168.1.100"
Filtrando pacotes que tenham destino as portas 80, 81, 82, 83, 84 ou 85:
tshark -f "dst portrange 80-85"
É possível combinar filtros também, exemplo:
Filtrando pacotes TCP que tenham destino a porta 80 do IP 192.168.1.100:
tshark -f "tcp dst port 80 and dst host 192.168.1.100"
Filtrando pacotes TCP que tenham destino as portas 80, 81, 82, 83, 84 ou 85 do IP 192.168.1.100:
tshark -f "tcp dst portrange 80-85 and dst host 192.168.1.100"
Filtrando pacotes TCP que tenham destino as porta 25 ou qualquer pacote que tenha destino o IP 192.168.1.200:
tshark -f "tcp dst port 25 or dst host 192.168.1.100"
Essas dicas sãos simples mais muito úteis e lembre-se é possível realizar vários tipos de combinações.
Mais strings de filtros podem ser estudadas aqui: http://www.manpagez.com/man/7/pcap-filter/
Até mais!
03 Janeiro, 2012
Maild - Removedor de e-mails do mailq 1.0
No ano de 2010 lancei um script com intenção de remover todos os e-mails de um determinado usuário ou domínio da fila de saída do e-mail (mailq) baseado no comando postsuper. Segue o link do lançamento.
Naquele ano esse projeto não tinha nome, agora ele tem e alcançou sua versão 1.0.
Apresento o "Maild", ele é baseado em shell script.
#!/bin/bash
mailq=$(which mailq 2>&- 1>&-; echo $?)
if [ "$mailq" -eq "0" ];
then
if [ -z "$1" ]
then
echo "[*] Não foi passado nenhum parametro para o script."
echo "[*] Use: $0 [e-mail a ser removido]"
exit 0
fi
for i in `mailq | egrep "^[A-Z|0-9].*${1}.*$" | awk '{print $1}'`
do
alvo=$(echo $i | tr -d "*");
echo "[*] Deletando e-mail com ID: $alvo"
postsuper -d "$alvo"
done
else
echo "[*] Mailq não encontrado!"
fi
Naquele ano esse projeto não tinha nome, agora ele tem e alcançou sua versão 1.0.
Apresento o "Maild", ele é baseado em shell script.
#!/bin/bash
mailq=$(which mailq 2>&- 1>&-; echo $?)
if [ "$mailq" -eq "0" ];
then
if [ -z "$1" ]
then
echo "[*] Não foi passado nenhum parametro para o script."
echo "[*] Use: $0 [e-mail a ser removido]"
exit 0
fi
for i in `mailq | egrep "^[A-Z|0-9].*${1}.*$" | awk '{print $1}'`
do
alvo=$(echo $i | tr -d "*");
echo "[*] Deletando e-mail com ID: $alvo"
postsuper -d "$alvo"
done
else
echo "[*] Mailq não encontrado!"
fi
Para utilizar o script, salve-o e torne-o executável. Exemplo:
chmod +x maild.sh
Para rodar basta passar o e-mail em forma de parâmetro para o script, exemplo:
./maild.sh usuario@dominio.com.br
O Maild é muito útil em certas situações, como por exemplo: O usuário se infectou por um vírus que esta utilizando o cliente de e-mail para enviar spam, então você utiliza esse script que removera com segurança só os e-mails desse usuário.
Até mais...
01 Janeiro, 2012
Utilizando um diretório local via rdesktop.
Olá! Abaixo segue uma dica para usar um diretório local em uma sessão de Terminal Service via rdesktop.
rdesktop dominio.com.br -r disk:"teste"=/pasta_local
Ao acessar "Meu computador" no terminal service, o ícone do compartilhamento estara habilitado como na imagem abaixo:
Com isso você pode realizar transferência de arquivos entre as máquinas.
Até mais!
rdesktop dominio.com.br -r disk:"teste"=/pasta_local
Ao acessar "Meu computador" no terminal service, o ícone do compartilhamento estara habilitado como na imagem abaixo:
Com isso você pode realizar transferência de arquivos entre as máquinas.
Até mais!
Assinar:
Postagens (Atom)
