OpenWRT – Comandos úteis

Apenas para não esquecer

  • Transferindo a imagem da máquina local para o roteador com OpenWRT
    user@localmachine:~$ scp /caminho/do/arquivo/em/seu/computador root@192.168.1.1:/caminho/do/arquivo/no/roteador
    exemplo:
    # scp openwrt-15.05.1-ar71xx-generic-dir-615-e4-squashfs-factory.bin root@192.168.1.1:/tmp 
  • Atualizando a imagem transferida
    # cd /tmp/
    # mtd writeopenwrt-15.05.1-ar71xx-generic-dir-615-e4-squashfs-factory.bin linux && reboot
  • Restaurando a firmware original do roteador
    Transfira a firmware para o roteador utilizando SCP e rode o comando abaixo:
    # mtd -r write /tmp/original_firmware.bin firmware

 

Livro: DD-WRT – Guia Prático do Usuário Iniciante (Português)

DD-WRT é um firmware baseado em Linux para uma grande variedade de roteadores WLAN e sistemas incorporados.  A ênfase principal reside em fornecer o tratamento mais fácil possível, enquanto ao mesmo tempo, apoiar um grande número de funcionalidades no âmbito da respectiva plataforma de hardware utilizado. É desenvolvido por uma equipe de programadores independentes liderada pelo BrianSlayer.
Compatível com diversos modelos de roteadores wireless: que usam chipsets da Broadcom, Artheros e Ralink e processadores comuns (x86).

Download do Livro – Clique aqui.

Emulador do DD-WRT

Ler o livro online:
Opção 1 – http://pt.slideshare.net/polones/dd-wrt-guia-pratico
Opção 2 – http://issuu.com/opolones/docs/dd-wrt-guia-pratico
Opção 3 – https://www.scribd.com/doc/228202992/Dd-wrt-Guia-Pratico-Do-Usuario-Iniciante

WikiBook – https://en.wikibooks.org/wiki/DD-WRT
http://www.ibm.com/developerworks/br/library/l-wifisecureddwrt/

 

Como desabilitar um usuário no Linux

Existe n maneiras de desabilitar usuários no Linux, embora muitos utilizem a técnica de alterar a senha para um valor inválido, mas esta não é a forma recomendada, pois o usuário irá perder a senha, mas ele ainda poderá utilizar algum outro token de autenticação (chave SSH por exemplo).

Para desabilitar um usuário completamente utilize:

# usermod –expiredate 1 usuario
(Isto irá setar  a data de expiração do usuário para 02/01/1970)

Se quiser habilitar novamente o usuário sem data de expiração:
# usermod –expiredate -1 usuario

Howto: Tunelamento de servidor SVN via ProxyPass – Apache

Caso: Você já tem um servidor SVN em sua empresa rodando de boa internamente e agora precisa colocar o serviço SVN para acesso externo. Existe n maneiras de se fazer isso, porém caso você esteja trabalhando com proxypass para disponibilizar conteúdo da sua rede interna à internet, esta é a forma de fazer com o Subversion.

[php]

ServerName svn.dominio.com
ProxyPass / http://svn.dominio.com/

ProxyPassReverse / http://svn.dominio.com
Order Deny,Allow
Allow from all
Satisfy Any

[/php]

Pronto, já pode-se conectar com seu cliente SVN.
Fonte: http://silmor.de/proxysvn.php

NAT 1:1 ou Proxy Reverso, qual a melhor alternativa?

Genericamente falando, tanto o NAT 1:1 como o Proxy Reverso tem por finalidade ligar um endereço interno específico para um endereço externo.

NAT 1:1 (one-to-one)
Se desejarmos que uma máquina da rede interna possa ser vista de fora da rede, ou seja, possa receber conexões e ter servidores instalados, podemos usar o NAT 1:1. Esse esquema de NAT é bem simples e consiste em criarmos manualmente uma tabela no roteador mapeando o IP privado para um IP público. Esse tipo de NAT também é chamado de NAT estático, uma vez que as informações na tabela permanecem válidas indefinidamente após serem criadas.

Como existe permanentemente uma entrada na Tabela NAT associando o IP 10.1.1.2 ao IP 200.3.3.3, tanto a máquina A pode iniciar a comunicação com alguma máquina da Internet como alguma máquina da Internet é que pode iniciar uma comunicação com a máquina A. A figura acima mostra o caso onde a máquina A enviou um pacote para uma máquina na Internet que possuía o IP 60.6.6.6. Quando esse pacote passa pelo roteador, o IP de origem será trocado para o IP 200.3.3.3. Do mesmo modo, como pode ser visto na próxima figura, sempre que o roteador receber um pacote da Internet para o IP 200.3.3.3 o IP de destino será trocado para 10.1.1.2.

