Internalizando, Socializando, Externalizando e Combinando o conhecimento, em busca do PODER!
sexta-feira, 23 de outubro de 2015
segunda-feira, 19 de outubro de 2015
Acesso ao Servidor via SSH sem senha, utilizando de Chaves Pública/Privada RSA
Cenário:
Host Servidor:
Sistema Operacional Ubuntu Server 14.04
Openssh-server instalado (Para instalar #apt-get install ssh)
Host Cliente
Sistema Operacional Ubuntu Desktop 15.04
O que será feito aqui é o seguinte:
1. A ideia é acessar um servidor a partir do seu computador sem digitar senha.
Pra funcionar é necessário modificar no servidor o arquivo /etc/ssh/sshd_config
para permitir acesso com usuário root.
Quando for enviado, desfaça a alteração.
1. Gere as Chaves Pública e Privada no Host Cliente
As chaves serão gravadas numa pasta oculta chamada .ssh dentro da pasta pessoal do usuário que estiver logado. O local poderá ser alterado durante a execução do comando, caso não queira alterar, pressione ENTER.
Quando for acessar será solicitado a "passphrase", marque na caixa de diálogo para salvar. Isso fará com que não seja solicitada nos próximos acessos enquanto a seção não seja encerrada, ou seja, feito o logoff.
Caso não apareça essa caixa de diálogo, use os comandos:
#ssh-add
#ssh-agent
O ssh-agent é um agente de autenticação, ele gerencia as conexões ssh de sua sessão login. Fazendo par com o ssh-add, conseguimos manter as conexões ssh no ssh-agent. A grande vantagem nisso tudo é digitar sua senha "passphase" apenas na primeira vez, e deixar o ssh-agent gerenciar as outras conexões.
Referências:
https://ivanix.wordpress.com/tag/ssh-agent/
https://help.ubuntu.com/community/SSH/OpenSSH/Keys
https://www.vivaolinux.com.br/artigo/Utilizando-SSH-com-metodo-de-autenticacao-publickey-+-sshagend-+-sshadd
Comandos úteis:
Se quiser evitar digitar "yes" no primeiro acesso ao servidor pra aceita a chave dele.
#ssh -oStrictHostKeyChecking=no usuário@IP_destino
Host Servidor:
Sistema Operacional Ubuntu Server 14.04
Openssh-server instalado (Para instalar #apt-get install ssh)
Host Cliente
Sistema Operacional Ubuntu Desktop 15.04
O que será feito aqui é o seguinte:
1. A ideia é acessar um servidor a partir do seu computador sem digitar senha.
2. Você vai gerar um par de chaves, pública e privada no seu computador.
3. Vai enviar a chave pública pro servidor.
3.1 Nesse envio utilizei o usuário/senha root do servidor de destino.Pra funcionar é necessário modificar no servidor o arquivo /etc/ssh/sshd_config
para permitir acesso com usuário root.
Quando for enviado, desfaça a alteração.
1. Gere as Chaves Pública e Privada no Host Cliente
As chaves serão gravadas numa pasta oculta chamada .ssh dentro da pasta pessoal do usuário que estiver logado. O local poderá ser alterado durante a execução do comando, caso não queira alterar, pressione ENTER.
#ssh-keygen -t rsa
Generating public/private rsa key pair.
Generating public/private rsa key pair.
Enter file in which to save the key (/home/usuário/.ssh/id_rsa): NOVO_LOCAL ou ENTER
Enter passphrase (empty for no passphrase): SENHA PARA A CHAVE PRIVADA
Enter same passphrase again: SENHA PARA A CHAVE PRIVADA
Your identification has been saved in /home/usuário/.ssh/id_rsa.
Your public key has been saved in /home/usuário/.ssh/id_rsa.pub.
Nota1: O padrão de chave é 2048 bits. Você pode aumentar para 4096 bits com -b 4096 para torna mais difícil a quebrar da chave por métodos de força bruta.
2. Envie a Chave Pública do Host Cliente para o Host Servidor
Envie a chave com o comando:
#ssh-copy-id usuário_no_servidor@IP_Destino
Your public key has been saved in /home/usuário/.ssh/id_rsa.pub.
Nota1: O padrão de chave é 2048 bits. Você pode aumentar para 4096 bits com -b 4096 para torna mais difícil a quebrar da chave por métodos de força bruta.
ssh-keygen -t rsa -b 4096
2. Envie a Chave Pública do Host Cliente para o Host Servidor
Normalmente o acesso root não é permitido em servidores, por questões de segurança, caso queira acessar, utilizando o usuário ROOT do Servidor, terá que editar o arquivo /etc/ssh/sshd_config e alterar a linha "PermitRootLogin without-password" para "PermitRootLogin yes". Permitindo assim, o envio da chave pública com o usuário root.
Reinicie o serviço SSH:
#service ssh restart
Depois do envio desfaça a alteração e reinicie o serviço SSH.
Envie a chave com o comando:
#ssh-copy-id usuário_no_servidor@IP_Destino
Quando for acessar será solicitado a "passphrase", marque na caixa de diálogo para salvar. Isso fará com que não seja solicitada nos próximos acessos enquanto a seção não seja encerrada, ou seja, feito o logoff.
Caso não apareça essa caixa de diálogo, use os comandos:
#ssh-add
#ssh-agent
O ssh-agent é um agente de autenticação, ele gerencia as conexões ssh de sua sessão login. Fazendo par com o ssh-add, conseguimos manter as conexões ssh no ssh-agent. A grande vantagem nisso tudo é digitar sua senha "passphase" apenas na primeira vez, e deixar o ssh-agent gerenciar as outras conexões.
Referências:
https://ivanix.wordpress.com/tag/ssh-agent/
https://www.vivaolinux.com.br/artigo/Utilizando-SSH-com-metodo-de-autenticacao-publickey-+-sshagend-+-sshadd
Comandos úteis:
Se quiser evitar digitar "yes" no primeiro acesso ao servidor pra aceita a chave dele.
#ssh -oStrictHostKeyChecking=no usuário@IP_destino
Se quiser evitar digitar a senha após o comando, instale o pacote "sshpass".
#sshpass -p 'SENHA' ssh usuário@IP_destino
Busca local da chave do destino que foi aceita.
#ssh-keyscan -H IP_Destino
#ssh-keyscan -H IP_Destino
Remove localmente a chave do destino que foi aceita.
#ssh-keygen -R IP_Destino
#ssh-keygen -R IP_Destino
quarta-feira, 14 de outubro de 2015
Compartilhar Internet habilitando Roteamento e fazendo NAT no Ubuntu Server 14.04
Cenário:
Configurações do Ubuntu Server:
2 placas de rede
eth0 - Com acesso a internet
eth1 - Com acesso a rede local
Serviço DHCP ativado e definido o IP de eth1 como gatway da rede.
Habilitando o Roteamento de pacotes no Ubuntu Server:
# echo 1 > /proc/sys/net/ipv4/ip_forward
Esse comando escreve o número 1 dentro do arquivo ip_forward, ativando o roteamento de pacote. O padrão é 0. Com isso o Linux passa a rotear os pacotes de uma interface para a outra e vice-versa.
Ativando o NAT:
# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Esse comando permite que todos os hots da rede rede local possam sair para a internet com apenas um IP público. O "-o eth0" é a interface que está conectada com a internet, se fosse uma conexão Velox seria "-o ppp0".
Feito!
Esse comando escreve o número 1 dentro do arquivo ip_forward, ativando o roteamento de pacote. O padrão é 0. Com isso o Linux passa a rotear os pacotes de uma interface para a outra e vice-versa.
Ativando o NAT:
# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Esse comando permite que todos os hots da rede rede local possam sair para a internet com apenas um IP público. O "-o eth0" é a interface que está conectada com a internet, se fosse uma conexão Velox seria "-o ppp0".
Feito!
Você já deve estar conseguindo acessar a internet pela rede local através do Ubuntu Server.
Agora vamos criar um script e colocar para iniciar durante o boot.
Criando script, dentro do /usr/local/bin:
# vim /usr/local/bin/firewall
Salve e saia do arquivo. Dê permissão de execução no script com o comando:
# chmod +x /usr/local/bin/firewall
Agora vamos colocar esse script para ser iniciado durante o boot. Edite o arquivo /etc/rc.local:
# vim /etc/rc.local
E adicione a seguinte linha em seu final:
Salve e saia do arquivo. Toda vez que o micro for reinicializado, Internet será roteada !
Criando script, dentro do /usr/local/bin:
# vim /usr/local/bin/firewall
#!/bin/bash
echo "Ativando compartilhamento "
# Ativando Roteamento de pacotes
echo 1 > /proc/sys/net/ipv4/ip_forward
# Ativando o NAT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
echo " Compartilhamento ativado"
echo "Ativando compartilhamento "
# Ativando Roteamento de pacotes
echo 1 > /proc/sys/net/ipv4/ip_forward
# Ativando o NAT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
echo " Compartilhamento ativado"
Salve e saia do arquivo. Dê permissão de execução no script com o comando:
# chmod +x /usr/local/bin/firewall
Agora vamos colocar esse script para ser iniciado durante o boot. Edite o arquivo /etc/rc.local:
# vim /etc/rc.local
E adicione a seguinte linha em seu final:
/usr/local/bin/firewall
Salve e saia do arquivo. Toda vez que o micro for reinicializado, Internet será roteada !
Acesso ROOT pelo GRUB para solucionar problemas.
Passo 1. Pressione "ESC" na inicialização.
Passo 2. Ao aparecer o menu do GRUB pressione "e" para edição.
Passo 3. Encontre a linha do kernel que começa com "linux /vmlinuz-3......" e altere "ro" por "rw" que dará permissão de escrita.
Passo 4. Apague o restante do texto após o "rw" e escreva "init=/bin/bash" que vai definir pra iniciar o programa shell antes de chamar a próxima linha initrd
Passo 5. Pressione "F10".
segunda-feira, 12 de outubro de 2015
Levantando Serviço de DNS no Ubuntu Server 14.04
Cenário:
Sistema Operacional: Ubuntu Server 14.04
Nome do Domínio: dominio.net
Servidor DNS: 192.168.0.100
Servidor de Email: 192.168.0.200
Roteador: 192.168.0.1
Servidor de Email: 192.168.0.200
Roteador: 192.168.0.1
Instalação do pacote para o serviço de DNS.
Edição do arquivo de Zonas padrão
#nano /etc/bind/named.conf.default-zones
Adicione no fim do arquivo as linhas
zone "dominio.net" {
type master;
file "/etc/bind/db.dominio.net";
};
zone "0.168.192.in-addr.arpa" {
type master;
file "/etc/bind/db.0.168.192";
};
Criação do arquivo de Resposta a consultas DNS
#nano /etc/bind/db.dominio.net
;
; BIND data file for local loopback interfaces
;
$ORIGIN dominio.net.
$TTL 86400
@ IN SOA servidor.dominio.net. nome_contato.gmail.com. (
1; Serial. Toda alteração nesse arquivo deve ser incrementado +1 a esse campo.
43200; Refresh. Tempo de atualização dos servidores DNS Slaves com o SOA.
900; Caso Refresh tenha falhado é considerado esse novo tempo para nova tentativa
2419200; Caso novas tentativas falhem, os servidores DNS slaves serão considerados inválidos.
3600; Negative Cache TTL
)
;
@ IN NS servidor
@ IN AAAA ::1
@ IN MX 10 mail
@ IN A 192.168.0.100
;
servidor IN A 192.168.0.100
mail IN A 192.168.0.200
router IN A 192.168.0.1
ftp IN CNAME dominio.net.
www IN CNAME dominio.net.
gateway IN CNAME router
gw IN CNAME router
Obs: Check se criou corretamente o arquivo
# named-checkzone dominio.net /etc/bind/db.dominio.net
Criação do arquivo de Resposta a consultas DNS Reverso
#nano /etc/bind/db.0.168.192
; BIND data file for local loopback interfaces
;
$TTL 86400
@ IN SOA servidor.dominio.net. nome_contato@gmail.com. (
1; Serial
43200; Refresh
900; Retry
2419200; Expire
3600; Negative Cache TTL
)
;
IN NS servidor.
100 IN PTR servidor.dominio.net.
100 IN PTR www.dominio.net.
100 IN PTR ftp.dominio.net.
200 IN PTR mail.dominio.net.
1 IN PTR router.dominio.net
Atenção: O número 100 que inicia as ultimas linhas refere-se ao último octeto do endereço do servidor que disponibiliza tal serviço. Se seu servidor de e-mail for 192.168.0.5, altere de 100 pra 5
Obs: Check se criou corretamente o arquivo
# named-checkzone dominio.net /etc/bind/db.0.168.192
Fim da Configuração!
Vamos realizar os TESTES!
Reinicie o Winbind
#/etc/init.d/bind9 restart
Outras máquinas já podem realizar uma consulta DNS, mas seu quiser consultar a partir do próprio servidor. Adicione no /etc/resolv.conf a linha contendo o IP do servidor.
#nano /etc/resolv.conf
search dominio.net
nameserver 192.168.0.1
Comando pra realização da consulta de DNS.
#dig nome_dominio.net ANY
Comando pra realização da consulta de DNS Reverso.
#nslookup 192.168.0.1Outras Informações:
Resource Records utilizados em zonas DNS
Toda a informação associada a um domínio DNS é registada nos ficheiros de zonas através de resource records. Os resource records permitem definir um tipo de apontador para endereços IP, nomes, etc. Por exemplo, quando criar um registo no DNS relativo a um servidor de e-mail, usamos o resource records MX (Mail Exchanger)
Tipos de resource records mais importantes:
- A – Address: Associação de um nome a um endereço (mapeamento directo)
- AAAA – Address IPv6; Associação de um nome a um endereço IPv6
- NS (NameServer); Indica o nome de um servidor de DNS do domínio ou subdomínio;
- CNAME – (Canonical NAME); um alias (nome alternativo) para um host;
- MX – (Mail eXchanger); Definição de servidores de correio electrónico do domínio ou subdomínio ;
- PTR – (PoinTeR); Associação de um endereço a um nome (reverse DNS – mapeamento inverso)
- SOA – (Start Of Authority); Identificação de cabeçalhos de zonas
- SRV – (SeRVice); permite definir serviços disponíveis num domínio
- TXT – Definição de informação textual sobre o domínio
domingo, 11 de outubro de 2015
Boot pela REDE com Ubuntu Server 14.04
Cenário:
Servidor Ubuntu Server 14.04
IP Fixo: 192.168.0.1
Serviço DHCP ativo
CD de Instalação do Ubuntu Server 14.04
CD de Instalação do Ubuntu Desktop 15.04
CD de Instalação do Kali 2.0
CD de Instalação do Ubuntu Server 14.04
CD de Instalação do Ubuntu Desktop 15.04
CD de Instalação do Kali 2.0
Pré requesito:
Serviço DHCP instalado. Veja como fazer: Levantando um Serviço DHCP
Instale os PACOTES
#apt-get install tftpd-hpa inetutils-inetd
Configuração DHCP
#nano /etc/default/isc-dhcp-server
INTERFACES="eth0"
#nano /etc/dhcp/dhcpd.conf
allow booting;
allow bootp;
option option-128 code 128 = string;
option option-129 code 129 = text;
next-server 192.168.0.1;
filename "pxelinux.0";
Reinicie o serviço DHCP
#service isc-dhcp-server restart
Configuração TFTP
TFTP é um protocolo de transferência de arquivos que é semelhante ao FTP. Ele é usado onde não são obrigados a autenticação do usuário e visibilidade diretório. O servidor TFTP está sempre ouvindo clientes PXE na rede. Quando detecta qualquer cliente pedindo serviços PXE, ele fornece um pacote de rede que contém o menu de inicialização.
Adicione as linhas no fim do arquivos:
#nano /etc/default/tftpd-hpa
RUN_DAEMON="yes"
OPTIONS="-l -s /var/lib/tftpboot"
#nano /etc/inetd.conf
OPTIONS="-l -s /var/lib/tftpboot"
#nano /etc/inetd.conf
tftp dgram udp wait root /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot
Nota: Se fou usar IPV6 altere "udp" para "udp4"
Reinicie o tftpd e o inetd.
Reinicie o tftpd e o inetd.
#/etc/init.d/tftpd-hpa restart
#/etc/init.d/inetutils-inetd restart
#update-inetd --enable BOOT
Verifique o status do tftp.
#netstat -lu
Configuração do Serviço PXE
Agora você precisa do arquivo de inicialização PXE "pxelinux.0" para colocar no diretório raiz TFTP.
Crie o diretório /mnt/cdrom, monte o CD e copie todos os arquivos da pasta "netboot" do CD de instalação do Ubuntu Server 14.04 para /var/lib/tftpboot/.
Crie o diretório /mnt/cdrom, monte o CD e copie todos os arquivos da pasta "netboot" do CD de instalação do Ubuntu Server 14.04 para /var/lib/tftpboot/.
#mkdir /mnt/cdrom
#mount /dev/cdrom/ /mnt/cdrom
#mount /dev/cdrom/ /mnt/cdrom
#cp -fr /mnt/cdrom/install/netboot/* /var/lib/tftpboot/
Crie o diretório com o "nome_da_distro" e copie todo o conteúdo do CD de instalação da Distro.
#mkdir /var/lib/tftpboot/nome_da_distro
#mkdir /var/lib/tftpboot/nome_da_distro
#cp -fr /mnt/cdrom/* /var/lib/tftpboot/nome_da_distro
#cp -fr /mnt/cdrom/.disk /var/lib/tftpboot/nome_da_distro
#chmod 777 -R /var/lib/tftpboot/nome_da_distro
Adicione as linhas no arquivo abaixo, para adicionar ao menu de instalação:
#nano /var/lib/tftpboot/pxelinux.cfg/default
label Ubuntu 15.04
kernel ubuntu/casper/vmlinuz.efi boot=casper locale=pt_BR ---
initrd ubuntu/casper/initrd.lz
label Linux Mint 17.2
kernel mint/casper/vmlinuz boot=casper --
initrd mint/casper/initrd.lz
Feito!
#cp -fr /mnt/cdrom/.disk /var/lib/tftpboot/nome_da_distro
#chmod 777 -R /var/lib/tftpboot/nome_da_distro
Adicione as linhas no arquivo abaixo, para adicionar ao menu de instalação:
#nano /var/lib/tftpboot/pxelinux.cfg/default
label Ubuntu 15.04
kernel ubuntu/casper/vmlinuz.efi boot=casper locale=pt_BR ---
initrd ubuntu/casper/initrd.lz
label Linux Mint 17.2
kernel mint/casper/vmlinuz boot=casper --
initrd mint/casper/initrd.lz
Feito!
Levantando Serviço DHCP no Ubuntu Server 14.04 - VMware Workstation
1. Passo – Instalar o pacote dhcp
#apt-get install isc-dhcp-server
2. Passo – Configurar endereçamento estático na placa de rede do servidor
#nano /etc/network/interfaces
auto lo
iface lo inet loopback
auto eth0 iface eth0 inet static
address 192.168.0.100
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1
#ifdown eth0
#ifup eth0
3. Passo - Identificar a interface do servidor
#nano /etc/default/isc-dhcp-server
INTERFACES=””
Alterar para INTERFACES=”eth0”
4. Passo – Editar o arquivo dhcp
#nano /etc/dhcp/dhcpd.conf (Pode apagar o conteúdo e escrever o que segue abaixo)
default-lease-time 300;
max-lease-time 3600;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.0.255;
option routers 192.168.0.1;
option domain-name-servers 192.168.0.100 , 8.8.8.8;
option domain-name "nome_dominio.com";
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.140 192.168.0.180;
}
5. Passo – Testes e inicialização. Verificar erros no arquivo
#dhcpd –d
6. Passo (caso for necessário) - Colocar na inicialização
#apt-get install sysv-rc-conf
#sysv-rc-conf
7. Iniciar o serviço
#service isc-dhcp-server restart
8. Passo – conexão ao servidor “Subir” um cliente e “pegar” IP deste servidor
Caso for testar no VMware Workstation:
1. Passo Clique em VM -> Settings... e coloque a interface das VM Cliente como HOST-ONLY.
2. Passo Faça o mesmo para a VM Servidor.
3. Passo Clique em Edit -> Virtual Network Editor e desmarque a opção da figura abaixo.
Assinar:
Postagens (Atom)