You are on page 1of 281

4.

1. 2. 3. Servidor Apache
Firewall Linux Servidor DHCP Servidor DNS
Firewall Linux
Firewall Linux
➢ Existem basicamente dois tipos de Firewall:

Firewall de Rede → Conhecido como Firewall de Borda,


tem a função de Gerenciar todos os pacotes que entram e
saem da rede; (INPUT / OUTPUT / NAT)

Firewall
(iptables)

Firewall de Host → Configurado localmente em cada


servidor, sua principal função é gerenciar a troca de pacotes
do host com a rede interna ou externa. (INPUT / OUTPUT)

Servidor: Security
Firewall Linux
Construindo um Firewall

➢ Antes de iniciar a construção de um Firewall é importante


dominar alguns conceitos de Rede:

● Como funciona uma conexão baseada em cliente e servidor;


● Portas e protocolos dos principais serviços da rede.

Servidor: Security
Firewall Linux
Como Funciona uma Conexão
Baseada em Cliente e Servidor?
Porta Alta Protocolos Porta Serviço
1024 - 65535 TCP/UDP/ICMP SSH 22

INPUT
SYN
OUTPUT
SYN/ACK ou RST
ACK
FIN
Flags TCP
Porta Alta Porta Serviço
1024 - 65535 SSH 22

Servidor: Security
Firewall Linux
Como Funciona uma Conexão
Baseada em Cliente e Servidor?
Protocolos
Porta Alta Porta Serviço
TCP/UDP/ICMP
1024 - 65535 DNS 53

Porta Alta Porta Serviço


1024 - 65535 DNS 53

Servidor: Security
Firewall Linux
Como Funciona uma Conexão
Baseada em Cliente e Servidor?

Protocolos
TCP/UDP/ICMP

ICMP ECHO REQUEST


(Type 8)

ICMP ECHO REPLY


(Type 0)

Servidor: Security
Firewall Linux
Portas e Protocolos dos Principais Serviços da Rede

1# cat /etc/services

SSH 22/tcp POP3 110/tcp


HTTP 80/tcp POP3S 995/tcp
HTTPS 443/tcp IMAP 143/tcp
DNS 53/udp IMAPs 993/tcp
SMTP 25/tcp LDAP 389/tcp
SMTPS 465/tcp OPENVPN 1194/udp
FTP 21/tcp

Servidor: Security
Servidor DHCP
Servidor DHCP
Introdução

➢ O protocolo DHCP (Dynamic Host Configuration Protocol, ou


Protocolo dinâmico de configuração de hosts) é responsável por
gerenciar a distribuição de endereços IP na Rede;

➢ Criado e mantido pelo ISC (Internet System Consortium), mesmo


grupo que mantém BIND e NTP;
Servidor DHCP
Tipos de atribuição de endereços:

● Atribuição Dinâmica → Quando um cliente DHCP solicita um


endereço IP, o servidor DHCP vai ao pool de endereços IP
disponíveis (não utilizados) e atribui um endereço IP por um período
de tempo negociável.

● Atribuição Estática → Usado quando desejamos que certo cliente


tenha determinado endereço IP, no DHCP é possível "amarrar" o
endereço "MAC" da máquina cliente ao endereço IP desejado.
Servidor DHCP
Cliente DHCP

1# dhclient ­r

2# dhclient ­v eth0

3# ifconfig eth0

Atenção:
Antes de desligar a DesktopLinux,
altere a configuração de rede.

Servidor: DesktopLinux
Servidor DHCP
Servidor DHCP

1# apt­get install isc­dhcp­server

2# cd /etc/dhcp/

3# mv dhcpd.conf dhcpd.conf.dist

4# vim dhcpd.conf.dist

5# vim dhcpd.conf

Servidor: DataCenter
Servidor DHCP
  ddns­update­style none;
  log­facility local7; 
  subnet 192.168.X.0 netmask 255.255.255.0 {
  range 192.168.X.100 192.168.X.110;
  server­identifier datacenter;
  option domain­name "dexter.com.br";
  option domain­name­servers 192.168.X.3,192.168.X.2;
  option routers 192.168.X.1;
  default­lease­time 600;
  max­lease­time 7200;
  min­lease­time 1000;
  }

Servidor: DataCenter
Servidor DHCP
Reinicie o Serviço

1# /etc/init.d/isc­dhcp­server stop

2# /etc/init.d/isc­dhcp­server start

3# ps aux | grep dhcp

4# tail ­f /var/lib/dhcp/dhcpd.leases

Ligue o desktop Linux para testar seu servidor DHCP

5# dhclient ­v eth0

Servidor: DataCenter
Servidor DHCP
DHCP Estático

1# vim /etc/dhcp/dhcpd.conf

host desktoplinux {
  hardware ethernet 00:00:00:00:00:00;
  fixed­address 192.168.X.10;
}
2# /etc/init.d/isc­dhcp­server restart

Faça uma nova solicitação no DesktopLinux:


3# dhclient ­v

Servidor: DataCenter
Laboratório Dexter

➢ Ligue a máquina Windows e repita o teste do DHCP Dinâmico;


1# tail ­f /var/lib/dhcp/dhcpd.leases

➢ Em seguida, fixe o IP via MAC Address para o Desktop


Windows;
host winXP {
hardware ethernet 00:00:00:00:00:00;
fixed­address 192.168.X.30;
}

Servidor: DataCenter / Desktop Windows


Servidor DNS
Servidor DNS
DNS – Domain Name System
➢ Responsável pela resolução de Nome para IP e de IP para Nome;
➢ Criado e mantido pelo ISC (Internet System Consortium), mesmo
grupo que mantém DHCP e NTP;
➢ 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);
➢ A ICANN delega, de acordo com tratados internacionais, a
responsabilidade pela administração de um "ccTLD";
➢ No caso do Brasil, essa responsabilidade pertence atualmente ao
"CGI.br", mais especificamente ao "REGISTRO.br";
Servidor DNS
➢ Dois servidores, o primário e o secundário, devem ter um mecanismo
configurado corretamente para que eles se mantenham sincronizados;
➢ O DNS reverso deve estar configurado;
➢ O servidor deve trabalhar de forma autoritativa, responsável apenas
pelos domínios dexter.com.br.
➢ Configurar o servidor primário para notificar o secundário quando
houver atualização na zona;
➢ Restringir acesso apenas para a rede interna realizar consulta
recursiva;
➢ Restringir acesso apenas para o servidor secundário realizar
transferência de Zona.
Servidor DNS
Root Servers
.

.com .net .org .br .uk .pt


gTLD (Generic Top Level Domain) ccTLD (Country Code Top Level Domain)

.com .org
http://registro.br/dominio/
dexter

Acessem: http://root-servers.org/
www
Servidor DNS
4. Indica o TLD
responsável

Root Servers

5. Indica o SOA
Responsável

TLD
1. Quem é
Google.com ? (.com)

6. Responde com o IP do
www.google.com
2. Tem no Cache?
3. Pergunta Root
Servers
DNS Autoridade
DNS Primário google.com
Servidor DNS
Tipos de DNS

DNS AUTORITATIVO → O servidor autoritativo de um domínio possui os


registros originais que associam aquele domínio a seu endereço de IP.
Tem sua responsabilidade na humanidade;
DNS DE CACHE → Uma cache DNS guarda localmente os resultados
dessa pesquisa para utilização futura, evitando a repetição de pesquisas
e aumentando drasticamente a velocidade de resposta.
Servidor DNS
Tipos de Registros do DNS

SOA → Start Of Authotity - Indica onde começa a autoridade da zona;


NS → Name Server - Indica um servidor de nomes para a zona;
A → Address - Mapeamento de nome a endereço (IPv4);
AAAA → Address - Mapeamento de nome a endereço (IPv6);
MX → Mail eXchanger - Indica um servidor de email;
CNAME → Canonical Name (Alias) - Mapeia um nome alternativo
(apelido);
PTR → Pointer Record (IP reverso);
TXT → Text – Permite incluir uma entrada de texto curto. Mais usado
para SPF.
Servidor DNS
Exemplos de Consultas DNS

Quem é o servidor de e-mail do google?


Host -t mx google.com
Qual é o endereço do servidor webmail.4linux.com.br?
Host -t A webmail.4linux.com.br
Quais são os servidores DNS da 4linux?
Host -t NS 4linux.com.br
Fazendo uma pesquisa por um DNS em específico:
Dig @8.8.8.8 -t NS 4linux.com.br
Servidor DNS
Servidor DNS

1# apt­get install bind9 5# cd /etc/bind/

   netstat ­nlup | grep 53 6# ls 

2# vim /etc/resolv.conf 7# cat db.root

  nameserver 127.0.0.1 8# cat named.conf.default­zones

  Nameserver 192.168.X.3   9# cat named.conf.options

3# host google.com

4# apt­get update
ATENÇÃO:
Por padrão o bind9 não traz o pacote dns-utils instalado,
responsável pelos utilitários de consulta DNS dig e host.

Servidor: DataCenter
Servidor DNS

1# vim named.conf.local

  zone "dexter.com.br" {
        type master;
        file "db.dexter";
  };
2# cd /var/cache/bind

3# wget http://192.168.1.1/452/dhcp/db.dexter

4# vim db.dexter

Servidor: DataCenter
Servidor DNS
$TTL 86400 
@ IN SOA ns1.dexter.com.br. root.dexter.com.br. ( 
  2013010101; serial 
  8h ; refresh 
  1h ; retry 
  3d ; expire 
  3h ); negative caching ttl 

@ IN NS ns1.dexter.com.br. 
@ IN MX 10 mail.dexter.com.br. 
@ IN A 192.168.X.2 
ns1 IN A 192.168.X.2 
www IN A 192.168.X.2
intranet IN CNAME www
mail IN A 192.168.X.2

Servidor: DataCenter
Servidor DNS

1# named­checkzone dexter.com.br /var/cache/bind/db.dexter

2# tail ­f /var/log/daemon.log > /dev/tty2 

3# /etc/init.d/bind9 stop

4# /etc/init.d/bind9 start

5# dig ­t soa dexter.com.br

6# host dexter.com.br

7# host intranet.dexter.com.br

Servidor: DataCenter
Servidor DNS
Explorando a ferramenta RNDC
O comando dumpdb com a opção
1# rndc status -cache tem a função realizar o dump
do cache DNS.
2# rndc reload

3# host uol.com.br Caso deseje apagar o conteúdo do


cache DNS, é utilizado o comando
4# rndc dumpdb ­cache
rndc flush.
5# cat /var/cache/bind/named_dump.db

6# grep uol /var/cache/bind/named_dump.db

7# rndc flush

Servidor: DataCenter
Transferência de Zona

➢ Transferência de Zona consiste no Servidor DNS


Primário passar toda a configuração de uma determinada Zona;
➢ Pensando em Segurança, essa ação sempre deve ser restrita
apenas a servidores DNS autorizados a receber as suas
configurações;
➢ É muito comum SysAdmins deixarem a Transferência de Zona
aberta no Servidor causando uma brecha de segurança.
1# dig dexter.com.br axfr
Transferência de Zona
Protegendo seu DNS
1# vim /etc/bind/named.conf.local

  zone "dexter.com.br" {
allow-transfer Restringir a
  type master;
transferência de zona apenas
  file "db.dexter"; para Servidores Autorizados;
  allow­transfer { 192.168.X.3; };
  notify yes; As opções notify e also-notify
  also­notify { 192.168.X.3; }; determinam se o servidor
primário notifica servidores
  }; secundários quando a
2# /etc/init.d/bind9 restart informação de zona for
atualizada.
3# dig dexter.com.br axfr
Servidor DNS
DNS Reverso

DNS reverso é um recurso que permite que outros servidores verifiquem


a autenticidade do seu servidor. Para isso, ele checa se o endereço IP
atual bate com o endereço IP informado pelo servidor DNS.
1# host mail.dexter.com.br

2# host 192.168.X.2

3# vim /etc/bind/named.conf.local

  zone "X.168.192.in­addr.arpa" {
  type master;
  file "rev.dexter";
  };

Servidor: DataCenter
Servidor DNS
DNS Reverso
1# vim /var/cache/bind/rev.dexter

$TTL 86400
@ IN SOA ns1.dexter.com.br. 
root.dexter.com.br.(
  2013010101; serial
  8h; refresh
  1h; retry
  3d; expire
  3d ); negative cache ttl

@ IN NS ns1.dexter.com.br.
ns1       IN A 192.168.X.2
2 IN PTR mail.dexter.com.br
Servidor DNS
Checando o DNS Reverso

1# /etc/init.d/bind9 restart

2# host mail.dexter.com.br

3# host 192.168.X.2

Servidor: DataCenter
Servidor DNS
DNS Secundário

Os servidores DNS Secundários ajudam a fornecer equilíbrio de


carga e tolerância a falhas. Os servidores DNS secundários
mantêm uma cópia somente leitura dos dados da zona
transferidos periodicamente do servidor DNS Primário.
1# yum install bind

2# vim /etc/named.conf

  include “/etc/named.conf.local”;

Servidor: DMZ
Servidor DNS
DNS Secundário
1# vim /etc/named.conf.local

  zone "dexter.com.br" {
  type slave;
  masters { 192.168.X.2; };
  file "/var/named/slaves/db.slave.dexter";
  };
2# /etc/init.d/named restart

3# ls /var/named/slaves/

4# cat /var/named/slaves/db.slave.dexter

Servidor: DMZ
DNS Recursivo

➢ DNS Recursivo é a funcionalidade que o DNS possui