Read More

Gerenciar Máquina Virtual no VMware ESXi via console (SSH)

Basicamente para controlar as VMs utiliza-se o comando vim-cmd vmsvc

Primeira coisa, você deve saber o ID da máquina virtual que você deseja manipular:

Listar máquinas registradas:
# vim-cmd vmsvc/getallvms

Visualizar o sumário da máquina:
# vim-cmd vmsvc/get.summary [ID]

Para ligar uma VM:
# vim-cmd vmsvc/power.on [ID]

Para desligar uma VM: 
# vim-cmd vmsvc/power.off [ID]

Para suspender uma VM
# vim-cmd vmsvc/power.suspend [ID]

Existem muitos outros…

Fontes:
http://blogs.vmware.com/vsphere/2011/03/ops-changes-part-6-quick-troubleshooting-tips.html
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1038043

Resolvendo problema de conexão entre servidores ESXi para transferência de VMs

Vamos ao problema:

1. Você tem habilitado o acesso SSH, e a conexão entre um cliente desktop (putty, ssh secure shell…) e o servidor funciona normalmente. OK

2. Estando conectado ao servidor ESXI você resolve transferir uma VM para outro servidor ESXI utilizando SCP, algo como isto:

# cd /vmfs/volumes/datastore1

# scp -r vmxpto root@192.168.100.20:/vmfs/volumes/datastore1

porém a conexão não é estabelecida e o único erro exibido é:

# ssh: connect to host 192.168.100.20 port 22: Connection timed out

O problema é o perfil de segurança em cada um dos servidores ESXi.

Para resolver:

1. Conecte via cliente vSphere

2. Clica no servidor (lateral esquerda), em seguida vá até aba Configuration e clique em Security Profile no grupo Software e depois em Properties do Firewall.

3. Então, você só precisa marcar o SSH Client em Secure Shell. Isto irá abrir a comunicação SSH entre os servidores ESXi. Você pode restringir as configurações, acessando as configurações de firewall para qualquer um dos serviços.

Você também pode habilitar via linha de comando, diretamente do console dos servidores, utilizando o esxcli:

Para listar a configuração atual:
# esxcli network firewall ruleset list

Para habilitar o SSH Client e permitir a cópia usando SSH:
# esxcli network firewall ruleset set –ruleset-id sshClient –enabled yes

Se você estiver utilizando o ESXI 5.1 você faz assim:
# esxcli network firewall ruleset set -e true -r sshClient

Para atualizar a configuração:
# esxcli network firewall refresh

Fontes:

Renomeando fisicamente uma máquina virtual no VMware ESXi 5

Howto: Renomeando fisicamente uma máquina virtual no VMware ESXi/5x.

Ao migrar uma máquina virtual entre servidores de VMs é possível pelo vSphere renomear o nome da máquina no histórico de VMs, mas fisicamente o disco (vmdk) e outros arquivo permanecem com o nome da máquina original.

Para renomear todos os arquivos fisicamente, siga esses passos. Lembrando que a máquina virtual deve estar desligada.

1. Logue via SSH no seu servidor de VM-ESXi

# cd /vmfs/volumes/datastore1

2: Renomeie a pasta:
# mv maquina_velha maquina_nova

3: Entre na pasta renomeada
# cd maquina_nova

4: Renomeie todos os arquivos manualmente:
# mv maquina_velha.vmx maquina_nova.vmx
# mv maquina_velha.vmsd maquina_nova.vmsd
# mv maquina_velha.nvram maquina_nova.nvram
# mv maquina_velha.vmdk maquina_nova.vmdk
# mv maquina_velha-flat.vmdk maquina_nova-flat.vmdk
# mv maquina_velha.vmxf maquina_nova.vmxf

Uma observação, o arquivo .vmsd estava vazio por não ter sido feito nenhum snapshot da máquina.

5: Edite o conteúdo do arquivo .vmx, usando o vi. No exemplo abaixo usei o search and replace, bastando digitar :%s

# vi maquina_nova.vmx
:%s/maquina_velha/maquina_nova/g

6: Edite o arquivo .vmdk

# vi maquina_nova.vmdk
:%s/maquina_velha/maquina_nova/g

7: Se a máquina estiver registrada no histórico de VMs a mesma deve ser removida do registro.

# vim-cmd vmsvc/getallvms
# vim-cmd vmsvc/unregister 900

