sexta-feira, 23 de outubro de 2015

Habilitando VNC para todos os Usuários no Ubuntu 15.04 via linha de comando


Basta colocar o comando abaixo no /etc/profile:
gsettings set org.gnome.Vino enabled true

Para ver outras opções aperte TAB antes de executar o comando.
#gsettings set org.gnome.Vino



Tags: vino-preferences, vino-server.

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.
  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.
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.

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://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

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

Remove localmente a chave do destino que foi aceita.
#ssh-keygen -R IP_Destino


quarta-feira, 14 de outubro de 2015

Compartilhar Internet habilitando Roteamento e fazendo NAT no Ubuntu Server 14.04


Para solucionar o problema de compartilhamento da internet no GNU/Linux é feito através da programa Iptables, que é o firewall nativo das distribuições a partir do kernel 2.4.

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! 
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 

#!/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"

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

Instalação do pacote para o serviço de DNS.
#apt-get install bind9

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.1

Outras 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:
  • – 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

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

Adicione as linhas no fim dos arquivos:

#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
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.

#/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/.

#mkdir /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
#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!

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.