por padrão de realizar consultas para todos os domínios mesmo que
ele não seja o servidor autoritativo daquele domínio;
➢ Para evitar abuso em servidores DNS que ficam disponíveis na
internet, é importante limitar a recursividade apenas para redes
autorizadas;
1# host 8.8.8.8

2# dig @8.8.8.8 ­t a uol.com.br

3# host ns1.google.com

4# dig @216.239.32.10 ­t a uol.com.br
Laboratório Dexter
Validando os Servidores DNS

Validando o DNS MASTER


1# dig @192.168.X.2 google.com.br

Validando o DNS SLAVE


2# dig @192.168.X.3 google.com.br

Hmm... Alguma coisa de errado no arquivo de conf. do servidor DNS


Slave. Encontre qual é o problema e resolva.

Servidor: DataCenter
Servidor DNS
DNS Recursivo

1# vim /etc/named.conf

  Options {
     listen­on port 53 { 127.0.0.1; 192.168.X.0/24; };
     listen­on­v6 port 53 { ::1; };
  directory  “/var/cache/bind”;
  dump­file “/var/named/data/cache_dump.db”;
  statistics­file “/var/named/data/named_stats.txt”;
  memstatistics­file “/var/named/data/named_mem_stats.txt”;
  allow­query { localhost; 192.168.X.0/24; };
  recursion yes;
};
2# /etc/init.d/named restart

Servidor: DMZ
Servidor Apache
IT EXPERIENCE

➢ Dois servidores web, no Debian (Cloud) e no CentOS (Local);


➢ WebServer Cloud armazena o site da Dexter;
➢ WebServer Local armazena a intranet da Dexter e o sistema de
report de backup;
➢ No site da Dexter será necessário ativar SSL;
➢ Na intranet será necessário configurar VirtualHost para os
domínios:
● intranet.dexter.com.br
● bkpreport.dexter.com.br
Servidor Apache
Apache – Servidor de Web (Hospedagem de Sites)
➢ Suporta várias linguagens de programação;
➢ Multiplataforma (Unix, Linux, Windows);
➢ Modular, você libera os módulos (funcionalidades) de acordo com a
necessidade;
➢ A partir do Apache 2 foi implementado o MPM (Módulo de
MultiProcessamento);
➢ PreFork → Usa múltiplos processos sem thread;
➢ Worker → Usa múltiplos processos com várias threads cada
processo.
Servidor Apache
Fatia do Mercado para Todos os Domínios

Fonte: http://news.netcraft.com/archives/category/web-server-survey/
Servidor Apache
Servidor Apache - CenTOS

1# rpm ­qa | grep http

2# yum groupinstall "Web Server"

3# chkconfig ­­list httpd
Acesse o browser da Máquina
DesktopLinux para testar seu
4# chkconfig httpd on/off 
Servidor Web!
5# /etc/init.d/httpd restart

6# netstat ­nlt

89
Servidor Apache
Explorando as Configurações do Apache:

1# cd /etc/httpd 

2# ls

3# cd /etc/httpd/conf 

4# ls

5# mv httpd.conf httpd.conf.dist

6# vim httpd.conf

Servidor: DMZ
Servidor DNS
  14  ServerRoot "/etc/httpd"
  28  <IfModule prefork.c>
  29  StartServers       8
  30  MinSpareServers    5
  31  MaxSpareServers   20
  32  ServerLimit      256
  33  MaxClients       256
  34  MaxRequestsPerChild  4000
  35  </IfModule>
  48  Listen 80
  51  User apache
  52  Group apache
  55  ServerAdmin root@localhost
  58  ServerName 127.0.0.1:80
  68  DocumentRoot "/var/www/html"

Servidor: DMZ
Restringindo Informações
Explorando seu Apache

2# nmap ­sV intranet.dexter.com.br
Boa prática de Segurança diz
80/tcp  open  http    Apache httpd 2.2.15  que você não deve deixar
443/tcp open ssl/http Apache httpd 2.2.15 disponível publicamente
informações como:
- Software Instalado;
- Versão do Software;
No browser acesse:
- Sistema Operacional.
intranet.dexter.com.br/nada.html
Chamamos isso de Banner de
Serviço!

Máquina: DesktopLinux
Restringindo Informações
Protegendo seu Apache
ServerTokens:
1# vim /etc/httpd/conf/httpd.conf 
Prod – Informa apenas Apache;
  10 ServerTokens Prod
Min – Revela a versão do Apache;
 11 ServerSignature Off
OS – Revela SO e versão do Apache;
2# service httpd restart
Full – Revela SO, versão do Apache e
módulos ativos.
Repita o Teste no DesktopLinux: ServerSignature → Desativa a
assinatura no rodapé do browser
 1# nmap ­sV intranet.dexter.com.br 
quando acessamos uma página não
Acesse: intranet.dexter.com.br/nada.html existente.

Servidor: DMZ
Servidor Apache
Apache VirtualHost

O que é um VirtualHost?
É um domínio virtual, uma funcionalidade que permite ao seu
WebServer responder por um ou mais sites em um mesmo IP, o que
possibilita acessar serviços e páginas diferentes em um mesmo
servidor, apenas apontando a entrada DNS correta nos arquivos de
zona.
1# host intranet.dexter.com.br

2# host bkpreport.dexter.com.br

Servidor: DMZ
Servidor Apache
Configurando VirtualHost