No caso o 900 ai é o Vmid, mas se a máquina ainda não tiver sido registrada pode-se pular este passo.

8: Registrando a nova máquina
# vim-cmd solo/registervm /vmfs/volumes/datastore1/maquina_nova/maquina_nova.vmx

E só. Agora é so editar a máquina_nova e definir uma interface de rede e inicializa-la.

Howto: Como encontrar todos os subdomínios de um determinado domínio?

Isso é possível utilizando Reverse DNS lookup. Embora existam alguns sites que ofereçam este recurso, você também pode fazer via script shell, veja como criar:

# vi /tmp/busca.sh

Entre com este script e salve o arquivo:

#!/bin/bash
IPPFX=$1
for i in `seq 1 255` ; do LIST="$LIST ${IPPFX}.$i" ; done
for i in $LIST ; do
 ENTRY="`host $i`"
 [ $? -ne 0 ] && continue
 ENTRY=`echo "$ENTRY" l sed -e 's/.* //' -e 's/\.$//'`
 echo -e "$i\t$ENTRY"
done

Dê permissão de execução:

# chmod 775 /tmp/busca.sh

Para usar o script você deverá entrar com o IP do domínio à verificar sem o último octeto, por exemplo, digamos que queremos saber todos os subdomínios que existem no domínio camara.gov.br (Câmara dos Deputados), primeiro devemos saber o IP do domínio:

# ping www.camara.gov.br
PING www.camara.gov.br (200.219.133.59) 56(84) bytes of data.

Com o IP em mãos (200.219.133.59) iremos nosso script, removendo o último octeto (59), ficando assim:

# ./busca.sh 200.219.133

E como resposta do comando acima temos:

200.219.133.2 2.133.219.200.in-addr.arpa domain name pointer copernico.camara.gov.br. l sed -e s/.* // -e s/\.$//
200.219.133.5 5.133.219.200.in-addr.arpa domain name pointer aurelius.camara.gov.br. l sed -e s/.* // -e s/\.$//
200.219.133.7 7.133.219.200.in-addr.arpa domain name pointer platao.camara.gov.br. l sed -e s/.* // -e s/\.$//
200.219.133.9 9.133.219.200.in-addr.arpa domain name pointer perdiz2.camara.gov.br. l sed -e s/.* // -e s/\.$//
200.219.133.17 17.133.219.200.in-addr.arpa domain name pointer lexml.camara.gov.br. l sed -e s/.* // -e s/\.$//
200.219.133.18 18.133.219.200.in-addr.arpa domain name pointer arara.camara.gov.br. l sed -e s/.* // -e s/\.$//
200.219.133.20 20.133.219.200.in-addr.arpa domain name pointer hypatia.camara.leg.br. l sed -e s/.* // -e s/\.$//
200.219.133.21 21.133.219.200.in-addr.arpa domain name pointer melissa.camara.leg.br. l sed -e s/.* // -e s/\.$//
200.219.133.24 24.133.219.200.in-addr.arpa domain name pointer csg.camara.gov.br. l sed -e s/.* // -e s/\.$//
200.219.133.28 28.133.219.200.in-addr.arpa domain name pointer perdiz1.camara.gov.br. l sed -e s/.* // -e s/\.$//
200.219.133.33 33.133.219.200.in-addr.arpa domain name pointer extranet2.camara.gov.br. l sed -e s/.* // -e s/\.$//
200.219.133.43 43.133.219.200.in-addr.arpa domain name pointer democrito1.camara.gov.br. l sed -e s/.* // -e s/\.$//
200.219.133.44 44.133.219.200.in-addr.arpa domain name pointer democrito2.camara.gov.br. l sed -e s/.* // -e s/\.$//
200.219.133.47 47.133.219.200.in-addr.arpa domain name pointer harpia-vip.camara.gov.br. l sed -e s/.* // -e s/\.$//
200.219.133.51 51.133.219.200.in-addr.arpa domain name pointer arquimedes.camara.gov.br. l sed -e s/.* // -e s/\.$//
200.219.133.54 54.133.219.200.in-addr.arpa domain name pointer copernico.camara.gov.br. l sed -e s/.* // -e s/\.$//
200.219.133.181 181.133.219.200.in-addr.arpa domain name pointer gaturamo1.camara.gov.br. l sed -e s/.* // -e s/\.$//

legal né 🙂

Update: Pessoal que estava reclamando que o copiar e colar o código não estava funcionando, isso se deve provavelmente por que o WordPress muda algum código ASCII ao colar. De toda forma, segue um splash (imagem) do código para vocês digitarem.