Escolar Documentos
Profissional Documentos
Cultura Documentos
2.
3.
4.
5.
6.
7.
8.
www.4linux.com.br
Projetos na sua empresa
com a qualidade dos treinamentos
Sumário
Capítulo 1
Cenário e Propostas de Solução................................................................................................. 9
1.1. Objetivos......................................................................................................................... 9
1.2. Cenário normalmente encontrado nas empresas.........................................................10
1.3. Cenário.......................................................................................................................... 10
Capítulo 2
Instalando seu Servidor GNU/Linux no volume RAID+LVM....................................................13
2.1. Objetivos....................................................................................................................... 13
2.2. Cenário.......................................................................................................................... 14
2.3. Proposta de solução...................................................................................................... 14
2.4. Introdução Teórica - RAID............................................................................................. 14
2.4.1. Tipos de RAID...................................................................................................................... 16
2.4.2. Combinações de RAID......................................................................................................... 20
2.5. Introdução Teórica – LVM............................................................................................. 23
2.6. Laboratório.................................................................................................................... 25
Capítulo 3
Implementando Hardening + PAM em seu Servidor GNU/Linux............................................38
3.1. Objetivos....................................................................................................................... 38
3.2. Cenário.......................................................................................................................... 39
3.3. Proposta de solução...................................................................................................... 39
3.4. Introdução teórica – Ajustes iniciais............................................................................. 39
3.5. Laboratório.................................................................................................................... 39
3.6. Configurando a resolução de nomes............................................................................. 40
3.7. Configuração do Hostname........................................................................................... 40
3.8. Configurando o repositório de rede.............................................................................. 41
3.9. Introdução teórica - Hardening..................................................................................... 43
3.10. Laboratório.................................................................................................................. 44
3.10.1. Protegendo o sistema com bloqueios na partição..............................................................44
3.10.2. Configurando o SUDO....................................................................................................... 45
3.10.3. Configurando o SSH.......................................................................................................... 46
3.10.4. Configurando uma senha no GRUB2.................................................................................47
3.10.5. Melhorando nossas senhas................................................................................................ 48
3.10.6. Verificando portas e encerrando programas desnecessários............................................49
3.10.7. Bloqueando o CTRL+ALT+DEL......................................................................................... 50
3.10.8. Bloqueando as funções do SysRq......................................................................................51
-3
Capítulo 4
Servidor DHCP......................................................................................................................... 66
4.1. Objetivos....................................................................................................................... 66
4.2. Cenário.......................................................................................................................... 67
4.3. Proposta de solução...................................................................................................... 67
4.4. Introdução teórica......................................................................................................... 67
4.5. Laboratório.................................................................................................................... 69
4.5.1. Principais diretrizes do arquivo de configuração................................................................70
4.5.2. Configurando os LOGs......................................................................................................... 71
4.5.3. Configurando os clientes DHCP.......................................................................................... 72
4.6. Fixar IP via DHCP......................................................................................................... 72
4.6.1. Configurações adicionais..................................................................................................... 73
Capítulo 5
Servidor NFS............................................................................................................................ 76
5.1. Objetivos....................................................................................................................... 76
5.2. Cenário.......................................................................................................................... 77
5.3. Proposta de solução...................................................................................................... 77
5.4. Introdução teórica......................................................................................................... 77
5.5. Conhecendo o NAS....................................................................................................... 78
5.6. NAS versus SAN ........................................................................................................... 79
5.7. E o DAS?....................................................................................................................... 81
5.8. Laboratório.................................................................................................................... 81
5.8.1. Configurando o Servidor..................................................................................................... 81
5.8.2. Configurando o Cliente ....................................................................................................... 85
Capítulo 6
Implementando RAID + LVM................................................................................................... 87
6.1. Objetivos....................................................................................................................... 87
6.2. Introdução teórica......................................................................................................... 88
6.3. Laboratório – RAID........................................................................................................ 88
6.3.1. Configurando o RAID-0........................................................................................................ 91
-4
Capítulo 7
Servidor Samba...................................................................................................................... 117
7.1. Objetivos..................................................................................................................... 117
7.2. Cenário 1..................................................................................................................... 118
7.3. Proposta de solução 1................................................................................................. 118
7.4. Cenário 2 .................................................................................................................... 118
7.5. Proposta de solução 2................................................................................................. 118
7.6. Cenário 3..................................................................................................................... 119
7.7. Proposta de solução 3................................................................................................. 119
7.8. Introdução teórica....................................................................................................... 120
7.9. Laboratório 1............................................................................................................... 121
7.10. Laboratório 2............................................................................................................. 126
7.11. Laboratório 3............................................................................................................. 140
7.11.1. Adicionando máquina Windows XP ao PDC Samba.........................................................150
7.11.2. Adicionando máquina Windows 7 ao PDC Samba ..........................................................152
7.11.3. Adicionando máquina GNU/Linux ao PDC Samba...........................................................157
7.11.4. Configurando quota no servidor Storage.........................................................................160
7.11.5. Configurando quota no servidor Datacenter para o Samba............................................161
Capítulo 8
Servidor DNS......................................................................................................................... 164
8.1. Objetivos..................................................................................................................... 164
8.2. Cenário........................................................................................................................ 165
8.3. Proposta de solução.................................................................................................... 165
8.4. Introdução teórica....................................................................................................... 165
8.4.1. Características................................................................................................................... 167
8.5. Resolução.................................................................................................................... 168
8.5.1. Resolução Recursiva.......................................................................................................... 168
8.5.2. Resolução Iterativa............................................................................................................ 170
8.6. O arquivo "/etc/hosts"................................................................................................. 170
8.7. Ferramentas de consulta............................................................................................. 171
8.8. Prática dirigida........................................................................................................... 173
8.9. Introdução ao BIND + Laboratório............................................................................. 181
8.10. BIND como servidor cache........................................................................................ 183
8.11. Restringindo consultas.............................................................................................. 185
8.12. Servidor de zonas...................................................................................................... 186
-5
Capítulo 9
Servidor Apache..................................................................................................................... 207
9.1. Objetivos..................................................................................................................... 207
9.2. Cenário........................................................................................................................ 208
9.3. Proposta de solução.................................................................................................... 208
9.4. Introdução teórica....................................................................................................... 208
9.5. MPM PreFork e MPM Worker .................................................................................... 209
9.5.1. MPM Pre Fork .................................................................................................................. 209
9.5.2. MPM Worker ..................................................................................................................... 209
9.5.3. O que é o Moodle? ............................................................................................................ 210
9.6. Laboratório.................................................................................................................. 210
9.7. Conhecendo a estrutura do Apache............................................................................211
9.7.1. Ajustes dos módulos Worker e PreFork............................................................................213
9.8. Suporte a PHP............................................................................................................. 214
9.9. Arrumando os diretórios............................................................................................. 215
9.10. Configurando o “php.ini”.......................................................................................... 217
9.11. VirtualHost? ............................................................................................................. 218
9.12. Criando Virtualhost para nossos domínios................................................................218
9.13. Fechando brechas de segurança............................................................................... 219
9.14. Configurando o Moodle............................................................................................. 221
9.15. Disponibilizando o site da Dexter Courier................................................................228
9.16. Ativando o SSL.......................................................................................................... 228
9.16.1. O que é um certificado digital? .......................................................................................229
9.16.2. Gerando o site seguro da Dexter.....................................................................................229
9.16.3. Gerando o site seguro do Mandark EaD..........................................................................235
9.17. Ativando o controle de banda................................................................................... 237
Capítulo 10
Servidor FTP.......................................................................................................................... 240
10.1. Objetivos................................................................................................................... 240
-6
Capítulo 11
Servidor Postfix...................................................................................................................... 250
11.1. Objetivos................................................................................................................... 250
11.2. Cenário...................................................................................................................... 251
11.3. Proposta de solução.................................................................................................. 251
11.4. Introdução teórica..................................................................................................... 251
11.5. Introdução ao Postfix ............................................................................................... 252
11.6. Características do Postfix.......................................................................................... 253
11.7. Laboratório................................................................................................................ 253
11.7.1. MDA Courier - POP3 e IMAP para os clientes.................................................................259
11.7.2. Criando caixas postais..................................................................................................... 260
11.7.3. Criando alias no Postfix................................................................................................... 264
11.7.4. Configurando o Webmail................................................................................................. 266
11.7.5. Autenticando os usuários de e-mail.................................................................................273
11.7.6. Ativando maior segurança com TLS................................................................................274
Capítulo 12
Servidor OpenLDAP............................................................................................................... 284
12.1. Objetivos................................................................................................................... 284
12.2. Cenário...................................................................................................................... 285
12.3. Proposta de solução.................................................................................................. 285
12.4. Introdução teórica..................................................................................................... 285
12.5. Laboratório................................................................................................................ 288
12.5.1. O que é um LDIF? ........................................................................................................... 290
12.6. Backup da base de dados ......................................................................................... 296
Capítulo 13
Servidor Proxy com Squid...................................................................................................... 298
13.1. Objetivos................................................................................................................... 298
13.2. Cenário...................................................................................................................... 299
13.3. Proposta de solução.................................................................................................. 299
13.4. Introdução Teórica.................................................................................................... 299
13.5. Proxy Manual............................................................................................................ 300
-7
Capítulo 14
Firewall.................................................................................................................................. 327
14.1. Objetivos................................................................................................................... 327
14.2. Cenário...................................................................................................................... 328
14.3. Proposta de solução.................................................................................................. 328
14.4. Introdução teórica..................................................................................................... 328
14.5. Revisando os conceitos de Rede............................................................................... 329
14.6. TTL ........................................................................................................................... 331
14.7. Tabelas do Iptables................................................................................................... 333
14.8. O que é uma chain? .................................................................................................. 334
14.9. Compreendendo as políticas básicas e o conceito das exceções..............................334
14.10. Laboratório.............................................................................................................. 336
14.11. Firewall como "gateway" de rede...........................................................................340
14.12. Script de firewall..................................................................................................... 342
Capítulo 15
Servidor OpenVPN................................................................................................................. 345
15.1. Objetivos................................................................................................................... 345
15.2. Cenário...................................................................................................................... 346
15.3. Proposta de solução.................................................................................................. 346
15.4. Introdução Teórica.................................................................................................... 346
15.5. Protocolos de tunelamento........................................................................................ 347
15.6. Arquitetura de VPNs ................................................................................................ 348
-8
REFERÊNCIAS
BIBLIOGRÁFICAS.................................................................................................................. 361
Índice de tabelas
Índice de Figuras
Capítulo 1 Cenário e Propostas de Solução - 9
Capítulo 1
1.1. Objetivos
Mas o que muitos não sabem (ou não aceitam!) é que podemos implementar o
mesmo ambiente usando software livre, sem custo de propriedade ou licenciamento,
além de ser muito superior em estabilidade, desempenho e produtividade! Estamos
falando de usar GNU/Linux como Sistema Operacional e suas diversas ferramentas
servidoras, como web, e-mail, banco de dados, storage, autenticação de usuários,
redundância, entre outros.
1.3. Cenário
A cada dia de Curso iremos ensinar tais serviços, mostrando como seria o dia a
dia de uma empresa e conseguiremos verificar como a produtividade, desempenho e
confiabilidade se tornarão algo comum na vida do administrador!
Capítulo 1 Cenário e Propostas de Solução - 12
Capítulo 2
volume RAID+LVM
2.1. Objetivos
2.2. Cenário
A empresa DEXTER COURIER precisa montar seus servidores sem ter que se
preocupar com problemas nos discos rígidos e paralisações em suas atividades. Além
disto, a empresa não tem previsão inicial de crescimento, por isto não saberá dizer
como dividir o espaço nos discos.
• Via Hardware: Feito por uma placa controladora que conecta um disco ao
outro. A principal vantagem é o desempenho, já que um “RAID” via hardware é
mais rápido e independente do sistema operacional. A principal desvantagem, é
que a placa controladora se torna um SPOF - Single Point of Failure, ou seja,
é necessário ter uma controladora de discos igual ou compatível com a que
você possui para o caso de falhas neste hardware.
Capítulo 2 Instalando seu Servidor GNU/Linux no volume RAID+LVM - 15
Características do RAID 0:
* Nenhuma redundância!
redundância dos dados. Esta é garantida pela duplicação dos dados que são
gravados em cada par de discos, logo, se um deles falhar, o outro continuará
operando e mantendo a informação disponível, até que a substituição do disco
defeituoso seja feita. O ganho de desempenho está na leitura, uma vez que os
dados são lidos em partes iguais e simultaneamente de todos os discos. A
desvantagem desse nível é que só metade do volume total de armazenamento
nos discos utilizados ficará disponível para o sistema operacional. É preciso no
mínimo dois discos para implementar “RAID 1”, sempre em pares.
Características do RAID 1:
* Você vai precisar de 2 HDs, mas só vai usar a área útil de um;
• Exemplo:
Capítulo 2 Instalando seu Servidor GNU/Linux no volume RAID+LVM - 18
A1 B1 P1
A2 P2 C2
P3 B3 C3
Qualquer um dos discos que falhar pode ser rapidamente reconstruído através
de novas operações “XOR” entre os dados restantes. Tomemos por exemplo “A1 =
01001100” e “B1 = 10100101”.
01001100 XOR
10100101
--------
11101001
Agora suponha que o bloco “B1” foi perdido. Para recuperá-lo, basta aplicar um
“XOR” entre “A1” e “P1”.
01001100 XOR
00010110
--------
01011010
A operação XOR significa que se são iguais "0 e 0" ou "1 e 1", então o resultado
é verdadeiro (0). Se houver mais de dois blocos para serem comparados, calcule a
paridade dos dois primeiros e com o resultado compare com o terceiro, e assim
sucessivamente. A principal desvantagem do “RAID 5” é o custo de processamento
da paridade. Portanto, “RAID 5” é menos eficiente na gravação que seus
antecessores.
Vantagens:
- Pode falhar 1 dos HD's, ou os dois HD's do mesmo DiskGroup, porém deixando de
ser RAID 0 + 1.
Desvantagens:
• RAID 50
Capítulo 2 Instalando seu Servidor GNU/Linux no volume RAID+LVM - 22
• RAID 60
• RAID 100
Imagine que no LVM o sistema não vê HDs e partições, mas sim um ou mais
volumes lógicos. Cada volume se comporta como se fosse uma partição, que é
formatada e montada da forma usual (um volume pode ser usado inclusive como
partição swap). Estes volumes são agrupados em um grupo de volumes lógicos
(logical volume group) que se comporta de forma similar a um HD.
Capítulo 2 Instalando seu Servidor GNU/Linux no volume RAID+LVM - 23
Se você precisa de mais espaço dentro do volume referente à pasta /home, por
exemplo, você poderia reduzir o tamanho de um dos outros volumes do sistema (que
estivesse com espaço vago) e aumentar o tamanho do volume referente ao /home,
tudo isso com o servidor operante.
Caso seja utilizada uma controladora SCSI ou SAS com suporte a hot-swaping,
é possível até mesmo adicionar, remover ou substituir HDs, fazendo as alterações
necessárias nos volumes lógicos, com o servidor ligado!
O grupo de volumes lógicos criado pelo instalador é visto pelo sistema como
"/dev/vg01" e os volumes lógicos dentro dele são vistos como "/dev/vg01/lv01",
"/dev/vg01/lv02", etc. Os nomes podem ser alterados da maneira que quiser.
Naturalmente, é possível também deixar de usar o LVM, voltando ao sistema normal
de particionamento. Nesse caso, você só precisa deletar os volumes e o grupo de
volumes lógicos e criar a partições desejadas usando o espaço disponível.
Capítulo 2 Instalando seu Servidor GNU/Linux no volume RAID+LVM - 24
2.6. Laboratório
Lembamos que o RAID funciona pareando as partições, por isso temos que criá-
las. Vamos utilizar como exemplo 2 discos de 80GB, fazendo uma partição /dev/sda1
e uma Swap no disco1 e uma partição /dev/sdb1 e uma Swap no disco2. O tipo de
partição usada em /dev/sdX1 será “Volume físico para RAID”. Veja:
Capítulo 2 Instalando seu Servidor GNU/Linux no volume RAID+LVM - 27
Após isto, selecione “Configurar RAID via software” -> “Criar dispositivo MD”
… bem como qual será o “disco” a ser utilizado! No nosso caso iremos utilizar o
volume RAID-1 /dev/md0, previamente configurado.
Capítulo 2 Instalando seu Servidor GNU/Linux no volume RAID+LVM - 31
Crie mais 3 volumes lógicos, sendo eles o lv_var com 2GB, o lv_srv com 5GB e o
lv_tmp com 1GB, conforme exibido no resumo abaixo:
Selecione Finalizar!
Capítulo 2 Instalando seu Servidor GNU/Linux no volume RAID+LVM - 33
Capítulo 3
3.1. Objetivos
3.2. Cenário
A empresa DEXTER COURIER precisa que seu servidor seja configurado com
as devidas políticas de segurança, permitindo acesso local e remoto somente à
equipe de TI em horários previamente definidos. Além disto, é necessário ter todos
os registros de login/logout, bem como as atividades realizadas nos servidores.
3.5. Laboratório
Como todo servidor deve ter um IP fixo na rede, vamos efetuar esta
configuração no arquivo “/etc/network/interfaces”. Para isto, execute num
terminal como “root”:
# Interface Loopback
auto lo
iface lo inet loopback
RedHat:
# vim /etc/sysconfig/network/ifcfg-eth0
root@datacenter:~#
syntax on
set number
set hlsearch
set incsearch
set ic
Caso deseje adicionar mais variáveis ou alias, fique à vontade! Concluída esta
etapa, vamos reler o arquivo para que as alterações sejam validadas:
3.10. Laboratório
Observações importantes :
• Sua senha não será mostrada na tela enquanto você a digita no terminal,
apenas será mostrada com asteriscos quando você digitá-la pela interface
gráfica.
Com esta configuração demos total poder para o usuário infra, visto que
iremos bloquear o acesso de root posteriormente. Para melhorar a segurança do
sistema com o uso do sudo, em caso de esquecer o terminal aberto como usuário
infra, podemos configurar o sudo para sempre pedir a senha ao se digitar um
comando. Para isto, adicione no final do arquivo:
26 Defaults:infra timestamp_timeout=0
25 LoginGraceTime 10
26 PermitRootLogin no
root@datacenter:~# grub-mkpasswd-pbkdf2
Enter password:
Reenter password:
Your PBKDF2 is
grub.pbkdf2.sha512.10000.A254399AFA2A071BE3AA366EF37183E4A94920C29198B3D
6985ADBB4A4D0340E47E279898FDD588150A4042AB61AF02BC279188C547575D924F9F9B
0779FB8D9.22BF4158057ACF2E5B37A0F3AD87033321F68FFEA73DC57F2886D47ED936DA
8272A531834B523D9C99FBABC6829FD5F4AC29D7057995F1CF2219C7AE6B47C2EB
Copie o “hash” da senha (em negrito), pois essa é a senha criptografada. Abra o
Capítulo 3 Implementando Hardening + PAM em seu Servidor GNU/Linux - 47
set superusers=”root”
EOF
root@datacenter:~# update-grub2
root@datacenter:~# reboot
Sabemos que não é fácil criar uma senha, ainda mais sendo ela para um
servidor! Para ajudar nessa árdua tarefa, podemos instalar um programa chamado
pwgen, que gera combinações de caracteres, formando assim senhas aleatórias!
Verificamos aqui que temos o servidor de e-mail EXIM, versão 4. Como não
iremos utilizá-lo, vamos remover seus links da inicialização para que eles não sejam
iniciados no boot. Execute o comando:
Outro comando importante (e que cai na prova da LPI) é o netstat. Ele possui
alguns parâmetros importantes para verificarmos as conexões estabelecidas em
nosso servidor. Execute:
Opções:
Por padrão, qualquer pessoa pode efetuar o reboot da máquina, mesmo sem
Capítulo 3 Implementando Hardening + PAM em seu Servidor GNU/Linux - 50
root@datacenter:~# init q
Em se tratando de um servidor, onde nem sempre ele está numa sala fechada,
alguma pessoa com suficiente conhecimento sobre esta tecla poderia desligá-lo,
mesmo sem login! Portanto, vamos desativar esta função. Abra o arquivo e insira a
seguinte linha no final do arquivo:
Capítulo 3 Implementando Hardening + PAM em seu Servidor GNU/Linux - 51
root@datacenter:~# sysctl -p
Faça alguns testes com o comando “su”, ora acertando a senha, ora errando.
Se desejar faça com o auxílio do programa splitvt:
root@datacenter:~# splitvt
Embora eles não sejam classificados, podemos dizer que há três tipos de PAM:
Java™ PAM ou JPam: O JPam atua como uma ponte entre a parte Java e o PAM
comum. Ele permite o uso dos módulos ou recursos do PAM (como auth, account,
passwd, session , etc.) pelos aplicativos baseados em Java. Ele fornece o JAAS e APIs
Capítulo 3 Implementando Hardening + PAM em seu Servidor GNU/Linux - 53
http://www.kernel.org/pub/linux/libs/pam
O PAM trabalha com módulos e controles, e cada tipo de módulo provê uma
funcionalidade diferente dentro do sistema. Vamos comentar primeiro os módulos:
3.14. Laboratório
root@datacenter:~# ls /lib/security/
Execute:
root@datacenter:~# ls -l /etc/pam.d
Vamos ativar um módulo simples que serve para bloquear usuários comuns.
Abra o arquivo “/etc/pam.d/login” e visualize o módulo “pam_nologin.so” na linha 26:
Para esse “módulo” funcionar ele necessita que o arquivo “nologin” esteja
criado dentro do diretório /etc. Execute:
Feito isso, crie um usuário chamado “teste” tente logar com ele em outro
terminal. Depois apague o arquivo /etc/nologin.
Uma maneira prática de usar o “PAM” é fazermos com que o usuário root
não tenha acesso direto ao login, forçando a logar com usuário comum e
depois executar “su -” para virar root.
Para usar o PAM para gerenciar o login do root, vamos abrir o arquivo
/etc/pam.d/login e descomente a linha 68:
Capítulo 3 Implementando Hardening + PAM em seu Servidor GNU/Linux - 56
Tente efetuar login como root em outro terminal e veja que não será possível!
Aproveitando o “gancho” , vamos deixar configurada a negação de acesso ao root via
ssh. Mais uma camada de proteção, além da já configurada no arquivo de
configuração do ssh (/etc/ssh/sshd_config). Abra o arquivo /etc/pam.d/sshd e
inclua na linha 9:
Como permitir acesso a grupos extras como, por exemplo, “audio”, ou “cdrom”?
Essa sintaxe quer dizer que usuário só pode ter acesso ao grupo “audio” se
efetuar o login entre 8hs e 18hs. Outro exemplo:
login;tty*;*;SaSu0000-2400;audio games
Essa sintaxe quer dizer que todos os usuários podem ter acesso ao grupo
“audio” e “games” aos sábados e domingos. Com o PAM, podemos limitar quais
usuários poderão ter acesso a utilizar ao comando “su”. Para isso, vamos criar um
grupo chamado “admins”
Agora vamos adicionar o usuário infra ao novo grupo. Com isto, apenas o
usuário infra poderá executar o comando “su”.
Crie uma política que não possibilite o uso do “su”, exceto pelos usuários do
grupo “admins”. Abra o arquivo /etc/pam.d/su e adicione no final da linha 15
group=admins:
teste@datacenter:~$ su -
Senha:
Capítulo 3 Implementando Hardening + PAM em seu Servidor GNU/Linux - 58
infra@datacenter:~$ su -
Senha:
root@datacenter:~#
Agora crie o arquivo “/etc/grupos” e coloque os nomes dos grupos que NÃO
podem fazer login:
Faça alguns testes, criando alguns usuários e adicionando a estes grupos. Tente
efetuar o login e veja o resultado.
Dessa forma, limita-se o usuário teste para utilizar somente dois terminais
consecutivos. Segundo, vamos limitar o tamanho máximo de um arquivo criado pelo
usuário teste:
Para o teste, faça logout e logue-se novamente com o usuário teste e tente
criar arquivos maiores que 5MB (fsize 5000).
Esse comando cria uma função na qual a função é jogada dentro dela mesma
em segundo plano, gerando o looping. Para parar o looping só desligando o servidor.
Para impedir isto, vamos limitar o número de processos gerados pelo usuário no
arquivo /etc/security/limits.conf
Após isto, faça novamente o teste usando o usuário teste. Vamos ver agora
como implementar mais segurança com as senhas dos usuários. Limitaremos a
quantidade de caracteres a composição da senha. Instale o programa libpam-
cracklib.
Agora logue com o usuário teste e tente mudar a senha para valores que o
sistema não aceite:
teste@datacenter:~$ passwd
Mudando senha para teste.
Senha UNIX (atual):
Senha:
SENHA INCORRETA: é muito simples/sistemática
Senha:
SENHA INCORRETA: é muito simples/sistemática
Senha:
SENHA INCORRETA: é muito simples/sistemática
passwd : Esgotado o número máximo de tentativas para serviço
passwd: Palavra-passe inalterada
teste@datacenter:~$ passwd
Mudando senha para teste.
Senha UNIX (atual):
Senha:
Redigite a nova senha:
passwd: senha atualizada com sucesso
Capítulo 3 Implementando Hardening + PAM em seu Servidor GNU/Linux - 63
http://lists.debian.org/debian-security-announce/
https://rhn.redhat.com/errata/rhel-server-errata.html
Agora no Windows 7:
Capítulo 3 Implementando Hardening + PAM em seu Servidor GNU/Linux - 65
Capítulo 4
Servidor DHCP
4.1. Objetivos
4.2. Cenário
O que um servidor DHCP faz é bastante simples. Ele responde aos pacotes de
broadcast das estações, enviando um pacote com um dos endereços IP disponíveis e
os demais dados da rede. Os pacotes de broadcast são endereçados ao endereço
"255.255.255.255" e retransmitidos pelo switch da rede para todas as portas,
diferente dos pacotes endereçados a um endereço específico, que são transmitidos
apenas na porta relacionada a ele.
• DHCPNAK - Caso o cliente não aceite aquele endereço IP, ele enviará um
"DHCPNAK" para o servidor, e realizará o "DHCPDISCOVER" novamente.
4.5. Laboratório
Agora vamos iniciar nossa configuração num arquivo zerado. Abra-o e insira o
conteúdo abaixo:
aos clientes;
Com isso todos os logs com origem da facility local7 (facility essa que
representa o serviço de DHCP) em qualquer priority (indica o nível de importância
do log), serão logados no /var/log/dhcpd.log.
Para esse cenário ser possível, seria necessária a respectiva entrada no final
do arquivo de configuração "/etc/dhcp/dhcpd.conf":
host debian {
hardware ethernet 00:00:00:00:00:00;
fixed-address 192.168.X.10;
}
host windowsxp {
hardware ethernet 00:00:00:00:00:00;
fixed-address 192.168.X.20;
}
host windows7 {
hardware ethernet 00:00:00:00:00:00;
fixed-address 192.168.X.30;
}
Você deve trocar o MAC Address informado aqui pelo de suas estações.
No que diz respeito ao servidor, podemos ainda verificar alguns arquivos para
diagnosticar problemas ou mesmo extrair relatórios. Vejamos:
O daemon DHCP pode ser finalizado (killed) ou o sistema pode falhar (crash)
após o banco de dados de aluguel ter sido renomeado como o arquivo backup, mas
antes do novo arquivo ser salvo. Se isto acontecer, o arquivo dhcpd.leases não existe,
mas é necessário para iniciar o serviço. Não crie um novo arquivo de aluguel. Se
você o fizer, todos os aluguéis antigos serão perdidos e causarão muitos problemas. A
solução correta é renomear o arquivo backup dhcpd.leases~ como dhcpd.leases e
então iniciar o daemon.
… ou o arquivo /var/lib/dhcp/dhclient.eth0.leases
lease {
interface "eth0";
fixed-address 192.168.56.101;
option subnet-mask 255.255.255.0;
option dhcp-lease-time 3600;
option dhcp-message-type 5;
option dhcp-server-identifier 192.168.56.100;
renew 5 2011/06/24 00:14:42;
rebind 5 2011/06/24 00:14:42;
expire 5 2011/06/24 00:14:42;
}
E para finalizar, evite colocar 2 servidores DHCP na mesma rede, pois isto irá
gerar alguns transtornos para os clientes!
Capítulo 4 Servidor DHCP - 75
Capítulo 5
Servidor NFS
5.1. Objetivos
5.2. Cenário
Capítulo 5 Servidor NFS - 76
Sistemas NAS podem conter mais de um HD, podendo também contar com a
tecnologia RAID (Redundant Arrays of Independent Disks), centralizando a
responsabilidade de servir os arquivos em uma rede e deste modo liberando recursos
de outros servidores desta rede. Os protocolos utilizados pelo NAS são o NFS,
popular em sistemas UNIX, ou CIFS/SMB (Common Internet File System/Server
Message Block) em ambientes Windows, assim como o tradicional FTP.
(http://www.serverelements.com/).
Com o tempo, o SAN foi adotado para criar partições diferentes no resto do
tráfego da LAN e, ao fazer isso, aumentar a velocidade de banco de dados com
grande quantidade de transações, sistemas ERP e CRM.
5.7. E o DAS?
Essa técnica é mais adequada para pequenos servidores que oferecem acesso a
arquivos para diversos PCs ou usuários de um pequeno escritório. É uma forma
confiável para armazenar aplicações que rodam em um servidor.
Os principais protocolos usados pelo DAS são ATA, SATA, eSATA, SCSI, SAS
e Fibre Channel.
5.8. Laboratório
root@storage:~# rpcinfo -p
programa versão protocolo porta
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 47545 status
100024 1 tcp 57409 status
100021 1 udp 52472 nlockmgr
100021 3 udp 52472 nlockmgr
100021 4 udp 52472 nlockmgr
100021 1 tcp 39468 nlockmgr
100021 3 tcp 39468 nlockmgr
100021 4 tcp 39468 nlockmgr
100003 2 tcp 2049 nfs
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100005 1 udp 46126 mountd
100005 1 tcp 60630 mountd
100005 2 udp 46126 mountd
100005 2 tcp 60630 mountd
100005 3 udp 46126 mountd
Capítulo 5 Servidor NFS - 83
root@storage:~# exportfs -r
Monte os compartilhamentos:
root@datacenter:~# mount
192.168.X.4:/srv/dexter on /srv/storage type nfs (rw,addr=192.168.X.4)
192.168.X.4:/srv/dexter on /srv/lixeiras type nfs (rw,addr=192.168.X.4)
Como vimos, com a opção “root_squash” ativada por padrão o root não
consegue criar arquivos/diretórios dentro do compartilhamento! Vamos alterar o
/etc/exports no servidor “Storage” e permitir que o root grave no
compartilhamento, habilitando a opção “no_root_squash”:
Capítulo 6
6.1. Objetivos
Tendo isto em vista este ambiente, vamos realizar os procedimentos via linha
de comando, tomando como base o que já aprendemos no capítulo 2 durante a
instalação do GNU/Linux.
Primeiro crie uma partição primária, do tipo Linux raid autodetect (fd) e
uma swap (82) em cada um dos discos:
First Last
# Type Sector Sector Offset Length Filesystem Type
(ID) Flag
-- ------- ----------- ----------- ------ -----------
-------------------- ----
1 Primary 0 166015709 63 166015710 Linux raid auto
(FD) None
2 Primary 166015710 167766794 0 1751085 Linux swap / So
(82) None
root@datacenter:~# cfdisk -Ps /dev/sde
Partition Table for /dev/sde
First Last
# Type Sector Sector Offset Length Filesystem Type
(ID) Flag
-- ------- ----------- ----------- ------ -----------
-------------------- ----
1 Primary 0 166015709 63 166015710 Linux raid auto
(FD) None
2 Primary 166015710 167766794 0 1751085 Linux swap / So
(82) None
8 32 83886080 sdc
8 33 83007823 sdc1
8 34 875542 sdc2
8 48 83886080 sdd
8 49 83007823 sdd1
8 50 875542 sdd2
Capítulo 6 Implementando RAID + LVM - 89
8 64 83886080 sde
8 65 83007823 sde1
8 66 875542 sde2
8 16 83886080 sdb
8 17 82909184 sdb1
8 18 974848 sdb2
8 0 83886080 sda
8 1 82909184 sda1
8 2 974848 sda2
9 0 82908088 md0 # partição RAID sda1/sdb1
253 0 9764864 dm-0 # partição LVM existente
253 1 4882432 dm-1 # partição LVM existente
253 2 1949696 dm-2 # partição LVM existente
253 3 974848 dm-3 # partição LVM existente
Personalities : [raid1]
md0 : active raid1 sda1[0] sdb1[1]
82908088 blocks super 1.2 [2/2] [UU]
Veja a saída:
Veja a saída:
Neste exemplo criamos o RAID-1, porém ele ficou ativo como “somente
leitura”, conforme observado acima na opção auto-read-only. Neste caso não há
problema, pois quando executarmos alguma gravação no RAID, ele passará para o
modo leitura/escrita. O problema enfrentado aqui é a opção resync=PENDING,
como mostrado saída do comando anterior. Para resolver isto execute:
Isto fará com que o volume RAID seja atualizado para leitura-escrita.
Nesta linha temos a informação de que o disco sde1 é o terceiro disco e está
alocado como SPARE. O sdd1 é o segundo disco e o sdc1 o primeiro disco do RAID.
O disco SPARE é utilizado como “backup” do volume RAID, ou seja, caso um dos
discos falhe, ele assumirá de imediato o seu lugar e dará início ao sincronismo dos
dados.
Bom, agora que o volume RAID está criado e ajustado para gravação, vamos
configurar o arquivo /etc/mdadm/mdadm.conf:
Version : 1.2
Feature Map : 0x0
Array UUID : 4f14d726:5b11ed80:7a0f799b:837616ae
Name : datacenter:1 (local to host datacenter)
Creation Time : Fri Jul 15 04:52:43 2011
Raid Level : raid1
Raid Devices : 2
State : clean
Active Devices : 2
Working Devices : 3
Failed Devices : 0
Spare Devices : 1
Personalities : [raid1]
md1 : active raid1 sdc1[0](F) sde1[2] sdd1[1]
83006727 blocks super 1.2 [2/1] [_U]
[>....................] recovery = 0.3% (304896/83006727)
finish=76.8min speed=17935K/sec
Perceba que o disco /dev/sdc1 aparece com a letra “F” entre parênteses, o que
significa que ele está com falha! Ao apresentar esta “falha”, o disco de SPARE, no
caso o /dev/sde1, assumiu seu lugar e deu início ao sincronismo dos dados. Se você
verificar o terminal com o comando “tail” em execução, teremos:
Personalities : [raid1]
md1 : active raid1 sde1[2] sdd1[1]
83006727 blocks super 1.2 [2/1] [_U]
[======>..............] recovery = 31.5% (26208576/83006727)
finish=24.5min speed=38554K/sec
… e veja que o mesmo volto a ser parte do RAID-1, porém como disco SPARE!
root@datacenter:~# jobs -l
[1]+ 3808 Executando ./testaraid.sh &
root@datacenter:~# kill -9 3808
root@datacenter:~# umount /mnt/raid
root@datacenter:~# mdadm -S /dev/md1
mdadm: stopped /dev/md1
Veja a saída:
Neste exemplo criamos o RAID-5, porém ele não ativou um dos discos, neste
caso o /dev/sde1, conforme o item [UU_]. Para resolver isto devemos executar:
Isto fará com que o volume RAID seja atualizado. Veja a saída em:
Bom, agora que o volume RAID está criado e ajustado para gravação, vamos
configurar o arquivo /etc/mdadm/mdadm.conf:
PV (Phisical Volume)
pvs - saída resumida
pvscan - saída simples
pvdisplay - saída detalhada
VG (Volume Group)
vgs - saída resumida
vgscan - saída simples
vgdisplay - saída detalhada
LV (Logical Volume)
lvs - saída resumida
lvscan - saída simples
lvdisplay - saída detalhada
Vamos verificar nossos “Volumes Lógicos” por meio dos comandos detalhados,
tomando como base para a produção de relatórios. Primeiro do PV:
root@datacenter:~# pvdisplay
--- Physical volume ---
PV Name /dev/md0
VG Name root_vg
PV Size 79,07 GiB / not usable 952,00 KiB
Allocatable yes
PE Size 4,00 MiB
Capítulo 6 Implementando RAID + LVM - 105
Total PE 20241
Free PE 15951
Allocated PE 4290
PV UUID r0e8hh-rjsx-8diG-LAvg-ftAM-rfzB-3Q3CXT
Agora do VG:
root@datacenter:~# vgdisplay
--- Volume group ---
VG Name root_vg
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 5
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 4
Open LV 4
Max PV 0
Cur PV 1
Act PV 1
VG Size 79,07 GiB
PE Size 4,00 MiB
Total PE 20241
Alloc PE / Size 4290 / 16,76 GiB
Free PE / Size 15951 / 62,31 GiB
VG UUID HHcDSF-MyYY-3Ewj-NJt6-nxCQ-jSTM-Mh7ox4
E finalmente os LVs:
root@datacenter:~# lvdisplay
--- Logical volume ---
LV Name /dev/root_vg/lv_raiz
VG Name root_vg
LV UUID Whr2xl-wNnH-eyvx-3f5R-Ed0m-2U5Z-11Vdye
LV Write Access read/write
Capítulo 6 Implementando RAID + LVM - 106
LV Status available
# open 1
LV Size 9,31 GiB
Current LE 2384
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
Agora que sabemos como gerar um relatório do LVM e vimos como foi criado
na instalação do sistema, passemos para a criação de um novo VG para se trabalhar
com os perfis dos usuários do Samba. Primeiro devemos adicionar um PV, sendo
neste caso o volume RAID-5 criado anteriormente:
root@datacenter:~# pvdisplay
--- Physical volume ---
PV Name /dev/md0
VG Name root_vg
PV Size 79,07 GiB / not usable 952,00 KiB
Allocatable yes
PE Size 4,00 MiB
Total PE 20241
Free PE 15951
Capítulo 6 Implementando RAID + LVM - 108
Allocated PE 4290
PV UUID r0e8hh-rjsx-8diG-LAvg-ftAM-rfzB-3Q3CXT
Perceba que o sistema nos informa de que o /dev/md1 é um novo volume físico
e que não faz parte de nenhum VG! Sendo assim, vamos criar um novo VG com este
PV, ou seja, o volume RAID-5:
Max PV 0
Cur PV 1
Act PV 1
VG Size 158,32 GiB
PE Size 4,00 MiB
Total PE 40530
Alloc PE / Size 0 / 0
Free PE / Size 40530 / 158,32 GiB
VG UUID bhbxMF-6cjA-Me0Y-1SQO-Z4t0-ieZ1-6qUXoS
Após estes procedimentos, teremos uma unidade lógica mapeada e pronta para
uso! Vamos gravar alguns dados nesta unidade para realizarmos alguns testes.
Capítulo 6 Implementando RAID + LVM - 111
Vamos supor que o espaço alocado para a unidade lógica não irá atender às
necessidades da empresa! Neste caso teremos que aumentar o espaço da unidade
lógica, sem a necessidade de movermos dados do local ou mesmo introduzir um novo
disco no servidor. Primeiro desmonte o LV e depois execute seguintes passos:
Pronto! Agora monte a partição e veja o tamanho e o total dos dados que nela
estavam:
Agora suponha que, seja lá qual for o motivo, você precise reduzir o espaço do
LV. Como proceder? Será que irei perder meus dados? E agora? Calma! Para isto
devemos nos atentar para alguns detalhes sobre os passos a serem feitos. Vamos lá,
primeiro passo é desmontar a partição. Depois devemos checar a integridade da
partição para finalmente executar o comando que fará o “resizing”.
147856/6553600 blocks
root@datacenter:~# resize2fs -p /dev/samba_vg/samba_lv 15g
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/samba_vg/samba_lv to 3932160(4k)blocks.
Begin pass 3 (max = 200)
Scanning inode table XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
The filesystem on /dev/samba_vg/samba_lv is now 3932160 blocks long.
Neste exemplo temos uma partição de 25GB e eu desejo reduzir apenas 5GB.
Vamos supor que eu tenha cerca de 12GB de dados. Então, para não quebrar a
partição em cima dos dados, daremos uma folga de alguns gigabytes e efetuamos o
comando de “resizing”. Agora vamos executar os comandos LVM que reduzirão de
fato o tamanho da partição:
/dev/mapper/samba_vg-samba_lv
ext4 20G 176M 20G 1% /mnt/lvm
root@datacenter:~# du -sh /mnt/lvm/
21M /mnt/lvm/
Agora vamos editar o /etc/fstab e incluir no final do arquivo este novo ponto
de montagem:
root@datacenter:~# df -hT
Capítulo 6 Implementando RAID + LVM - 115
Capítulo 7
Servidor Samba
7.1. Objetivos
7.2. Cenário 1
7.4. Cenário 2
7.6. Cenário 3
O Samba é uma criação de Andrew Tridgell. O que aconteceu foi que Tridgell
precisava montar um espaço em disco em seu PC para um servidor Unix. Esse PC
rodava o sistema operacional MS-DOS e, inicialmente, foi utilizado o sistema de
arquivos NFS (Network File System) para o acesso. Porém, um aplicativo precisava
de suporte ao protocolo NetBIOS (não suportado pelo NFS). A solução encontrada
por Tridgell não foi tão simples: ele escreveu um sniffer (pequeno programa para
captura de tráfego de dados em rede) que permitisse analisar o tráfego de dados
gerado pelo protocolo NetBIOS, fez engenharia reversa no protocolo SMB (Server
Message Block) e o implementou no Unix. Isso fez com que o servidor Unix
aparecesse como um servidor de arquivos Windows em seu PC com DOS.
7.9. Laboratório 1
RedHat:
Na plataforma RedHat, o arquivo de configuração do samba fica em
“/etc/smb.conf”
Fique atento, as opções que iremos estudar agora serão cobradas na prova
do LPI.
[publico]
comment = Publico
path = /srv/storage/publico
public = yes
force user = smbuser
force group = users
read only = no
guest ok = yes
force create mode = 664
force directory mode = 755
veto files = /*.mp3/*.mpg/*.mpeg/*.avi/*.wav/*.jpg/
hide files = /*.ini/*.log/
root@datacenter:~# testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: rlimit_max (1024) below minimum Windows limit (16384)
Processing section "[publico]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
DICA
Ao executar o testparm, aparece o erro abaixo:
rlimit_max: rlimit_max (1024) below minimum Windows limit
(16384)
Server Comment
--------- -------
SERVIDOR Servidor de Arquivos Linux
Workgroup Master
--------- -------
DEXTER SERVIDOR
GRUPO WINDOWS-XP
7.10. Laboratório 2
Para criar os grupos e usuários, devemos nos atentar para nosso cenário, ou
seja, a empresa Dexter Courier. Ela possui o seguinte quadro de funcionários:
Presidente Comercial
Dexter Clem Chris Cavanaugh
Candi Milo
Adminitrativo Allison Moore
Mandark Glory
Levinsky Mitch Logística
Douglas Mordechai Eddie Deezen
Frank Welker
RH Luzinsky Brooks
Kathryn Cressida
Kath Soucie Suporte TI
Jeff Bennett VOCÊ
Para nos ajudar nessa árdua tarefa, vamos compor uma lista com o nome e o
login de cada membro da empresa Dexter Courier. Ademais, gere uma lista somente
com o login de cada usuário e salve como /root/lista_users.txt, assim poderemos
utilizar scripts na criação e administração do Samba.
A senha padrão para todos será 123456. É óbvio que no “mundo real” isto não
ocorrerá. A ideia aqui é facilitar os testes!
douglasmordechai
root@datacenter:~# useradd -g comercial -G users -s /bin/false
chriscavanaugh
root@datacenter:~# useradd -g comercial -G users -s /bin/false
candimilo
root@datacenter:~# useradd -g comercial -s /bin/false allisonmoore
root@datacenter:~# useradd -g rh -G users -s /bin/false kathryncressida
root@datacenter:~# useradd -g rh -G users -s /bin/false kathsoucie
root@datacenter:~# useradd -g rh -G users -s /bin/false jeffbennett
root@datacenter:~# useradd -g logistica -G users -s /bin/false
eddiedeezen
root@datacenter:~# useradd -g logistica -G users -s /bin/false
frankwelker
root@datacenter:~# useradd -g logistica -G users -s /bin/false
luzinskybrooks
root@datacenter:~# useradd -g suporte -G users -s /bin/false voce
root@datacenter:~# mkdir -p \
/srv/storage/{administrativo,rh,comercial,logistica,suporte}
root@datacenter:~# sh /root/smbuser.sh
Devemos criar também os diretórios da lixeira de cada usuário. Para isto faça
um script com base em nossa lista de usuários em /root/lista_users.txt.
root@datacenter:~# sh /root/lixeiras.sh
preserve case = no
default case = lower
# Habilitando o Samba a usar lixeiras em todos os compartilhamentos
vfs objects = recycle
recycle:keeptree = yes
recycle:versions = yes
recycle:repository = /srv/lixeiras/%U
recycle:exclude = *.tmp,*.log,*obj,~*.*,*.bak
recycle:exclude_dir = tmp, cache
[administrativo]
path = /srv/storage/administrativo
available = yes
writable = yes
public = no
only guest = no
valid users = @administrativo
write list = @administrativo
force create mode = 660
force directory mode = 750
veto files = /*.mp3/*.mpg/*.mpeg/*.avi/*.wav/*.jpg/
hide files = /*.ini/*.log/
[comercial]
path = /srv/storage/comercial
available = yes
writable = yes
public = no
only guest = no
valid users = @comercial
write list = @comercial
force create mode = 660
force directory mode = 750
veto files = /*.mp3/*.mpg/*.mpeg/*.avi/*.wav/*.jpg/
hide files = /*.ini/*.log/
[logistica]
path = /srv/storage/logistica
available = yes
Capítulo 7 Servidor Samba - 131
writeable = yes
public = no
only guest = no
valid users = @logistica
write list = @logistica
force create mode = 660
force directory mode = 750
veto files = /*.mp3/*.mpg/*.mpeg/*.avi/*.wav/*.jpg/
hide files = /*.ini/*.log/
[rh]
path = /srv/storage/rh
available = yes
writeable = yes
public = no
only guest = no
valid users = @rh
write list = @rh
force create mode = 660
force directory mode = 750
veto files = /*.mp3/*.mpg/*.mpeg/*.avi/*.wav/*.jpg/
hide files = /*.ini/*.log/
[suporte]
path = /srv/storage/suporte
available = yes
writeable = yes
public = no
only guest = no
valid users = @suporte
write list = @suporte
force create mode = 660
force directory mode = 750
veto files = /*.mp3/*.mpg/*.mpeg/*.avi/*.wav/*.jpg/
hide files = /*.ini/*.log/
[publico]
comment = Publico
path = /srv/storage/publico
public = yes
Capítulo 7 Servidor Samba - 132
root@datacenter:~# testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: rlimit_max (1024) below minimum Windows limit (16384)
Processing section "[administrativo]"
Processing section "[comercial]"
Processing section "[logistica]"
Processing section "[rh]"
Processing section "[suporte]"
Processing section "[publico]"
Processing section "[lixeiras]"
Processing section "[printers]"
Capítulo 7 Servidor Samba - 133
Criando arquivos/diretórios:
Agora teste acessar uma pasta na qual o usuário não tem permissão. Veja o
erro que aparece!
Capítulo 7 Servidor Samba - 135
Dica!
Se criar os usuários no sistema “MS Windows” e colocar a mesma senha
do samba, o usuário conseguirá abrir o compartilhamento no servidor
segundo seu setor, sem pedir senha, mas ao tentar abrir outro receberá
uma mensagem de erro, conforme visto na figura anterior!
Agora vamos fazer os teste com a máquina “Squeeze”. Para isto crie um ponto
de montagem e monte o compartilhamento do suporte:
Perceba que agora gerou um erro ao entrar com a senha padrão. Isto se dá por
que não passamos o login/senha como opção de montagem! Veja agora:
7.11. Laboratório 3
O que é um Domínio?
Visto que não será nada cômodo ficar ingressando todas as máquinas da rede
no Samba, vamos ver mais adiante como colocar esta etapa diretamente no arquivo
smb.conf!
É necessário uma eleição quando existe mais de uma máquina querendo ser
domínio na rede. Existem algumas opções na configuração do smb.conf na seção
global que fazem com que o nosso servidor leve vantagem nesta eleição. Veremos
isto mais adiante.
# Habilitando os LOGs
log file = /var/log/samba/%m.log
log level = 1
max log size = 1000
# Nível de segurança
enable privileges = yes
security = user
username level = 2
encrypt passwords = yes
Capítulo 7 Servidor Samba - 141
# Servidor Wins
wins support = yes
wins proxy = no
dns proxy = no
max wins ttl = 518400
min wins ttl = 21600
[administrativo]
path = /srv/storage/administrativo
Capítulo 7 Servidor Samba - 143
available = yes
writable = yes
public = no
only guest = no
valid users = @administrativo
write list = @administrativo
force create mode = 660
force directory mode = 750
veto files = /*.mp3/*.mpg/*.mpeg/*.avi/*.wav/*.jpg/
hide files = /*.ini/*.log/
[comercial]
path = /srv/storage/comercial
available = yes
writable = yes
public = no
only guest = no
valid users = @comercial
write list = @comercial
force create mode = 660
force directory mode = 750
veto files = /*.mp3/*.mpg/*.mpeg/*.avi/*.wav/*.jpg/
hide files = /*.ini/*.log/
[logistica]
path = /srv/storage/logistica
available = yes
writeable = yes
public = no
only guest = no
valid users = @logistica
write list = @logistica
force create mode = 660
force directory mode = 750
veto files = /*.mp3/*.mpg/*.mpeg/*.avi/*.wav/*.jpg/
hide files = /*.ini/*.log/
Capítulo 7 Servidor Samba - 144
[rh]
path = /srv/storage/rh
available = yes
writeable = yes
public = no
only guest = no
valid users = @rh
write list = @rh
force create mode = 660
force directory mode = 750
veto files = /*.mp3/*.mpg/*.mpeg/*.avi/*.wav/*.jpg/
hide files = /*.ini/*.log/
[suporte]
path = /srv/storage/suporte
available = yes
writeable = yes
public = no
only guest = no
valid users = @suporte
write list = @suporte
force create mode = 660
force directory mode = 750
veto files = /*.mp3/*.mpg/*.mpeg/*.avi/*.wav/*.jpg/
hide files = /*.ini/*.log/
[publico]
comment = Publico
path = /srv/storage/publico
public = yes
force user = smbuser
force group = users
read only = no
guest ok = yes
force create mode = 664
Capítulo 7 Servidor Samba - 145
[lixeiras]
path = /srv/lixeiras/%U
writable = yes
browseable = no
force create mode = 664
force directory mode = 755
veto files = /*.mp3/*.mpg/*.mpeg/*.avi/*.wav/*.jpg/
hide files = /*.ini/*.log/
[printers]
comment = Samsung ML-2010
path = /var/spool/samba
browseable = yes
writable = no
print ok = yes
guest ok = yes
[netlogon]
comment = Network logon service
path = /srv/samba/netlogon
writable = no
browseable = no
[homes]
comment = Diretorio pessoal
path = /srv/samba/homes/%U
public = no
valid users = %U
read only = no
browseable = no
[profiles]
Capítulo 7 Servidor Samba - 146
[drivers$]
comment = Arquivos
path = /srv/storage/drivers
public = no
inherit permissions = yes
valid users = @suporte
write list = @suporte
only guest = no
writable = yes
force create mode = 600
force directory mode = 700
veto files = /*.mp3/*.mpg/*.mpeg/*.avi/*.wav/*.jpg/
hide files = /*.ini/*.log/
Vamos criar os diretórios dos usuários para poderem gravar seus dados na rede
e ingressá-los no samba. Para isto criaremos um script. Depois basta executá-lo:
root@datacenter:~# testparm
Load smb config files from /etc/samba/smb.conf
Processing section "[administrativo]"
Processing section "[comercial]"
Processing section "[logistica]"
Processing section "[rh]"
Processing section "[suporte]"
Processing section "[publico]"
Processing section "[lixeiras]"
Processing section "[printers]"
Processing section "[homes]"
Processing section "[profiles]"
Processing section "[netlogon]"
Processing section "[drivers$]"
Loaded services file OK.
WARNING: You have some share names that are longer than 12 characters.
These may not be accessible to some older clients.
(Eg. Windows9x, WindowsMe, and smbclient prior to Samba 3.0.)
Server role: ROLE_DOMAIN_PDC
Press enter to see a dump of your service definitions
...
• HKLM\System\CCS\Services\LanmanWorkstation\Parameters
DWORD DomainCompatibilityMode = 1
DWORD DNSNameResolutionRequired = 0
https://bugzilla.samba.org/attachment.cgi?id=4988&action=view
Quando surgir a tela de login, clique em “Trocar Usuário” => “Outro Usuário”
de digite o usuário do Domínio DEXTER:
Capítulo 7 Servidor Samba - 156
# [arquivos]
# path = /arquivos
# writable = yes
• Criar um arquivo com um mapa dos usuários na estação. O arquivo pode ser
armazenado em qualquer pasta e especificado sua localização opção
"username map" do smb.conf, como em:
conta_local = nome_do_dominioconta_no_dominio
como em:
cliente = DEXTERdexterclem
cliente = DEXTERmandarkglory
cliente = DEXTERlevinskymitch
cliente = DEXTERvoce
DICA:
Se precisar remover a máquina do domínio, basta alterar novamente o
smb.conf (na estação), mudando a linha "workgroup = ", para que ela
passe a indicar o nome do grupo de trabalho (e não mais do domínio) e
alterar a linha "security = domain" para "security = user".
Capítulo 8
Servidor DNS
8.1. Objetivos
8.2. Cenário
O servidor DNS será montado na máquina DMZ, podendo ser acessada pelo
mundo externo (após configuração do firewall), sendo replicada para a máquina
Datacenter por meio do DNSSEC. Faremos o seguinte:
• Nomes que coincidiam : dois hosts do arquivo HOSTS.TXT não podiam ter o
mesmo nome. Porém, apesar do NIC poder designar endereços únicos para
cada host, ele não tinha nenhuma autoridade sobre os nomes dados aos
mesmos. Não havia nada que pudesse evitar que alguém adicionasse um host
com um nome conflitante, interrompendo o sistema de algum outro host já
existente.
8.4.1. Características
• Arquitetura cliente/servidor;
• A raiz da árvore tem nome nulo ou "", por isso a representamos simplesmente
como ponto (.);
• Os nós abaixo do domínio raiz são chamados domínios de nível mais elevado -
TLD (top level domains);
• Eles são divididos em "gTLD" (domínios genéricos "com", "edu", "gov", "mil",
etc) e "ccTLD" (códigos de países ou "country-code", sempre com duas letras);
• Uma vez delegado um domínio, sua nova autoridade pode delegar subdomínios
sem necessitar notificar a entidade responsável pelo domínio pai;
8.5. Resolução
• recursiva
• iterativa
9. O servidor raiz não faz "cache", e também não é autoridade sobre zonas de
baixo nível, então ele apenas responde uma parte da questão: "Não sei quem é,
mas sei quem pode responder melhor: br.";
11. ".br" retorna o mesmo tipo de resposta, porém como uma dica mais
próxima: "Não sei quem é, mas sei quem pode responder melhor: com.br.";
12. Passos 10 e 11 são efetuados mais uma vez, e agora a resposta é "Não sei
quem é, mas sei quem pode responder melhor: exemplo.com.br.";
13. Após repetir o passo 10, finalmente a resposta será da autoridade sobre o
domínio exemplo.com.br. Vai ser respondido o IP, juntamente ao TTL do
registro, ou será respondido "inexistente";
Capítulo 8 Servidor DNS - 169
Por esta razão, um "FQDN" deve terminar com um ".", que representa a raiz da
árvore. Os "aliases" podem ser outros "hostnames" canônicos, ou simples sufixos,
para simplificar a escrita de determinados endereços. Após a instalação do sistema, o
arquivo "hosts" costuma conter uma entrada referente ao IP da interface "loopback",
e uma entrada para cada outra interface presente na máquina para qual um
endereço foi atribuído. Por exemplo:
127.0.0.1 localhost
192.168.1.50 micro50.dexter.com.br. micro50
Pode ser acrescentadas quantas entradas forem necessárias, inclusive para IPs
externos. Atualmente, os sistemas baseados em Debian já contém entradas para
endereçamento "IPv6", que seguem a mesma lógica. Poderá ver isto executando:
• nslookup
Capítulo 8 Servidor DNS - 171
• host
• dig
root@dmz:~# nslookup
> server
Default server: 4.2.2.2
Address: 4.2.2.2#53
> set all
Default server: 4.2.2.2
Address: 4.2.2.2#53
Set options:
novc nodebug nod2
search recurse
timeout = 0 retry = 3 port = 53
querytype = A class = IN
srchlist =
root@dmz:~# nslookup
> www.uol.com.br.
Server: 4.2.2.2
Address: 4.2.2.2#53
Non-authoritative answer:
Name: www.uol.com.br
Address: 200.221.2.45
Name: www.uol.com.br
Address: 200.147.67.142
> set type=MX
> gmail.com.
Server: 4.2.2.2
Address: 4.2.2.2#53
Non-authoritative answer:
Capítulo 8 Servidor DNS - 173
root@dmz:~# nslookup
> set type=SOA
> uol.com.br.
Server: 4.2.2.2
Address: 4.2.2.2#53
Non-authoritative answer:
uol.com.br
origin = eliot.uol.com.br
mail addr = root.uol.com.br
serial = 2011072900
refresh = 7200
retry = 3600
expire = 432000
minimum = 3600
Non-authoritative answer:
terra.com.br text = "v=spf1 ip4:200.176.10.0/23 ip4:200.176.2.0/23
ip4:200.154.152.0/24 ip4:208.84.242.0/23 include:tmp-spf.terra.com.br
include:ti-spf.terra.com.br -all"
Capítulo 8 Servidor DNS - 174
;; QUESTION SECTION:
;www.4linux.com.br. IN A
;; ANSWER SECTION:
www.4linux.com.br. 300 IN A 66.118.142.41
;; QUESTION SECTION:
;www.4linux.com.br. IN AAAA
Capítulo 8 Servidor DNS - 175
;; AUTHORITY SECTION:
4linux.com.br. 60 IN SOA ns1.4linux.com.br.
postmaster.4linux.com.br. 2012030920 3600 3600 604800 86400
;; QUESTION SECTION:
;www.4linux.com.br. IN MX
;; AUTHORITY SECTION:
4linux.com.br. 60 IN SOA ns1.4linux.com.br.
postmaster.4linux.com.br. 2012030920 3600 3600 604800 86400
;; QUESTION SECTION:
;4linux.com.br. IN MX
;; ANSWER SECTION:
4linux.com.br. 60 IN MX 10 boca.4linux.com.br.
;; QUESTION SECTION:
;4linux.com.br. IN SOA
;; ANSWER SECTION:
4linux.com.br. 60 IN SOA ns1.4linux.com.br.
postmaster.4linux.com.br. 2012030920 3600 3600 604800 86400
;; QUESTION SECTION:
;4linux.com.br. IN ANY
;; ANSWER SECTION:
4linux.com.br. 58 IN TXT "v=spf1 ip4:200.212.122.137
ip4:200.212.122.142 ip4:201.6.255.3 ip4:200.212.122.139 ip4:66.118.187.158
ip4:64.16.195.45 ip4:64.16.195.44 include:spf.aknamail.com.br -all"
4linux.com.br. 298 IN A 66.118.142.41
4linux.com.br. 58 IN SOA ns1.4linux.com.br.
postmaster.4linux.com.br. 2012030920 3600 3600 604800 86400
4linux.com.br. 58 IN MX 10 boca.4linux.com.br.
4linux.com.br. 58 IN NS ns1.4linux.com.br.
4linux.com.br. 58 IN NS ns2.4linux.com.br.
4linux.com.br. 58 IN NS ns1.testdrive.4linux.com.br.
;; QUESTION SECTION:
;www.4linux.com.br. IN A
;; ANSWER SECTION:
www.4linux.com.br. 300 IN A 66.118.142.41
;; QUESTION SECTION:
;www.4linux.com.br. IN A
;; ANSWER SECTION:
www.4linux.com.br. 300 IN A 66.118.142.41
;; ANSWER SECTION:
gmail.com. 1425 IN MX 40 alt4.gmail-smtp-in.l.google.com.
gmail.com. 1425 IN MX 5 gmail-smtp-in.l.google.com.
gmail.com. 1425 IN MX 10 alt1.gmail-smtp-in.l.google.com.
gmail.com. 1425 IN MX 20 alt2.gmail-smtp-in.l.google.com.
gmail.com. 1425 IN MX 30 alt3.gmail-smtp-in.l.google.com.
;; Query time: 136 msec
;; SERVER: 4.2.2.2#53(4.2.2.2)
;; WHEN: Sun Jul 31 18:40:39 2011
;; MSG SIZE rcvd: 150
;; QUESTION SECTION:
;137.122.212.200.in-addr.arpa. IN PTR
;; ANSWER SECTION:
137.122.212.200.in-addr.arpa. 43200 IN CNAME 137.128-
Capítulo 8 Servidor DNS - 179
191.122.212.200.in-addr.arpa.
137.128-191.122.212.200.in-addr.arpa. 3600 IN PTR boca.4linux.com.br.
Além dos arquivos citados acima, temos o arquivo "db.root" (no RedHat fica em
"/var/named/named.ca") que relaciona os endereços dos 13 servidores raiz e é lido
como "zona hint", que será explicada adiante.
Capítulo 8 Servidor DNS - 181
Execute o tcpdump para verificar os pacotes saindo de uma porta alta até a
porta 53/udp de seu servidor:
Nosso servidor recém instalado já está operando como servidor "cache". Faça
uma consulta e verifique o “Query time”. Repita o procedimento:
DICA:
Não é necessária a configuração deste arquivo, pois mesmo sem ele
o servidor continua efetuando as consultas e resolvendo os nomes,
além de fazer cache!
Capítulo 8 Servidor DNS - 184
É possível ser (se desejar!!!) ainda mais econômico em termos de banda se, ao
invés de executar uma busca recursiva a cada nova consulta, encaminhar a consulta
para o servidor disponibilizado pelo provedor. Isto pode ser feito descomentando as
Capítulo 8 Servidor DNS - 185
Cada domínio na Internet tem sua autoridade, que nada mais é do que um
servidor onde as informações daquele domínio são criadas, mantidas ou alteradas.
Mas como um domínio pode se subdividir em inúmeros outros domínios, surge um
outro conceito: Zonas.
• slave - O "BIND" também vai responder por esse domínio, mas nenhuma
criação ou alteração respectiva a essa "zona" será feita localmente neste
servidor. Os dados serão sempre transferidos de um servidor "master".
• hint - Específica para o "BIND" onde ele deve começar uma busca recursiva
quando estiver operando como "cache". Por padrão, há uma "zona hint" criada
com os endereços dos 13 "root servers".
• "$TTL"
• "$ORIGIN"
• "$INCLUDE"
Capítulo 8 Servidor DNS - 187
• classe - Podem ser "CH", "HS" ou "IN". O padrão é "IN", de Internet, e não
precisa ser declarada. CH = CHAOS e HS = Hesiod
autoridade sobre o bloco de IPs destinado àquele link. Vai depender do provedor.
Mas como em nosso caso estamos utilizando apenas endereços privados, vamos
assumir a autoridade sobre todo o bloco 192.168.X.0/24.
• negative caching TTL - Se a zona expirar, esse será o tempo pelo qual um
servidor "cache" armazenará a informação "NXDOMAIN" antes de iniciar
uma nova busca recursiva. O máximo são 3 horas.
Capítulo 8 Servidor DNS - 190
;; ANSWER SECTION:
dexter.com.br. 86400IN SOA ns1.dexter.com.br.dexter.com.br.
root.dexter.com.br. 2011073101 28800 3600 259200 10800
;; AUTHORITY SECTION:
Capítulo 8 Servidor DNS - 191
;; ADDITIONAL SECTION:
ns1.dexter.com.br. 86400IN A 192.168.110.3
;; QUESTION SECTION:
;mandark.com.br. IN SOA
;; ANSWER SECTION:
mandark.com.br. 86400IN SOA
ns2.mandark.com.br.mandark.com.br. root.mandark.com.br. 2011073101
28800 3600 259200 10800
;; AUTHORITY SECTION:
mandark.com.br. 86400IN NS ns2.mandark.com.br.
;; ADDITIONAL SECTION:
ns2.mandark.com.br.86400IN A 192.168.110.3
;; QUESTION SECTION:
;dexter.com.br. IN MX
;; ANSWER SECTION:
dexter.com.br. 86400IN MX 10 mail.dexter.com.br.
;; AUTHORITY SECTION:
dexter.com.br. 86400IN NS ns1.dexter.com.br.
;; ADDITIONAL SECTION:
mail.dexter.com.br.86400IN A 192.168.110.3
ns1.dexter.com.br. 86400IN A 192.168.110.3
serial 1
Aug 1 13:23:35 dmz named[1370]: zone 255.in-addr.arpa/IN: loaded
serial 1
Aug 1 13:23:35 dmz named[1370]: zone dexter.com.br/IN: loaded serial
2011073101
Aug 1 13:23:35 dmz named[1370]: zone mandark.com.br/IN: loaded serial
2011073101
Aug 1 13:23:35 dmz named[1370]: zone localhost/IN: loaded serial 2
Aug 1 13:23:35 dmz named[1370]: managed-keys-zone ./IN: loading from
master file managed-keys.bind failed: file not found
Aug 1 13:23:35 dmz named[1370]: managed-keys-zone ./IN: loaded serial
0
Aug 1 13:23:35 dmz named[1370]: running
Aug 1 13:23:35 dmz named[1370]: zone dexter.com.br/IN: sending
notifies (serial 2011073101)
Aug 1 13:23:35 dmz named[1370]: zone mandark.com.br/IN: sending
notifies (serial 2011073101)
Vamos limitar o seu uso apenas no próprio servidor, para isso vamos alterar o
arquivo “/etc/bind/named.conf.local.”
};
zone "mandark.com.br" {
type master;
file "db.mandark ";
};
root@dmz:~# cd /etc/bind
root@dmz:/etc/bind# rndc-confgen -r /dev/urandom -a
wrote key file "/etc/bind/rndc.key"
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is OFF
recursive clients: 0/0/1000
tcp clients: 0/100
server is up and running
Para vermos o que está em cache no DNS, podemos usar os comandos abaixo:
;
$DATE 20110802214224
;
; Address database dump
;
;
; Unassociated entries
;
;
; Bad cache
;
; Dump complete
[1024, 65535]
Aug 2 18:49:17 dmz named[1123]: reloading configuration succeeded
Aug 2 18:49:17 dmz named[1123]: reloading zones succeeded
3 IN PTR mail.dexter.com.br.
Reinicie o Bind9:
;; ANSWER SECTION:
3.X.168.192.in-addr.arpa. 86400 IN PTR mail.dexter.com.br.
;; AUTHORITY SECTION:
X.168.192.in-addr.arpa. 86400 IN NS ns1.dexter.com.br.
...
Explicando as inclusões:
Reinicie o Bind9:
Reinicie o Bind9:
• mx - Servidor de e-mail;
Capítulo 9
Servidor Apache
9.1. Objetivos
• Instalação do Moodle;
9.2. Cenário
• multi plataforma;
Neste modo, o apache mantém uma série de "threads" ociosas, fazendo com
que novas conexões sejam processadas e respondidas de uma maneira mais rápida
do que no modo "Pre Fork". Infelizmente nem toda aplicação se dá bem com
"threads", como o "PHP5", por exemplo.
Capítulo 9 Servidor Apache - 209
9.6. Laboratório
Visto que o servidor irá agregar tanto o site da Dexter como o Moodle no
domínio Mandark, e que ambos deverão possuir acesso externo, faremos o
ambiente na máquina “DMZ”. Apenas o MySQL ficará na máquina “Datacenter”.
Inicie ambas e vamos fazer a instalação do WebServer e SGBD, lembrando que
precisamos desabilitar a proteção contra execução de arquivos no /tmp. Após a
instalação, ative a proteção novamente. Execute na máquina “DMZ”:
http://192.168.X.3
Capítulo 9 Servidor Apache - 210
A variável "ServerRoot" define o local onde o Apache deve procurar por seus
arquivos de configuração. No exemplo abaixo, os arquivos de configuração serão
procurados em "/etc/apache2":
ServerRoot /etc/apache2
DocumentRoot /var/www
O usuário e grupo que executa o apache são definidos pelas variáveis abaixo:
User $APACHE_RUN_USERS
Group $APACHE_RUN_GROUP
ErrorLog /var/log/apache2/error.log
• %l - Hífen;
• %t - Horário de acesso;
Capítulo 9 Servidor Apache - 212
• %r - Requisição solicitada;
Para testar o PHP, crie um arquivo com o nome "index.php" (no diretório
/var/www/) com o conteúdo a seguir e abra no seu "browser":
<?
phpinfo()
?>
http://192.168.X.3/index.php
Vamos criar o usuário “webdesign” para ter acesso ao nosso site e ao Moodle.
9.11. VirtualHost?
Finalmente temos que ativar os dois sites no Apache para que eles possam
subir quando digitarmos seu domínio na URL:
root@dmz:~# apache2ctl -S
VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80 is a NameVirtualHost
default server dmz.dexter.com.br (/etc/apache2/sites-
enabled/000-default:1)
port 80 namevhost dmz.dexter.com.br (/etc/apache2/sites-
enabled/000-default:1)
port 80 namevhost www.dexter.com.br (/etc/apache2/sites-
enabled/dexter.com.br:1)
port 80 namevhost www.mandark.com.br (/etc/apache2/sites-
enabled/mandark.com.br:1)
Syntax OK
No Navegador, digite:
http://www.mandark.com.br
Instalação do sistema.
Capítulo 9 Servidor Apache - 225
Veja que o módulo SSL está habilitado para “ouvir” na porta 443:
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule>
Explicando:
Ative o “mod_rewrite” para que, toda vez que alguém acessar seu site, seja
automaticamente redirecionado para o site com HTTPS ativado:
http://www.dexter.com.br
Clique em “Obter Certificado”, depois deve ticar a opção “Salvar esta exceção
permanentemente” e por último em “Confirmar exceção de segurança”.
Capítulo 9 Servidor Apache - 234
root@dmz:~# a2enmod bw
Module bw already enabled
Exemplo:
Exemplo:
Exemplo:
Exemplo:
Limitando todos os usuários da rede local para 1000 kbps com um mínimo de
50 kbps e arquivos maiores que 500 kb para 50kbps:
Capítulo 10
Servidor FTP
10.1. Objetivos
10.2. Cenário
Em relação ao modo de conexão do servidor FTP, ele pode atuar como servidor
ativo ou passivo. No modo ativo, os comandos são enviados por uma porta alta
(acima de 1024) pelo cliente e são recebidas pela porta 21 no servidor, enquanto
que os dados são transmitidos pelo servidor ao cliente através da porta 20.
Neste modo, um firewall mal configurado pode dar uma falsa sensação de
funcionamento do FTP, pois a conexão e os comandos FTP funcionarão normalmente,
porém, na hora da transferência de arquivos, ocorrerá uma falha de desconexão ou
time out, dependendo do tipo de servidor.
momento, o cliente avisa ao servidor que ele deve utilizar o modo passivo através do
comando "PASV", e então os dados serão enviados utilizando portas altas tanto pelo
cliente quando pelo servidor. Neste caso, não temos mais problemas com o "Firewall"
no lado do cliente, porém, temos que habilitar a utilização de portas altas no servidor,
o que pode gerar outros problemas. Felizmente, na configuração do servidor "FTP"
podemos especificar o "range" de portas que o servidor deve utilizar, minimizando
assim o problema no lado do servidor.
No nosso servidor FTP vamos desativar o modo Anonymous, pois ele será
usado apenas pelo webdesigner pode fazer upload dos arquivos da empresa
DEXTER. O usuário root não poderá fazer acesso ao servidor FTP. Para esta
configuração, iremos utilizar a máquina “DMZ”.
Recapitulando...
A plataforma RedHat utiliza o "vsftpd" por padrão.
10.5. Laboratório
anonymous_enable=No
## Não permitir que o usuário veja arquivos que não sejam seus
chroot_local_users=YES
/srv/www/dexter
Caso você queira bloquear mais algum usuário para que ele não acesse o
servidor FTP, coloque o nome dele no arquivo!
Agora vamos fazer alguns testes de acesso ao FTP, mas antes instale os clientes
FTP, tanto para o modo texto como para o gráfico. Execute na máquina “Squeeze”:
Host: ftp.dexter.com.br
Usuário: webdesign
Senha: 123456
Porta: 21
Capítulo 10 Servidor FTP - 248
Capítulo 11
Servidor Postfix
11.1. Objetivos
11.2. Cenário
Hoje em dia é muito raro uma empresa não possuir uma conta de e-mail! A
comunicação proporcionada por esta ferramenta é muito abrangente, por isso a
empresa DEXTER COURIER precisa que cada colaborador tenha seu e-mail. Como
ela não tem interesse em pagar um plano de hospedagem e deixar seu servidor de e-
mail nas mãos sabe-se lá de quem, quer que ele ele seja instalado e configurado
dentro de seu DataCenter. Além disto, precisa de segurança na autenticação dos
usuários e uso de protocolo seguro em relação aos e-mails que sua equipe irá utilizar.
O que é um MTA?
O que é um MUA?
O que é um MDA?
O que é o SMTP?
11.7. Laboratório
Aceite remover os pacotes do exim4 para continuar com a instalação. Irá surgir
a tela abaixo, então selecione “Site Internet”, onde o e-mail será enviado e recebido
utilizando o protocolo SMTP.
Capítulo 11 Servidor Postfix - 254
Desvantagens:
Desvantagem:
Agora que temos o servidor ativado, devemos criar os usuários que usarão os
serviços de correio eletrônico. Para isso, utilize um script com base na lista utilizada
na criação dos usuários do Samba:
Após a inclusão dos usuários, vamos realizar alguns testes usando o telnet:
data
354 End data with <CR><LF>.<CR><LF>
subject: Teste de e-mail
Nosso MTA é dezzzzzzzz...
.
250 2.0.0 Ok: queued as 4E20069
quit
221 2.0.0 Bye
Connection closed by foreign host.
root@dmz:~# mailq
-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------
E96607C9 2218 Thu Aug 11 20:09:18 MAILER-DAEMON
(host mx.matrix.com.br[200.196.28.57] refused to talk to me: 450 4.7.1
Client host rejected: cannot find your hostname, [187.37.193.136])
neo@matrix.com.br
-- 2 Kbytes in 1 Request.
Capítulo 11 Servidor Postfix - 258
O que é o POP?
Para coletar suas mensagens, o usuário pode utilizar o protocolo POP (Post
Office Protocol). O POP é mais antigo. Através do POP o usuário baixa as
mensagens para seu computador local e as exclui do servidor. A desvantagem é que,
se o usuário desejar acessar suas mensagens de outros locais, não poderá fazer. O
POP não é utilizado para armazenamento permanente de mensagens. A porta 110 é
padrão por este protocolo. Quando implementada uma camada de segurança ao POP,
deverá trabalhar na porta 995.
O que é o IMAP?
Vamos agora criar as caixas postais. Para isto vamos criar uma script:
Reinicie os serviços :
Message-ID: <4e447698.M8zZc0OB8yim8VHd%mandarkglory@dexter.com.br>
User-Agent: Heirloom mailx 12.4 7/29/08
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
)
a OK FETCH completed.
a OK FETCH completed.
a fetch 1 rfc822.text <<<------ Selecionar corpo da mensagem
* 1 FETCH (RFC822.TEXT {25}
Reuniao amanha as 15hs.
)
a OK FETCH completed.
a logout <<<------ Comando para deslogar
* BYE Courier-IMAP server shutting down
a OK LOGOUT completed
Connection closed by foreign host.
Se você conseguir ler as mensagens, significa que o seu servidor está pronto
para receber e transmitir mensagens.
Podemos criar "aliases" (apelidos) para que um usuário possa receber vários e-
mails diferentes na mesma conta. Edite o arquivo de alias e crie um para o seu
usuário, no formato "usuario_de_alias: usuario_real":
ou
root@dmz:~# newaliases
root@dmz:~# squirrelmail-configure
Selecione a opção 1:
Capítulo 11 Servidor Postfix - 266
Selecione a opção 1:
<VirtualHost *:443>
DocumentRoot /usr/share/squirrelmail
ServerName webmail.dexter.com.br
ErrorLog /var/log/apache2/webmail-error.log
CustomLog /var/log/apache2/webmail-access.log common
SSLEngine on
SSLCertificateFile /etc/ssl/dexter.crt
SSLCertificateKeyFile /etc/ssl/dexter.key
</VirtualHost>
Reinicie o Apache:
Stopping : default.
Starting : default.
Altere a permissão do arquivo de chave para que somente o root tenha acesso:
DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:BR
State or Province Name (full name) [Some-State]:São Paulo
Locality Name (eg, city) []:São Paulo
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Dexter
Organizational Unit Name (eg, section) []:Depto. TI
Common Name (eg, YOUR name) []:Admin
Email Address []:root@dexter.com.br
Durante a instalação irá surgir uma tela como a da próxima figura, avisando
Capítulo 11 Servidor Postfix - 277
Reinicie o Postfix:
Capítulo 12
Servidor OpenLDAP
12.1. Objetivos
• O que é um LDIF?
12.2. Cenário
Este é um protocolo de rede que roda sobre o TCP/IP que permite organizar os
recursos de rede de forma hierárquica, como uma árvore de diretório, onde temos
primeiramente o diretório raiz, em seguida a rede da empresa, o departamento e por
fim o computador do funcionário e os recursos de rede (arquivos, impressoras, etc.)
compartilhados por ele. A árvore de diretório pode ser criada de acordo com a
necessidade.
O LDAP pode ser usado em qualquer tipo de rede TCP/IP e é um padrão aberto,
permitindo que existam produtos para várias plataformas. Uma das suítes mais
usadas é o OpenLDAP (GPL), que pode ser baixado no: http://www.openldap.org
O que é o OpenLDAP?
Como o LDAP, utiliza o trafego de dados via TCP/IP, podendo ser implementado
em diversas plataformas em redes IPV4 e IPV6, possibilitando também autenticação,
mecanismos de segurança no uso de certificados e criptografia, podendo ser
configurado para restringir acesso a "socket layer", ter múltiplas instâncias de banco
de dados, múltiplas "threads", permite replicação e configuração do serviço de
acordo com a sua necessidade através dos "schemas".
O que é um diretório?
Resumindo...
12.5. Laboratório
allow bind_v2
pidfile /var/run/slapd/slapd.pid
argsfile /var/run/slapd/slapd.args
loglevel none
modulepath /usr/lib/ldap
moduleload back_bdb
Capítulo 12 Servidor OpenLDAP - 288
sizelimit 500
tool-threads 1
backend bdb
database bdb
suffix “dc=dexter,dc=com,dc=br”
rootdn “cn=admin,dc=dexter,dc=com,dc=br”
rootpw {SSHA}yb9Xs4qy9rtG4CSd/hph62qo6X1LFxmW
directory “/var/lib/ldap”
dbconfig set_cachesize 0 2097152 0
dbconfig set_lk_max_objects 1500
dbconfig set_lk_max_locks 1500
dbconfig set_lk_max_lockers 1500
index objectClass eq
lastmod on
checkpoint 512 30
access to attrs=userPassword,shadowLastChange
by dn="cn=admin,dc=dexter,dc=com,dc=br" write
by anonymous auth
by self write
by * none
access to *
by dn="cn=admin,dc=dexter,dc=com,dc=br" write
by * read
root@datacenter:~# rm -r slapd.d
Crie um novo:
Agora altere o dono e grupo para openldap para o novo diretório slapd.d:
padrão do OpenLDAP. É desta maneira que os dados devem ser incluídos no sistema
LDAP quando não temos nenhuma ferramenta de administração.
root@datacenter:~# cd /usr/share/migrationtools/
root@datacenter:/usr/share/migrationtools# ./migrate_passwd.pl \
/etc/passwd /etc/ldap/users.ldif
root@datacenter:/usr/share/migrationtools# ./migrate_group.pl \
/etc/group /etc/ldap/groups.ldif
root@datacenter:/usr/share/migrationtools# ./migrate_base.pl > \
/etc/ldap/base.ldif
dn: dc=dexter,dc=com,dc=br
dc: dexter
objectClass: top
objectClass: domain
-x – autenticação simples
-D – específica o domínio
-f – indica o arquivo ldif
-W – chama o prompt de autenticação
-w senha – executa o comando sem solicitar a senha
objectClass: shadowAccount
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/false
uidNumber: 1002
gidNumber: 2001
homeDirectory: /srv/samba/homes/dexterclem
# search result
search: 2
result: 0 Success
# numResponses: 2
# numEntries: 1
homeDirectory: /srv/samba/homes/mandarkglory
loginShell: /bin/bash
# search result
search: 2
result: 0 Success
Vamos aprender agora uma forma alternativa (e mais fácil!) para administrar a
base OpenLDAP, através do phpldapadmin. Você vai precisar ter o Apache instalado
no servidor do OpenLDAP e mais alguns pacotes mostrados abaixo:
http://192.168.X.2/phpldapadmin/index.php
Capítulo 12 Servidor OpenLDAP - 294
root@datacenter:~# cp /root/backup_ldap.ldif \
/root/backup_ldap_copia.ldif
DICA:
Para ter certeza que o seu backup é seguro, é importante realizá-lo em um
período livre de gravações, ou com o servidor slapd desligado.
root@datacenter:~# slapcat
Pare o servidor:
Inicie o slapd:
Execute o comando slapcat novamente para termos certeza que o backup foi
restaurado:
root@datacenter:~# slapcat
Capítulo 12 Servidor OpenLDAP - 297
Capítulo 13
13.1. Objetivos
13.2. Cenário
Muitas empresas empregam o uso de PROXY, seja para fazer cache, seja para
filtrar conteúdo. A implementação do servidor proxy Squid é amplamente utilizada,
possibilitando assim suprir as necessidades da empresa Dexter. Além disto, faremos
uso do SquidGuard, um poderoso filtro de conteúdo.
navegador web não sabe que está passando por um proxy e também teremos que
fazer "NAT" para acessos a sites que utilizam "HTTPS", já que o "Squid" não sabe
lidar com este tipo de conteúdo quando está trabalhando de forma transparente.
As ACLs (Access Control List) são regras para navegação via proxy. Vale
ressaltar que as ACLs são lidas na ordem em que aparecem e podem ser combinadas,
tome muito cuidado ao criar ou alterar uma nova regra. Veja a documentação online
no endereço http://www.squid-cache.org para as configurações não citadas!
Já nesta outra forma será definido um arquivo para adição dos parâmetros
dispostos, um por linha, utilizado para regras com muitos parâmetros.
Todas as ACLs são tratadas com CASE-SENSITIVE. Para definir como CASE-
Capítulo 13 Servidor Proxy com Squid - 301
• src => ACL do tipo src (origem) trata sobre um determinado IP ou uma faixa
de IP com que o cliente chega ao Proxy.
• time => ACL do tipo time (tempo) trata de um determinado momento baseado
em dia da semana e hora.
• url_regex => ACL do tipo url_regex (expressão regular na URL) trata de uma
determinada entrada na URL. Pode-se fazer muitas regras baseadas em
Capítulo 13 Servidor Proxy com Squid - 302
• port => ACL do tipo port (porta) trata da porta de destino da navegação.
"ACL'S" de origem e destino podem ser cobrados na LPI-2, bem como sua
forma de utilização.
Esses são os tipos básicos de "ACL's", porém uma "ACL" sozinha não faz
absolutamente nada. Durante o laboratório veremos como tornar as "ACL's" úteis
com configurações que permitem utilizá-las para bloqueio e liberação de sites,
domínios e horários.
• http_access => Permite ou nega acessos baseados nas ACLs pré definidas. É
utilizado seguido de allow ou deny. Se a ACL for precedida de um ponto de
exclamação significa que será a negação da ACL. As regras serão lidas na
ordem em que aparecem.
Seguem exemplos :
# squid -k reconfigure
13.11. Laboratório
case com o nosso endereço IP. Vamos fazer isso. Vamos então configurar nosso proxy
com as regras abaixo:
maximum_object_size 700 MB
minimum_object_size 0 KB
Controlar o que deve ou não deve ser acessível na internet a partir da rede
interna é uma das opções mais interessantes oferecidas pelo "Squid". Então, para
que possamos entender como trabalhar com "ACL's", vamos criar o seguinte cenário:
Capítulo 13 Servidor Proxy com Squid - 308
qualquer "host" na minha rede deve ser impedido de navegar em qualquer domínio
".com", tendo como única exceção o site "www.globo.com". Como fazer isso?
Crie uma ACL com a rede de origem, uma ACL para domínios ".com" e uma
ACL para o domínio "globo.com". Insira as linhas abaixo da entrada “Minhas
ACL's” no “/etc/squid/squid.conf”:
2 3
Lembrete:
A ordem das ACL's não importa, porém, o "Squid" fará o filtro de acordo
com a ordem das regras de acesso configuradas por "http_access". Portanto
a ordem dos "http_access" importa, sim.
Lembre-se disso quando fizer "troubleshooting" ou criar novas regras.
• Whitelist - Uma lista de domínios que eu quero liberar, mas que casam com a
"blacklist".
...
###### Minhas ACL's ######
acl RedeDexter src 192.168.110.0/24
acl Internacional dstdomain .com
acl Globo dstdomain .globo.com
acl blacklist url_regex linux
acl whitelist dstdomain www.linux.com www.4linux.com.br
...
###### Minhas regras ######
http_access allow RedeDexter whitelist
http_access deny RedeDexter blacklist
http_access allow RedeDexter Globo
http_access deny RedeDexter Internacional
http_access allow RedeDexter
Reinicie o squid:
www.4linux.com.br
www.vivaolinux.com.br
www.linux.com
www.br-linux.org
...
##### Minhas ACL's ######
acl RedeDexter src 192.168.110.0/24
acl Internacional dstdomain .com
acl Globo dstdomain .globo.com
acl blacklist url_regex linux
acl whitelist dstdomain www.linux.com www.4linux.com.br
acl password proxy_auth REQUIRED
Na versão do Debian Squeeze o Sarg não está no repositório oficial, por isto
teremos que inserir o repositório backports. O que seria então backports? O
backports é um repositório paralelo ao projeto Debian. Ele é mantido pelos
desenvolvedores e pela equipe de segurança do Debian. Esse repositório reúne novos
programas e novas versões de programas compilados sobre o stable.
Depois atualize:
Como você pode perceber, todos os backports vem desativados por default. Por
isto tivemos que informar qual o tipo de repositório a ser utilizado!
Reinicie o Apache:
http://192.168.X.1/squid-reports
13.17. Squidguard
root@firewall:~# cd /var/lib/squidguard/db/
root@firewall:~# wget -c \
http://squidguard.mesd.k12.or.us/blacklists.tgz
Capítulo 13 Servidor Proxy com Squid - 320
root@firewall:~# wget -c \
http://www.shallalist.de/Downloads/shallalist.tar.gz
root@firewall:~# tar xzvf blacklists.tgz
root@firewall:~# tar xzvf shallalist.tar.gz
root@firewall:~# rm blacklists.tgz
root@firewall:~# rm shallalist.tar.gz
Vamos usar listas para bloquear a maioria dos sites pornográficos, redes sociais
e proxys usados para acessar páginas indevidas. Insira no final do arquivo:
dest proxy {
domainlist proxy/domains
urllist proxy/urls
}
acl {
default {
pass !porn !proxy all
redirect http://www.dexter.com.br
}
}
Em seguida, temos as ACLs porn e proxy, cada uma incluindo os dois arquivos
da categoria correspondente dentro das listas. Para que fossem adicionadas mais
seções, bastaria adicionar uma nova ACL para cada uma.
No final, a opção "pass" indica como as ACLs serão usadas. No exemplo, a linha
"pass !porn !proxy all" indica que os acessos às páginas citadas nas listas devem ser
bloqueados, mas o acesso a outras páginas será aceito.
Concluindo, sempre que você incluir novas listas, execute o seguinte comando:
redirect_children 8
redirector_bypass on
13.18. Delay_pools
Este tópico irá tratar como o Squid poderá gerenciar o uso da banda de
internet. O Squid pode definir o quanto cada usuário pode usar e com isso manter
uma parte do link livre para os demais. Para isso ele utiliza um recurso chamado
"delay pools".
Imagine, por exemplo, que você tem um link de 1 megabit para uma rede com
20 usuários. Se cada um puder baixar o que quiser, é bem provável que a rede ficará
saturada em determinados horários implicando em uma navegação lenta para o resto
dos usuários.
Nas regras do Squid sempre usamos bytes, por isso lembre-se de fazer a
conversão, dividindo o valor em kbits por 8 e multiplicando por 1024 para ter o valor
em bytes. Neste caso, o arquivo de configuração ficaria assim:
Vamos agora fazer com que o computador do Presidente da Dexter fique livre
das restrições do proxy. Antes da ACL RedeDexter, coloque o que está em negrito:
Capítulo 13 Servidor Proxy com Squid - 325
Reinicie o serviço:
Capítulo 14
Firewall
14.1. Objetivos
• Definição de TTL;
14.2. Cenário
O que é um firewall?
Os sistema GNU/Linux com Kernel 2.6 trabalham com o "Iptables" para fazer o
gerenciamento de regras de Firewall. Lembrando que o "Iptables" é apenas um
"frontend" que gerencia o suporte "Netfilter" no "Kernel".
Características do iptables :
• Filtro de pacotes statefull => isso significa que o iptables é capaz de atuar
sobre as camadas do protocolo TCP;
- IP de origem
- IP de destino
- Porta de origem
- Porta de destino
- Códigos de verificação
- Número do pacote
Existem 65.536 portas TCP e UDP. Elas são numeradas de 0 e 65.535. As portas
baixas estão na faixa entre 0 a 1023. Elas estão reservadas para serviços mais
conhecidos como: servidor web, ftp, ssh, telnet, servidores de e-mail,
compartilhamento de arquivos, como, por exemplo, Samba, NFS etc. Portas altas
estão faixa acima de 1023.
Relembrando...
O cliente responderá então com outro pacote "ACK", o que abre oficialmente a
conexão. Daí é iniciada a transferência dos dados, que como já dito anteriormente
são organizados em pacotes. Para cada pacote recebido, a máquina cliente irá enviar
um pacote de confirmação. Se um pacote se perder, ela solicita a retransmissão.
Depois que todos os dados são transmitidos, o servidor envia um pacote "FYN" que
avisa que não tem mais nada a transmitir. O cliente responde com outro pacote
"FYN" e a conexão é oficialmente encerrada.
SYN
SYN/ACK
ACK
Porta indisponível no servidor:
SYN
SYN/ACK
RST
• SYN: solicita a abertura da conexão ou confirma o recebimento e avisa que a
porta está disponível;
14.6. TTL
Roteadores Ciclades = 30
Linux = 64
Windows = 128
Cisco = 255
Linux + Iptables = 255
11 * * *
...
30 * * *
Cada linha que aparece um nome é um roteador por onde o pacote passa.
Notem que ele passa por vários lugares! E quando pingo para o site da uol, ele dá um
valor de TTL 54 + 10 hops dos pacotes = 64.
Por padrão o comando traceroute procura por até 30 hops, mesmo que ele não
encontre nada, que é o caso de quando aparece ***.
Mas na linha de hop 8 por exemplo, apareceu *** e depois aparaceu um nome
na linha 9. Provavelmente temos uma máquina que está com o ping bloqueado ou
então uma máquina com firewall, portanto ela não aparece quando o comando
traceroute faz as buscas.
"connection tracking".
Cada uma dessas tabelas possui o que chamamos de "chains". É nelas onde vão
ser definidas as regras para o nosso "firewall". A tradução literal seria "correntes",
assim cada tabela teria uma corrente, onde cada elo corresponderia a uma regra.
Local onde vão ser definidas as regras para o nosso firewall. Cada Tabela
possui suas CHAINS. As da tabela filter são as seguintes:
Parâmetros:
Alvos:
14.10. Laboratório
Vamos montar nosso "firewall", mas antes verifique como estão configuradas as
políticas básicas que estão definidas por padrão:
Para deixar esse valor fixo, devemos deixar esse parâmetro dentro de
/etc/sysctl.conf. Basta descomentar a linha 28:
Segue aqui um "script" com todas as regras necessárias para nosso servidor
entrar em produção. Esse "script" pode ser adicionado aos níveis de execução do
sistema, para ser carregado sempre que a máquina for ligada.
# Limpando as regras
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
echo 0 > /proc/sys/net/ipv4/ip_forward
# Carregando módulos
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
## Definição de variaveis
IPFIREWALL="192.168.X.1"
IPDATACENTER="192.168.X.2"
IPDMZ="192.168.X.3"
IPVALIDO="200.100.X.1"
INTERNA="eth1"
EXTERNA="eth0"
NET="0/0"
PA="1024:65535"
REDE="192.168.110.0/24"
ativar() {
## Fechando as Políticas
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
## Liberando LoopBack
iptables -A OUTPUT -d 127.0.0.1 -j ACCEPT
Capítulo 14 Firewall - 338
## Estabilizando as conexões
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
## Ativando Forward
echo 1 > /proc/sys/net/ipv4/ip_forward
--to-destination $IPDMZ:25
desativar() {
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
echo 0 > /proc/sys/net/ipv4/ip_forward
echo "Firewall destativado!"
}
case "$1" in
"start") ativar ;;
Capítulo 14 Firewall - 342
"stop") desativar ;;
*) echo "Use start para ativar ou stop para desativar o firewall";;
esac
Para que ele seja iniciado junto com sistema quando a máquina for ligada,
podemos colocar o "script" nos níveis de execução:
Todas as regras que são feitas ficam na memória do computador. Caso ele seja
reiniciado, perderemos todas elas. Podemos utilizar os comandos "iptables-save" e
"iptables-restore", mas ele não é um "script" profissional.
Capítulo 14 Firewall - 343
Capítulo 15
Servidor OpenVPN
15.1. Objetivos
15.2. Cenário
Por exemplo, supomos que você possui um software de geração de notas fiscais
e os funcionários acessam este terminal via "telnet", que é um protocolo que não
implementa criptografia. Para corrigir esta situação e reforçar a segurança deste
ambiente, você poderia configurar uma "VPN" entre o computador dos usuários e o
servidor, melhorando assim a segurança deste serviço.
15.7. Laboratório
root@squeeze:~# cd /etc/openvpn
root@squeeze:/etc/openvpn# scp -P50000 \
192.168.X.1:/etc/openvpn/chave .
Vamos deixar o OpenVPN sem privilégios de root . Para isto adicione no final
da configuração do servidor e cliente as opções “user” e “group”, assim o
OpenVPN será executado como usuário nobody e grupo nogroup.
Para gerar os certificados e chaves, o OpenVPN traz junto à sua instalação uma
série de scripts chamados “easy-rsa”. Eles podem ser encontrados em
/usr/share/doc/openvpn/examples/easy-rsa/2.0/
root@firewall:~# ls /usr/share/doc/openvpn/examples/easy-rsa/2.0/
-rwxr-xr-x 1 root root 121 Mar 31 2010 build-ca
-rwxr-xr-x 1 root root 354 Mar 31 2010 build-dh
-rwxr-xr-x 1 root root 190 Mar 31 2010 build-inter
-rwxr-xr-x 1 root root 165 Mar 31 2010 build-key
-rwxr-xr-x 1 root root 159 Mar 31 2010 build-key-pass
Capítulo 15 Servidor OpenVPN - 352
Veja que na lista de scripts cada um tem uma função específica para criação de
certificados e chaves. Vamos copiar o diretório com os scripts para nossa instalação
do OpenVPN :
root@firewall:~# cp -a /usr/share/doc/openvpn/examples/easy-rsa/2.0 \
/etc/openvpn/
root@firewall:~# cd /etc/openvpn/2.0
root@firewall:/etc/openvpn/2.0 # mkdir keys
commonName :PRINTABLE:'server'
emailAddress :IA5STRING:'root@dexter.com.br'
Certificate is to be certified until Aug 16 08:41:49 2021 GMT (3650
days)
Sign the certificate? [y/n]:y
root@firewall:/etc/openvpn/2.0# ./build-dh
Generating DH parameters, 2048 bit long safe prime, generator 2
This is going to take a long time
+............+.....................................+.................
+................................................+.......+...........
...........++......................+..................++*++*
root@firewall:/etc/openvpn/2.0/keys# ls d*.pem
-rw-r--r-- 1 root root 424 Ago 19 05:48 dh2048.pem
root@firewall:/etc/openvpn/2.0/keys#./build-key client
Generating a 2048 bit RSA private key
..........................................................+++
..................+++
writing new private key to 'client.key'
-----
You are about to be asked to enter information that will be
incorporated into your certificate request.
What you are about to enter is what is called a Distinguished Name or a
DN. There are quite a few fields but you can leave some blank
For some fields there will be a default value, If you enter '.', the
field will be left blank.
-----
Country Name (2 letter code) [BR]:BR
Capítulo 15 Servidor OpenVPN - 357
Faça a cópia dos arquivos abaixo via ssh para a máquina cliente.:
root@firewall:~# cd /etc/openvpn/2.0/keys
root@firewall:/etc/openvpn/2.0/keys#scp -P54000 client.key client.crt \
ca.crt root@192.168.X.10:/etc/openvpn
Execute no servidor:
Execute no cliente:
root@firewall:~# ifconfig
tun0 Link encap:Não Especificado Endereço de HW 00-00-00-00-00-
00-00-00-00-00-00-00-00-00-00-00
inet end.: 10.0.0.1 P-a-P:10.0.0.2 Masc:255.255.255.255
… e no cliente:
root@squeeze:~# ifconfig
tun0 Link encap:Não Especificado Endereço de HW 00-00-00-00-00-
00-00-00-00-00-00-00-00-00-00-00
inet end.: 10.0.0.2 P-a-P:10.0.0.1 Masc:255.255.255.255
Capítulo 15 Servidor OpenVPN - 359
REFERÊNCIAS
BIBLIOGRÁFICAS
JULIO CESAR NEVES. Programação em Shell Linux. 6.ª edição. Brasport.
2006