1# vim /etc/httpd/conf/httpd.conf

    61 NameVirtualHost *:80
    65 Include sites/*
2# cd /etc/httpd/

3# mkdir sites ; cd sites

Servidor: DMZ
Servidor Apache
Configurando VirtualHost
1# cat /etc/httpd/sites/intranet.conf

  <VirtualHost *:80>
    ServerAdmin  webmaster@dexter.com.br
     DocumentRoot /var/www/html/intranet
     ServerName   intranet.dexter.com.br
     ErrorLog     logs/intranet­error_log
     CustomLog    logs/intranet­access_log common
  </VirtualHost>

Servidor: DMZ
Servidor Apache
Configurando VirtualHost
1# cat /etc/httpd/sites/backup.conf

  <VirtualHost *:80>
     ServerName   bkpreport.dexter.com.br
     ServerAlias  backup.dexter.com.br
     ServerAdmin  webmaster@dexter.com.br
     DocumentRoot /var/www/html/backup
     ErrorLog     logs/backup­error_log
     CustomLog    logs/backup­access_log common
  </VirtualHost>
2# /etc/init.d/httpd restart

Servidor: DMZ
Servidor Apache
Ajustando o Armazenando dos Sites

1# cd /var/www/html

2# mkdir intranet

3# mv *  intranet

4# mv intranet/bkpreport/ backup

5# chown ­R apache.apache *

6# ls ­l

Servidor: DMZ
Servidor Apache
Acessando o Virtualhost

➢ Acesse o browser da DesktopLinux;

< backup.dexter.com.br >

< bkpreport.dexter.com.br > 

< intranet.dexter.com.br >

Servidor: DesktopLinux
Laboratório Apache
Criar um novo site com o seu nome XXX. Será necessário criar
um VirtualHost e configurar o DNS.

1) Entrar no diretório /etc/httpd/sites;


2) Copiar o intranet.conf para o seu site XXX.conf;
3) Editar o XXX.conf e alterar os nomes;
4) Criar um diretório declarada em DocumentRoot do seu site em
/var/www/html/XXX;
5) Criar um index.html qualquer dentro do diretório do Site XXX;
6) Reiniciar o HTTPD;
7) Entrar na DataCenter e alterar a zona db.dexter em /var/cache/bind/db.dexter
(não esquecer o serial);
8) Atualizar com rndc reload e Testar no Browser da DesktopLinux.

Servidor: DMZ/DataCenter/DesktopLinux
Servidor Apache
Apache SSL (https) – Ativando SSL no Site da Dexter:

➢ Acesse o servidor da Cloud;


➢ Limpando o arquivo de configuração do Apache:
2# cd /etc/apache2/ 

3# mv apache2.conf apache2.conf.dist

4# grep ­v ^# apache2.conf.dist | uniq > apache2.conf

5# cat apache2.conf

Servidor: WebServerCloud
Servidor Apache
Apache SSL (https) – Ativando SSL no Site da Dexter

➢ Desativando o site default do Apache:


1 # a2dissite default
2 # ls /etc/apache2/sites­enable/ 
3 # service apache2 reload
➢ Ativando o site da Dexter em sites-available;
3 # cd /etc/apache2/sites­available/

Servidor: WebServerCloud
Servidor Apache
Apache SSL (https) – Ativando SSL no Site da Dexter

➢ Ativando o site da Dexter em sites-available:


1 # a2ensite dexter
2 # cd /var/www
3 # mkdir dexter
4 # mv * dexter
5 # chown ­R www­data dexter/
6 # service apache2 restart

Servidor: WebServerCloud
Servidor Apache
Apache SSL (https) – Ativando SSL no Site da Dexter
➢ SSL (Secure Socket Layer) => Protocolo que encripta toda a
transmissão entre o cliente e um servidor, indicado para criar páginas
seguras:
1 – Gerar Chave;
CERT
Browser 2 – Criar a requisição CSR;
www.dexter.com.br Criptografia
Servidor Web 3 – Mandar Chave e o CSR para
dexter.com.br uma CA;

4 – A CA assina e gera um CRT;

3/4 - Auto assinar o Certificado.

Servidor: WebServerCloud
Servidor Apache
Apache SSL (https) – Ativando SSL no Site da Dexter

➢ Gerar Chave Privada:


1# openssl genrsa ­out /etc/ssl/dexter.key 1024

➢ Gerar Requisição (CSR - Certificate Signing Request)


2# openssl req ­new ­key /etc/ssl/dexter.key ­out 

/etc/ssl/dexter.csr

➢ Auto Assinar o Certificado:


3# openssl x509 ­req ­days 365 ­in /etc/ssl/dexter.csr  

­signkey  /etc/ssl/dexter.key  ­out /etc/ssl/dexter.crt 

Servidor: WebServerCloud
Servidor Apache
Apache SSL (https) – Ativando SSL no Site da Dexter

➢ Desativar o módulo do CGI que não iremos utilizar;


1 # a2dismod cgi
➢ Ativar o módulo de suporte a SSL no Apache;
1 # a2enmod ssl 
➢ Configurar SSL no VirtualHost:
3 # cd /etc/apache2/sites­available/
4 # wget  192.168.1.1/452/apache/dexter­ssl 

Servidor: WebServerCloud
Servidor Apache
Apache SSL (https) – Ativando SSL no Site da Dexter
➢ Acesse o arquivo de configuração;
1# vim /etc/apache2/sites­available/dexter­ssl
<VirtualHost _default_:443>
        ServerAdmin webmaster@dexter.com.br
        ServerName  www.dexter.com.br
        ServerAlias dexter.com.br
        DocumentRoot /var/www/dexter
  ...
      #   Enable SSL for this virtual host.
        SSLEngine on
        SSLCertificateFile    /etc/ssl/dexter.crt
        SSLCertificateKeyFile /etc/ssl/dexter.key
</VirtualHost>

Servidor: WebServerCloud
Servidor Apache
Apache SSL (https) – Ativando SSL no Site da Dexter
➢ Ativando o site SSL;
1# a2ensite dexter­ssl

2# service apache2 restart

3# ls ­l /etc/apache2/sites­enabled/

➢ Teste no browser da DesktopLinux;


< http://www.dexter.com.br >
< https://www.dexter.com.br >

Servidor: WebServerCloud / DesktopLinux


Servidor Apache
Apache SSL (https) – Ativando SSL no Site da Dexter

➢ Redirecionando Requisições HTTP para HTTPS:


1# vim /etc/apache2/sites­enabled/dexter

29         CustomLog ${APACHE_LOG_DIR}/dexter­access.log 
combined
31         # Redirecionar para Porta 443
32         RewriteEngine On
33         RewriteCond %{SERVER_PORT} 80
34         RewriteRule ^(.*)$ https://www.dexter.com.br/ [R,L]

Servidor: WebServerCloud
Servidor Apache
Apache SSL (https) – Ativando SSL no Site da Dexter

➢ Habilite o módulo responsável pelo redirecionamento e em


seguida reinicie o apache:

2# a2enmod rewrite

3# service apache2 restart

➢ Teste o redirecionamento no browser da DesktopLinux:

< http://www.dexter.com.br  >

< https://www.dexter.com.br  >

Servidor: DesktopLinux
Agentes de e-mail
MTA

Mail Transport Agent (MTA)


➢ É o servidor de e-mails propriamente dito. Certamente a parte
mais importante de um sistema de correio;
➢ O MTA é responsável pelo recebimento e envio de mensagens
assegurando que elas cheguem ao seus destinos;
➢ Ele se comunica diretamente com o MDA para entrega de
correspondências;
➢ São exemplos de MTA: Postfix, Sendmail, Qmail, Exim, Microsoft
Exchange e etc.
Agentes de e-mail
MDA

Mail Delivery Agent (MDA)


➢ É o responsável por controlar a entrega final das mensagens
para destinatários de um sistema;
➢ Um MDA é usado para aplicar filtros anti-spam, remover vírus
em anexos, categorizar mensagens e fazer encaminhamento
de e-mails para outros endereços;
➢ São exemplos de MDA: Procmail, Fetchmail, Courier, Dovecot,
Maildrop, Postdrop e etc.
Servidor Postfix
MX da 4Linux MX do Gmail
IMAP
POP

WebMail/Outlook/Thunderbird WebMail/Outlook/Thunderbird
From:eu@dexter.com.br From:eu@dexter.com.br
To:voce@gmail.com To:voce@gmail.com
Servidor Postfix
Introdução

➢ Escrito em linguagem C, a primeira versão oficial do


"Postfix" como Software Livre foi lançada em Dezembro
de 1998;
➢ Seu criador é o holandês Wietse Venema, programador e
físico conhecido por diversos trabalhos relacionados à
segurança da informação.
Servidor Postfix
Características do Postfix

Sistema modular/multitarefa → O Postfix possui um conjunto de


módulos que desempenha um papel específico para cada etapa do
tráfego de e-mails, com a possibilidade de adicionar módulos, o que o
torna facilmente extensível;
Separação de privilégios → Permite execução em "chroot", o que
restringe o acesso a arquivos internos da máquina aumentando a
segurança;
Compatibilidade → Desenvolvido para suportar os formatos de
armazenamento de mensagens existentes.
Servidor Postfix
Instalação e Configuração

1 – Para instalar o Postfix execute:


1#  apt­get  install  postfix  procmail  bsd­mailx  courier­imap 
courier­pop 
2#  netstat ­nlt | egrep "25|143|110"
3# telnet localhost 25

Banner: 220 datacenter.dexter.com.br ESMTP Postfix 
(Debian/GNU)
4# cd /etc/postfix

5# ls

Servidor: Datacenter
Servidor Postfix

Servidor: Datacenter
Servidor Postfix

Em seguida, defina o domínio do servidor a ser incluído no envio de


mensagens. Utilize o padrão dexter.com.br.

Servidor: Datacenter
Servidor Postfix

Otimizar o Postfix para administração web através do courier-webmin.


Não utilizaremos essa ferramenta, portanto marque <Não>.

Servidor: Datacenter
Servidor Postfix
Configuração do Postfix

1 – Faça uma cópia do arquivo de configuração do Postfix e baixe o


arquivo customizado para o curso:
1# mv /etc/postfix/main.cf  /etc/postfix/main.cf.dist

2# wget 192.168.1.1/452/postfix/main.cf

3# vim /etc/postfix/main.cf

4# vim /etc/mailname

  dexter.com.br
Acompanhe a explicação do Arquivo
main.cf pelo Terminal

Servidor: Datacenter
Servidor Postfix
Testando o Postfix

1 - Reinicie o postfix e em outro terminal abra o log de e-mail:


1# service postfix restart

2# tail ­f /var/log/mail.log

2 - Envie um e-mail de teste e verifique o spool:


3#  echo  "Teste  de  Envio"  |  mail  ­s  "Primeiro  Email" 
suporte@dexter.com.br
4# cat /var/spool/mail/suporte

<Envie uma nova mensagem e verifique que o


destino dela será sempre o mesmo arquivo>

Servidor: Datacenter
Servidor Postfix
Definindo o Formato da Caixa de E-mail

3 - Ative o padrão maildir através da Existem dois padrões em relação a


edição do arquivo main.cf: caixa de correio Postfix:
1# vim /etc/postfix/main.cf MailBox → Todas as mensagens são
home_mailbox = Maildir/ armazenadas em um único arquivo
<Não se esqueça de comentar a linha texto (Padrão do Postfix);
mailbox_command referente ao padrão mailbox>
MailDir → Utiliza um sistema de

2# service postfix reload diretórios e distribui um arquivo para


armazenar cada mensagem.

Servidor: Datacenter
Servidor Postfix
Testando o Envio de E-mail Utilizando o Telnet

4 - Envie um e-mail via telnet para validar o funcionamento do Postfix:


1# telnet localhost 25

  Trying ::1...
  Connected to localhost.
  Escape character is '^]'.
  220 datacenter.dexter.com.br ESMTP Postfix (Debian/GNU)
  helo dexter.com.br
  250 datacenter.dexter.com.br
  mail from: root@dexter.com.br
  250 2.1.0 Ok
  rcpt to: suporte@dexter.com.br
  250 2.1.5 Ok

Servidor: Datacenter
Servidor Postfix
Testando o Envio de E-mail Utilizando o Telnet
data
354 End data with <CR><LF>.<CR><LF>
subject: Teste de e­mail na 4linux
Obrigado Wietse!
.
250 2.0.0 Ok: queued as 7FFF6195
quit

5 – Verifique a caixa de mensagens do usuário suporte:


2# ls ­la /home/suporte

3# ls /home/suporte/Maildir/new

Servidor: Datacenter
Servidor Postfix
POP

POP (Post Office Protocol)


➢ Protocolo utilizado para coletar mensagens em uma caixa de correio
eletrônico;
➢ Uma característica do POP que hoje pode ser considerada pouco
vantajosa é o seu formato, onde as mensagens são baixadas para o
computador local e excluídas do servidor. Assim, o POP não pode
ser utilizado para armazenamento permanente de mensagens;
➢ A porta 110 é padrão para este protocolo. Quando implementada
uma camada de segurança ao POP ele deverá trabalhar na porta
995.

Servidor: Datacenter
Servidor Postfix
Acessando Caixa Postal – POP

1 – Utilize o telnet para acessar a caixa postal utilizando o POP:


    1# telnet mail.dexter.com.br 110

  user suporte
+OK Password required
  pass 4linux
+OK logged in.
  list
  retr 1
  quit

Servidor: Datacenter
Desativando o VRFY
➢ Por padrão o Postfix irá responder solicitações
SMTP VRFY;
➢ Este recurso é usado por spammers e crackers para coletar
informações sobre e-mail válidos sistema.
 1 # telnet localhost 25
    helo dexter.com.br
    vrfy linus  … Uhhh... Não existe.
   Vrfy suporte … Há encontrei!
    quit

Servidor: Datacenter
Desativando o VRFY
➢ É possível bloquear esta configuração através
da edição do arquivo main.cf conforme abaixo:
  2# vim /etc/postfix/main.cf   <Adicione a linha abaixo ao
final do arquivo>
  disable_vrfy_command = yes 
   3# service postfix reload

  4#  telnet localhost 25
     helo dexter.com.br
     vrfy suporte
  502 5.5.1 VRFY command is disabled
    quit

Servidor: Datacenter
Servidor Postfix
IMAP

IMAP (Post Office Protocol)


➢ Assim como o Pop, também é um protocolo utilizado para
coletar mensagens em uma caixa de correio eletrônico;
➢ Diferente do padrão utilizado pelo POP, o Imap foi projetado
para permitir que o usuário armazene as mensagens
permanentemente no servidor;
➢ Com o Imap o usuário pode acessar todas as mensagens a a
partir de qualquer lugar do mundo.
Servidor Postfix
Configurando as Pastas para o IMAP

1 - Crie os diretórios de e-mail através do comando maildirmake:


1# maildirmake /home/suporte/Maildir/.Enviados

2# maildirmake /home/suporte/Maildir/.Rascunhos

3# maildirmake /home/suporte/Maildir/.Lixeira

4# maildirmake /home/suporte/Maildir/.Spam

5# chown ­R suporte:suporte /home/suporte

No Desktop Linux acompanhe com o instrutor a configuração do IceDove um


MUA de código fonte aberto baseado no Thunderbird.

Servidor: Datacenter
Servidor Postfix
Configurando as Pastas para o IMAP

2 - Crie mais um usuário e seus respectivos diretórios de e-mail:


1# adduser seu_nome

2# maildirmake /home/seu_nome/Maildir/

3# maildirmake /home/seu_nome/Maildir/.Rascunhos

4# maildirmake /home/seu_nome/Maildir/.Lixeira

5# maildirmake /home/seu_nome/Maildir/.Spam

6# chown ­R seu_nome:seu_nome /home/seu_nome

Servidor: Datacenter
Servidor Postfix
Configurando o MUA Thunderbird

1 – No Desktop Linux abra o icedove para configuração: Aplicativos


→ Internet → Cliente de E-mail Icedove

Servidor: Datacenter
Servidor Postfix

Servidor: Datacenter
Servidor Postfix
Instalando o Webmail RoundCube

O Roundcube é um cliente IMAP no formato webmail, com uma interface


bem organizada e suporte a vários recursos, como manipulação de
pastas, busca de mensagens e verificação ortográfica.

1 – Faça a instalação do RoundCube:


1# yum install roundcubemail.noarch

2# cd /etc/httpd/sites

3# cp intranet.conf webmail.conf

Servidor: DMZ
Servidor Postfix
Instalando o Webmail RoundCube

2– Em seguida, configure o arquivo VirtualHost conforme abaixo:


4# vim /etc/httpd/webmail.conf

<VirtualHost *:80>
    ServerName   webmail.dexter.com.br
    ServerAdmin  root@dexter.com.br
    DocumentRoot /usr/share/roundcubemail
    ErrorLog     logs/webmail­error_log
    CustomLog    logs/webmail­access_log common
</VirtualHost>

Servidor: DMZ
Servidor Postfix
Instalando o Webmail RoundCube

3 – Libere o RoundCube para atuar escutar sua rede interna:


5# vim /etc/httpd/conf.d/roundcubemail.conf

...
        Order Deny,Allow
        Deny from all
        Allow from 127.0.0.1
        Allow from 192.168.X.0/24
        Allow from ::1
...

Servidor: DMZ
Servidor Postfix
Configurando a Base de Dados do Roundcube

1 – O arquivo INSTALL da documentação do RoundCube indica


como configurar a base de dados em todos os SGBD`s suportados
por ele.
1# vim + 87 /usr/share/doc/roundcubemail­0.9.5/INSTALL

2# mysql ­u root ­p 

      CREATE  DATABASE  roundcubemail  /*!40101  CHARACTER  SET  utf8 


COLLATE utf8_general_ci */;
GRANT ALL PRIVILEGES ON roundcubemail.* TO roundcube@localhost 
IDENTIFIED BY '4linux';

Servidor: DMZ
Servidor Postfix
Configurando a Base de Dados do Roundcube

2 – De forma similar, no diretório SQL temos a query utilizada na


estruturação da base de dados:
1# cd /usr/share/doc/roundcubemail­0.9.5/SQL/

2# cat mysql.initial.sql

3 – Basta adicionar a estrutura acima ao mysql:


3# mysql ­u root ­p roundcubemail < mysql.initial.sql

Servidor: DMZ
Servidor Postfix
Configurando o Webmail RoundCube

1 – Para integrar o RoundCube com o apache algumas opções


deverão ser alteradas:
1# cd /root

2# wget http://192.168.1.1/452/postfix/roundcubemail.tar

3# tar ­xf roundcubemail.tar ­C /etc/

4# cd /etc/roundcubemail/

Servidor: DMZ
Servidor Postfix
Configurando o Webmail RoundCube

2 – Ao efetuar a descompactação dos arquivos configurados as


seguintes opções foram alteradas em relação ao arquivo padrão:

5# vim main.inc.php

78 $rcmail_config['default_host'] = 'imap.dexter.com.br'; 
146 $rcmail_config['smtp_server'] = 'smtp.dexter.com.br';
251 $rcmail_config['session_domain'] = 'dexter.com.br';

Servidor: DMZ
Servidor Postfix
Configurando o Webmail RoundCube

3 – Altere a senha de acesso ao mysql e a timezone:


6# vim db.inc.php

$rcmail_config['db_dsnw'] = 
'mysql://roundcube:4linux@localhost/roundcubemail';
<Na linha 25 do arquivo db.inc.php substitua a senha padrão  
4linux pela senha cadastrada  por você no mysql>
7# vim +946 /etc/php.ini

date.timezone = America/Sao_Paulo
8# service httpd restart

Servidor: DMZ
Servidor Postfix
Configurando o Webmail RoundCube

Pronto! - Na Desktop Linux acesse: webmail.dexter.com.br

Desktop Linux
Servidor Postfix
Criando Alias de Email

1 - Crie uma lista de distribuição através do arquivo aliases:


1# vim /etc/aliases

helpdesk: suporte,seu_nome

2- Para validar essas modificações e gerar o arquivo de "hash", use


o comando "postalias" ou o comando "newaliases":
1# postalias /etc/aliases ou
<Envie um e-mail para helpdesk@dexter.com.br e
newaliases verifique a caixa de e-mail do usuário suporte>

Servidor: Datacenter
Pergunta LPI
São arquivos de configuração do Postfix: (Selecione
duas opções corretas)
A. /etc/postfix/main.cf
B. /etc/postfix/cf.main
C. /etc/postfix/master.cf
D. /etc/postfix/postfix.conf

Qual é o arquivo onde alias de e-mail podem ser configurados


no sistema? (Coloque o nome e caminho completo)

149
Servidor OpenLDAP

LDAP
Lightweight Directory Access Protocol

Protocolo Leve de Acesso a Diretórios


IT EXPERIENCE

Nesta Aula:
➢ DataCenter – Local
Acesso pelo VirtualBox
SO: Debian Linux
Objetivos da Aula

➢ Entender a estrutura do LDAP;


● Schemas;
● ObjectClass;
● Atributos;
➢ Inserir e modificar dados com arquivos LDIF;
➢ Administrando o LDAP com ApacheDirectoryStudio;
➢ Fazendo backup da base LDAP.
Servidor OpenLDAP
dc=dexter,dc=com,dc=br

ou=users ou=groups

uid=fox uid=harry cn=financeiro cn=analistas


uid=fox uid=harry cn=financeiro cn=analistas

cn=fox cn=harry GidNumber: 500 GidNumber: 501

sn=bennett sn=rosemberg memberUid: fox memberUid: harry


… … ... ...
Servidor OpenLDAP

Schema

core.schema

ObjectClass Atributos

ObjectClass Atributos

ObjectClass Atributos
Servidor OpenLDAP
Atributos

c - Representa país (country);


o - Representa uma organização como uma empresa (organization);
ou - Representa um departamento (organization unit);
cn - Representa um nome (common name);
uid - Representa a identidade de um usuário (user ID);
gn - Representa o nome próprio de uma pessoa (given name);
sn - Representa o sobrenome de uma pessoa (surname).

