Académique Documents
Professionnel Documents
Culture Documents
Sumrio
Captulo 1
Ajustes Iniciais 8
1.1. Objetivos 8
1.2. Introduo terica 8
1.3. Configurando a rede 8
1.4. Configurando a resoluo de nomes 9
1.5. Configurao do hostname 9
1.6. Configurando o repositrio de rede 10
1.7. Hardening 11
1.8. Remover servios desnecessrios 14
1.9. Definindo variveis e alias de sistemas 15
1.10. Funcionamento do Sistema 16
1.11. Exerccios Tericos 18
1.12. Laboratrio 19
Captulo 2
PAM 20
2.1. Objetivos 20
2.2. Introduo terica 20
2.3. Mdulos 21
2.4. Controles 21
2.5. Prtica dirigida 22
2.6. Exerccios Tericos 31
2.7. Laboratrio 31
Captulo 3
RAID 33
3.1. Objetivos 33
3.2. Introduo terica 33
3.2.1. Nveis de RAID 36
3.3. Prtica dirigida 40
3.3.1. Definindo as Parties 40
3.3.2. Trabalhando com MDADM 41
3.3.3. Criando o RAID 41
3.3.4. Verificando o funcionamento do RAID: 42
3.3.5. Administrando o RAID 43
3.4. Exerccios Tericos 44
3.5. Laboratrio 45
Captulo 4
LVM 46
4.1. Objetivos 46
4.2. Introduo terica 47
4.3. Como funciona o LVM 47
4.4. Definindo as Parties 49
4.5. Prtica Dirigida 50
4.5.1. Usando o LVM 52
4.5.2. Administrando o LVM 53
4.5.3. Troubleshooting 54
4.6. Exerccios Tericos 56
4.7. Laboratrio 58
Captulo 5
DHCP 59
5.1. Objetivos 59
5.2. Introduo terica 60
5.3. Prtica dirigida 62
5.3.1. Configurando um servidor DHCP 62
5.3.2. Principais diretrizes do arquivo de configurao 63
5.3.3. Configurando os clientes DHCP 63
5.4. Fixar IP via DHCP 64
5.5. Exerccios tericos 66
5.6. Laboratrio 66
Captulo 6
FTP 67
6.1. Objetivos 67
6.2. Introduo terica 68
6.3. Prtica dirigida 69
6.4. Comandos FTP 71
6.5. Exerccios tericos 77
6.6. Laboratrio 77
Captulo 7
NFS 78
7.1. Objetivos 78
7.2. Introduo terica 79
7.3. Prtica Dirigida 79
7.3.1. Instalao e configurao do NFS 79
7.4. Exerccios tericos 83
7.5. Laboratrio 84
Captulo 8
Servidor SAMBA 85
8.1. Objetivos 85
8.2. Introduo terica 86
8.3. Prtica Dirigida 86
8.4. Samba como controlador de Domnio Primrio 90
8.5. Cadastrando usurios no PDC 92
8.6. Inserindo uma mquina cliente Windows XP no domnio 94
8.7. Exerccios Tericos 102
8.8. Laboratrio 102
Captulo 9
Domain Name System 103
9.1. Objetivos 103
9.2. Introduo terica 104
9.2.1. Caractersticas 104
9.3. Resoluo 106
9.3.1. Resoluo Recursiva 106
9.3.2. Resoluo Iterativa 107
9.4. Arquivo /etc/hosts 108
9.5. Ferramentas de consulta 109
9.6. Prtica dirigida 110
9.7. BIND9 112
9.8. Servidor cache 113
9.9. Restringindo consultas 115
9.10. Servidor de zonas 116
9.10.1. Tipos de zonas e Registros 116
9.11. Configurao do Servidor BIND9 119
9.12. Exerccios tericos 124
9.13. Laboratrio 124
Captulo 10
Apache 125
10.1. Objetivos 125
10.2. Introduo terica 126
10.3. MPM Worker e MPM PreFork 126
10.3.1. MPM Pre Fork 127
10.3.2. MPM Worker 127
10.4. Prtica dirigida 127
10.4.1. Instalao do Apache2 127
10.4.2. Ajustes dos mdulos Worker e PreFork 129
10.5. Segurana 131
10.6. Suporte a PHP 131
10.7. Domnios virtuais 133
10.8. Suporte a HTTPS 135
10.9. Exerccio terico 137
10.10. Laboratrio 138
Captulo 11
Postfix 139
11.1. Objetivos 139
11.2. Introduo terica 140
11.3. Caractersticas do Postfix 141
11.4. Prtica dirigida 142
11.5. SMTP 144
11.6. Courier POP3 e Courier IMAP 145
11.6.1. Criando caixas postais: 147
11.7. Criando alias no Postfix 148
11.8. Exerccios tericos 149
11.9. Laboratrio 150
Captulo 12
Web Proxy com Squid 151
12.1. Objetivos 151
12.2. Introduo Terica 152
12.3. Funcionamento de um Web Proxy 152
12.4. Proxy Manualmente Configurado 153
12.5. Proxy Transparente 153
12.6. Access Control Lists 154
12.7. Tipos comuns de ACL's 155
12.7.1. Sintaxe das ACLS 155
12.8. ACL's de origem 155
12.9. ACL's de destino 156
12.10. ACL's de horrio 156
12.11. Filtros 156
12.12. Prtica Dirigida 157
12.13. Configuraes Iniciais 158
12.14. Filtrando acessos com Squid 159
12.15. Blacklist e Whitelist 161
12.16. Autenticao NCSA 162
12.17. Auditoria de acesso com SARG 163
12.18. Exerccios Tericos 164
12.19. Laboratrio 165
Captulo 13
OpenLDAP 166
13.1. Objetivos 166
13.2. Introduo terica 167
13.3. Prtica dirigida 168
13.4. Configurando um cliente LDAP 176
13.5. Acessando o OpenLDAP via browser com PhpLdapAdmin 179
13.6. Autenticando o Squid na base de usurios LDAP 180
13.7. Exerccio terico 181
13.8. Laboratrio 181
Captulo 14
Firewall 182
14.1. Objetivos 182
14.2. Introduo terica 183
14.3. Compreendendo as polticas bsicas e o conceito das excees 184
14.4. Prtica dirigida 185
14.5. Firewall como gateway de rede 189
14.6. Script de firewall 191
14.7. Exerccios tericos 193
14.8. Laboratrio 194
Captulo 15
OpenVPN 195
15.1. Objetivos 195
15.2. Introduo Terica 196
15.3. Prtica Dirigida 196
15.3.1. Configurando o servidor 196
15.4. Configurando o cliente 197
REFERNCIAS
BIBLIOGRFICAS 199
1.
Ajustes Iniciais
2. Objetivos
Configurar a rede;
Hardening do servidor.
1. Configurando a rede
Vamos nos certificar que o arquivo /etc/network/interfaces est
corretamente configurado. Este arquivo muito importante para o funcionamento do
nosso servidor, neste arquivo podemos configurar as opes e endereos IPs que
podemos utilizar em nosso sistema:
# vim /etc/network/interfaces
1 # Interface Loopback
2 auto lo
3 iface lo inet loopback
4
RedHat:
# vim /etc/sysconfig/network/ifcfg-eth0
# vim /etc/resolv.conf
nameserver 4.2.2.2
1. Configurao do hostname
Em um servidor, a configurao correta do hostname e do arquivo hosts
essencial para eliminar problemas em servios de rede. Abra o arquivo
/etc/hostname, adicione o nome, onde x o nmero de sua mquina (caso esteja
errado):
# vim /etc/hostname
microX
# vim /etc/hosts
# vim /etc/apt/sources.list
# aptitude update
1. Hardening
O primeiro passo para proteger nosso servidor aps uma instalao, cuidar o
mximo possvel o sistema de arquivos.
Exemplo:
Dica de segurana: Use o comando pwgen para gerar suas senhas, ex:
pwgen -y. Iremos estudar Hardening mais a fundo no Treinamento
Segurana em Servidores Linux usando a ISO27002 415 .
Se eu tenho uma senha de root forte e eu tenho acesso fsico ao servidor, estou
seguro? No, pois ter acesso fsico ao servidor nos permite fazer praticamente
qualquer coisa com ele.
Precisamos manter nosso servidor sempre atualizado? Sim. Por que? Todo
software tem bugs de segurana e fundamental corrigi-los o quanto antes.
Tambm sumamente importante que voc esteja inscrito em listas de discusso que
enviam notificaes de segurana para a sua distribuio. A ideia manter-se
informado das atualizaes. Veja:
http://lists.debian.org/debian-security-announce/
https://rhn.redhat.com/errata/rhel-server-errata.html
# netstat -nltup
RedHat:
# chkconfig --list
# chkconfig --level 2345 portmap stop
O comando runlevel, mostra qual o nvel de inicializao no qual nos
encontramos. O arquivo que armazena nosso runlevel padro
/etc/inittab. A linha que define nosso runlevel id:2:initdefault. Neste
caso o runlevel 2.
# vim /etc/profile
# source /etc/profile
O comando source apenas executa o contedo do arquivo, neste caso, para
atualizar os alias e variveis.
1. Funcionamento do Sistema
Todos os itens que veremos agora j so bem conhecidos, mas so cobrados
na LPI.
# uname -r ; uname -a
# cat /proc/version
# cd /boot
# file vmlinuz-2.6.26-2-686
# du -sh vmlinuz-2.6.26-2-686
# cd /proc
# ls
# ps aux
# cat cpuinfo
# cat /etc/fstab
# cat /etc/mtab
# ls -l /dev
# ls -l /lib/modules
# lsmod
# modprobe -l
# cat /proc/modules
# ldconfig -p
# ls /lib
# cat /etc/ld.so.cache
6) Quais diretrios tem stick bit ativado? Quais problemas poderamos ter?
____________________________________________________________________________
____________________________________________________________________________
1. Laboratrio
1. Instale o htop para gerenciar os processos;
Foi pensando neste tipo de esforo que foi criado o mecanismo de autenticao
PAM - Pluggable Authentication Modules, que oferece uma camada de abstrao
para autenticao em sistemas nix. Assim, se quisermos adicionar um novo modelo
de autenticao via leitor de digitais, por exemplo, basta apenas instalar o mdulo do
PAM que oferea essa funcionalidade e configurar as aplicaes para trabalhar
com este mdulo, sem a necessidade de recriar ou reimplementar funes no
aplicativo.
http://www.kernel.org/pub/linux/libs/pam
2. Mdulos
O PAM trabalha com mdulos e controles, e cada tipo de mdulo prov uma
funcionalidade diferente dentro do sistema. Vamos comentar primeiro os seguintes
mdulos:
1. Controles
Alm dos mdulos, existem tambm os controles, os quais comentaremos a
seguir:
1. Prtica dirigida
1) Vamos verificar quais mdulos do PAM j esto instalados em nosso
sistema:
# ls /lib/security/
Como descobrir se sua aplicao tem suporte no PAM?
R: Basta utilizar o comando ldd.
Execute:
# ldd /bin/login
linux-gate.so.1 => (0xb7f8b000)
libpam.so.0 => /lib/libpam.so.0 (0xb7f53000)
libpam_misc.so.0 => /lib/libpam_misc.so.0 (0xb7f4f000)
libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7df0000)
libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb7dec000)
/lib/ld-linux.so.2 (0xb7f71000)
Veja as linhas:
# ls -l /etc/pam.d
# ls /etc/pam.d
# vim /etc/pam.d/login
auth requisite pam_nologin.so
# touch /etc/nologin
# vi /etc/securetty
tty1
# tty2
# tty3
# tty4
# tty5
# tty6
# tty7
# tty8
# tty9
# tty10
# tty11
# tty12
Uma maneira prtica de usar o PAM fazermos com que o usurio root no
tenha acesso direto ao login, forando a logar com usurio comum e depois executar
su para virar root.
# vim /etc/pam.d/login
account requisite pam_time.so
# vim /etc/security/time.conf
login;*;root;!Al0000-2359
Os campos acima so:
login - Servio que ir ser controlado
* - Terminal
root - Usurio
Al0000-2359 - Dias e horrios de filtragem.
O dia da semana especificado em duas letras, em ingls:
Mo - Segunda-feira
Tu Tera-feira
We - Quarta-feira
Th - Quinta-feira
Fr - Sexta-feira
Sa - Sbado
Su - Domingo
Wk - Somente sbado e domingo (fim de semana)
Wd - Segunda a sexta-feira
Al - Todos os dias
O sinal "!" especifica uma exceo.
A faixa de horas especificada aps o dia no formato
HHMM-HHMM.
Efetue login com o usurio root em outro terminal e veja que no ser possvel
efetuar o login.
Com o PAM, podemos limitar quais usurios podero ter acesso a utilizar o
comando su. Para isso, crie um grupo chamado admins para os usurios que
podero ter acesso a fazer o su.
# groupadd admins
8) Agora vamos adicionar o usurio aluno ao grupo admins:
# vim /etc/pam.d/su
auth required pam_wheel.so group=admins
Para fazer o teste, logue-se como o usurio que pertence ao grupo admins
e tente virar root usando o su.
$ su -
SULOG_FILE /var/log/sulog
# su - aluno
14) Veja o contedo do arquivo de log no terminal 12:
CTRL+ALT+F12
adduser caio
login;tty*;caio;Al0800-1900;floppy
Essa sintaxe quer dizer que o usurio caio s pode ter acesso ao grupo floppy
se efetuar o login entre 08:00 da manha e 19:00 da noite.
Outro exemplo:
login;tty*;*;SaSu0000-2400;audio games
Essa sintaxe quer dizer que todos os usurios podem ter acesso ao grupo
games e audio aos sbados e domingos.
# vi /etc/pam.d/login
# vi /etc/usuarios
# Usurios que podem fazer login
aluno
caio
Faa um teste, veja se o usurio caio pode logar e depois faa outro teste
com um usurio comum.
# vi /etc/pam.d/sshd
account required pam_time.so
# vi /etc/security/time.conf
sshd;*;aluno;Al0800-1800
Dessa forma, limita-se o usurio aluno para utilizar somente dois terminais
consecutivos.
23) Logado com o usurio aluno, perceba que ele no pode criar
arquivos maiores que 1000KB (fsize 1000).
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
1. Laboratrio
1. Permita o login de root apenas no tty6;
2. Crie o usurio "manutencao" faa com ele possa efetuar login via ssh, apenas
de segunda a sexta feira, das 8:00 as 18:00.
1.
RAID
2. Objetivos
Entender os principais nveis de RAID;
Configurar RAID-1;
1. Introduo terica
Um servidor deve sofrer muitas manutenes durante seu perodo de uso? No!
Um servidor bem configurado e otimizado deve funcionar muito bem durante anos
com poucas intervenes. Um servidor deve ser bem mais estvel e confivel do que
um desktop.
Qual a vida mdia til de um HD? Em torno de 5 anos. Pode-se ter sorte e ele
funcionar por mais algum tempo bem. Depende da marca e dos seus cuidados com o
disco.
O que poderia ser feito para garantir que esse servidor continue operando
caso um disco pife? Usar RAID.
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 rpido e independente do sistema operacional. A principal desvantagem,
que a placa controladora se torna um SPOF - Single Point of Failure, ou seja,
necessrio ter uma controladora de discos igual ou compatvel com a que
voc possui para o caso de falhas neste hardware.
1. Nveis de RAID
Caractersticas do RAID 0:
* Excelente gravao e leitura;
* Aproveitamento total de espao;
* Nenhuma redundncia.
Caractersticas do RAID 1:
* Redundncia: se um dos discos falhar o sistema continua funcionando;
* Voc vai precisar de 2 Hds, mas s vai usar a rea til de um;
* Reduz um pouco o desempenho da escrita, pois o mesmo dado gravado
nos discos que estiverem em RAID 1.
Exemplo:
A1 B1 P1
A2 P2 C2
P3 B3 C3
Qualquer um dos discos que falhar pode ser rapidamente reconstrudo atravs
de novas operaes 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 operao XOR significa que se so iguais "0 e 0" ou "1 e 1", ento o resultado
verdadeiro (0). Se houver mais de dois blocos para serem comparados, calcule a
paridade dos dois primeiros, e com 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 gravao que seus
antecessores.
Antes de criarmos as parties RAID, temos que ter em mente nossa tabela
de particionamento:
# cat /etc/fstab
# cat /proc/partitions
Por causa do captulo de RAID iremos ter que recriar as parties, e deixar
estas Parties Livres para nossos testes:
Nas parties para realizao deste trabalho, defina o tipo das parties como
sem fs, e utilize o programa cfdisk para realizao desta tarefa. No esquea de
reiniciar o computador.
# cfdisk /dev/sda
1. Criando o RAID
# vim /etc/mdadm/mdadm.conf
# mkfs.ext3 /dev/md0
5) Crie um ponto de montagem em /mnt/raid
# mkdir /mnt/raid
6) Montando o RAID:
7) Configure o /etc/fstab:
# mdadm -E /dev/sda11
# mdadm -E /dev/sda12
# mdadm -E /dev/sda13
# vim /root/TestaRaid.sh
#!/bin/bash
while true ; do
date >> /mnt/raid/dados.txt
sleep 3
done
1. Administrando o RAID
5) Parando o RAID:
# umount /mnt/raid
# mdadm -S /dev/md0
6) Reiniciando o RAID:
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
1. Laboratrio
1. Refazer todas as parties necessrias com o cfdisk, para que possamos
testar o LVM no prximo captulo;
1. Introduo terica
O LVM - Logical Volume Manager um gerenciador de discos que trabalha
com camadas lgicas, que podem ser redimensionadas, aumentando ou diminuindo
sem prejudicar o funcionamento do sistema.
O LVM usado para agrupar vrios discos, fazendo com que parea que h
apenas uma partio. Isso facilita o gerenciamento dos mesmos em um servidor de
produo que no pode ficar desligado.
Antes de criarmos as parties LVM, temos que ter em mente nossa tabela de
particionamento:
# cat /etc/fstab
# cat /proc/partitions
Nas parties para realizao deste trabalho, defina o tipo das parties como
8E, e utilize o programa cfdisk para realizao desta tarefa. No esquea de
reiniciar o computador.
# cfdisk /dev/sda
2. Prtica Dirigida
# dpkg -l lvm2
Caso no tenha:
2) RedHat:
3) Caso no tenha:
# yum install lvm2
# vgscan
# pvcreate /dev/sda11
# pvcreate /dev/sda12
# pvscan
# vgdisplay
# vgdisplay -v vg01
9) Criando um Volume Lgico (LV) denominado teste:
# lvdisplay -v /dev/vg01/lv01
# vgdisplay -v vg01
# ls -l /dev/vg01/lv01
# lvs
1. Usando o LVM
# mkdir /mnt/lvm
# df -h
# mount
Caso esteja utilizando RedHat ou uma distribuio que siga o mesmo padro,
verifique a necessidade de criao de um label para o device. Se for necessrio,
faa-o assim:
1. Administrando o LVM
1) Desmonte o LVM:
# umount /mnt/lvm
3) Verifique o volume:
# e2fsck -f /dev/vg01/lv01
# resize2fs /dev/vg01/lv01
5) Montando o LV:
# df -h
# cp -r /etc /mnt/lvm
# cp -r /sbin /mnt/lvm
# ls -lh /mnt/lvm
# umount /mnt/lvm
1. Troubleshooting
# e2fsck -f /dev/vg01/lv01
# df -h
# lvs
6) Montando o LV:
# cp -r /bin /mnt/lvm
# ls -lh /mnt/lvm
# umount /mnt/lvm
9) Removendo o LV:
# lvremove /dev/vg01/lv01
# lvs
# vgremove vg01
# vgdisplay
# lvs
14) Verifique os detalhes do LVM:
# pvscan
1. Exerccios Tericos
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
7) Como eu consigo exibir a tabela de parties com os comandos: fdisk e
cfdisk, sem entrar no programa?
_______________________________________________________________________________
_______________________________________________________________________________
1. Laboratrio
1. Utilize duas parties que no esto sendo utilizadas e crie um RAID1;
2. Adicione uma partio como PV;
3. Verifique se todas as parties esto funcionadas;
4. Crie duas novas parties LV, a primeira com 256Mb e outra com 1Gb;
5. Aplique os sistemas de arquivos swap na primeira partio e xfs na
segunda;
6. Crie um ponto de montagem para a segunda partio LV com o nome de
restore;
7. Adicione as entradas corretas no arquivo /etc/fstab;
8. Reinicie a mquina e verifique se est tudo funcionando como o esperado;
9. Aps todos os testes, remova tudo que foi feito com o RAID e LVM,
inclusive suas entradas no /etc/fstab.
1.
DHCP
2. Objetivos
Entender o protocolo DHCP;
1. Introduo terica
O DHCP - Dynamic Host Configuration Protocol um protocolo que
funciona nas camadas 2 e 3 do modelo OSI e amplamente utilizado para oferecer
endereamento IP a um host que ainda no est configurado, o que oferece um
flexibilidade ao Administrador de Sistemas. O protocolo DHCP opera da seguinte
forma:
1. Prtica dirigida
1 ddns-update-style none;
2 subnet 192.168.X.0 netmask 255.255.255.0 {
3 range 192.168.X.10 192.168.X.200;
4 option subnet-mask 255.255.255.0;
5 option domain-name "microX.com.br";
6 option domain-name-servers 200.176.2.10,4.2.2.2;
7 option routers 192.168.X.254;
8 default-lease-time 600;
9 max-lease-time 7200;
10 }
# dhclient
# vim /etc/network/interfaces
auto eth0
iface eth0 inet dhcp
# more /var/lib/dhcp3/dhcpd.leases
1) Considere que:
MQUINA MAC ADRESS IP FIXADO
micro 1 00:80:C7:D2:F8:D5 192.168.200.210
micro 2 88:3D:BE:00:C7:00 192.168.200.214
1 host micro1 {
2 hardware ethernet 00:80:C7:D2:F8:D5;
3 fixed-address 192.168.200.210;
4 }
5
6 host micro2 {
7 hardware ethernet 88:3D:BE:00:C7:00;
8 fixed-address 192.168.200.214;
9 }
1 ddns-update-style none;
2
6 option routers192.168.X.254;
7 option subnet-mask 255.255.255.0;
8 option domain-name microX.com.br;
9 option domain-name-servers200.204.0.10, 200.204.0.138;
10 default-lease-time 21600;
11 max-lease-time 43200;
12
13 host micro1 {
14 hardware ethernet 00:80:C7:D2:F8:D5;
15 fixed-address 192.168.X.210;
16 }
17
18 host micro2 {
19 hardware ethernet 88:3D:BE:00:C7:00;
20 fixed-address 192.168.X.214;
21 }} }
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
1. Laboratrio
1. Retire o daemon de inicializao do DHCP do runlevel padro;
1. Introduo terica
No modo ativo, os comandos so enviados por uma porta alta pelo cliente, e so
recebidas pela porta 21 no servidor, enquanto que os dados so transmitidos pelo
servidor ao cliente atravs da porta 20. O problema desta implementao que os
dados podem ser barrados por um Firewall dependendo das regras estabelecidas
pelo Administrador de Sistemas.
2. Prtica dirigida
O VSFTPD - Very Secure File Transfer Protocol Daemon, a escolha de
empresas como RedHat, IBM e Novell - SUSE Linux quando o assunto servidores
de FTP confiveis e seguros. Inclusive, o projeto OpenBSD utiliza o VSFTPD
como servidor FTP padro da distribuio. Logo, podemos considerar este software
como bem qualificado em termos de segurana de cdigo.
# vim /etc/vsftpd.conf
# ftp localhost
Connected to localhost.
220 (vsFTPd 2.0.7)
Name (localhost:root): anonymous
Aps conectar ao servidor FTP, ele exibira um prompt semelhante ao
abaixo:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
ftp> comando
1. Comandos FTP
ftp> ls
2) Liste o contedo do seu diretrio local:
ftp> !ls
ftp> !ls
ftp> quit
221 Goodbye.
# cp /boot/vmlinuz-2.6.26-2-686 /home/ftp
8) Efetue o download do arquivo. Para isso, logue-se no FTP como
usurio anonimo e ento efetue o download.
# cat /var/log/vsftpd.log
# vim /etc/vsftpd.conf
11) Habilite a varivel abaixo:
local_enable=Yes
write_enable=Yes
# vim /home/aluno/.message
## Este sistema para uso exclusivo da empresa XPTO.
## Todas as atividades sero registradas.
## vetada a utilizao deste sistema para transferncia de
## arquivos protegidos por qualquer lei de direito autoral
## ou arquivos que infrinjam a legislao vigente.
# ftp ip-do-amigo
RedHat:
A plataforma RedHat utiliza o vsftpd por padro.
# netstat -nltup
1. Exerccios tericos
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
1. Laboratrio
1. Teste com o colega a conexo dos servidores;
2. Objetivos
Instalar o daemon NFS;
portmap - Servio que permite que clientes NFS descubram qual porta o
servidor est utilizando.
1. Prtica Dirigida
SERVIDOR:
3) Sintaxe do arquivo:
/srv/nfs 192.168.200.0/24(rw,no_root_squash,no_subtree_check)
/home 192.168.100.1(ro,root_squash)
# mkdir -p /srv/nfs
# cp /etc/apt/* /srv/nfs
5) Edite o arquivo /etc/exports para que o diretrio criado seja
exportado:
/srv/nfs 192.168.200.0/24(rw,root_squash)
# rpcinfo -p localhost
CLIENTE:
# showmount -e 192.168.200.X
# mkdir /mnt/nfs
11) Monte o diretrio compartilhado:
# showmount -a 192.168.200.X
# mount
# ls /mnt/nfs
# cd /mnt/nfs
# rm ARQUIVO
SERVIDOR:
# exportfs -r
CLIENTE:
# cd /mnt/nfs
# rm ARQUIVO
# mv /etc/samba/smb.conf /etc/samba/smb.conf.original
# vim /etc/samba/smb.conf
RedHat:
Na plataforma RedHat, o arquivo de configurao do samba fica em
/etc/smb.conf
[global]
workgroup = maquinaX
server string = Servidor de Arquivos
security = SHARE
wins support = Yes
client lanman auth = yes
[Publico]
comment = Diretorio Publico
path = /srv/samba/publico
force user = smbuser
force group = users
read only = No
guest ok = Yes
Correspondem:
[global]
workgroup = Grupo de Trabalho, nome diferente da mquina;
server string = Comentrio para o servidor;
security = Compartilhamento sem a necessidade de
controle de usurios e senhas;
wins support = O samba se torna um Servidor Wins, resolve
nome para mquinas Windows.
client lanman auth = para uso do comando smbclient
[Publico]
comment = Adicionar comentrio ao compartilhamento;
path = Diretrio que ser utilizado para
compartilhamento;
force user = Define um usurio padro que ser usado por todos
que acessarem este compartilhamento;
force group = Define um grupo padro que ser usado por todos
que acessarem este compartilhamento;
read only = Permisses de leitura e gravao;
guest ok = Define se usurios convidados tero acesso ao
compartilhamento.
# testparm
5) Ns definimos que todo arquivo criado no compartilhamento seria
do usurio smbuser e do grupo users. Vamos criar este usurio
e alterar seu grupo:
# mkdir -p /srv/samba/publico
# chown smbuser:users /srv/samba/publico
# netstat -putan
9) Verifique o compartilhamento:
# smbclient -L localhost
# smbclient -L 192.168.200.X
# mount
# touch /mnt/$HOSTNAME.txt
# ls -la /srv/samba/publico
1 [Global]
2 netbios name = SERVERX
3 workgroup = EMPRESAX
4 server string = Primary Domain Controller
5 log file = /var/log/samba/%m.log
6 max log size = 100
7 security = user
8 unix password sync = Yes
9 passwd program = /usr/bin/passwd %u
10 smb passwd file = /etc/samba/smbpasswd
11 socket options = TCP_NODELAY SO_RCVBUF=8192
SO_SNDBUF=8192
12 domain logons = Yes
13 os level = 100
14 preferred master = Yes
15 domain master = Yes
16 local master = yes
17 logon drive = H:
18 logon home = \\%L\homes\%U
19 logon path = \\%L\Profiles\%U
1 [homes]
2 comment = Diretorio Pessoal
3 path = /srv/samba/homes/%U
4 valid users = %U
5 read only = No
6 browseable = No
1. Compartilhamento homes;
2. Comentrio;
1 [Profiles]
2 comment = Perfis Moveis
3 path = /srv/samba/profiles
4 read only = No
5 guest ok = Yes
6 browseable = No
1. Compartilhamento Profiles;
2. Comentrio;
[Publico]
path = /srv/samba/publico
browseable = yes
writeable = yes
public = yes
# smbpasswd -a root
# mkdir /srv/samba/profiles
# mkdir /srv/samba/homes
# smbpasswd -a microX
6) E cadastrar a mquina que entrar no domnio:
Na
Desideratu, temos o treinamento 425, um treinamento completo do
Samba para vrios de ambientes. O Samba tambm um assunto da LPI
nvel 3. Fique ligado, para saber mais sobre o treinamento 425-Samba,
acesse: www.Desideratu.com.br.
Clique em Alterar:
No campo Domnio, insira o nome de domnio do Samba:
Ilustrao
/etc/pam.d/common-auth
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
1. Laboratrio
Em 1984 foi liberado o Domain Name System, descritos nas RFC's 882 e
883. Atualmente estas RFC's foram suplantadas pelas de nmeros 1034 e 1035, alm
de RFC's suplementares de segurana, administrao, atualizao dinmica de
servidores de nome, e muitas outras.
1. Caractersticas
Namespace de at 63 caracteres;
Arquitetura cliente/servidor;
Uma vez delegado um domnio, sua nova autoridade pode delegar subdomnios
sem necessitar notificar a entidade responsvel pelo domnio pai;
1. Resoluo
Soluo DNS o processo pelo qual um programa consulta dados a respeito de um
hostname. Na grande maioria das vezes, consulta-se o endereo IP deste host,
para ento efetuar algum tipo de conexo a algum servio, como HTTP, SMTP,
POP, dentre inmeros outros.
recursiva
iterativa
1. Resoluo Recursiva
11. .br retorna o mesmo tipo de resposta, porm como uma dica mais
prxima: "No sei quem , mas sei quem pode responder melhor: com.br.";
12. Passos 10 e 11 so efetuados mais uma vez, e agora a resposta "No sei
quem , mas sei quem pode responder melhor: exemplo.com.br.";
13. Aps repetir o passo 10, finalmente a resposta ser da autoridade sobre o
domnio exemplo.com.br. Vai ser respondido o IP, juntamente ao TTL do
registro, ou ser respondido "inexistente";
1. Resoluo Iterativa
2. Arquivo /etc/hosts
Derivado do arquivo HOSTS.TXT original, aquele que era atualizado e
distribudo antes do surgimento do Domain Name System, o arquivo /etc/hosts
continua tendo um papel muito importante no processo de resoluo. No passo a
passo descrito anteriormente, observe que ele a primeira fonte de consulta do
resolver.
Por essa razo, um FQDN deve terminar com um ".", que representa a raiz da
rvore. Os aliases podem ser outros hostnames cannicos, ou simples sufixos,
para simplificar a escrita de determinados endereos. Aps a instalao do sistema, o
arquivo hosts costuma conter uma entrada referente ao IP da interface loopback,
e uma entrada para cada outra interface presente na mquina para qual um
endereo foi atribudo. Por exemplo:
127.0.0.1 localhost
192.168.1.23 micro23.micro23.com.br. micro23
Pode ser acrescentada quantas entradas forem necessrias, inclusive para IPs
externos. Atualmente, o sistema baseado em Debian j contm entradas para
endereamento IPv6, que seguem a mesma lgica.
3. Ferramentas de consulta
Caso ainda no estejam presentes, vamos instalar as ferramentas de pesquisa
de DNS.
nslookup
host
dig
# nslookup
> server
> set all
> www.uol.com.br.
> set type=MX
> gmail.com.
# host www
# host -v www.Desideratu.com.br.
# host -v -t mx Desideratu.com.br
# host -v -t soa Desideratu.com.br
# dig www
# dig www.Desideratu.com.br.
# dig -t mx Desideratu.com.br.
# dig -x 200.212.122.137
1. BIND9
O BIND - Berkeley Internet Name Domain o servidor de nomes utilizado
na grande maioria dos servidores da Internet, provendo uma estvel e robusta
arquitetura sobre a qual as organizaes podem construir sua estrutura de nomes.
# ls -lh /etc/bind
3) Em um segundo terminal:
5) No terminal anterior:
# tail /var/log/daemon.log
1. Servidor cache
As bibliotecas do resolvedor da maioria dos sistemas operacionais no so
capazes de executar o processo de resoluo completo, chamado recursivo, como
vimos acima. Ao invs disso elas dependem de um servidor intermedirio com essa
capacidade.
Quanto maior a rede, pior o impacto. A alternativa para evitar estes problemas
manter um servidor DNS caching only. Servidores cache reservam o
resultado de suas buscas na memria pelo tempo limite estabelecido pela autoridade
sobre o domnio consultado. Dessa forma, independentemente da quantidade de
mquinas da rede, as consultas sero feitas na Internet apenas uma vez a cada
intervalo de atualizao.
# vi /etc/resolv.conf
nameserver 127.0.0.1
1. Restringindo consultas
Um cuidado muito importante que devemos tomar com servidores cache
limitar quem est autorizado a utilizar esse servio. Por padro, o nosso BIND est
liberado para acesso pblico, ou seja, se houver uma interface conectada
diretamente a Internet, qualquer outro computador no mundo pode mandar nosso
servidor procurar um determinado endereo. Ficamos vulnerveis a abusos.
# vi /etc/bind/named.conf.options
allow-query { 127.0.0.1; 192.168.200.X; };
# /etc/init.d/bind9 reload
# vi /etc/bind/named.conf.options
forwarders {200.176.2.10; };
Onde IP_DO_PROVEDOR um servidor DNS capaz de fazer consultas
recursivas.
1. Servidor de zonas
Cada domnio na Internet tem sua autoridade, que nada mais do que um
servidor onde as informaes daquele domnio so criadas, mantidas ou alteradas.
Mas como um domnio pode se subdividir em inmeros outros domnios, surge um
outro conceito: Zonas.
slave - O BIND tambm vai responder por esse domnio, mas nenhuma
criao ou alterao respectiva a essa zona ser feita localmente neste
servidor. Os dados sero sempre transferidos de um servidor master.
hint - Especfica para o BIND onde ele deve comear uma busca recursiva
quando estiver operando como cache. Por padro, h uma zona hint criada
com os endereos dos root servers.
$TTL;
$ORIGIN;
$INCLUDE.
O SPF diz quais servidores podem enviar e-mails em nome do seu domnio. O
objetivo evitar que seu domnio seja usado para forjar remetentes falsos. Grandes
provedores j adotaram o SPF, e cada vez mais outros domnios vem seguindo a
mesma prtica. Tende a tornar-se uma imposio. Muito mais antigo que o SPF, e
por consequncia, uma imposio natural do ecossistema de e-mails, garantir que o
IP do registro MX tenha endereo reverso. Esta uma forma de checar se o e-mail
partiu de um usurio domstico cujo computador est sendo usado como zumbi,
por exemplo.
# vi /etc/bind/named.conf.local
zone "microX.com.br" {
type master;
file "db.microX";
};
zone "200.168.192.in-addr.arpa" {
type master;
file "rev.microX";
};
# vi /var/cache/bind/db.microX
negative caching TTL - Se a zona expirar, esse ser o tempo pelo qual um
servidor cache armazenar a informao NXDOMAIN antes de iniciar
uma nova busca recursiva. O mximo so 3 horas.
mx - O servidor de e-mail;
# vi /var/cache/bind/rev.microX
1 $TTL 1h ; TTL default para todos os registros que no tiverem seu
prprio TTL.
2 @ IN SOA ns1.microX.com.br. hostmaster.microX.com.br. (
3 2009090901 ; serial
4 1h ; refresh
5 15m ; retry
6 1w ; expire
7 1h) ; negative caching TTL
8 ;
9 ;
10 @ IN NS ns1.microX.com.br.
11 X IN PTR mail.microX.com.br.
# tail -f /var/log/daemon.log
# /etc/init.d/bind9 restart
# ping www.microX.com.br
# dig -t mx microX.com.br
# dig -x 192.168.200.X
# dig @localhost www.kernel.org
# vi /etc/bind/named.conf.local
1 zone "microX.com.br" {
2 type slave;
3 masters { 192.168.200.X; };
4 file "sec.microX";
5 };
1) Ative a configurao:
# /etc/init.d/bind9 reload
# cat /var/cache/bind/sec.microX
# vim /etc/bind/named.conf.options
allow-transfer { none; };
# vim /etc/bind/named.conf.options
also-notify { 192.168.200.x; };
1. Exerccios tericos
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
1. Laboratrio
1. Criar cria uma view exclusiva da zona microX.com.br para consultas da
rede 10.0.0.0/24.
1.
Apache
2. Objetivos
Entender a configurao bsica do Apache2;
1. Introduo terica
O Web Server Apache um esforo comunitrio feito por desenvolvedores ao
redor do mundo, no qual o objetivo consiste em desenvolver um Web Server de
cdigo fonte aberto, estvel e seguro. Em 1996, tornou-se um dos Web Servers
mais populares no mundo, e, desde ento, mantm sua posio como o servidor web
com a maior base instalada no mundo.
Segundo uma pesquisa feita pelo site NetCraft, o Apache est servindo em
mdia, 50% dos sites pesquisados. Isso s foi possvel graas a uma srie de
qualidades, das quais algumas, sero listadas abaixo:
Multi plataforma;
3. MPM Worker
Neste modo, o apache mantm uma srie de threads ociosas, fazendo com
que novas conexes sejam processadas e respondidas de uma maneira mais rpida
do que no modo Pre Fork. Infelizmente, nem toda aplicao se d bem com
threads, como o PHP5, por exemplo.
4. Prtica dirigida
5. Instalao do Apache2
#vim /etc/apache2/apache2.conf
ServerRoot /etc/apache2
DocumentRoot /var/www
User $APACHE_RUN_USERS
Group $APACHE_RUN_GROUP
ErrorLog /var/log/apache2/error.log
%l - Hfen;
%t - Horrio de acesso;
%r - Requisio solicitada;
1 StartServers 2
2 MaxClients 150
3 MinSpareThreads 25
4 MaxSpareThreads 75
5 ThreadsPerChild 25
6 MaxRequestsPerChild 0
1 StartServers 5
2 MinSpareServers 5
3 MaxSpareServers 10
4 MaxClients 150
5 MaxRequestsPerChild 0
1. Segurana
1) Dentro do arquivo security, vamos colocar as regras de
segurana:
# cd /etc/apache2
# vim conf.d/security
2) As variveis abaixo ajudam a dificultar o processo de descoberta da
verso do servidor e sistema operacional:
ServerSignature Off
ServerTokens Prod
TraceEnable Off
1. Suporte a PHP
# ls -l /etc/apache2/mods-enabled
# apache2ctl -M
3) Porm, caso necessrio, habilite o suporte manualmente:
#a2enmod php5
4) Reinicie o Apache:
# /etc/init.d/apache2 restart
# vim /var/www/index.php
<?
phpinfo()
?>
1. Domnios virtuais
Um Domnio Virtual uma funcionalidade que permite ao seu servido Web
responder com um ou mais sites em um mesmo IP, o que possibilita acessar servios
e pginas diferentes em um mesmo servidor, apenas apontando a entrada DNS
correta nos arquivos de configurao.
Os domnios virtuais devem ser configurados nestes dois diretrios:
# vim /etc/apache2/sites-available/www.microX.com.br
1 # Host Virtual
2
3 NameVirtualHost www.microX.com.br
4
5 <VirtualHost www.microX.com.br>
6 DocumentRoot /var/www/microX.com.br
7 ServerName microX.com.br
8 ServerAdmin webmaster@microX.com.br
9 ErrorLog /var/log/apache2/microX.com.br-error.log
10 CustomLog /var/log/apache2/microX.com.br-access.log common
11 </VirtualHost>
# mkdir /var/www/microX.com.br
2) Dentro do diretrio recm criado, crie um arquivo chamado
index.html:
# vim /var/www/microX.com.br/index.html
1 <html>
2 <title> Minha pgina <title>
3 <body>
4 Funciona! :)
5 </body>
6 </html>
# apache2ctl -S
# a2ensite
3) O apache possui um comando para habilitar o domnio virtual sem
a necessidade de criar os links virtuais via linha de comando:
# a2enmod www.microX.com.br
1. Suporte a HTTPS
O SSL - Secure Sockets Layer, um padro Web que permite trafegar dados
sensveis e confidenciais com segurana atravs da internet, utilizando o protocolo
HTTPS. Sendo assim, extremamente importante que o administrador de redes
configure o acesso SSL para sites que necessitam deste tipo de proteo.
# a2enmod ssl
# cd /etc/ssl
# openssl x509 -req -days 365 -in microX.csr -signkey microX.key -out
microX.crt
1 NameVirtualHost *:443
2 <VirtualHost *:443>
3 DocumentRoot /var/www/microX.com.br
4 ServerName *:443
5 ServerAdmin webmaster@microX.com.br
6 ErrorLog /var/log/apache2/microX.com.br-error.log
7 CustomLog /var/log/apache2/microX.com.br-access.log common
8 SSLEngine on
9 SSLCertificateFile /etc/ssl/microX.crt
10 SSLCertificateKeyFile /etc/ssl/microX.key
11 </VirtualHost>
12
13 NameVirtualHost www.microX.com.br:80
14 <VirtualHost www.microX.com.br:80>
15 RewriteEngine On
16 Options +FollowSymlinks
17 rewriteCond %{SERVER_PORT} 80
18 rewriteRule ^(.*)$ https://www.microX.com.br/$1 [R,L]
19 </VirtualHost>
1) Ative o mod_rewrite para que, toda vez que algum acessar seu
site, seja automaticamente redirecionado para o site com HTTPS
ativado:
# a2enmod rewrite
2) Reinicie o apache:
http://www.microX.com.br
1. Exerccio terico
1) Voc precisa alterar a porta de trabalho do seu Apache para a porta 8000.
Qual seria o procedimento?
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
3) Seu supervisor pediu que voc mudasse o diretrio padro do Apache para
o diretrio /sites. Quais procedimentos devem ser tomados?
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
1. Laboratrio
1. Mude a pgina de erro padro 404 para uma mensagem personalizada. DICA:
Use os exemplos no prprio arquivo;
2. Caractersticas do Postfix
Sistema multitarefa - O Postfix possui um conjunto de mdulos que
desempenham um papel especfico para cada etapa do trfego de e-mails,
este comportamento permite melhor desempenho em equipamentos
multiprocessados.
1. Prtica dirigida
# vi /etc/postfix/main.cf
13 ## Parmetros de criptografia.
14 # TLS parameters
15 smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
16 smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
17 smtpd_use_tls=yes
18 smtpd_tls_session_cache_database = btree:$
{queue_directory}/smtpd_scache
19 smtp_tls_session_cache_database = btree:$
{queue_directory}/smtp_scache
20
32 ## Define a origem local, que por padro o mesmo FQDN que est
em /etc/mailname.
33 myorigin = /etc/mailname
34
# /etc/init.d/postfix restart
# netstat -nltup
1. SMTP
1 # telnet localhost 25
2 helo gmail.com
3 mail from:seuemaildogmail@gmail.com
4 rcpt to:aluno@microX.com.br
5 data
6 subject: Teste
7 Este um teste de email.
8 .
9 quit
1) Mande uma email Local:
# telnet localhost 25
1 mail from:root@microX.com.br
2 rcpt to:aluno@microX.com.br
3 data
4 subject: Teste
5 Este um teste de email.
6 .
7 quit
# tail /var/log/mail.log
# cd /var/mail
# ls -la
# cat aluno
# mailq
1. Courier POP3 e Courier IMAP
# vim /etc/postfix/main.cf
# comentar:
# mailbox_command = procmail -a "$EXTENSION"
# adicionar:
home_mailbox = Maildir/
DEFAULT=$HOME/Maildir/
MAILDIR=$HOME/Maildir/
3) Reinicie o Postfix
# /etc/init.d/postfix restart
# cat /etc/pam.d/pop3
# cat /etc/pam.d/imap
# vim /etc/pam.d/smtp
@include common-auth
@include common-accont
@include common-password
@include common-session
# maildirmake /home/aluno/Maildir
# maildirmake /home/aluno/Maildir/.Enviadas
# maildirmake /home/aluno/Maildir/.Rascunhos
# maildirmake /home/aluno/Maildir/.lixeira
# maildirmake /home/aluno/Maildir/.Spam
2) Ajuste as permisses:
user aluno
pass 123456
list
retr 1
quit
Se voc conseguir ler as mensagens, significa que o seu servidor est pronto
para receber e transmitir mensagens.
Podemos criar aliases para que um usurio possa receber vrios e-mails
diferentes na mesma conta.
1) Edite o arquivo de alias e crie um para o seu usurio, no formato
usuario_de_alias: usuario_real:
# vi /etc/aliases
emaildeteste: aluno
# postalias /etc/aliases
# stat /etc/aliases.db
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
1. Laboratrio
1. Faa um teste via telnet no seu servidor e veja se ele responde ao comando
vrfy. Use o comando vrfy aps o comando helo. Exemplo: vrfy usuario.
Use esse comando em usurio vlido e em um usurio invlido.
2. Agora que j viu como o comando vrfy pode ser perigoso, tente desativ-lo.
Dica: man 5 postconf
3. Crie uma lista chamada todos, para que quando algum envie um e-mail para
ela, todos os usurio vlidos do sistema recebam a mensagem.
1.
Web Proxy com Squid
2. Objetivos
1. Introduo Terica
Neste captulo, iremos observar algumas particularidades do proxy web
Squid, uma soluo Software Livre amplamente utilizada no mercado como
acelerador e filtro de contedo Web. Observaremos tambm, como utilizar algumas
ACL's que podero facilmente ser aplicadas ao que chamamos de "Cenrios
Comuns", aonde teremos alguns sites liberados e alguns sites bloqueados.
ACL'S de origem e destino podem ser cobrados na LPI-II, bem como sua
forma de utilizao.
ACL's de origem
ACL's de destino
ACL's de horrio
2. ACL's de origem
ACL's de origem so utilizadas para controlar todo e qualquer acesso que
tenha como origem um determinado padro.
3. ACL's de destino
ACL's de destino so mais comuns e frequentemente utilizadas para criar
padres que casem com determinados endereos de rede, endereos de domnio,
partes de um domnio e tambm por expresses regulares. Vamos dar uma olhada na
sua construo.
4. ACL's de horrio
ACL's de horrio so muito teis, quando queremos, por exemplo, permitir
acesso a determinados sites durante um horrio especfico, como na hora do almoo
ou fora do horrio de expediente. Vamos ver uma ACL's que poderamos utilizar
para especificar o horrio de almoo, e outra para especificar o horrio da manh.
acl almoco time 13:00-14:00
acl parte_manha time 08:00-12:59
5. Filtros
Outro recurso interessante para o uso de um proxy o conceito de filtro de
contedo, que possibilita restringir o acesso web dos usurios baseado no nome da
URL, palavras-chave, etc. Para realizar essa configurao, podemos usar os seguintes
filtros:
1. Prtica Dirigida
1) O primeiro passo instalar e confirmar a instalao do Squid:
# ls /var/spool/squid
# ls /var/log/squid
# ls /etc/squid
# vim /etc/squid/squid.conf
1. Configuraes Iniciais
A configurao padro do Squid no permite nenhum tipo de navegao, por
medidas de segurana. A primeira coisa que devemos fazer especificar qual rede o
Squid deve aceitar, e tambm devemos especificar uma ACL do tipo origem, que
case com o nosso endereo IP. Vamos fazer isso.
# visible_hostname proxy.microX.com.br
cache_mem 16 MB
# squid -k parse
# squid -k reconfigure
Depois destes ajustes iniciais, estamos prontos para criar nossas ACL's e
verificar o funcionamento do Squid com filtro de contedo.
1) Agora, depois desta linha, crie uma acl com a rede de origem,
uma acl para domnios .com e uma acl para o domnio
amazon.com:
3) Reinicie o Squid:
# squid -k parse
# squid -k reconfigure
www.google.com
www.amazon.com
1. Blacklist e Whitelist
O conceito de Blacklist e Whitelist muito simples:
Whitelist - Uma lista de domnios que eu quero liberar, mas que casam com a
blacklist.
1) Para exemplificar o uso de blacklists e whitelists, vamos criar
duas ACL's, uma negando o qualquer url que contenha a palavra
linux, e outra liberando os sites www.linux.com e
www.Desideratu.com.br.
3) Reinicie o Squid:
# squid -k parse
# squid -k reconfigure
www.Desideratu.com.br
www.vivaolinux.com.br
www.linux.com
www.br-linux.org
1. Autenticao NCSA
O Squid possui um mecanismo de autenticao que pode trabalhar de diversas
maneiras, e uma delas, a NCSA, utiliza o mesmo mecanismo de autenticao do
apache. Vamos configurar esse modelo de autenticao e vamos criar uma acl que
exija autenticao tambm.
4) Reinicie o Squid
# squid -k parse
# squid -k reconfigure
5) Agora tente acessar qualquer site!
# vim /etc/squid/sarg.conf
# sarg
http://localhost/squid-reports
1. Exerccios Tericos
_______________________________________________________________________________
_______________________________________________________________________________
2) Qual o diretrio que contm os arquivos html informativos do Squid?
Como voc faria para mud-los? (Dica: man squid e man squid.conf)
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
1. Laboratrio
1. Crie um conjunto de ACL's que casem com sites de contedo indesejado:
www.playboy.com.br, www.youtube.com e qualquer expresso que
contenha as palavras "sex" e "buy".
2. Crie as regras de acesso necessrias para que qualquer pessoa possa navegar a
vontade, exceto em sites de contedo indesejado.
1.
OpenLDAP
2. Objetivos
Implementar e configurar servidor OpenLDAP;
1. Introduo terica
A criao de softwares cada vez mais especficos tem atendido s demandas
negociais do mundo moderno. Entretanto tem causado um ponto crtico de gesto e
segurana: mltiplas bases de usurios e senhas. Gerenciar a autenticao dos
sistemas em bases separadas um desafio constante. O OpenLDAP possibilita que
vrios sistemas compartilhem a base de dados de usurios e senhas de forma
centralizada e integrada.
# dpkg -l slapd
# dpkg-reconfigure slapd
# netstat -nltup
# ls /var/lib/ldap/
# vi /usr/share/slapd/slapd.conf
4 ##################################################################
#####
5
6 # Configuraes Globais
7
32 #Verificao de schema
33 schemacheck on
34
41 ##################################################################
#####
42 # Especificao de Diretivas para o bdb
43 # 'backend' directive occurs
44 backend bdb
45 checkpoint 512 30
46
47 ##################################################################
#####
48 # Especificao de Diretivas para outro:
49 # 'backend' directive occurs
50 #backend <other>
51
52 ##################################################################
#####
53 # Especificao de diretivas para banco de dados #1, tipo bdb:
54 # 'database' directive occurs
55 database bdb
56
82 # Opes de indexao #1
83 index objectClass eq
84
# slaptest
# adduser testeldap
# cd /usr/share/migrationtools
# cp -av migrate_common.ph migrate_common.ph.original
8) Edite o arquivo migrate_common.ph e altere os campos a seguir:
$DEFAULT_MAIL_DOMAIN="microX.com.br";
$DEFAULT_BASE=dc="microX,dc=com,dc=br";
# cd /usr/share/migrationtools
# ./migrate_passwd.pl /etc/passwd /etc/ldap/users.ldif
# less /etc/ldap/users.ldif
1 gidNumber: 106
2 homeDirectory: /var/lib/gdm
3 gecos: Gnome Display Manager
4
5 dn: uid=root,ou=People,dc=seu-nome,dc=com,dc=br
6 uid: root
7 cn:: cm9vdA==
8 objectClass: account
9 objectClass: posixAccount
10 objectClass: top
11 objectClass: shadowAccount
12 userPassword: {crypt}$1$dL7nEggA$P6Ib/H9QBkdd/sTcUBW1z1
13 shadowLastChange: 12495
14 shadowMax: 99999
15 shadowWarning: 7
16 loginShell: /bin/bash
17 uidNumber: 0
18 gidNumber: 0
19 homeDirectory: /root
20 gecos: root
# cat /etc/ldap/groups.ldif
# vim /etc/ldap/base.ldif
ESC:1,10d
# ldapadd -x -D cn=admin,dc=linuxsolutions,dc=com -f
/etc/ldap/base.ldif -W
ldapsearch -x | more
7) Adicione o group.ldif:
# ldapadd -x -D cn=admin,dc=linuxsolutions,dc=com -f
/etc/ldap/groups.ldif -W
8) Adicione o user.ldif:
# ldapadd -x -D cn=admin,dc=linuxsolutions,dc=com -f
/etc/ldap/users.ldif -W
# /etc/init.d/slapd stop
# slapadd -l meuarquivo.ldif -f slapd.conf
# slapcat | more
# vim /etc/nsswitch.conf
passwd:compat ldap
group: compat ldap
shadow:compat ldap
# vim /etc/libnss-ldap.conf
base dc=microX,dc=com,dc=br
uri ldap://127.0.0.1/
nss_base_passwd ou=People,dc=microX,dc=com,dc=br?one
nss_base_shadow ou=People,dc=microX,dc=com,dc=br?one
base dc=microX,dc=com,dc=br
uri ldap://127.0.0.1/
nss_base_passwd ou=People,dc=microX,dc=com,dc=br?one
nss_base_shadow ou=People,dc=microX,dc=com,dc=br?one
Por ultimo, iremos configurar o PAM para que ele busque os usurios na base
LDAP.
1 #
2 # /etc/pam.d/common-account - authorization settings common to all
services
3 #
4 # This file is included from other service-specific PAM config
files,
5 # and should contain a list of the authorization modules that
define
6 # the central access policy for use on the system. The default is
to
7 # only deny service to users whose accounts are expired in
/etc/shadow.
8 #
9 account sufficient pam_ldap.so
10 account required pam_unix.so
11 session required pam_mkhomedir.so skel=/etc/skel umask=0077
1) Agora configure o arquivo /etc/pam.d/common-password:
1 #
2 # /etc/pam.d/common-password - password-related modules common to
all services
3 #
4 # This file is included from other service-specific PAM config
files,
5 # and should contain a list of modules that define the services to
be
6 #used to change user passwords. The default is pam_unix
7
1 #
2 # /etc/pam.d/common-session - session-related modules common to
all services
3 #
4 # This file is included from other service-specific PAM
configfiles,
5 # and should contain a list of modules that define tasks to be
performed
6 # at the start and end of sessions of *any* kind (both interactive
and
7 # non-interactive). The default is pam_unix.
8 #
9 session sufficient pam_ldap.so
10 session required pam_unix.so
# userdel testeldap
# ctrl + F2
# ls -l /etc/apache2/mods-enabled
127.0.0.1/phpldapadmin/index.php
# vim /etc/squid/squid.conf
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
2) O que um schema?
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
1. Laboratrio
1. Introduo terica
Os sistemas GNU/Linux com Kernel srie 2.4 e 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. O Iptables
possu 4 tabelas, sendo elas:
Nesse captulo vamos tratar mais das chains da tabela filter e algo sobre
as chains da tabela nat.
Tabela Filter
Tabela Nat
POSTROUTING
- Regras que sero processadas aps o roteamento
dos pacotes nas interfaces do firewall.
2. Prtica dirigida
Vamos agora montar o nosso firewall.
# iptables -n -L
# iptables -n -L
Agora que percebemos que temos um firewall ativo, devemos pensar nas
demais polticas, uma vez que, por mais seguro que seja a poltica de negar tudo, no
prtico manter nosso computador assim. Ele precisar se comunicar com outros
computadores e para que isso seja possvel precisamos definir polticas de excees.
# ping 127.0.0.1
# iptables -n -L
# ping 127.0.0.1
# ping 192.168.200.254
# iptables -n -L
# ping 192.168.200.254
12) Agora que j temos uma poltica de exceo, tente fazer um
ping no domnio www.uol.com.br:
# ping www.uol.com.br
# iptables -n -L
# ping www.uol.com.br
# mtr 200.176.2.11
# iptables -n -L
# mtr 200.17.2.11
Para deixar esse valor fixo, devemos deixar esse parmetro dentro de
/etc/sysctl.conf
# vim /etc/sysctl.conf
net.ipv4.ip_forward=1
# iptables -n -L
# iptables -n -L -t nat
# iptables -F
# iptables -F -t nat
# iptables -n -L
# iptables -n -L -t nat
Todas as regras que foram feitas, ficam na memria do computador, se ele for
reiniciado, perderemos todas elas. Podemos utilizar o iptables-save, mas ele no
um script profissional.
Segue aqui um script com todas as regras que foram feitas, em seguida esse
script pode ser adicionado aos nveis de execuo do sistema, para ser carregado
sempre a mquina for ligada.
# cd /etc/init.d
# vim firewall.sh
1 #!/bin/bash
2 # Firewall personalizado - Curso 452 - Desideratu
3
4 ## Definio de variveis
5
6 IPT=$(which iptables)
7 ET0="192.168.200.X"
8 NET="0/0"
9 PA=1024:65535
10 REDE="192.168.200.0/24"
11
12 ## Fechando as Polticas
13 $IPT -P INPUT DROP
14
19 ## Liberando LoopBack
20
51 sysctl -w net.ipv4.ip_forward=1
52
Para que ele seja iniciado junto com sistema quando a mquina for ligada,
podemos colocar o script nos nveis de execuo:
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
1. Laboratrio
1. Imaginem que o seu servidor tem 2 IP's, um vlido e outro invlido. Crie uma
regra que redirecione todos os pacotes que chegarem na porta 25 do IP vlido
para uma mquina da rede que tenha IP invlido na porta 25. Dica: man
iptables.
1.
OpenVPN
2. Objetivos
2. Prtica Dirigida
Ns trabalharemos neste laboratrio com um par de chaves simtricas, ou seja,
usaremos a mesma chave tanto para o servidor VPN quanto para o cliente VPN,
logo, a chave deve ser gerada no servidor e replicada para o cliente via SSH.
3. Configurando o servidor
# cd /etc/openvpn
# openvpn --genkey --secret /etc/openvpn/chave
2) Vamos gerar o arquivo de configurao do servidor:
# vim /etc/openvpn/server.conf
1. Configurando o cliente
# cd /etc/openvpn
# scp 192.168.200.X:/etc/openvpn/chave .
3) Vamos gerar o arquivo de configurao do cliente:
# vim /etc/openvpn/client.conf
# ifconfig -a
# ping 172.16.0.X
4) Execute um ping na interface do seu colega:
# ping 172.16.0.X