Servidor: DataCenter
Servidor OpenLDAP
➢ Instalando o OpenLDAP:
1# apt­get install slapd ldap­utils

< Irá solicitar a senha do Administrador LDAP > 

➢ Configurando a base LDAP:


2# dpkg­reconfigure slapd

1 – Omitir as Configurações: Não 4 – Senha do Admin


2 – Domínio do DNS: dexter.com.br 5 – Confirma Senha
3 – Nome da Empresa 6 – Metódo de Armazen

Servidor: DataCenter
Servidor OpenLDAP
➢ Consulta simples ao LDAP:
1# ldapsearch ­x ­LLL ­h 127.0.0.1 ­b 

dc=dexter,dc=com,dc=br
➢ Consulta sendo Administrador da Base LDAP:
2# ldapsearch ­x ­LLL ­h 127.0.0.1 ­b 

dc=dexter,dc=com,dc=br ­D 
"cn=admin,dc=dexter,dc=com,dc=br" ­W

-x → Autenticação Básica -b → Qual a base de consulta


-LLL → Limpar a Busca -D → Usuario Admin do LDAP
-h → Especificar o Host do LDAP -W → Senha do Admin LDAP

Servidor: DataCenter
Servidor OpenLDAP
➢ Configurando o LDAP:
1# cd /etc/ldap/

2# vim ldap.conf

8 BASE    dc=dexter,dc=com,dc=br
9 URI     ldap://127.0.0.1

➢ Consultando o LDAP:
3# ldapsearch ­x ­LLL 

Servidor: DataCenter
Servidor OpenLDAP
➢ Inserindo dados na base usando LDIF:
1# cd /etc/ldap/

2# wget 192.168.1.1/452/ldap/ldifs.tar.gz

3# tar xf ldifs.tar.gz

4# cd ldifs/ ; ls

group.ldif  ou.ldif  user.ldif modify.ldif

LDIF → São arquivos usados para alterar/inserir a base do LDAP.

Servidor: DataCenter
Servidor OpenLDAP
➢ Criando as OU (organization unit) da Dexter, Users e Groups:
1# vim ou.ldif

2# ldapadd ­x ­D "cn=admin,dc=dexter,dc=com,dc=br" ­f ou.ldif ­W

3# ldapsearch ­x ­LLL ­b dc=dexter,dc=com,dc=br

➢ Criando os Usuários da Dexter no LDAP:


1# vim user.ldif

< Modifique os Campos para DN, UID, SN, CN, homeDirectory e mail para o seu
Nome e Sobrenome >
2# ldapadd ­x ­D "cn=admin,dc=dexter,dc=com,dc=br" ­f user.ldif ­W

Servidor: DataCenter
Servidor OpenLDAP
➢ Criando os Grupos:
1# vim group.ldif

< Ajuste o campo nome.sobrenome para seu usuário >


2#ldapadd ­x ­D "cn=admin,dc=dexter,dc=com,dc=br" ­f group.ldif ­W

➢ Apagando o Usuário Fox Bennet:


1# ldapdelete ­x ­D "cn=admin,dc=dexter,dc=com,dc=br" 

uid=fox.bennett,ou=users,dc=dexter,dc=com,dc=br ­W

Para deletar informações da Base é necessário ser Administrador.

Servidor: DataCenter
Servidor OpenLDAP
➢ Alterando um registro existente:
1# vim modify.ldif

2#ldapmodify ­x ­D "cn=admin,dc=dexter,dc=com,dc=br" ­f modify.ldif ­W

➢ Iremos utilizar uma ferramenta para administrar o LDAP da


Dexter Courier;
ApacheDirectoryStudio – Acesse pela DesktopLinux

3# wget http://192.168.1.1/452/apachestudio.tar.gz

Servidor: DataCenter / DesktopLinux


Servidor OpenLDAP
➢ Fazendo BACKUP do LDAP:
  1# ls /var/lib/ldap/

  2# /etc/init.d/slapd stop

  3# slapcat ­l /etc/ldap/backup.base.ldap

  4# rm ­rf /var/lib/ldap/*

  5# /etc/init.d/slapd start

  6# ldapsearch ­x ­LLL

  7# /etc/init.d/slapd stop

  8# slapadd ­l /etc/ldap/backup.base.ldap

Servidor: DataCenter
Implementando RAID + LVM
IT EXPERIENCE

Nesta Aula:
➢ Servidor: Storage
Acesso pelo VirtualBox
SO: Cent OS
Objetivos da Aula

➢ Introdução às tecnologias RAID e LVM;


➢ Implementar RAID na prática;
➢ Adicionar, testar e remover dispositivos;
➢ Implementar LVM na prática;
➢ Criar volumes físicos, grupos e volumes lógicos;
➢ Redimensionar volumes lógicos.
Implementando RAID
Introdução
RAID → Redundant Array of Independent Disks (Conjunto
Redundante de Discos Independentes)
➢ A ideia básica por trás do RAID é combinar discos de em
conjuntos, a fim de atingir objetivos de desempenho ou
redundância e economia;
➢ Este conjunto de discos aparece para o computador como uma
única unidade ou disco de armazenamento lógico.
Implementando RAID
Vantagens no Uso de RAID

➢ Ganho de desempenho no acesso para leitura/gravação;


➢ Redundância em caso de falhas;
➢ Uso múltiplo de várias unidades de discos;
➢ Facilidade em recuperação de conteúdos perdidos;
➢ Impacto reduzido na falha de um disco.
Implementando RAID
Maneiras de Criar um Sistema em RAID

Existem dois métodos que podem ser utilizados na construção de


um sistema RAID:
➢ RAID via software → Feito por aplicativos do próprio Sistema
Operacional;
➢ RAID via hardware → Construído por placas controladoras
que conectam os discos. Um RAID via hardware possui melhor
desempenho que o hardware via software.
Implementando RAID
Tipos de RAID Divisão dos dados em partes iguais
com armazenamento de fragmentos
RAID 0 (Stripping) em discos diferentes. Logo, com dois
discos a velocidade de leitura chega
praticamente ao dobro.

A1 A2 Vantagens x Desvantagens
A3 A4 (+) Excelente gravação e leitura;
A5 A6
(+) Aproveitamento total de espaço;
(-) Nenhuma redundância!
Implementando RAID
Sua principal função é prover redundância dos
Tipos de RAID
dados através da duplicação da informação
gravada em disco, assim, na falha de um dos
RAID 1 (Mirroring) discos, o outro deverá continuar operando.

Vantagens x Desvantagens
(+) Redundância: se um dos discos falhar, o
sistema continua funcionando;
A1 A1
(-) Você vai precisar de 2 HDs, mas só vai
A2 A2 usar a área útil de 1;
A3 A3
(-) Reduz um pouco o desempenho da escrita,
pois o mesmo dado é gravado nos discos que
estiverem em "RAID 1"
Implementando RAID
Reúne características dos tipos 0 e 1,
Tipos de RAID
provendo ganho de desempenho e
tolerância a falhas.
RAID 5
Vantagens x Desvantagens
(+) Redundância: se um dos discos
falhar, o sistema continua funcionando;
(+) leitura rápida (porém escrita não tão
rápida).

A1 A1 (-) Você vai precisar de 3 HDs, mas


perde sempre 1 disco para paridade;
A2 A2
A3 A3 (-) Sistema complexo de controle dos
HDs.
Implementando RAID
Combina as vantagens dos tipos 0 e 1
Combinações de RAID efetuando a divisão dos dados entre os
discos do primeiro nível (RAID 0), que
são espelhados pelo segundo nível
(RAID 1).
RAID 10 ( 0 + 1 )
.

A1 A1
A2 A2
A3 A3

A ideia é combinar o desempenho do RAID 0 com a segurança do RAID 1


Implementando RAID
Adicionando Discos ao Storage

Criaremos dois conjuntos de RAID 1 que serão entregues ao


LVM, utilizando cinco discos de 5 GB. Acompanhe o seu
instrutor no processo de adição de 5 discos na máquina
storage do Virtual Box.

Servidor: Storage
Implementando RAID
Adicionando Discos ao Storage

1 – Verifique se os discos foram adicionados a máquina:


1 # fdisk ­l | egrep "Disk /dev/sd"
2 # cat /proc/partitions

2 – Instale os pacotes necessários a criação do RAID e do lvm:


3 # rpm ­qa | egrep "mdadm|lvm"
4 # yum install mdadm

Servidor: Storage
Implementando RAID
Configurando o Sistema RAID

1 – Para que seja possível acompanhar a sincronização dos discos,


abra um segundo terminal e digite:
1 # watch ­n0 cat /proc/mdstat

2 – Crie o primeiro sistema RAID utilizado dois discos de


armazenamento e um de paridade:
2 #  mdadm  ­­create  /dev/md0  ­­level  1  ­­raid­devices=2 
/dev/sdb /dev/sdc ­­spare­devices=1 /dev/sdd

Servidor: Storage
Implementando RAID
Configurando o Sistema RAID
3 – Acompanhe a sincronização dos discos através do segundo terminal:
Personalities : [raid1]
md0 : active raid1 sdd[2](S) sdc[1] sdb[0]
5238720 blocks super 1.2 [2/2] [UU]
[======>..............] resync = 34.7% (1822720/5238720) finish=3.1min speed=18108K/sec

4 – Grave a configuração feita no arquivo de gerenciamento de software


RAID:
1# # vim /etc/mdadm.conf

DEVICE /dev/sd[bcdef]
ARRAY /dev/md0 devices=/dev/sdb,/dev/sdc,/dev/sdd

Servidor: Storage
Implementando RAID
Configurando o Sistema RAID

5 – Verifique o disco criado a patir do sistema de RAID:


1 # mdadm ­­detail ­scan
2 # mdadm ­­detail /dev/md0
3 # cat /proc/partitions

6 – Defina um sistema de arquivos para a nova partição:


4 # mkfs.ext4 /dev/md0

Servidor: Storage
Implementando RAID
Simulando Falhas

1 – O comando mdadm possui funções que permitem simular falhas


no funcionamento do disco:
1# mdadm /dev/md0 ­­fail /dev/sdb

2# mdadm ­­detail /dev/md0

2 – Caso um disco falhe é possível trocá-lo “a quente” ou seja, sem


desligar o sistema:
4# mdadm /dev/md0 ­­remove /dev/sdb

5# mdadm /dev/md0 ­­add /dev/sdb

Servidor: Storage
Implementando RAID
Reiniciando o Raid

1 – Volte ao monitoramento do raid do segundo terminal:


1# watch ­n0 cat /proc/mdstat

2 – Pare e em seguida reinicie o sistema de RAID:


2# mdadm ­S /dev/md0

3# mdadm ­As /dev/md0

Servidor: Storage
Implementando RAID
1 – Crie um segundo sistema RAID utilizando os discos sde e sdf:
1#  mdadm  ­­create  /dev/md1  ­­level  1  ­­raid­devices=2  /dev/sde 
/dev/sdf 

2 – Configure o disco recém criado no arquivo mdadm.conf:


2# vim /etc/mdadm.conf

ARRAY /dev/md1 devices=/dev/sde,/dev/sdf

Servidor: Storage
Implementando LVM

Logical Volume Manager


Implementando LVM
Introdução

➢ LVM é um recurso incluído a partir da Kernel 2.4, que cria uma


camada de abstração entre o sistema operacional e os discos (ou
outros formatos de armazenamento, como o RAID por exemplo);
➢ No LVM o sistema não vê HDs e partições, mas sim um ou mais
volumes lógicos;
➢ Este formato gera alguns complicadores adicionais na
configuração, mas em compensação oferece um conjunto de
vantagens bastante interessantes.
Implementando LVM
Introdução

Sistema de
Arquivos

Volumes Lógico
S
Grupo de Volumes

Volumes Físico

Partições

Disco
STORAGE DEXTER
5G 5G 5G 5G 5G 2G

/dev/md0 PV LV
RAID 1 10G

VG 1G
5G 5G 5G 5G
/dev/md1 PV LV
RAID 1 RAID LVM

–----
/srv/publico ←1G ←Samba4 –----
–-----

FileServer /etc/exports

NFS
Implementando RAID
Implementação Prática
1 – Primeiro faça a montagem do volume físico:
1# pvs Volumes Físicos
2# pvcreate /dev/md0
Cada volume físico criado se comporta
3# pvcreate /dev/md1 exatamente como uma partição, a vantagem é
4# pvs ­v que estes volumes podem ser combinados
conforme a necessidade do administrador.
5# pvscan

6# pvdisplay Os comandos pvs, pvscan e pvdisplay


permitem visualizar com diferentes níveis de
detalhamento os volumes criados

Servidor: Storage
Implementando RAID
Implementação Prática

2 – Com o volume físico criado, crie um grupo de volumes:


1# vgcreate vg­samba /dev/md0 Grupos de Volumes

2# vgs ­v Um grupo de volumes pode ser


3# vgdisplay redimensionado de acordo com a
sua necessidade. Se você precisa
4# vgextend vg­samba /dev/md1
de mais espaço, basta adicionar
5# vgs
discos através do comando
vgextent; também é possível
redimensionar espaço utilizando o
comando vgreduce.

Servidor: Storage
Implementando RAID
Implementação Prática

3 – Com o grupo de volumes criado, basta criar o volume lógico a


ser disponibilizado para o sistema:
1# lvcreate ­L 2GB ­n lv­extra vg­samba

2# lvcreate ­L 1GB ­n lv­smb­publico vg­samba

3# lvs ; vgs

4# mkfs.ext4 /dev/vg­samba/lv­smb­publico

5# mkfs.ext4 /dev/vg­samba/lv­extra

Servidor: Storage
Implementando RAID
Estendendo um Volume Lógico

3 – Monte o volume extra criado para testes com lvm:


1# mount /dev/vg­samba/lv­extra /mnt

2# df ­hT /mnt

3# dd if=/dev/zero of=/mnt/arquivo.img bs=100M count=100

4# df ­h ; ls /mnt

4 – Utilize o comando lvextent para estender o volume criado:


5# lvextend ­L +2G  /dev/vg­samba/lv­extra

Servidor: Storage
Implementando RAID
Estendendo um Volume Lógico

5 – Verifique se o espaço foi ampliado:


1# df ­hT /mnt

2# umount /mnt

3# e2fsck ­f /dev/vg­samba/lv­extra

4# resize2fs /dev/vg­samba/lv­extra 

5# mount /dev/vg­samba/lv­extra /mnt

6# df ­hT ; ls /mnt O comando resize2fs é responsável


por aumentar/diminuir o sistema de
arquivos para ocupar todo o espaço
disponível na partição.

Servidor: Storage
Implementando RAID
Reduzindo um Volume Lógico

1 – Da mesma forma que a ampliação, também podemos reduzir um


volume:

1# lvreduce ­L ­1G /dev/vg­samba/lv­extra

2# umount /mnt

3# e2fsck ­f /dev/vg­samba/lv­extra 

4# resize2fs ­p /dev/vg­samba/lv­extra 3G <Caso seja questionado 
5# mount /dev/vg­samba/lv­extra /mnt
sobre abortar o processo 
devido a diferença de 
6# df ­hT ; ls /mnt tamanho dos volumes 
marque No>

Servidor: Storage
Laboratório Dexter
➢ Precisamos colocar o volume lv-smb-publico na inicialização do
sistema para que possamos configurar o compartilhamento nas aulas
de samba4.
➢ O Ponto de montagem deste volume será /srv/samba/publico e sua
permissão será 777 uma vez que, as verdadeiras permissões serão
gerenciadas pelo Samba.
1# mkdir ­p /srv/samba/publico

2# chmod 777 /srv/samba/publico

3# mount /dev/vg­samba/lv­smb­publico /srv/samba/publico/

Servidor: Storage
Laboratório Dexter
➢ Configure o fstab garantindo a montagem na inicialização do
sistema:
4# blkid

5# blkid | grep publico | awk '{ print $2}' | sed ­­
e s/\"//g >> 
/etc/fstab <Atenção no uso do operador “>>” para não apagar o fstab!>

6# vim /etc/fstab

UUID=84f793e5­fa82­42e0­b4f2­058a87a2e317 /srv/samba/publico
ext4 defaults 0 0
7# umount /srv/samba/publico ; mount ­a ; mount

Servidor: Storage
Pergunta LPI

Qual arquivo contém informações sobre o status dos dispositivos


RAID?
____________

Você decidiu usar LVM para gerenciar 4 discos de 4GB. Após criar
o grupo de volumes chamado vg01, como você criará um volume
lógico de 10 GB chamado bkp-app?

____________

194
Network File System

NFS
IT EXPERIENCE

Nesta Aula:

➢ Servidor: Storage
Acesso pelo VirtualBox
SO: Cent OS
➢ Servidor: Fileserver
Acesso pelo VirtualBox
SO: Debian Linux
Objetivos da Aula
➢ Conceito de Storage;

➢ Introdução ao serviço NFS;

➢ Implementar um servidor com NFS;

➢ Exportar compartilhamentos para empresa DEXTER;

➢ Configurar máquina Datacenter como cliente NFS;

➢ Configurar máquina Fileserver como cliente NFS.


Implementando NFS
Conceito de Storage

Storage → Hardware ou máquina que contém slots para vários discos,


que utilizam tecnologia avançada de armazenamento, como por
exemplo RAID e LVM. Em uma rede, o Storage tem a função de prover
armazenamento aos servidores e clientes através de componentes
redundantes, com segurança.
● NAS - (Network-Attached Storage)
Tipos de Storage: ● SAN - (Storage Area Network)
● DAS - (Direct-Attached Storage)
Implementando NFS
Conceito de NFS

NFS → Originalmente desenvolvido pela Sun Microsystems, o NFS


(Network File System) permite compartilhar diretórios e arquivos na
rede, fazendo com que os clientes acessem os dados remotos como se
estivessem na sua própria máquina.

Sistemas NAS podem conter mais de um HD, podendo também contar


com a tecnologia RAID (Redundant Arrays of Independent Disks).
Implementando NFS
Para que os clientes possam acessar o servidor NFS, é necessário que
os seguintes serviços estejam sendo executados no servidor:
➢ Portmapper → Converte processos RPC em números no protocolo
TCP/IP. Através deste daemon os clientes conseguem o número da
porta do servidor NFS;
➢ Status → Oferece informações sobre o compartilhamento a fim de
evitar erros;
➢ Nlockmgr → Gerenciador de bloqueios do NFS;
➢ Nfsd → Atende às requisições dos clientes;
➢ Mountd → Executa as solicitações do nfsd (montagem dos clientes).
Implementando NFS
Implementando NFS no Storage

1 – Instale o pacote nfs-utils e habilite a inicialização do serviço:


1# rpm ­qa | grep nfs

2# yum install nfs­utils

3# chkconfig ­­list

4# chkconfig nfs on

Servidor: Storage
Implementando NFS
Implementando NFS no Storage

2 – Configure o compartilhamento no arquivo exports e reinicie os


daemons rpcbind e nfs:
1# vim /etc/exports

/srv/samba/publico 192.168.X.5/24(rw,root_squash,no_subtree_check,async)
3# exportfs ­a

4# /etc/init.d/rpcbind start

5# /etc/init.d/nfs start

Servidor: Storage
Implementando NFS
Implementando NFS no Storage

2 – Após reiniciar os daemons verifique novamente o


funcionamento do compartilhamento criado:
1# rpcinfo ­p

2# showmount ­e 127.0.0.1

Servidor: Storage
Laboratório Dexter
➢ Precisamos que o novo volume configurado na aula de RAID esteja
disponível na configuração do samba4. Para isso, utilizaremos um
compartilhamento com NFS no servidor Fileserver:

1 – Crie o compartilhamento no servidor Fileserver:


1# cd /srv/

2# mkdir publico

3# chmod 777 publico

4#  mount  ­t  nfs  192.168.X.6:/srv/samba/publico 


/srv/publico/

Servidor: Fileserver
Laboratório Dexter
2 – Verifique o funcionamento do compartilhamento criado:
1 # df ­h
2 # touch /srv/publico/teste.txt
<Verifique se consegue visualizar o arquivo na pasta /srv/samba/publico do servidor 
storage>

3 # umount ­l /srv/publico
4 # vim /etc/fstab
   192.168.X.6:/srv/samba/publico/  /srv/publico/ nfs defaults 0 0

5 # mount ­a ; mount

Servidor: Fileserver 205


Pergunta LPI

Quais dos seguintes daemons são necessários para executar um Servidor


NFS?
A. Portmap
B. nfsiod
C. mountd
D. xinetd

Após configurar um sistema de arquivos em /etc/exports, qual comando


deve ser executado para que a nova configuração seja aplicada?
_______________

206
Servidor Samba
IT EXPERIENCE

Nesta Aula:

➢ Servidor: Fileserver
Acesso pelo VirtualBox
SO: Debian Linux
Objetivos da Aula

➢ Introdução ao Samba4;

➢ Instalar Samba4;

➢ Provisionar domínio no Samba;

➢ Configurar compartilhamentos;

➢ Autenticar usuários via Samba.


Servidor Samba
Introdução
➢ O Samba é um serviço Linux que permite o gerenciamento e
compartilhamento de recursos em redes formadas por computadores
com o Windows;
➢ Assim, é possível utilizar um sistema Linux como servidor de
arquivos, servidor de impressão, entre outros. Este serviço irá se
“apresentar” para a rede de forma que o Sistemas Operacionais
Windows o interprete como um Servidor Windows.
Servidor Samba
Introdução
➢ O Samba nasceu de uma necessidade de seu criador Andrew
Tridgell que precisava montar um espaço em disco para um servidor
Unix em seu PC, rodando o sistema operacional MS-DOS;
➢ Para isso, Tridgell escreveu um sniffer (programa para captura de
tráfego de dados) que permitisse analisar o tráfego de dados gerado
pelo protocolo Netbios, utilizado pelo Windows em
compartilhamentos de dados.
Servidor Samba
Introdução
➢ Com o Sniffer implementado, Tridgell fez engenharia reversa no
protocolo SMB (Server Message Block), que possuía como principal
funcionalidade o compartilhamento de arquivos, e o implementou no
Unix;
➢ Isso fez com que o servidor Unix aparecesse como um servidor de
arquivos Windows em seu PC com DOS;
➢ Tridgell disponibilizou esse código publicamente em 1992 e após
algumas atualizações deu ao projeto o nome de SAMBA, graças ao
nome de seu protocolo base, o SMB.
Servidor Samba
Principais Características do Samba 4

➢ Suporte de logon no Active Directory e protocolos de


administração;
➢ Suporte completo para NTFS;
➢ Servidor LDAP Interno com adapatado para o padrão do AD;
➢ Kerberos como servidor interno;
➢ Integração com Bind9 para suporte ao AD e ao DNS.
Servidor Samba
Preparando o Ambiente para Instalação do Samba4
➢ Efetue a instalação dos pacotes necessários ao funcionamento do
samba4:
1# apt­get update

2# apt­get remove ­­purge samba* 

3# apt­get install build­essential libacl1­dev libattr1­dev 

libgnutls­dev bind9 libreadline­dev python­dev rpl 
libpython2.6 krb5­user libdm0 acl attr libacl1­dev 
libblkid­dev gdb pkg­config libpopt­dev libldap2­dev dnsutils 
libbsd­dev attr
Servidor Samba
Preparando o Ambiente para Instalação do Samba4

Durante a instalação o sistema pedirá a definição do Reino


administrativo para a ferramenta Kerberos, neste campo mantenha o
valor DEXTER.COM.BR
 
Servidor Samba
Preparando o Ambiente para Instalação do Samba4

Você também deverá informar o hostname do servidor kerberos e do


servidor administrativo kerberos, utilize: fileserver.dexter.com.br para
ambos os valores. 
Servidor Samba
Preparando o Ambiente para Instalação do Samba4

➢ Altere a resolução de nomes do Servidor Fileserver apontando


para o próprio servidor, a máquina onde será configurado o
bind9 do samba4:
2# vim /etc/resolv.conf

  domain dexter.com.br
  nameserver 192.168.X.5
  nameserver 192.168.X.2
Servidor Samba
Compilando o Samba4 no Servidor File Server
➢ O processo de instalação do samba envolve a compilação manual do
serviço, uma vez que ainda não existem versões do pacote nos
repositórios oficiais Debian;
➢ O binário pode ser obtido no site do projeto: http://www.samba.org

1 - Baixe o código fonte do Samba4 do servidor da 4linux:


1# wget http://192.168.1.1:/452/samba/samba4.tar.gz
Servidor Samba
Compilando o Samba4 no Servidor File Server

2 – Extraia o código fonte para o diretório /usr/src:

1# tar xvf samba4.tar.gz ­C /usr/src/

2# cd /usr/src/samba*

3# ./configure ­­prefix=/opt/samba/

4# make

5# make install

Servidor: Fileserver
Servidor Samba
Configurando o Samba4 no servidor File Server

3 – Altere a variável PATH para que possamos executar os


comandos do samba sem apontar o caminho absoluto:
1# echo $PATH

2#  echo  “export  PATH=$PATH:/opt/samba/bin:/opt/samba/sbin”  >> 


/root/.bashrc
3# source /root/.bashrc

Servidor: Storage
Servidor Samba
Provisionamento do Samba

1 – Inicie o provisionamento do samba conforme abaixo:


1# samba­tool domain provision ­­domain=DEXTER 

­­realm=DEXTER.COM.BR ­­server­role=dc ­­adminpass=4LinuxSamba 
­­dns­backend=BIND9_DLZ ­­use­rfc2307

Outra maneira de inciar o provisionamento utilizar o modo interativo:


samba­tool domain provision ­­use­rfc2307 ­­interactive

Servidor: Storage
Servidor Samba
Provisionamento do Samba

--domain → Definição do nome do domínio utilizado pelo Samba na sua


apresentação como AD;
--dns-backend=BIND9_DLZ → (Zonas carregáveis dinamicamente), o
DLZ é um patch para o BIND versão 9, que simplifica a administração do
servidor BIND e reduz o uso de memória e o tempo de inicialização;
--use-rfc2307 → Habilita o samba automaticamente como um
componente AD, permitindo a ele armazenar atributos tipo Posix. esta
opção é necessária para administrar opções de contas Unix/Linux;
Servidor Samba
Provisionamento do Samba

--realm → É o Reino Kerberos, basicamente o nome de identificação do


conjunto que gerencia o banco de dados Kerberos. Este valor pode ser
qualquer sequência de caracteres ASCII, mas por convenção utilizamos
o mesmo nome que o seu nome de domínio, só que em letras
maiúsculas;
--adminpass → Esta opção define a senha de administração que será
utilizada com o samba, esta senha possui como pré-requisito o mínimo
de 8 caractéres, contendo ao menos uma letra em caixa alta e um
número;
--server-role → Regra de funcionamento do servidor.
Servidor Samba
Erros no Processo de Provisionamento
➢ O procedimento de provisionamento do Samba não é definitivo, uma
vez que sua função é apenas gerenciar configurações que poderiam
ser feitas manualmente, de forma que facilite a adiministração do
serviço;
➢ Todavia, caso ocorram falhas de provisionamento, para executar
novamente o domain provision é necessário remover o arquivos
/opt/samba/etc/smb.conf e toda a informação da base de dados
criada em /opt/samba/private/.
Servidor Samba
Configurando o Bind, Kerberos e NTP

1 – Configure o arquivo named .conf:


1# cat /opt/samba/private/named.conf

2# vim /etc/bind/named.conf

   include "/opt/samba/private/named.conf”

2 – Altere as permissões de acesso:


3# chown bind: /opt/samba/private/named.conf

4# chown bind: /opt/samba/private/dns.keytab
Servidor Samba
3 – Configure o arquivo named.conf.options do Bind9:

1# cd /etc/bind/

2# mv named.conf.options named.conf.options_dist

3# wget 192.168.1.1/452/samba/named.conf.options

4# vim /etc/bind/named.conf.options
Servidor Samba
options {
  directory "/var/cache/bind";

  dnssec­validation auto;

  auth­nxdomain no;    # conform to RFC1035
  listen­on­v6 { any; };

  allow­recursion { 192.168.X.0/24;  };
  allow­query { 192.168.X.0/24;  };
 <Altere a opção de consulta recursiva adicionando o IP de sua rede> 
 
tkey­gssapi­keytab "/opt/samba/private/dns.keytab";

  };
Servidor Samba
4 – Baixe os arquivos de zona pré-configurados para o samba4 e
utilize o rpl para alterar seu endereço IP, apontando o IP de sua
rede:
1# cd /var/cache/bind/

2# wget 192.168.1.1/452/samba/dexter.com.br.zone

3# rpl XX <IP> dexter.com.br.zone

<Altere o valor de <IP> adicionando o endereço IP de sua rede> 
4# vim dexter.com.br.zone
Servidor Samba
$ORIGIN dexter.com.br.
$TTL 1W
@      IN SOA  fileserver.dexter.com.br. root.dexter.com.br. (
       2013020101   ; serial
       2D              ; refresh
       4H              ; retry
       6W              ; expiry
       1W )            ; minimum

IN NS fileserver.dexter.com.br.
        IN A    192.168.XX.5
;

fileserver        IN A    192.168.XX.5
gc._msdcs         IN CNAME fileserver
Servidor Samba
3ad3f63c­4b9e­4bf5­91ad­c1085887c739._msdcs IN CNAME fileserver
;
; global catalog servers
_gc._tcp IN SRV 0 100 3268 fileserver
_gc._tcp.Default­First­Site­Name._sites IN SRV 0 100 3268 fileserver
_ldap._tcp.gc._msdcs IN SRV 0 100 3268 fileserver
_ldap._tcp.Default­First­Site­Name._sites.gc._msdcs IN SRV 0 100 3268 
fileserver
;
; ldap servers
_ldap._tcp IN SRV 0 100 389 fileserver
_ldap._tcp.dc._msdcs IN SRV 0 100 389 fileserver
_ldap._tcp.pdc._msdcs IN SRV 0 100 389 fileserver
_ldap._tcp.11526eb2­dda1­4044­b085­9e2d8f2929bc.domains._msdcs IN SRV 0 
100 389 fileserver
_ldap._tcp.Default­First­Site­Name._sites IN SRV 0 100 389 fileserver
_ldap._tcp.Default­First­Site­Name._sites.dc._msdcs IN SRV 0 100 389 
fileserver
;
Servidor Samba
; krb5 servers
_kerberos._tcp IN SRV 0 100 88 fileserver
_kerberos._tcp.dc._msdcs IN SRV 0 100 88 fileserver
_kerberos._tcp.Default­First­Site­Name._sites IN SRV 0 100 88
fileserver
_kerberos._tcp.Default­First­Site­Name._sites.dc._msdcs IN SRV 0 100 88 
fileserver
_kerberos._udp IN SRV 0 100 88 fileserver
; MIT kpasswd likes to lookup this name on password change
_kerberos­master._tcp IN SRV 0 100 88 fileserver
_kerberos­master._udp IN SRV 0 100 88 fileserver
;
; kpasswd
_kpasswd._tcp IN SRV 0 100 464 fileserver
_kpasswd._udp IN SRV 0 100 464  fileserver
;
; heimdal 'find realm for host' hack
_kerberos IN TXT DEXTER.COM.BR
Servidor Samba
5 – Baixe o arquivo de zona reversa do samba4:

1# wget 192.168.1.1/452/samba/99.168.192.in­addr.arpa ­O 
/var/cache/bind/<IP>.168.192.in­addr.arpa  <Altere o valor de <IP> 
$TTL    1W para o Ip de sua rede> 
@       IN SOA  fileserver.dexter.com.br. root.dexter.com.br. (
       2013020101     ; serial
       2D             ; refresh
       4H             ; retry
       6W             ; expiry
       1W )           ; minimum

           IN NS fileserver.dexter.com.br.
5          IN PTR       fileserver.dexter.com.br.
Servidor Samba
Configurando o BIND

6 – Baixe o arquivo named.conf.local pré-configurado para o


samba4 e altere seu endereço IP, apontando o IP do servidor
Fileserver novamente:
1# cd /etc/bind/

2# rm ­rf named.conf.local

3# wget 192.168.1.1/452/samba/named.conf.local

4# vim /etc/bind/named.conf.local
Servidor Samba
//
// Do any local configuration here
//

// Consider adding the 1918 zones here, if they are not used in 
your
// organization
//include "/etc/bind/zones.rfc1918";

zone "X.168.192.in­addr.arpa."{
        type master;
        file "/var/cache/bind/99.168.192.in­addr.arpa";
};
Servidor Samba
Configurando o Bind, Kerberos e NTP
➢ Durante a instalação um arquivo de configuração do Kerberos foi
gerado. Copie este arquivo de configuração do kerberos para o
diretório /etc:

1# cp /opt/samba/private/krb5.conf /etc/
Servidor Samba
Configurando o Bind, Kerberos e NTP
➢ Para garantir que o servidor tenha sempre a data e hora atualizada,
instale e configure um servidor NTP seguindo as etapas abaixo:
1# aptitude install ntp

2# vim /etc/ntp.conf

3# :%s/debian/south­america/g
Servidor Samba
Configurando o Bind, Kerberos e NTP

Adicione as linhas abaixo da linha com a diretrix driftfile no arquivo


ntp.conf:
4# vim /etc/ntp.conf

  server 127.0.0.1
  fudge 127.0.0.1 stratum 10

Reinicie o servidor ntp para colocar as alterações em uso:


5# service ntp restart
Servidor Samba
Substituindo o smb.conf

1 - Baixe o arquivo smb.conf customizado para o diretório do


samba:
1# cd /opt/samba/etc/

2# mv smb.conf smb.conf_dist

3# wget http://192.168.1.1:/452/samba/smb.conf

4# vim /opt/samba/etc/smb.conf

  ...  
  dns forwarder = 192.168.XX.5  <Altere o valor de <IP> 
para o Ip de sua rede> 
  ...
Servidor Samba
Configurando a inicialização do samba

Após instalar o Samba devemos configurá-lo na inicialização do sistema,


criando seu script de inicialização em /etc/init.d/, conforme abaixo:
1# wget 192.168.1.1/452/samba/smb4 ­O /etc/init.d/smb4
2# vim /etc/init.d/smb4
#!/bin/sh
### BEGIN INIT INFO
# Provides:             samba4
# Required­Start:       
# Required­Stop:        
# Default­Start:        2 3 4 5
# Default­Stop:         0 1 6
# Short­Description:    Samba4 Compilação 4Linux
### END INIT INFO
Servidor Samba
case $1 in

start )
pgrep samba > /dev/null
if [ $? ­eq 0 ]
  then echo "Samba4 Rodando"
  else /opt/samba/sbin/samba && sleep 2 && echo "Samba4 Iniciado"
fi
;;

stop )
pgrep samba > /dev/null
if [ $? ­eq 0 ]
  then
  pkill samba
  2> /dev/null && echo "Samba4 Terminado"
else
        echo "Samba4 está Parado"
fi
;;
Servidor Samba
restart )
  $0 stop
    sleep 5 ; echo "Reiniciando o Samba4 ..."
  $0 start
;;

status )
   pgrep samba > /dev/null
   if [ $? ­eq 0 ]
   then

   echo "Samba4 Rodando"
else
        echo "Samba4 Parado"
fi
;;

*)
        echo "Opção Invalida, Por Favor utilize 
’start|start|restart|status’"
;;
esac
Servidor Samba
Finalizando a Configuração

1 – Atribua permissão de execução ao scirpt e coloque-o na


inicialização do sistema:
1# chmod +x /etc/init.d/smb4

2# insserv ­d smb4

2 – Reinicie os serviços de DNS, ntp e samba para iniciarmos os


testes de configuração:
3# service ntp restart

4# service bind9 restart

5# service smb4 restart
Servidor Samba
Validando a Configuração Kerberos

Kerberos é um protocolo desenvolvido para fornecer autenticação em


aplicações usuário/servidor, onde ele funciona como a terceira parte neste
processo, oferendo autenticação ao usuário.
1 – Testando as configurações do kerberos:
1# kinit Administrator@DEXTER.COM.BR  <utilize a senha: 4LinuxSamba>

2# klist

3# host ­t SRV _kerberos._tcp.dexter.com.br
Servidor Samba
Validando a Configuração do DNS

1 – Testando a configuração do DNS:


1# host ­t A dexter.com.br

2# host ­t SRV _ldap._tcp.dexter.com.br

3# samba_dnsupdate ­­all­names –verbose

2 – Teste a configuração da zona utilizando o comando samba-tool:


4# samba­tool dns serverinfo fileserver

5# samba­tool dns zonelist fileserver

6# samba­tool dns zoneinfo fileserver dexter.com.br
Servidor Samba
Conhecendo o Arquivo smb.conf
➢ O arquivo smb.conf é o principal arquivo de gerenciamento do
samba. Para configurar corretamente o samba é importante entender
sua estrutura baseada em seções e parâmetros;
➢ Cada seção (exceto a seção [global]) descreve um recurso
compartilhado (conhecido como "share"). O nome da seção é o nome
do recurso e os parâmetros dentro da seção definem o
comportamento do recurso.

Servidor: Fileserver
Servidor Samba
Conhecendo o arquivo smb.conf
➢ Uma seção sempre é iniciada por seu nome dentro de colchetes [ ] e
continua até que um novo conjunto de colchetes demarque a
próxima seção;
➢ Os parâmetros das seções possuem o seguinte formato: name =
value;
➢ o arquivo é baseado em linhas individuais, cada nova linha
representa um novo parâmetro; estes valores não são CASE
SENSITIVE.
Servidor Samba
Configurando o Diretório de Compartilhamento

1 – Abra o arquivo smb.conf e adicione o compartilhamento o


abaixo:
1# vim /opt/samba/etc/smb.conf

[publico] 
comment = Publico 
path = /srv/publico 
read only = No
guest ok = Yes 
force create mode = 666 
force directory mode = 777 
veto files = /*.mp3/*.mpg/*.mpeg/*.avi/*.jpg/
hide files = /*.ini/*.log/
Servidor Samba
Opções Utilizadas no Compartilhamento

Comment → Comentário que aparecerá ao visualizar o


compartilhamento na máquina Windows;
path → Caminho absoluto para o diretório compartilhado (caso não
exista, este diretório deverá ser criado);
read only (yes/no)→ Opção de definição do compartilhamento como
somente para leitura, pode ser substituida por writable (yes/no);
guest ok → Permite ou não a visualização do compartilhamento por
convidados.
Servidor Samba
Opções Utilizadas no Compartilhamento

force create mode → Força um padrão de permissões na criação de


arquivos;
force directory mode → Força um padrão de permissões na criação de
diretórios;
veto files → Permite criar poribições de acesso a determinados
arquivos;
hide files → Oculta o tipo de arquivo especificado no compartilhamento.
Servidor Samba
Testparm

O comando testparm permite checar a sintaxe do arquivo smb.conf. Sua


função é checar e reportar qualquer problema encontrado no arquivo.

1 – Faça uma checagem no arquivo smb.conf e em seguida


reinicialize o samba:
2# samba­tool testparm

3# service smb4 restart

2 – Configurações podem ser relidas com o comando smbcontrol:


4# smbcontrol all reload­config
Servidor Samba
Smbclient

O comando smbclient é um cliente utilizado para acessar


compartilhamentos via protocolo SMB. Sua principal função no samba é
testar o funcionamento de um compartilhamento via terminal.

1 - Faça um teste de requisição utilizando comando smbclient:

1# mkdir /var/run/samba/

2# smbclient ­L fileserver ­U%
Servidor Samba
Ingressando a Máquina Windows no Domínio
➢ Após configurarmos e testarmos o samba4, vamos ingressar um
cliente Windows no domínio dexter.com.br;
➢ Para isso primeiro será necessário indicar o servidor DNS utilizado
pelo samba4 configurado no próprio Fileserver, faça essa
configuração acessando a “Central de Rede e Compartilhamento”
dentro do painel de controle.
Servidor Samba
Ingressando a Máquina Windows no Domínio

4
2

< Coloque o IP do seu servidor fileserver como DNS >
Servidor Samba
Ingressando a Máquina Windows no Domínio

Em seguida indicaremos o domínio


dexter.com.br acessando a opção
propriedades do Windows (Botão
direito do mouse sobre o menu
“Computador”), “Alterar Nome” e em 2

seguida a opção “Alterar” . 3


Servidor Samba
Ingressando a Máquina Windows no Domínio
Faça autenticação utilizando o usuário
“Administrator” com a senha cadastrada
no provisionamento do domínio
(4LinuxSamba), Em seguida, você
4 precisará reiniciar a máquina e a partir da
dai estará dentro do domínio!
Servidor Samba
Testando o Compartilhamento Criado
Após reiniciar o sistema entre na opção “Computador”, clique com o botão direito
do mouse sobre a opção “Rede” conforme abaixo, em seguida Escolha a opção
“mapear unidade de rede” e indique o caminho \\fileserver\publico opção;

6
5
Servidor Samba
Adicionando Usuários ao Samba

Diferente da versão 3 do Samba onde os usuários deveriam ser criados


no sistema de forma local antes de serem adicionados ao samba. No
samba4 é possível adicionar usuários diretamente, através do comando
samba-tool:

1 – Adicione o usuário dexter ao Samba:


1# samba­tool user add dexterclem 4LinuxSamba

2# samba­tool user list
Servidor Samba
Adicionando Usuários ao Samba

1 – Troque a senha do usuário dexterclem:


1# samba­tool user setpassword dexterclem 

­­newpassword='SambaDexter4Linux'

2 – Desabilite o usuário dexterclem e tente logar na máquina


Windows:
3# samba­tool user disable dexterclem

4# samba­tool user enable dexterclem
Servidor Samba
Adicionando Grupos ao Samba

1 – Adicione o grupo presidente ao samba:


1# samba­tool group list

2# samba­tool group add presidentes

2 – Em seguida adicione o usuário dexterclem a este grupo:


3# samba­tool group addmembers presidentes dexterclem

4# samba­tool group listmembers presidentes
Servidor Samba
Como Verificar Opções do samba-tool?

A ferramenta samba-tool possui um enorme número de argumentos,


felizmente estes argumentos podem ser consultados através da própria
ferramenta utilizando o parãmetro “-h”.

1# samba­tool ­h

2# samba­tool user ­h

3# samba­tool dns ­h
Restringindo Conexões ao Samba

➢ Dentro do arquivo smb.conf é possível criar restrições


no samba de forma que, sejam aceitas requsições de
acesso apenas a partir de uma interface:

➢ Abra o arquivo smb.conf e descomente as linhas abaixo:

1# vim /opt/samba/etc/smb.conf

  interfaces = eth0 

  bind interfaces only = Yes

2# samba­tool testparm
Pergunta LPI

O arquivo de configuração do Samba está usando o parâmetro 'read


only = Yes'. Quais das opções abaixo são equivalentes?
A. browseable = no
B. read write = no
C. writable = no
D. write only = no

Qual comando permite testar a sintaxe do arquivo smb.conf?

262
Pergunta LPI

Qual das seguintes opções é usada no arquivo de configuração do


Samba para definir quais arquivos e diretórios são visíveis e acessíveis
para o usuário?
A. hide files
B. mangle names
C. veto files
D. hide dot files

Qual comando do samba permite efetuar requisoçoes de acesso


utilizando o protocolo smb?

263
Servidor Proxy com Squid
IT EXPERIENCE

Nesta Aula:
➢ Servidor: Security

Acesso pelo VirtualBox

SO: Debian Linux


Objetivos da Aula

➢ Introdução ao Web Proxy Squid;

➢ Conhecer os tipos de Proxy;

➢ Conhecer os tipos de ACLs;

➢ Ajustar o Firewall para acesso ao Proxy;

➢ Implementar na prática o servidor Proxy;

➢ Configurar autenticação NCSA.


Servidor Proxy com Squid
Introdução
➢ As soluções Web Proxy foram desenvolvidas para contornar
desperdício de banda nas empresas. Isso acontece quando
várias máquinas acessam a mesma página;
➢ Quando um Proxy é implementado na rede o navegador das
máquinas clientes, ao invés de consultar o site, consulta o
"Web Proxy" previamente configurado, que armazena o
conteúdo dos sites em um diretório num disco rígido.
Servidor Proxy com Squid
Tipo de Proxy Manual
Servidor Proxy com Squid
Tipo de Proxy Transparente
Servidor Proxy com Squid
Exemplo de regra para proxy transparente
➢ No arquivo de configuração do squid, deve-se manter a linha
de configuração da seguinte forma:
http_port 3128 transparent

➢ No arquivo de configuração do firewall, deve-se adicionar as


seguinte regra:

iptables ­t nat ­A POSTROUTING ­s 192.168.X.0/24 ­p tcp 
­­dport 80 ­j REDIRECT ­­to­port 3128
Servidor Proxy com Squid
O que é um ACL?
➢ Access Control List ou Lista de Controle de Acesso (também
conhecida pelo acrônimo ACL), como o próprio nome diz, é
uma maneira de criar listas de acesso no Squid;

➢ É definida como uma lista que define quem tem permissão de


acesso a certos serviços. Ou seja, para quem um servidor deve
permitir ou negar determinada tarefa.
Servidor Proxy com Squid
Tipos de ACL

src →Filtro por rede ou endereço IP;


time →Filtro por hora e dia da semana;
urlpath_regex →Filtro de complemento de uma "url";
url_regex →Filtro de uma "string" na "url ";
dstdomain →Filtro de uma "url";
proxy_auth →Filtro por usuários autenticados;
arp →Filtro por "MAC Address";
Maxconn → Filtro por conexões;
Proto → Filtro por protocolos;
port →Filtro por porta.
Servidor Proxy com Squid
Regras das ACLs
➢ 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;
➢ Exemplos:
http_access allow DIRETOR
http_access deny FACEBOOK !HORARIO_ALMOCO
http_access deny EXTENSAO_PROIBIDA
Servidor Proxy com Squid
Liberando Squid no Firewall
➢ Libere a porta 3128 do Squid e 389 do LDAP no arquivo de configuração do Firewall;
➢ Descomente da linha 75 a 79
1# vim +75 /etc/firewall/rules
  75  iptables  ­t  filter  ­A  INPUT  ­p  tcp  ­s  $LAN  ­d  $FWLAN  ­­dport 
3128 ­j ACCEPT 

... 

  79 iptables ­t filter ­A INPUT ­p tcp ­s $DATACENTER ­­sport 389 ­d 
$FWLAN ­j ACCEPT

2# service firewall restart

Servidor: Security
Servidor Proxy com Squid
Instalando o Squid
1# apt­get install squid3 sarg

2# cd /etc/squid3

3# mv squid.conf squid.conf.dist

➢ Copie o arquivo de configuração do Squid:


4# wget http://192.168.1.1/452/squid/squid.conf 

5# vim squid.conf 

➢ Arquivos de configuração do Squid:


/etc/squid3/squid.conf → Arquivo de configuração
/var/log/squid3/* → Arquivos de log do squid
/var/spool/squid3 → Diretório que contém o cache do squid

Servidor: Security
Servidor Proxy com Squid
Testando o Squid

1# cd /etc/squid3

2# vim +85 squid.conf

Criação da ACL de Bloqueio


No arquivo squid.conf descomente a ACL de bloqueio:
85 acl REDE src 192.168.X.0/24

Criação da regra de Acesso


Descomente a linha 113 com a regra de acesso:
113 http_access deny REDE

Recarregue as configurações do Squid e acesse as páginas


  3# squid3 ­k reconfigure

Servidor: Security
Servidor Proxy com Squid
Configurando o Proxy no Browser

➢ No navegador Iceweasel da máquina Desktoplinux, siga as


instruções abaixo para a configuração do Proxy:
1# Editar > Preferências > Avançado > Rede > Configurar Conexão

Conhecendo os arquivos de log

➢ Utilize o comando tailf para acompanhar os logs do Squid:


2# tailf /var/log/squid3/cache.log

Servidor: DesktopLinux / Security


Servidor Proxy com Squid
Alterando a página de erro do Squid

➢ No navegador Iceweasel da máquina Desktoplinux, tente


acessar qualquer site e verifique se o squid está bloqueando:

Servidor: DesktopLinux
Servidor Proxy com Squid
Alterando a página de erro do Squid

➢ No servidor Squid, acesse o diretório que contém as páginas


de erro em Português:
1# cd /usr/share/squid3/errors/Portuguese  ; ls

➢ Renomeie a página padrão de erro e faça o wget da página da Dexter:


2# mv ERR_ACCESS_DENIED ERR_ACCESS_DENIED.DIST

3# wget 192.168.1.1/452/squid/ERR_ACCESS_DENIED

4# /etc/init.d/squid3 restart

Servidor: Security
Servidor Proxy com Squid
Implementando as ACLs no Squid

➢ Antes de implementarmos as acls, vamos fazer o wget das


listas de controle.
1# cd /etc/squid3

2# mkdir acls  ; cd acls
3# wget 192.168.1.1/452/squid/listabranca.list

4# wget 192.168.1.1/452/squid/listanegra.list

5# wget 192.168.1.1/452/squid/listaproxy.list

6# wget 192.168.1.1/452/squid/listanegradomain.list

Servidor: Security
Servidor Proxy com Squid
Implementando as ACLs no Squid

➢ Descomente uma acl com base em endereço IP chamada


LISTAVIP onde será apontada para o IP da nossa Win7.
1# vim +86 /etc/squid3/squid.conf

86 acl LISTAVIP src 192.168.X.30


➢ Descomente a liberação de acesso para a acl LISTAVIP
1# vim +112 /etc/squid3/squid.conf
112 http_access allow LISTAVIP

Nesse momento toda a nossa rede está bloqueada exceto nossa Win7,
esse cenário poderia ter uma outra regra com a mesma finalidade:
http_access deny REDE !LISTAVIP

Servidor: Security
Servidor Proxy com Squid
Tipos de politicas com o Squid

➢ Há duas formas de trabalharmos com as políticas com o Squid:

Politica Permissiva → A politica permissiva tende a você


apenas apontar as extensões, sites, palavras e etc da qual
você não gostaria que seus usuários tenham acesso e o
resto é liberado.
Proxy

Politica Proibitiva → A politica proibitiva é mais rígida e


restrita comparada com a permissiva, pois tende a bloquear
tudo e liberar somente o necessário.
Servidor Proxy com Squid
Implementando as ACLs com politica proibitiva e Autenticação com o
LDAP

Para liberação da autenticação via LDAP, no arquivo squid.conf descomente da linha 55 a 58.
  1# vim +55 /etc/squid3/squid.conf

Criação da ACL de Bloqueio


Ainda no arquivo squid.conf descomente a ACL de bloqueio:
87 acl AUTH proxy_auth REQUIRED
Criação da regra de Acesso
Coloque a seguinte linha como PRIMEIRA regra de acesso e altere a regra REDE:
111 http_access deny !AUTH
112 http_access allow LISTA VIP
113 http_access allow REDE

Servidor: Security
Servidor Proxy com Squid
Implementando as ACLs com Lista de bloqueio e Extensões

➢ Crie as ACLS referenciando nossas lista de bloqueio e


extensões:
1# vim +88 /etc/squid3/squid.conf
88 acl LISTANEGRA url_regex "/etc/squid3/acls/listanegra.list"
89 acl CONTEMTORRENT urlpath_regex -i torrent
90 acl CONTEMISO urlpath_regex -i \.(iso)
91 acl CONTEMVIDEO urlpath_regex -i \.(mpg|mpeg|avi|mov|flv|wmv|rmvb)(\?.*)?$

É muito comum trabalharmos com lista de bloqueio, pois dessa forma a


informação fica centralizada em um único arquivo, e a manutenção é mais fácil e
eficaz.

Servidor: Security
Servidor Proxy com Squid
Implementando as ACLs com Lista de bloqueio e Extensões

Adicione as regras de bloqueio abaixo da regre de autenticação


com o LDAP:
1# vim +115 /etc/squid3/squid.conf
Dessa forma os hosts
114 http_access deny !AUTH correspondentes a
115 http_access allow LISTAVIP LISTAVIP tem acesso full a
116 http_access deny LISTANEGRA todos os sites, enquanto o
117 http_access deny CONTEMTORRENT restante da rede só irá
118 http_access deny CONTEMISO acessar os sites,
119 http_access deny CONTEMVIDEO extensões e etc que não
120 http_access allow REDE estiverem bloqueados.

Servidor: Security
Servidor Proxy com Squid
Configurando o Sarg
➢ Mova o arquivo de configuração sarg.conf para backup e em seguida
baixe um novo sarg.conf;
1# cd /etc/sarg

2# mv sarg.conf sarg.conf.dist

3# wget http://192.1680.1.1/452/squid/sarg.conf

➢ Abra o arquivo /etc/sarg/sarg-reports;


4# vim /etc/sarg/sarg­reports.conf

➢ Especifique aonde irá gerar os arquivos de logs do sarg alterando a


seguinte entrada:
HTMLOUT=/etc/sarg/reports

Servidor: Security
Servidor Proxy com Squid
Script de Geração de Log do Sarg
➢ Na instalação do sarg ele já configura suas rotinas de criação de logs
no cron, conforme a agenda padrão dele;
1# ls ­R /etc/cron.*

Gerando o Relatório Manualmente


➢ O tempo mínimo para a geração de relatório no sarg é de 1 dia,
portanto será necessário alterar a data do sistema para amanhã.
➢ Após a alteração da data, gere o relatório manualmente
2# /etc/cron.daily/sarg

Servidor: Security
Servidor Proxy com Squid
Validando a Geração de Log do Sarg
➢ Vamos verificar se os arquivos de log foram realmente criados:
1# cd /etc/sarg/reports

2# ls

3# ls /etc/sarg/reports/daily

Enviando o relatório de log


➢ Agora vamos enviar os relatórios para o Apache na DMZ, para
conseguirmos visualizá-los via browser:
4# scp ­r /etc/sarg/reports root@192.168.X.3:/var/www/html

Servidor: Security
Servidor Proxy com Squid
Configurando o Novo VirtualHost
➢ Acesse a máquina DMZ para configurar um novo VirtualHost
1# cd /etc/httpd/sites

2# wget http://192.168.1.1/452/apache/sarg.conf

3# /etc/init.d/httpd restart

Visualizando os Relatórios via Browser


➢ Agora abra um browser na máquina DMZ e acesse o seguinte
endereço:
4# sarg.dexter.com

Servidor: DMZ
Servidor OpenVPN
IT EXPERIENCE

Nesta Aula:
➢ Servidor: Fileserver

Acesso pelo VirtualBox

SO: Debian Linux


Objetivos da Aula

➢ Introdução ao OpenVPN;

➢ Conhecer os tipos de VPN;

➢ Implementar na prática o servidor OpenVPN.


Servidor OpenVPN
Introdução
➢ A VPN (Virtual Private Network) é uma rede de comunicação
particular, geralmente utilizando canais de comunicação
inseguros, como a "LAN" ou mesmo a WAN (Internet);
➢ O que torna esta rede de comunicação particular é o fato das
ferramentas de "VPN" empregarem métodos e protocolos de
criptografia, criando um túnel para prover acesso seguro a
partes da rede ou mesmo ligação entre "LAN's"
geograficamente separadas.
Servidor OpenVPN
Introdução
Servidor OpenVPN
Libere a VPN no arquivo de configuração do firewall
➢ Libere a porta da VPN e o ping para o range de IP da VPN.
1# vim +11 /etc/firewall/rules

11 VPN=200.100.50.Y
MATRIZ = 172.17.2.1
12 LANVPN=192.168.Y.0/24
FILIAL = 172.17.2.2
13 TUN0=172.17.2.X
107 172.17.2.Y

➢ Ainda no arquivo do firewall descomente da linha 84 a 107:


2# vim +84 /etc/firewall/rules

3# service firewall restart
Servidor OpenVPN
Instalando o OpenVPN
1# apt­get install openvpn

2# cd /etc/openvpn

3# wget http://192.168.1.1/452/openvpn/server.conf Arquivo Matriz

4# wget http://192.168.1.1/452/openvpn/client.conf Arquivo Filial

Gerando a Chave Matriz A única chave


5# openvpn ­­genkey ­­secret server.key utilizada é a chave
da Matriz, a criação
Gerando a Chave na Filial da chave da filial é
6# openvpn ­­genkey ­­secret client.key meramente didática
Servidor OpenVPN
Enviando a Chave Matriz para a Filial
1# scp /etc/openvpn/server.key root@200.100.50.Y:/etc/openvpn

Restartando o Serviço OpenVPN


2# /etc/init.d/openvpn restart

3# ifconfig
Verifique a criação
da interface para o
tunelamento tun0.
Visualizando o Arquivo de Log 
4# tail ­f /var/log/openvpn.log
Servidor OpenVPN
Ping a Interface tun0 da sua Matriz/Filial

2# ping 172.17.2.Y

Ping a Máquina Datacenter da sua Matriz/Filial


3# ping 192.168.Y.2

Hmmm alguma coisa errada!


Servidor OpenVPN
Configurando o arquivo client.conf
É necessário descomentar a linha 18 para fechar a conexão com a
matriz:
1# vim +18 /etc/openvpn/client.conf

remote 200.100.50.Y  Endereço válido do firewall da sua Matriz

2# /etc/init.d/openvpn restart

Teste o tunelamento O canal criptografado


(Tunelamento) entre os
3# ping 172.17.2.Y firewalls da matriz e da filial
foi criado.
Servidor OpenVPN
Verifique a conectividade entre as LANs da Matriz/Filial

1# ping 192.168.Y.2

Integração das LANs à VPN

A criação de uma nova rota para as LANs até o firewall da sua


matriz/filial permitirá o acesso a VPN.
2# route add ­net 192.168.Y.0/24 gw 172.17.2.Y

3# ping 192.168.Y.2

Okay! Tudo funcionando, agora precisamos


adicionar a rota permanentemente.
Servidor OpenVPN
Adicionane a rota permanentemente

Descomente a linha 21 nos arquivos de configuração da VPN


1# vim +21 /etc/openvpn/client.conf

1# vim +21 /etc/openvpn/server.conf

route 192.168.Y.0 255.255.255.0 172.17.2.Y tun0

2# /etc/init.d/openvpn restart

3# route ­n

4# ping 192.168.Y.2
ANEXOS
Servidor FTP
IT EXPERIENCE

Nesta Aula:
➢ DMZ

Acesso pelo VirtualBox

➢ SO: CentOS Linux

➢ Desktop Linux

Acesso pelo VirtualBox


SO: Debian Linux
Objetivos da Aula

➢ Introdução ao protocolo FTP;


➢ Entender a diferença entre os dois tipos de FTP;
● FTP Ativo;
● FTP Passivo;
➢ Configurar o acesso em modo Tradicional e
Anonymous;
➢ Implementar na prática o servidor VSFTPD.
Servidor FTP
Introdução FTP

➢ O FTP (File Transfer Protocol) é um protocolo simples para


transferência de arquivos;
➢ O cliente "FTP" faz uma solicitação ao servidor "FTP", a seção é
estabelecida e então é solicitado um usuário e senha válidos no
caso de um "FTP" autenticado, ou, caso este servidor permita
navegação anônima, basta entrar com o usuário "anonymous" e
uma senha qualquer.

Servidor: DMZ
Servidor FTP
FTP Modo Ativo

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

Servidor: DMZ
Servidor FTP
FTP Modo Ativo (Normal)
Porta 20 Porta 21 Porta Porta
(Dados) (Comandos) 5150 5151

s
mando
1 – Co

2-A
CK

3–C
anal
de D
ados

4 - A CK

Servidor: DMZ
Servidor FTP
FTP Modo Ativo X Modo Passivo

➢ No modo passivo os comandos também são enviados para o


servidor através de uma porta alta pelo cliente e são
recebidas na porta 21 do servidor;
➢ Neste 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.

Servidor: DMZ
Servidor FTP
FTP Modo Passivo
Porta 20 Porta Porta 21 Porta Porta
(Dados) 3268 (Comandos) 5150 5151

SS V”
1 – “PA

2–P
o
usad rta a ser
a 32
68

ados
C a nal de D
3 –

4 - AC K

Servidor: DMZ
Servidor FTP
Modos de Acessos Tradicional e Anonymous
➢ Tradicional: o servidor aceita conexões por meio de um usuário e
senha válidos, liberando desta forma um prompt de comandos ou
mesmo a interface gráfica;
➢ Anonymous: o Servidor FTP com anonymous é muito utilizado na
internet pelo motivo de não ser necessário ter um usuário no
servidor. Desta forma, o usuário pode abrir um navegador web e
chamar o endereço para ter acesso ao diretório disponibilizado pelo
serviço. Geralmente esse diretório é o “home” do usuário FTP, sendo
no Debian em “/srv/ftp”.

Servidor: DMZ
Servidor FTP
O que é VSFTPD ?
➢ VSTPD sigla de Very Secure File Transfer Protocol Daemon, é um
servidor FTP licenciado pela GPL (General Public License) para
sistemas UNIX e GNU/LINUX.
É estável rápido e seguro. É a escolha de grandes empresas como
RedHat, IBM e Novell (SUSE Linux) quando o assunto é servidor
FTP confiável e seguro. É utilizado por sites como:
➢ ftp.debian.org ftp.gnu.org ftp.redhat.org
ftp.suse.org ftp.openbsd.org

Servidor: DMZ
Servidor FTP
Instalando o Servidor FTP

1# yum install vsftpd

2# cd /etc/vsftpd

3# mv vsftpd.conf vsftpd.conf.dist

4# wget 192.168.1.1/452/ftp/vsftpd.conf

5# vim /etc/vsftpd.conf

Servidor: DMZ
Servidor FTP
Arquivo de configuração vsftpd.conf
listen=YES

connect_from_port_20=YES

anonymous_enable=No

anon_upload_enable=No

chroot_local_user=YES

local_enable=YES

pam_service_name=vsftpd

Servidor: DMZ
Servidor FTP
Arquivo de configuração vsftpd.conf
write_enable=YES

local_umask=007

use_localtime=YES

idle_session_timeout=600

data_connection_timeout=120

xferlog_enable=YES

xferlog_file=/var/log/vsftpd.log

Servidor: DMZ
Servidor FTP
Iniciando o Servidor FTP
1 - Insira o serviço para iniciar com o sistema.
1# chkconfig vsftpd on

2 – Reinicie o serviço do vsftpd.


2# service vsftpd restart

3 – Verifique se o serviço foi iniciado e a porta utilizada.


3# netstat ­ntlp | grep vsftpd

Servidor: DMZ
Servidor FTP
Criando usuário do FTP
No modelo da empresa Dexter, criaremos um usuário específico para
acessar o servidor FTP. Ou seja será configurado um acesso tradicional
como usuário e senha no processo de autenticação do FTP.

O usuário do FTP não precisa ter um shell valido, somente precisa de


acesso ao diretório raiz do site via console do ftp.

Crie o usuário webmaster tendo como home /var/www/html e shell


/bin/false.

Servidor: DMZ
Servidor FTP
Criando usuário do FTP

➢ Crie o usuário webmaster.


1# adduser webmaster ­d /var/www/html ­g apache

➢ Defina a senha do usuário.


2# passwd webmaster

➢ Defina o dono e grupo do diretório como o grupo apache.


3# chown ­R apache:apache /var/www/html/

Servidor: DMZ
Servidor FTP
Criando usuário do FTP

➢ Adicione permissão no diretório.


1#  chmod ­R 775 /var/www/html/

➢ Adicione o usuário ao grupo do apache


2#  gpasswd ­a webmaster apache

Servidor: DMZ
Servidor FTP
Configurando usuário do FTP
Crie o banner de boas vindas no home do usuário do FTP.

 vim /var/www/html/.message
1#

## =========================================================##
## Este sistema é para uso exclusivo da empresa DEXTER.
## Todas as atividades serão registradas.
## É vetada a utilização deste sistema para transferência de
## arquivos protegidos por qualquer lei de direito autoral
## ou arquivos que infrinjam a legislação vigente .
## ======================================================= ##

Servidor: DMZ
Servidor FTP
Acessando Servidor FTP

➢ Acesse a DesktopLinux.

➢ Acesse um emulador de Terminal em:

➢ Aplicativos > Acessórios > Terminal

➢ Criaremos alguns arquivos para enviar para o FTP.

 touch index.html pagina{1..5}.html
1#

Servidor: DesktopLinux
Servidor FTP
Acessando Servidor FTP

➢ Acesse o ftp por linha de comando.


2# ftp  ftp.dexter.com.br
➢ Insira o nome de usuário (ftpdexter).

suporte@desktoplinux:~$ ftp ftp.dexter.com.br
Connected to ftp.dexter.com.br.
220 (vsFTPd 2.2.2)
Name (ftp.dexter.com.br:root): webmaster
➢ Insira a senha do usuário.

Servidor: DesktopLinux
Servidor FTP
Acessando Servidor FTP
➢ Após a autenticação será exibido a mensagem de boas vindas.

Servidor: DMZ
Servidor FTP
Operando o FTP

➢ Liste o Conteúdo do diretório em sua máquina.


ftp> !ls

➢ Liste o conteúdo do servidor FTP.


ftp> ls

➢ Envie o arquivo index.html


ftp> put index.html

Servidor: DesktopLinux
Servidor FTP
Sobrevivendo no console FTP

➢ O console ftp tem comandos próprios para operar os arquivos.


Para verificar a ajuda de todos os comandos digite ? no console ftp.

ftp> ?
Commands may be abbreviated.  Commands are:
! dir mdelete qc site  $ disconnect mdir
sendport size  account exit mget put status
append form mkdir pwd struct ascii get mls
quit system ...

Servidor: DesktopLinux
Servidor FTP
Sobrevivendo no console FTP

➢ Os comando mais práticos são:

cd ­ Acessar um diretório rename ­ Renomear um arquivo
ls ­ Listar conteúdo mkdir ­ Criar um diretório
get  ­ Obter um arquivo put ­ Enviar um arquivo 
mget ­ Obter vários arquivos mput ­ Enviar vários arquivos
delete ­ Deletar um arquivo mdelete – Deletar vários arquivos
Servidor FTP
Enviando arquivos para o servidor FTP
➢ Vamos enviar o conteúdo para o ftp. Criando um diretório para o site. E
enviando vários arquivos.

ftp> mkdir site
ftp> cd site
ftp> !ls
ftp> mput index.html  pagina*.html
ftp> !ls

Servidor: DesktopLinux
Servidor FTP
Navegando no Servidor FTP

➢ O acesso ao servidor FTP para leitura de arquivos pode ser realizado


via navegador Web.

➢ Acesse: Aplicativos > Internet > Navegador Web Iceweasel

➢ No navegador acesse o endereço ftp://ftp.dexter.com.br

Servidor: DesktopLinux
Servidor FTP
Cliente para o servidor FTP

➢ Para facilitar a operação de arquivos, como enviar e receber arquivos


com o suporte a interface gráfica, existem programas que funcionam
como clientes FTP, que fazem conexão com servidor FTP para auxiliar
na gerência de arquivos para um FTP.

➢ Como exemplo de cliente FTP FileZilla (http://filezilla-project.org)

You might also like