curso linux servidores v2011 bafz

Download Curso Linux Servidores v2011 Bafz

If you can't read please download the document

Upload: francisco-lourival-caetano

Post on 14-Aug-2015

76 views

Category:

Documents


12 download

TRANSCRIPT

Curso de Linux Servidores

Objetivos do curso

Configurar basicamente os principais servidores de rede no Linux. Praticar comandos e estudar conceitos avanados de Linux.

Metodologia de trabalho

Trabalho em duplas. Aprender mediante a execuo de tarefas bem definidas. Avaliao prtica e terica ao final do curso.

Tarefa globlal

Voc foi contratado para realizar o projeto de rede da empresa Linux para sempre. Alm de toda a parte relacionada ao projeto de cabeamento estruturado (Curso Bsico de Redes) levantou as seguintes necessidades relacionadas aos servios que a rede deveria prover:

acesso a Internet com autenticao; servidor web do site Internet e intranet; servidor de e-mail acessvel pela rede interna por meio de POP3 e Webmail e pela Internet somente por Webmail (todos de forma segura); servidor de DNS;

Tarefa globlal

continuao ...

servidor de FTP (acesso externo dos arquivos); servidor de autenticao dos usurios da rede interna (tanto para clientes Linux quanto para Windows); servidor de arquivos para a rede interna (tanto para clientes Linux quanto para Windows) com anti-vrus; servidor de backup; servidor de terminais; servidor de aplicaes locais: SPED, Protweb, egroupware, joomla (intranet), ativnet, ...; Firewall.

DMZ

Primeira tarefa

Instalar o Debian Squeeze, da seguinte forma:

particionamento:

256 MB para swap, primria; 2,1 GB para a raiz, com ext3, primria; 100 MB para /var/spool/mail, estendida, com reiserfs; 200 MB para /home, estendida, com ext3; 100 MB para /var/www, estendida, com reiserfs 200 MB para /backup, estendida, com reiserfs. root com senha teste; admin com senha teste, home=/home/administador; usurio que receber administrao; os e-mails direcionados para

usurios:

e-mail:

Primeira tarefa

Instalar o Debian Squeeze, da seguinte forma:

rede:

ip: 10.100.53.20 netmask: 255.255.252.0 broadcast: 10.100.52.255 dns: 10.100.52.1 gateway: 10.100.52.4 domnio: cursolinux.52ct.eb.mil.br openoffice.org em Portugus, mozilla-firefox e mozilla-thunderbird em portugus, kernel 2.6, kde em portugus e kdm.

Aplicativos a serem instalados:

source.list: inicialmente o prprio CD-ROM. Se no achar algum pacote mude o source.list para:

deb ftp://debian.52ct.eb.mil.br/debian stable main contrib non free

Sistemas de arquivos

O linux trabalha com o Virtual File System (VFS) que uma camada de abstrao acima dos sistemas de arquivos existentes. O VFS permite que as aplicaes acessem diferentes tipos de sistemas de arquivos de modo uniforme. Dessa forma, um aplicativo acessa um HD local e uma partio montada de um dispositivo de rede da mesma forma. O VFS especifica uma interface entre o kernel e o sistema de arquivo concreto. Para adicionar um novo sistema de arquivos ao kernel simplesmente o mesmo tem que implementar a interface do VFS.

EXT3

um sistema de arquivos jornalado, desenvolvido e implementado por Stephen Tweedie. uma alternativa para usurios do sistema de arquivos ext2 que desejam obter as vantagens do journaling, ou seja, ext3 = ext2 + journal. Permite a converso entre os sistemas de arquivos ext2 e ext3 sem a necessidade de reformatao. Desde a v2.4 encontra-se disponvel como parte integrante do kernel do sistema operacional Linux.

Experincia com sistemas de arquivos para alta disponibilidade em Linux. Experincia com sistemas de arquivos para alta disponibilidade em Linux. Leonardo Garcia de Mello e Prof. Dr. Taisy Silva Weber. UFRGS. Leonardo Garcia de Mello e Prof. Dr. Taisy Silva Weber. UFRGS.

EXT3

Permite o uso de journal para dados, metadados ou ambos. No suporta alocao dinmica de inodes. Para maiores informaes acesse o site http://www.redhat.com/support/wpapers/redhat/ ext3/. Suas principais caractersticas so:

Ser jornalado; Baseado em rvores; Redimensionamento online; Suporta arquivos de at 2TiB.

Experincia com sistemas de arquivos para alta disponibilidade em Linux. Experincia com sistemas de arquivos para alta disponibilidade em Linux. Leonardo Garcia de Mello e Prof. Dr. Taisy Silva Weber. UFRGS. Leonardo Garcia de Mello e Prof. Dr. Taisy Silva Weber. UFRGS.

ReiserFS

Projetado por Hans Reiser, tem a grande vantagem de ser o primeiro sistema de arquivos baseado em journaling a ser includo como parte integrante do kernel do Linux. Utiliza uma abordagem radicalmente diversa da alocao baseada em blocos usada no ext2 para armazenar as informaes, usando balanced trees. Permite arquivos com at 2 Gb de tamanho. Possui otimizaes para trabalhar com arquivos pequenos, reduzindo a fragmentao.

Experincia com sistemas de arquivos para alta disponibilidade em Linux. Experincia com sistemas de arquivos para alta disponibilidade em Linux. Leonardo Garcia de Mello e Prof. Dr. Taisy Silva Weber. UFRGS. Leonardo Garcia de Mello e Prof. Dr. Taisy Silva Weber. UFRGS.

ReiserFS

Est sendo desenvolvida a verso 4 do sistema de arquivo. suportado automaticamente pelo Kernel do Linux a partir da verso 2.4.1.Para maiores informaes http://www.namesys.com. acesse o site

XFS

Criado em 1994 pela SGI para substituir outro sistema de arquivos (EFS), tornou-se disponvel para Linux em Jul/2001 pela licena GPL. Projetado especialmente para trabalhar com arquivos grandes (de at 9 mil petabytes) e diretrios com vrios arquivos. Pode trabalhar com tamanho de bloco variando de 512 bytes at 64 Kb. Suporta ACLs no padro POSIX. Para maiores informaes http://xfs.sourceforge.net. acesse o site

Experincia com sistemas de arquivos para alta disponibilidade em Linux. Experincia com sistemas de arquivos para alta disponibilidade em Linux. Leonardo Garcia de Mello e Prof. Dr. Taisy Silva Weber. UFRGS. Leonardo Garcia de Mello e Prof. Dr. Taisy Silva Weber. UFRGS.

XFS

O XFS um sistema de arquivos com jornal de meta-dados que vem com um robusto conjunto de funes e otimizado para escalabilidade. recomendado com HD SCSI de ponta. Pelo fato de o XFS criar agressivamente caches de dados em uso na memria RAM, programas mal desenhados (que no tomam precaues na hora de escrever os arquivos em disco, e existem muitos deles) podem perder uma grande quantidade de dados se o sistema for desligado sem aviso. O XFS (SGI) suporta o redimensionamento de parties onthe-fly ou seja, sem perda de dados e sem nem mesmo precisar reinicializar o sistema.

Fontehttp://www.gentoo.org/doc/pt_br/handbook/handbookppc64.xml?style=printable&full=1

JFS

Criado pela IBM para uso em servidores corporativos high-throughput server environments, key to running intranet and other high-performance e-business file servers. Permite o emprego de blocos com tamanho de 512,1024, 2048 e 4096 bytes:

Para um tamanho de bloco de 512 bytes, o tamanho mximo de um arquivo de 512 Tb; Para um tamanho de bloco de 4Kb, o tamanho mximo de um arquivo de 4 petabytes.

Incorporado na v2.5.6 do kernel para o sistema operacional Linux.

Experincia com sistemas de arquivos para alta disponibilidade em Linux. Experincia com sistemas de arquivos para alta disponibilidade em Linux. Leonardo Garcia de Mello e Prof. Dr. Taisy Silva Weber. UFRGS. Leonardo Garcia de Mello e Prof. Dr. Taisy Silva Weber. UFRGS.

JFS

O suporte a ele pode ser adicionado em verses anteriores do kernel com a aplicao de patches. Utiliza rvore B+. Para maiores informaes acesse o site http://oss.software.ibm.com/developerworks/ope nsource/jfs.

Experincia com sistemas de arquivos para alta disponibilidade em Linux. Experincia com sistemas de arquivos para alta disponibilidade em Linux. Leonardo Garcia de Mello e Prof. Dr. Taisy Silva Weber. UFRGS. Leonardo Garcia de Mello e Prof. Dr. Taisy Silva Weber. UFRGS.

Segunda tarefaConfigurao do Servidor DNS

Configurar um servidor DNS (direto e reverso) para o domnio cursolinux.52ct.eb.mil.br para os seguintes computadores:

www.: 10.100.53.20 ftp.: 10.100.53.20 intranet.: 10.100.53.20 internet.: 10.100.53.20 smtp.: 10.100.53.20 pop3.: 10.100.53.20 egroupware.: 10.100.53.20 protweb.: 10.100.53.20 webmail.: 10.100.53.20

O que DNS?

DNS significa Domain Name System (sistema de nomes de domnio). O DNS faz o mapeamento do nome de um computador para o endereo IP do mesmo e do endereo IP para o nome e algumas outras coisas. Um mapeamento simplesmente uma associao entre duas coisas, neste caso um nome de computador, como intranet.52ct.eb.mil.br, e o endereo IP desta mquina (ou endereos) como 10.100.52.6. O DNS foi criado com o objetivo de tornar as coisas mais fceis para o usurio, permitindo assim, a identificao de computadores na Internet ou redes locais atravs de nomes.GuiaFocaLinuxAvanado(verso6.4)GleydsonMaziolidaSilva

O que DNS? (cont)

A parte responsvel por traduzir os nomes como www.nome.com.br em um endereo IP chamada de resolvedor de nomes. O resolvedor de nomes pode ser um banco de dados local (um arquivo ou programa) que converte automaticamente os nomes em endereos IP ou atravs de servidores DNS que fazem a busca em um banco de dados na Internet e retornam o endereo IP do computador desejado. Um dos servidores DNS mais difundidos na Internet o bind, que se encontra atualmente na verso 9.

GuiaFocaLinuxAvanado(verso6.4)GleydsonMaziolidaSilva

Arquivos no cliente /etc/resolv.conf

o arquivo de configurao principal do cdigo do resolvedor de nomes. Seu formato um arquivo texto simples com um parmetro por linha e o endereo de servidores DNS externos so especificados nele. Existem trs palavras chaves normalmente usadas que so:

domain: especifica o nome do domnio local. search: especifica uma lista de nomes de domnio alternativos ao procurar por um computador, separados por espaos. A linha search pode conter no mximo 6 domnios ou 256 caracteres. nameserver: especifica o endereo IP de um servidor de nomes de domnio para resoluo de nomes. Pode ser usado vrias vezes.GuiaFocaLinuxAvanado(verso6.4)GleydsonMaziolidaSilva

Arquivos no cliente /etc/resolv.conf

Como exemplo, o /etc/resolv.conf se parece com isto: searchcursolinux.52ct.eb.mil.br nameserver10.100.53.202 nameserver10.100.53.203 Editem o arquivo /etc/resolv.conf e alterem as variveis domain e search para os valores acima e o nameserver para o IP do seu computador.

GuiaFocaLinuxAvanado(verso6.4)GleydsonMaziolidaSilva

Arquivos no cliente /etc/host.conf

o local onde possvel configurar alguns tens que gerenciam o cdigo do resolvedor de nomes. O formato deste arquivo descrito em detalhes na pgina de manual resolv+. Em quase todas as situaes, o exemplo seguinte funcionar:

orderhosts,bind multion

Este arquivo de configurao diz ao resolvedor de nomes para checar o arquivo /etc/hosts antes de tentar verificar um servidor de nomes e retornar um endereo IP vlido para o computador procurado e multi on retornar todos os endereos IP resolvidos no arquivo /etc/hosts ao invs do primeiro.GuiaFocaLinuxAvanado(verso6.4)GleydsonMaziolidaSilva

Arquivos no cliente /etc/host.conf

Os seguintes parmetros podem ser adicionados para evitar ataques de IP spoofing: nospoofon spoofalerton O parmetro nospoof on ativa a resoluo reversa do nome da biblioteca resolv (para checar se o endereo pertence realmente quele nome) e o spoofalert on registra falhas desta operao no syslog.

GuiaFocaLinuxAvanado(verso6.4)GleydsonMaziolidaSilva

Arquivos no cliente /etc/hosts

Faz o relacionamento entre um nome de computador e endereo IP local. Recomendado para IPs constantemente acessados (dispensa consulta do DNS) e para colocao de endereos de virtual hosts (quando deseja referir pelo nome ao invs de IP). A desvantagem de fazer isto que voc mesmo precisar manter este arquivo atualizado e se o endereo IP de algum computador for modificado, esta alterao dever ser feita em cada um dos arquivos hosts das mquinas da rede. Em um sistema bem gerenciado, os nicos endereos de computadores que aparecero neste arquivo sero da interface loopback e os nomes de computadores.GuiaFocaLinuxAvanado(verso6.4)GleydsonMaziolidaSilva

Arquivos no cliente /etc/hosts

Um exemplo de contedo deste arquivo :localhostlocalhost.localdomain

127.0.0.1

10.100.53.203aluno3aluno3.cursolinux.52ct.eb.mil.br

Voc pode especificar mais que um nome de computador por linha como demonstrada pela primeira linha, a que identifica a interface loopback. Caso encontre problemas de lentido para resolver nomes e at para executar os aplicativos (como o mc, etc), verifique se existem erros neste arquivo de configurao.GuiaFocaLinuxAvanado(verso6.4)GleydsonMaziolidaSilva

Arquivos no cliente /etc/networks

O arquivo /etc/networks tem uma funo similar ao arquivo /etc/hosts. Ele contm um banco de dados simples de nomes de redes contra endereos de redes. Seu formato se difere por dois campos por linha e seus campos so identificados como: Abaixo um exemplo de como se parece este arquivo:10.100.36.0

Nome_da_RedeEndereo_da_Rede

loopnet127.0.0.0 23bc

Quando usar comandos como route, se um destino uma rede e esta rede se encontra no arquivo /etc/networks, ento o comando route mostrar o nome da rede ao invs de seu endereo.GuiaFocaLinuxAvanado(verso6.4)GleydsonMaziolidaSilva

Instalao do DNS

Primeiramente vamos configurar a pacotes para instalao no /etc/apt/sources.list.

fonte de arquivo

debftp://10.100.52.12/debianstablemaincontribnonfree

Depois, como root, vamos atualizar a relao de pacotes disponveis a instalao, com o comando: Agora vamos instalar o servidor DNS, sua documentao e algumas ferramentas de teste com o comando:

#aptitudeupdate

#aptitudeinstallbind9bind9docdnsutils

http://www.debianfordummies.org/wiki/index.php/DFD_DNS_HOWTO

Comandopara consultarumIP

Testando a instalaoUtilizaodoservidorDNSlocal

#[email protected]

;[email protected] ;;globaloptions:printcmd ;;Gotanswer: ;;>>HEADER No Que web server gostaria automaticamente? -> apache2 de configurar

Voc gostaria de reiniciar seu servidor agora? -> Sim

Testando o LAMP

A forma mais fcil de acessando o phpmyadmin:

testar

o

LAMP

Entre no Mozilla Firefox e acesse o site:http://127.0.0.1/phpmyadmin/ http://localhost/phpmyadmin/

O phpmyadmin a interface web para realizar a manuteno do mysql. Complete o formulrio com o login=root e senha em branco. interessante que essa interface seja acessvel de forma criptografada para que as senhas no passem em claro. Para que isso acontea temos que instalar o servidor apache seguro.

Instalando o servidor apache seguro

interessante que atualizemos a lista de pacotes disponveis sempre antes de instalar um programa: Agora vamos instalar os pacotes relacionados ao servidor seguro:

#aptgetupdate

#aptgetinstallapache2ssl cacertificatesopensslsslcert

Principais respostas:

Confiar em novos certificados de CAs? -> perguntar Agora vem os dados do certificado do servidor ...

Dados do certificado

No utilize acentos ... Principais perguntas e respostas:

Country Name: BR Nome do estado ou provncia: Ceara Nome da Localidade: Fortaleza Nome da Organizao: 52 Centro de Telematica Nome da Unidade Organizacional: Curso Linux Nome do host: alunox.cursolinux.52ct.eb.mil.br Endereo de e-mail: [email protected]

Reconfigurando o phpmyadmin

Agora temos que reconfigurar o phpmyadmin: As perguntas realizadas e respectivas respostas so:

#dpkgreconfigurephpmyadmin

Selecione, tambm, o apache2-ssl e clique em OK. Voc gostaria de reiniciar o servidor agora? -> Sim

Agora voc pode acessar o phpmyadmin de forma segura. Acesse a url:

https://127.0.0.1/phpmyadmin/ https://localhost/phpmyadmin/

Primeiramente troque a senha do root para o valor teste em Alterarasenha.

intranet e Internet

Vamos utilizar um gerenciador de contedo para gerenciar o site da intranet e Internet da instituio. Um dos melhores gerenciadores de contedo atualmente existente o Joomla. Ele totalmente desenvolvido em php e mysql. Teremos que ter dois servidores Joomla funcionando simultaneamente: um para o site Internet e outro para o site da intranet. Para isso teremos que criar dois ambientes distintos: dois diretrios no servidor web e duas contas no banco de dados.

Preparando o ambiente ...

Primeiramente vamos criar os diretrios dos sites:

#mkdir/var/www/intranet #mkdir/var/www/www

Utilizando o phpmyadmin, vamos criar dois bancos de dados: um com nome www e outro com nome intranet.

Banco de dados -> Criar novo banco de dados -> Criar

Preparando o ambiente

Agora vamos criar dois usurios no banco de dados mysql: um com login=intranet e senha=teste e outro com login=www e senha=teste. Todos eles podendo acessar o phpmyadmin de qualquer servidor, com permisso de criar banco de dados e com privilgios sobre os bancos de dados.

Privilgios -> Adicionar novo usurio -> Login, senha e marcar todos os itens de dados e Estrutura -> Executar. Privilgios especficos do Banco de Dados -> Adicionar privilgios nas seguintes Banco de Dados -> Marcar todos -> Executar

Instalando o Joomla

Primeiramente vamos fazer o download da ltima verso do Joomla (1.0.11) do site:

ftp://ftp.52ct.eb.mil.br/pub/cursolinux/Joomla _1.0.11StableFull_Package.tar.gz

Depois de baixar o pacote copie o mesmo para os diretrios: /var/www/www/ e /var/www/intranet. Vamos agora colocar no ar a intranet:

#cd/var/www/intranet #tarxvzfJoomla_1.0.11StableFull_Package.tar.gz #cd.. #chownRwwwdata.wwwdataintranet

Instalando o Joomla (cont.)

Acesse, no browser, a seguinte url:

http://localhost/intranet/

Clique aqui

Instalando o Joomla

Edite o arquivo globals.php, situado no diretrio /var/www/intranet e altere o valor da varivel RG_EMULATION para 0. Isto trar mais segurana para o seu site.

Clique aqui

Clique aqui

Clique aqui

Clique aqui

Clique aqui

Finalizando a instalao

Para prosseguirmos diretrio:#cd/var/www/intranet #rmrfinstallation

temos

que

remover

o

Agora podemos acessar o site intranet:

http://localhost/intranet

A interface de administrador acessvel pelo site:

http://localhost/intranet/administrator/

Protweb

O que ?

Um sistema gerenciador de documentos.

acessvel via browser. Desenvolvido em php+mysql.

Instalao do Protweb

Primeiramente baixe o protweb do site:

ftp://ftp.52ct.eb.mil.br/pub/cursolinux/protweb _install.tar.gz

Untarzeie o arquivo: V para o diretrio protweb_install e depois execute o arquivo instala_protweb

#tarxvzfprotweb_install.tar.gz

#cdprotweb_install #./instala_protweb

Instalao do Protweb

Responda as seguintes perguntas:

Diretrio de instalao: /var/www Usurio admin do mysql: root Senha do root: ou teste

Instalao do Protweb

Edite o arquivo settings.php situado diretrio /var/www/protweb/config/ E altere as seguintes variveis

no

#vi/var/www/protweb/config/settings.php

Infelizmente necessrio colocar register_globals do php on ...

$document_path=/var/www/protweb/documentos $message_path=/var/www/protweb/mensagens $modelo_path=/var/www/protweb/modelos $web_server=http://protweb.cursolinux.52ct.eb.mil.br/ [email protected] [email protected]

a

varivel

#vi/etc/php4/apache/php.ini #apachectlrestart

Acessando o Protweb

Para acessar o protweb, acesse a url http://localhost/protweb e digite login=admin e senha=senha

eGroupWarehttp://www.egroupware.org/

O eGroupWare um aplicativo acessvel via browser, voltado para o trabalho colaborativo. Ele possui as seguintes funcionalidades bsicas:

Agenda colaborativa; Gerenciador de projetos; Webmail; Catlogo de endereos colaborativo.

A instalao do sistema pode ser realizada por meio do apt. Para instal-lo execute os comandos:#aptgetupdate #aptgetinstallegroupware

Preparando o ambiente ...

Primeiramente vamos criar o banco de dados egroupware no phpmyadmin. Depois temos que criar o usurio egroupware com senha=teste, com todas as permisses de Dados e Estrutura. Dar todas as permisses para o usurio egroupware no banco de dados egroupware.

Instalar o eGroupWare

Instalar o eGroupWare

Instalar o eGroupWare

teste

Instalar o eGroupWare

Instalar o eGroupWare

Terminando a instalao ...

Acesse a url:

http://localhost/egroupware/setup/

Cliqueaqui

Terminando a instalao ...

Cliqueaqui

Terminando a instalao ...

Terminando a instalao ...

Terminando a instalao ...

testeClique aqui

Terminando a instalao ...

Clique aqui

Terminando a instalao ...

Clique aqui

Terminando a instalao ...

Cliqueaqui

Terminando a instalao ...

Cliqueaqui

Terminando a instalao ...

Terminando a instalao ...

Clique aqui

Terminando a instalao ...

Clique aqui

Terminando a instalao ...

Virtual Hosts

At agora s acessamos os sitemas instalados digitando o IP ao invs dos nomes ... Isso funciona mas no o desejvel. Existe uma maneira de horpedarmos vrios sistemas em um nico servidor web e torn-los acessveis por seus nomes (DNS). Por exemplo: ao invs de digitarmos http://10.100.53.20x/intranet para acessarmos a intranet poderamos digitar http://intranet.cursolinux.52ct.eb.mil.br/. Para isso servem os Virtual Hosts.

Configurando o Virtual Host

Edite o arquivo de configurao do apache: Procure no NameVirtualHost Acrescente a linha: Agora podemos configurar nossos servidores virtuais ... documento a string

#vi/etc/apache/httpd.conf

/NameVirtualHost

NameVirtualHost*

Configurando o Virtual Host

Cada virtual host necessita de uma seo separada:

ServerNameintranet.cursolinux.52ct.eb.mil.br DocumentRoot/var/www/intranet [email protected] ErrorLoglogs/intraneterror.log CustomLoglogs/intranetaccess.logcommon ServerNamewww.cursolinux.52ct.eb.mil.br DocumentRoot/var/www/www ServerNameegroupware.cursolinux.52ct.eb.mil.br DocumentRoot/usr/share/egroupware ServerNameprotweb.cursolinux.52ct.eb.mil.br DocumentRoot/var/www/protweb ServerNamephpmyadmin.cursolinux.52ct.eb.mil.br DocumentRoot/var/www/phpmyadmin

Testando a configurao

Para testar a configurao basta acessar os sites pela URL:

http://intranet.cursolinux.52ct.eb.mil.br http://www.cursolinux.52ct.eb.mil.br http://egroupware.cursolinux.52ct.eb.mil.br http://protweb.cursolinux.52ct.eb.mil.br

Protegendo um diretrio por senha

O apache ainda possui mecanismos para proteger pginas do servidor com login e senha. Suponha que tenhamos um diretrio no nosso servidor www que queremos proteger o acesso. Esse acesso s seria permitido a pessoas que possussem um login e senha adequados. Primeiramente vamos criar o diretrio onde ficaro nossas pginas protegidas: S para testarmos vamos criar um arquivo a.txt.

#mkdir/var/www/paginaprotegida

#touch/var/www/paginaprotegida/a.txt

Protegendo um diretrio por senha

Primeiro temos que alterar o arquivo de configurao do apache o httpd.conf situado no diretrio /etc/apache.

Acrescente as seguintes linhas ao arquivo logo aps o tag do diretrio Sobrescreveas /var/www/.

configuraes Apache

padresdoservidor paracolocarnovas configuraes paraaquelediretrio.

OptionsFollowSymLinksIndexes AllowOverrideAuthConfig Dizqueseoapacheencontraroarquivo.htaccessno diretrioasregras contidasneledevemseraplicadasaodiretrioaaossub diretrios.

http://www.devin.com.br/eitch/htaccess

Entendendo o apache ...

So permitdas as seguintes opes para os diretrios "None", "All", ou qualquer combinao de "Indexes", "Includes", "FollowSymLinks", "ExecCGI", or "MultiViews".

Indexes": faz com que quando no tiver nenhum arquivo do tipo index.html, index.htm, ou "pginas iniciais", o Apache cria uma pgina com a lista dos arquivos existentes no diretrio; Includes": permite colocar arquivos do tipo SSI (Server Side Includes); FollowSymLinks: faz com que o Apache aceite links simblicos no sistema, seguindo os diretrios ou arquivos que os links apontam; ExecCGI: faz com que neste diretrio possam ser executados arquivos CGI (Common Gateway Interface); MultiViews: serve para, por exemplo, servir pginas de acordo com a preferncia de lngua do usurio (index.html.pt_BR, index.html.en, etc); All: significa todas as opes (menos o MultiViews); None: significa nenhuma. http://www.devin.com.br/eitch/htaccess

Configurando o arquivo de senhas

Primeiramente vamos criar o diretrio que conter o arquivo com os logins e senhas que podero acessar o diretrio e seus subdiretrios. Agora vamos criar os logins e senhas:

#mkdir/etc/apache/auth

#cd/etc/apache/auth #htpasswdcacessousuario1 #htpasswdcacessousuario2 E agora o gran finale: criar .htaccess!

o

arquivo

http://www.devin.com.br/eitch/htaccess

Configurando o arquivo de senhas

V para o diretrio que ir proteger e crie o .htaccess:

#cd/var/www/paginaprotegida #vi.htaccess O contedo do arquivo deve ser:AuthName "Acesso Restrito Usurios" AuthType Basic AuthUserFile /etc/apache/auth/acesso require valid-user

Pronto: reinicie o apache e faa o teste!

#apachectlrestarthttp://www.devin.com.br/eitch/htaccess

Outras formas de restringir o acesso

Podemos restringir o acesso aos diretrios a alguns IP's. Para isso temos que alterar a configurao do diretrio no httpd.conf e colocar algumas das seguintes diretivas:#DeixaaIntranet acessar Orderallow,deny allowfrom192.168.0. denyfromall #Deixatodomundoacessar,menosoIP 192.168.0.25 Orderdeny,allow denyfrom192.168.0.25http://www.devin.com.br/eitch/htaccess allowfromall

Agora chegou a hora do servidor de e-mail

Citamos diversas contas de e-mail de usurios durante a configurao dos servidores ... Precisamos, ento, configurar nosso servidor de e-mail! Um dos servidores de e-mail mais utilizados o Postfix (http://www.postfix.org). Alm de leve cheio de funcionalidades.

Tarefa

Vamos configurar o Postfix com as seguintes funcionalidades:

SMTP autenticado (SASL); Criptografia (TLS); Anti-vrus (clamav); Anti-spam (spamassassin); Webmail (squirrelmail).

Agora que sabemos o que queremos vamos partir para a instalao do Postfix.

Instalando o Postfix

A instalao do Postfix rpida e fcil: Responda as perguntas da seguinte forma:

#aptgetinstallpostfixpostfixdoc

Tipo geral de configurao: Internet Site Onde as mensagens de root devem ser entregues: admin. Nome de mensagens: alunox.cursolinux.52ct.eb.mil.br Outros destinos para os quais alunox.cursolinux.52ct.eb.mil.br, cursolinux.52ct.eb.mil.br, localhost aceitar mensagens:

Forar atualizaes sncronas na caixa de mensagens: No.

O servidor est com as configuraes bsicas. J podemos test-lo agora ...

Testando a instalaokurumin@laptop:~$telnetlocalhost25 Trying192.168.0.3... Connectedto192.168.0.3. Escapecharacteris'^]'. 220localhost.cursolinux.52ct.eb.mil.brESMTPPostfix (Debian/GNU)

HELOcursolinux.52ct.eb.mil.br250localhost.cursolinux.52ct.eb.mil.br

MAILFrom:[email protected]

RCPTto:[email protected]

DATA354Enddatawith.

Istoumemaildeteste. .250Ok:queuedas7AB9C82F8

QUIT221Bye Connectionclosedbyforeignhost.

Lendo o e-mail enviadoPrimeiramente vamos ver se o e-mail foi enviado ... #tail/var/log/syslog Vamos agora ler o e-mail com o cliente de email mail: #aptgetinstallmailx #mail Se tudo correu bem deve aparecer o e-mail que enviamos. Para que consigamos colocar para funcionar TODOS os servios que precisamos necessrio que criemos o diretrio Maildir acima do diretrio home dos usurios. #suadmin $maildirmake~/Maildir

Preparando o terreno

Temos que configurar algumas coisas antes de prosseguirmos:

Para configurarmos um servidor webmail, necessitamos de configurar um servidor IMAP. O IMAP que instalaremos funciona com Maildir e no com mailbox.

Vamos configurar o Maildir para todos os novos usurios do sistema:

#cd/etc/skel #maildirmakeMaildir

Temos que criar esse diretrio para os usurios j criados.

POP3

Para podermos baixar os e-mails temos que instalar um servidor POP ou IMAP. Um dos servidores mais utilizados o servidor courier. Para instal-lo execute o comando: Respondas as seguintes perguntas;

#aptgetinstallcourierpopcourierdoc

Criar diretrios para administrao baseada na web: Sim.

Podemos testar o acesso ao POP3 pelo kmail.

POP3 - seguro

Podemos instalar o servidor com suporte a criptografia: Foi criado um certificado de teste. Vamos criar um certificado relacionado ao nosso servidor.

#aptgetinstallcourierpopssl

#cd/etc/courier #rmpop3d.pem # vi pop3d.cnf corretos) #mkpop3dcert

(coloque

os

valores

Agora basta reconfigurar a conta POP do cliente de e-mail e colocar a opo SSL.

Arquivo pop3d.cnf

Webmail

O squirrelmail necessita do servidor imap.

#aptgetinstallcourierimapcourierimap ssl

Agora podemos instalar o webmail: Para configurar o webmail execute, como root, o comando:

#aptgetinstallsquirrelmail

#/usr/sbin/squirrelmailconfigure

Anti-vrus (clamav)

Para proteger a rede temos que instalar um anti-vrus de e-mail. Um excelente anti-vrus o clamav. Para instal-lo execute o comando:

#aptgetinstallclamavarjunzoounrar lhaclamavdaemonzoolzoparc

Responda as seguintes perguntas:

daemon db.br.clamav.net http_proxy em branco Clamd deve ser notificado: Sim

Anti-vrus (amavis_new)

Para que o clamav funcione precisamos instalar o amavis.

com

o

Postfix

#aptgetinstallamavisdnew

Edite o arquivo /etc/amavis/amavisd.conf altere/verifique as seguintes linhas:

e

$MYHOME='/var/lib/amavis';#(defaultis'/var/amavis') $mydomain='cursolinux.52ct.eb.mil.br';#(Boteaquioseudominio) $daemon_user='amavis';#(nodefault;customary:vscanoramavis) $daemon_group='amavis';#(nodefault;customary:vscanoramavis) $QUARANTINEDIR='/var/lib/amavis/virusmails'; $log_level=0;

Altere/verifique as seguintes linhas.

Anti-vrus (amavis_new)$final_virus_destiny=D_BOUNCE;#(defaultstoD_BOUNCE) $final_banned_destiny=D_BOUNCE;#(defaultstoD_BOUNCE) $final_bad_header_destiny=D_PASS;#(defaultstoD_PASS),D_BOUNCE suggested $final_spam_destiny=D_PASS;#(defaultstoD_REJECT) $sa_spam_subject_tag='***SPAM***'

#Coloqueaqui,oemaildoadministradoroucrieumALIASparaesseemail, quereceberaosavisodosemailslocalizadospeloAmavis. $virus_admin="virusalert\@$mydomain";

Edite o arquivo /etc/aliases e acrescente a linha virusalert:admin. Depois execute o comando newaliases. Agora verifique se a linha do clamav est descomentada:

['ClamAntivirusclamd', \&ask_daemon,["CONTSCAN{}\n",'/var/run/clamv/clamd.ctl'], qr/\bOK$/,qr/\bFOUND$/, qr/^.*?:(?!InfectedArchive)(.*)FOUND$/],

Fazendo a integrao: Postfix+Clamav+Amavis

Edite o arquivo /etc/clamav/clamd.conf e altere o usurio com o qual o clamav est rodando de clamav para amavis: Altere as permisses dos diretrios do clamav para pertencer ao usurio amavis:

Useramavis

#cd/var/run #chownRamavis:amavisclamav #cd/var/log #chownRamavis:amavisclamav

Fazendo a integrao: Postfix+Clamav+Amavis

Reinicie o clamav e o amavis:

#/etc/init.d/clamavdaemonrestart #/etc/init.d/amavisrestart

Lembre-se de que sempre vale a pena observar os logs ... Pronto: vamos ver se o amavis est no ar ...

#tailf/var/log/syslog

#telnetlocalhost10024 Trying127.0.0.1... Connectedtoaluno0.cursolinux.52ct.eb.mil.br. Escapecharacteris'^]'. 220[127.0.0.1]ESMTPamavisdnewserviceready

Fazendo a integrao: Postfix+Clamav+Amavis

Edite o arquivo /etc/postfix/master.cf acrescente as linhas:

e

smtpamavisunixn2smtp osmtp_data_done_timeout=1200 osmtp_send_xforward_command=yes odisable_dns_lookups=yes 127.0.0.1:10025inetnnsmtpd ocontent_filter= olocal_recipient_maps= orelay_recipient_maps= osmtpd_restriction_classes= osmtpd_client_restrictions= osmtpd_helo_restrictions= osmtpd_sender_restrictions= osmtpd_recipient_restrictions=permit_mynetworks,reject omynetworks=127.0.0.0/8,10.100.53.0/22 ostrict_rfc821_envelopes=yes osmtpd_error_sleep_time=0 osmtpd_soft_error_limit=1001 osmtpd_hard_error_limit=1000

Fazendo a integrao: Postfix+Clamav+Amavis

Precisamos fazer com que o Postfix repasse os e-mails para serem avaliados pelo amavis. Acrescente a linha abaixo ao arquivo: Agora vamos reiniciar o Postfix: Agora s falta testarmos ... Monitore em um terminal o syslog:

#vi/etc/postfix/main.cf

content_filter=smtpamavis:[127.0.0.1]:10024

#/etc/init.d/postfixrestart

#tailf/var/log/syslog

Fazendo a integrao: Postfix+Clamav+Amavis

Agora vamos testar o anti-vrus:

#telnetlocalhost25 Trying127.0.0.1... Connectedtoaluno0.cursolinux.52ct.eb.mil.br. Escapecharacteris'^]'. 220servidor.cursolinux.52ct.eb.mil.brESMTPPostfix(Debian/GNU) HELOcursolinux.52ct.eb.mil.br 250servidor.cursolinux.52ct.eb.mil.br mailfrom:[email protected] 250Ok rcptto:[email protected] 250Ok DATA 354Enddatawith. X5O!P%@AP[4\PZX54(P^)7CC)7}$EICARSTANDARDANTIVIRUSTESTFILE!$H+H* . 250Ok:queuedas8CC564C10

Anti-spam (spamassassin)Para instalar o spamassassin basta executar o comando: #aptgetinstallspamassassin Edite o arquivo /etc/default/spamassassin e altere o valor da varivel ENABLED para 1. Agora j podemos iniciar o spamassassin: #/etc/init.d/spamassassinstart No arquivo /etc/spamassassin/local.cf altere/verifique os valores das variveis abaixo:

required_score4.5 ok_languagespten rewrite_headerSubject*****SPAM*****

Reinicie o spamassassin: #/etc/init.d/spamassassinrestart

Anti-spam (spamassassin)

A linha abaixo tem que estar comentada no arquivo /etc/amavis/amavisd.conf: #@bypass_spam_checks_acl=qw(.); Altere o dono e o grupo spamassassin para o amavis: Agora reinicie o amavis: Pronto agora o conjunto Postfix, Amavis, Clamav e Spamassassin est funcionando.. do diretrio do

#chownRamavis.amavis/usr/share/spamassassin

#/etc/init.d/amavisrestart

SMTP autenticado

Temos agora que configurar a autenticao para envio de e-mails. Isso realizado com o SASL.

#aptgetupdate #aptgetinstallpostfixtlssasl2bin libgsasl7libauthensaslcyrusperl libauthensaslperllibsasl2libsasl2 modules

Agora temos alterar a linha do smtp do arquivo main.cf situado no diretrio /etc/postfix para:

smtpinetnnsmtpdhttp://www.vivaolinux.com.br/dicas/verDica.php?codigo=7294

SMTP autenticado

Agora vamos criar o /etc/postfix/sasl/smtpd.conf: Este arquivo deve ter o contedo:pwcheck_method:saslauthd mech_list:pamplainlogin

arquivo

#vi/etc/postfix/sasl/smtpd.conf

Depois vamos editar /etc/default/saslauthd e linha iniciada com START:

o arquivo descomentar a

#vi/etc/default/saslauthd

START=yes

http://www.vivaolinux.com.br/dicas/verDica.php?codigo=7294

SMTP autenticado

Precisamos fazer com o que Postfix utilize o SASL ... Para isso temos que editar o arquivo /etc/postfix/main.cf e acrescentar as seguintes linhas:

#SASLSUPPORTFORCLIENTS #ThefollowingoptionssetparametersneededbyPostfixtoenable #CyrusSASLsupportforauthenticationofmailclients. # smtpd_sasl_auth_enable=yes smtpd_sasl_security_options=noanonymous smtpd_sasl_local_domain=$myhostname broken_sasl_auth_clients=yes smtpd_recipient_restrictions= permit_sasl_authenticated, permit_mynetworks, check_relay_domains

Para que o Postfix utilize o SASL necessrio que o usurio postfix pertena do grupo sasl:

#adduserpostfixsaslhttp://www.vivaolinux.com.br/dicas/verDica.php?codigo=7294

Testando ...

Reinicie o Postfix ... Para verificar se a auntenticao est OK execute o comando: A resposta deve ser: 0:OK"Success."Voc tambm pode testar com o telnet na porta 25 (transparncia ao lado). Antes temos que gerar a string de autenticao do usurio (copie o cdigo gerado):

#testsaslauthduadminptestessmtp

#perlMMIME::Base64e'print encode_base64("admin\0admin\0teste");' YWRtaW4AYWRtaW4AdGVzdGU=http://www.vivaolinux.com.br/dicas/verDica.php?codigo=7294

Testando ...telnetlocalhost25 Trying127.0.0.1... Connectedtoaluno0.cursolinux.52ct.eb.mil.br. Escapecharacteris'^]'. 220servidor.cursolinux.52ct.eb.mil.brESMTPPostfix(Debian/GNU) EHLOcursolinux.52ct.eb.mil.br 250servidor.cursolinux.52ct.eb.mil.br 250PIPELINING 250SIZE10240000 250VRFY 250ETRN 250AUTHLOGINPLAIN 250AUTH=LOGINPLAIN 2508BITMIME mailfrom:[email protected] 250Ok rcptto:[email protected] 250Ok AUTHPLAINYWRtaW4AYWRtaW4AdGVzdGU= 235Authenticationsuccessful quit 221Bye

Postfix com TLS

O TLS (Transport Layer Security) uma tecnologia que permite que a comunicao entre o cliente e um servidor seja criptografada durante o envio de um e-mail. Para utiliz-la, alm das configuraes necessrias no Postfix, temos que gerar o certificado do servidor. Antes de gerarmos os certificados temos que entender um pouco mais de criptografia ...

Criptografia de Dados-- Apostila GNU/Linux em redes TCP/IP -Joo ERIBERTO Mota Filho - CAP

Criptografia de dados

Garante a realizao de operaes de armazenamento, comunicaes e transaes eletrnicas com segurana. A criptografia busca:

autenticidade; confidencialidade; integridade; e no repdio.

Existem dois tipos bsicos de criptografia: simtrica e assimtrica.

Criptografia simtrica

Utiliza a mesma chave para criptografar e decriptografar os dados. Possui as seguintes vantagens:

rapidez; simplicidade.

Possui as seguintes desvantagens:

a chave compartilhada; multiplicao das chaves (uma para cada relao de confiana) possibilidade da captura da chave no canal de comunicao; no permite a assinatura e a certificao digital.

Criptografia assimtrica

Utiliza um par de chaves diferentes para criptografar e decriptografar dados. As chaves so geradas de forma que somente uma das chaves consegue decriptografar o que a outra criptografou. Possui as seguintes vantagens:

a chave privada no compartilhada; no h multiplicao de chaves; a chave pblica pode ser livremente divulgada; a chave pblica pode ser capturada no canal de comunicao; possibilita a assinatura e a certificao digital.

Criptografia assimtrica

Possui as seguintes desvantagens:

operao mais demorada; exige mais conhecimentos do usurio.

Os algoritmos assimtricos mais conhecidos so o RSA e o DSA.

Hash

Transforma uma grande quantidade de dados em um dado pequeno. Teoricamente, no existem dois contedos diferentes que gerem o mesmo hash. O hash uma operao sem retorno. Algumas aplicaes do hash:

descaracterizao das senhas dos usurios; conferncia de integridade de dados; conferncia de similaridade de dados; transaes eletrnicas; assinatura digital.

Assinatura digital

A assinatura digital consiste em:

a pessoa A gera um documento; a pessoa A calcula o hash do documento; o hash criptografado com a chave privada da pessoa A; o hash criptografado a assinatura digital do documento; a pessoa A envia o documento e a assinatura para uma pessoa B; a pessoa B calcula o hash do documento; a pessoa B decriptografa o hash recebido e compara com o calculado.

Certificao digital

A certificao digital ocorre quando a chave pblica de algum garantida por uma entidade superior na qual todos confiam.

Criptografia simtrica com OpenSSL

Para instalar a OpenSSL execute o comando: Crie um arquivo chamado texto.txt com o seguinte contedo: Este um texto criptografado. Para criptografar um texto com OpenSSL, utilize o comando:

#aptgetinstallopenssl

#opensslencades3intexto.txtouttexto2.txt enterdesede3cbcencryptionpassword: Verifyingenterdesede3cbcencryptionpassword: Digitetesteduas Para decriptografar: vezes #opensslencdades3intexto2.txtouttexto3.txt enterdesede3cbcdecryptionpassword: Digite

teste

Criptografia assimtrica com OpenSSL

Gerao de chaves:

Gerao de chave privada, de 2048 bits, utilizando o 3DES:

#opensslgenrsades3outprv.key2048 GeneratingRSAprivatekey,2048bitlongmodulus .............+++ .......................................+++ eis65537(0x10001) Enterpassphraseforprv.key: VerifyingEnterpassphraseforprv.key: Digitetesteduas vezes

Criptografia assimtrica com OpenSSL

Gerao de chaves:

Criao da chave pblica baseada na privada:

#opensslrsapuboutinprv.keyoutpub.key Enterpassphraseforprv.key: writingRSAkey

Digite

Criptografar com a privada e decriptografar com a pblica:

teste

Criptografar com a chave privada:

#opensslrsautlsigninkeyprv.keyin texto.txtouttexto2.txt

Decriptografar com a chave pblica:

#opensslrsautlpubininkeypub.keyin texto2.txtouttexto3.txt

Criptografia assimtrica com OpenSSL

Criptografar com chave pblica decriptografar com a chave privada:

e

Criptografar com a chave pblica:

#opensslrsautlencryptpubininkeypub.key intexto.txtouttexto4.txt

Decriptografar com a chave privada:

Sempre que se utilizar a chave privada ser solicitada a senha.

#opensslrsautldecryptinkeyprv.keyin texto4.txtouttexto5.txt Digite Enterpassphraseforprv.key: teste

Certificados digitais-- Apostila GNU/Linux em redes TCP/IP -Joo ERIBERTO Mota Filho - CAP

Certificados digitais

Um certificado serve, basicamente, para garantir que uma chave pblica pertence a quem diz ser o dono da mesma. Com isso, um sistema de criptografia, baseado no uso de chaves pblica e privada (criptografia assimtrica), pode ser estabelecido de forma confivel. Um certificado digital pode ser assinado por uma autoridade certificadora (CA), o que lhe d um grau de confiabilidade ou pode ser utilizado com a assinatura padro, gerada juntamente com o certificado, sem a interveno de uma CA. Nesse caso, teremos um certificado auto-assinado.

Certificados digitais

Toda CA possui um certificado para si mesma denominado certificado raiz (root certificate). Todo certificado raiz auto assinado. No caso de necessitarmos de uma assinatura em um certificado gerado por ns, poderemos utilizar os servios de uma CA reconhecida (como a CertSign e a VeriSign) ou poderemos criar a nossa prpria CA.

Processo de emisso de uma CA

A emisso de certificados por CA ocorre da seuguinte forma:

uma Autoridade Certificadora (CA) e, consequentemente, o seu certificado raiz (auto-assinado) so criados (newca) em uma mquina protegida, especfica para ser CA (levando-se em considerao que teremos a nossa prpria CA, ao invs de utilizarmos uma CA comercial, como a VeriSign); um certificado e sua chave privada so gerados por algum, na sua prpria mquina, para uso em um servio de rede ou para uso comercial (newreq); o interessado envia somente o certificado para a CA assinar. Nesse ponto, o arquivo gerado no item anterior dever ser duplicado. A cpia dever ser editada, para excluir a chave privada antes do envio.

Processo de emisso de uma CA

A emisso de certificados por CA ocorre da seguinte forma:

o certificado recebido pela CA assinado (sign) e restitudo juntamente com uma cpia do certificado raiz da CA; o certificado assinado, em conjunto com a chave privada do mesmo, aplicado num servio de rede ou destinado a uso pessoal; o certificado raiz da CA que assinou disponibilizado para poder ser instalado no cliente, a fim de reconhecer o certificado do servidor (que foi assinado pela CA).

Processo de emisso de uma CA

A CA deve ser instalada em uma mquina segura e, se possvel, destinada somente assinatura de certificados digitais. Os dados da CA e do certificado assinado podero ser totalmente diferentes, pois um no necessita ter correlao com o outro. A CA pode ser gerada com um perodo de durao de 10 anos, por exemplo. J o certificado assinado, por questes de segurana, dever ter uma durao menor (1 a 2 anos, de preferncia).

Simulao do processo

Condies de execuo:

todos os procedimentos sero utilizados visando as operaes eletrnicas da loja Linux para sempre; ser criada uma CA para a loja Linux para sempre; a CA da loja assinar os certificados destinados aos servidores de pgina e e-mail; o site se chama www.cursolinux.52ct.eb.mil.br e o servidor de e-mail smtp.cursolinux.52ct.eb.mil.br; a loja localiza-se em Fortaleza, CE.

Simulao do processo

Criao da CA:

dever ser criada em um computador exclusivamente dedicada a isso.

Arquivo de configurao:

cd/usr/lib/ssl lsl otal2 rwxrwxrwx1rootroot142006091015:07certs>/etc/ssl/certs rwxrxrx2rootroot2162006091015:07misc rwxrwxrwx1rootroot202006091015:07openssl.cnf>/etc/ssl/openssl.cnf rwxrwxrwx1rootroot162006091015:07private>/etc/ssl/private

Simulao do processo

Edite o arquivo /etc/ssl/openssl.cnf e altere o valor das seguintes variveis:

default_days = 3650 countryName_default = BR stateOrProvinceName_default = CE localityName_default = Fortaleza --> (inserir) O.organizationName_default = Linux para sempre organizationalUnitName_default = Diviso de Informtica common_default = Autoridade Certificadora da Linux para sempre --> (inserir) emailAddress_default = [email protected] --> (inserir)

Nunca acentue dados do certificado!

Simulao do processo

Entre no diretrio /usr/lib/ssl/misc e execute o comando abaixo (instale o programa tree):#treel/usr/lib/ssl

Agora ser necessrio definir a frase-senha para a chave privada da CA. No nosso caso ser teste. Para gerar a CA e seu certificado raiz execute o comando:#./CA.plnewca

digite a senha e tecle enter

Execute o comando abaixo(foi criada a DemoCA):#treel/usr/lib/ssl

Simulao do processo

Dentro da DemoCA existe os seguintes arquivos:

cacert.pem: certificado raiz; cakey.pem: chave privada da CA.

O certificado dever ser disponibilizado para ser instalado nos clientes. para isso execute os comandos:#cddemoCA #cpcacert.pemlinuxparasempre.crt

coloque o arquivo linuxparasempre.crt para download no site do banco.

Simulao do processo

Criao dos certificados para os servidores www e de e-mail:

os certificados devero ser gerados nos servidores. edite o arquivo /usr/lib/ssl/openssl.cnf e altere o valor das seguintes variveis:

default_days = 730 CountryName_default = BR StateOrProvinceName_default = RJ localityName_default = Rio de Janeiro O.organizationName_default = Banco Boa Sorte SA organizationalUnitName_default = Equipe de Internet # common_default emailAddress_default = [email protected]

Simulao do processo

Criao dos certificados para os servidores www e de e-mail:

entre no diretrio /usr/lib/ssl/misc e execute o comando:#treel/usr/lib/ssl

defina a frase-senha. No nosso caso ser teste. gere o certificado:#./CA.plnewreq

siga com Enter at chegar em Common Name e entrar com um dos seguintes dados: www.cursolinux.52ct.eb.mil.br ou smtp.cursolinux.52ct.eb.mil.br IP dos servidores ou *.cursolinux.52ct.eb.mil.br depois disso ser criado o arquivo newreq.pem.

Simulao do processo

Envio do certificado para CA:#cpnewreq.pemnewreq.www.pem

edite o arquivo newreq.www e apague a chave privada. envie o arquivo para a CA.

Simulao do processo

Assinatura de certificados dos servidores pela CA:

na mquina da CA entre no diretrio /usr/lib/ssl/misc e copie o arquivo newreq.pem para l. execute o comando: # ./CA.plsign. entre com a senha da chave privada da CA. ser mostrado um resumo do certificado. digite y e enter duas vezes. ser gerado um arquivo newcert.pem. dentro do diretrio /usr/lib/ssl/misc/demoCA/newcerts ser gerado o arquivo 01.pem que o certificado assinado. envie o certificado assinado para o cliente. para que o certificado seja reconhecido o certificado raiz dever ser instalado no browser dos clientes.

Outros ..

Uma lista dos certificados assinados ou revogados pela CA est disponvel no arquivo /usr/lib/ssl/misc/demoCA/index.txt. Os que iniciarem com os esto vlidos e com os revogados. Para fazer um backup da CA copie o diretrio /usr/lib/ssl/misc/demoCA para um local seguro. Para revogar um certificado execute o comando:

#opensslcarevoke /usr/lib/ssl/misc/demoCA/newcerts/01.pem

Para visualizar os dados de um certificado:

#opensslx509incert.pemnoouttext

Copiando os certificadosAgora temos que copiar o certificado assinado para o diretrio do Postfix: #cpnewcert.pem/etc/postfix/ #cpnewreq.pem/etc/postfix/ #cpdemoCA/cacert.pem/etc/postfix/ Agora temos que acrescentar as seguintes linhas ao arquivo /etc/postfix/main:

smtpd_use_tls=yes smtpd_tls_auth_only=yes smtpd_tls_key_file=/etc/postfix/newreq.pem smtpd_tls_cert_file=/etc/postfix/newcert.pem smtpd_tls_CAfile=/etc/postfix/cacert.pem smtpd_tls_loglevel=3 smtpd_tls_received_header=yes smtpd_tls_session_cache_timeout=3600s tls_random_source=dev:/dev/urandom

Testando

Primeiramente temos que reiniciar o Postfix: Agora podemos test-lo no seu leitor de e-mail:

#/etc/init.d/postfixrestart

Escolha a opo de envio com TLS; Envie um e-mail; Leia o e-mail.

Atualizando o clamav ...

Vocs devem ter notado uma mensagem sinalizando que a verso do Clamav estava antiga. Para atualiz-la edite o /etc/apt/sources.list, comente linhas e adicione a linha: Depois execute os comando abaixo: arquivo todas as

debhttp://ftp2.de.debian.org/debianvolatilesarge/volatilemain

#aptgetupdate #aptgetupgrade

Backup

Este servidor est ficando cheio de informaes importantes das quais precisamos fazer backup. Vamos criar um script que ir compactar os diretrios dos usurios e periodicamente copilos para outro servidor. Utilizaremos os seguintes programas:

date; tar; scp; cron.

Recapitulando o date

Primeiramente temos ter um meio para datar os arquivos de backup. Faremos isso utilizando o comando date. A sintaxe do comando date : Para obter a data com a formatao YYYYMMDD (p. ex.: 20060901), temos que executar o comando: Agora vamos arquivar e compactar diretrio /home com o comando tar. o

#date[opes]+[formatao]

#date+%Y%m%d

Relembrando o tar ...#tar[opes][arquivodestino][arquivosorigem] opes: c, --create: cria um novo arquivo .tar; t, --list: lista o contedo de um arquivo .tar; f, --file [HOST:]F: usa o arquivo especificado para gravao ou o dispositivo /dev/rmt0; v: mostra os nomes dos arquivos enquanto so processados; x: extrai arquivos gerados pelo tar; z: usa o programa gzip durante o processamento dos arquivos. No nosso caso: #cd/home #tarcvzfbackupHome.tgz*

Juntando os dois ...

Para juntarmos os dois comando temos que fazer um script. Este uma forma para fazermos o que estamos desejando:

#cd/home #databackup=`date+%Y%m%d` #arquivo=$databackupbackupHome.tgz #tarcvzf$arquivo/home

Agora temos que fazer a cpia do arquivo para outra mquina. Utilizaremos o ssh para isso.

Bakup remoto

Para copiar um arquivo de um computador para outro com o ssh utilizamos o comando scp, como por exemplo:

#scp20060910backupHome.tgz [email protected]:/home/administrador

Voc ter que digitar uma senha. Isso inviabiliza a criao de um script automtico. Para resolver este problema voc precisa fazer com que o computador remoto j saiba a senha do usurio. Para isso vamos ter que gerar uma chave no cliente e depois copi-la para o servidor.

Backup remoto

Para possibilitarmos esse backup, devemos:

criar um par de chaves assimtricas SSH inseguras na mquina que ir comandar o backup; instalar a chave pblica na outra mquina; utilizar o comando scp para realizar o backup remoto.

ApostilaGNU/LinuxemredesTCP/IPJooERIBERTOMotaFilhoCap

Condies iniciais

Criao das chaves:

Para criar chaves assimtricas SSH para um usurio, logue como o usurio em questo e emita o comando:

#suadmin $sshkeygentrsa

Responda com a todas as perguntas; Ser gerado um par de chaves no diretrio .ssh com nome id_rsa (chave privada) e id_rsa.pub (chave pblica); Existe no diretrio .ssh um arquivo known_hosts que contm o fingerprint de cada host que j estabeleceu conexo SSH com a mquina em questo.ApostilaGNU/LinuxemredesTCP/IPJooERIBERTOMotaFilhoCap

Instalao da chave pblica na outra mquina

Dever existir o mesmo usurio na outra mquina. No nosso caso utilizaremos o admin. A chave pblica dever ser levada para outra mquina por meio de disquete, sftp, etc... A chave pblica dever ser colocada dentro do arquivo /home/usurio/.ssh/authorized_keys. Execute o comando: A partir da o usurio poder fazer o ssh/scp sem uso da senha.

#scp.ssh/[email protected]:/admin/.ssh/authorized_keys

ApostilaGNU/LinuxemredesTCP/IPJooERIBERTOMotaFilhoCap

Juntando tudo

Criaremos agora um arquivo no diretrio /root com o nome backup.sh com o seguinte contedo:#!/bin/bash cd/home databackup=`date+%Y%m%d` arquivo=$databackupbackupHome.tgz tarcvzf$arquivo/home suadmincscp$arquivo [email protected]:/admin

Torne o arquivo executvel:

#chmoda+x/root/backup.sh

Agora basta agendarmos a tarefa de executar esse script todo o dia as 22:00 hs, com o cron.

cron

O cron um daemon que permite o agendamento da execuo de um comando/programa para um determinado dia/ms/ano/hora. muito usado em tarefas de arquivamento de logs, checagem da integridade do sistema e execuo de programas/comandos em horrios determinados. As tarefas so definidas no arquivo /etc/crontab e por arquivos individuais de usurios em /var/spool/cron/crontabs/[usurio]. Adicionalmente a distribuio Debian utiliza os arquivos no diretrio /etc/cron.d como uma extenso para o /etc/crontab.ApostilaGNU/LinuxemredesTCP/IPJooERIBERTOMotaFilhoCap

cron

Para editar um arquivo de usurio em /var/spool/cron/crontabs ao invs de editar o /etc/crontab use crontab e, para listar as tarefas daquele usurio crontab l e para apagar o arquivo de tarefas do usurio crontab r. Adicionalmente voc pode remover somente uma tarefa atravs do crontabe e apagando a linha correspondente. No esquea de incluir uma linha em branco no final do arquivo, caso contrrio o ltimo comando no ser executado.ApostilaGNU/LinuxemredesTCP/IPJooERIBERTOMotaFilhoCap

cron

O arquivo formato:

/etc/crontab

tem

o

seguinte

Agora terminaremos

Execute o comando: Inclua a linha: 022***/root/backup.sh Depois confira se est tudo ok com o comando:

#crontabe

#crontabl

Servidor de arquivos e de autenticao

Estamos chegando em uma parte fundamental do curso: temos que configurar o servidor que auntenticar os usurios da rede (Linux e Windows) e tambm servir arquivos (Linux e Windows). Agora teremos que configuar :

Um PDC que autenticar tanto os usurios do Windows quanto do Linux; O servidor de arquivos dos diretrios dos usurios (home) e das pastas das sees. Dever ser configurado um compartilhamento com nome documentos com acesso de somente leitura para todos os usurios e de escrita para o admin.

Introduo

Antes de comearmos importante entendermos alguns conceitos bsicos do SAMBA ...

O que o SAMBA?

O SAMBA um servidor e um conjunto de ferramentas que utilizam os protocolos NetBIOS e SMB. O SAMBA possibilita compartilhamento de arquivos e impressoras entre computadores com Windows e Linux. O SAMBA tambm pode ser configurado para autenticar usurios da rede. Integrado ao LDAP possibilita uma forma centralizada de autenticao de servios da rede e compartilhamento de arquivos e impressoras.SAMBA HOWTO - Collection --

Conceitos importantes

NetBIOS: resoluo de nomes (broadcast); WINS: centraliza a resoluo de nomes; Workgroups: conjunto de mquinas que trabalham com o protocolo NetBIOS. No existe hierarquia nem autenticao centralizada; Domnios: so workgroups s que hierarquia e autenticao centralizada. com

SAMBA HOWTO - Collection --

Instalao

Podemos agora instalar o SAMBA. O samba composto de um servidor e de diversos programas. Primeiramente vamos instalar os pacotes bsicos. A medida que for necessrio instalaremos os demais. sambadoc

# aptget install samba smbclientsambacommonsmbfs

Configurao inicial

Configurao inicial

Configurao inicial

Configurao inicial

Configurao inicial

Daemons

Dois daemons so responsveis funcionamento do SAMBA:

pelo

smbd: que o daemon que trata da comunicao smb; nmbd: que responsvel pela resoluo de nomes (NetBIOS).

O servidor SAMBA j deve estar rodando, por via das dvidas execute o comando:

#pse|grepmbd

Configurao

O principal arquivo de configurao do samba o smb.conf que fica no diretrio /etc/samba. Esse arquivo dividido basicamente em trs partes:

[global]: configuraes gerais do servidor samba; [homes]: configuraes do diretrio home dos usurios; [nome_do_compartilhamento]: para cada compartilhamento necessrio abrir uma seo com [].

Verifique o contedo do seu smb.conf: #less/etc/samba/smb.conf

O arquivo com as senhas dos usurios do SAMBA ficam no arquivo /etc/samba/smbpasswd.

Configurando os usurios/grupos

Para comearmos a testar o SAMBA vamos, inicialmente, estruturar nossos usurios e grupos aos quais eles pertencem. Primeiramente vamos definir os grupos: alunos e administradores. Para cadastrar os grupos execute os comandos:

#groupaddalunos #groupaddadministradores

Definimos que teremos, inicialmente, 3(trs) usurios: admin (administradores), aluno?-1 (alunos) e aluno?-2. Todos com diretrio home e senha teste.

Configurando os usurios/grupos

Para criar os usurios temos que decidir uma entre as duas opes:

Cadastrar o usurio sem shell: ou seja, no ter acesso ao computador por meio de ssh/telnet somente aos servios oferecidos servidor; Cadastrar o usurio com com shell: ter acesso ao computador por meio de ssh/telnet.

Dentre as duas opes prefiro a primeira, pois mais segura. Dessa forma definimos que:

aluno?-1 e aluno?-2, sem shell; admin (j cadastrado), com shell.

Configurando os usurios

Para adicionar os usurios execute os comandos:Senha teste

#useraddadminadministradores

#useraddingroupalunosshell/bin/falsealuno?1 #useraddingroupalunosshell/bin/falsealuno?2

No precisamos criar o admin pois ele j existe! Agora vamos SAMBA: acrescentar esses usurios ao

#smbpasswdaaluno?1 #smbpasswdaaluno?2 #smbpasswdaadmin

Senha teste

Fazendo os primeiros testes ...

Agora que j temos nossos usurios cadastrados podemos realizar nossos primeiros testes. Utilizaremos para isso o comando smbclient. Esse comando tem duas formas:

$smbclientL[UloginUsuario] $smbclient[UloginUsuario]

No nosso caso:

$smbclientLlocalhost>Digite $smbclientLlocalhostUaluno?_1 $smbclient//aluno?/aluno?_2Ualuno?_2

No primeiro caso listou os compartilhamentos disponveis no servidor e no segundo acessou o compartilhamento. No ltimo caso digite o comando help para ver os comandos disponveis.

Consideraes sobre o smb.conf

Forma: opo=valor Alteraes no smb.conf; Espaos em branco:

comment=ServidordeArquivos

Capitalizao:

PATH=/HOME/USUARIOS

Quebra de linha:

Comment=Servidor\

Arquivos

Comentrios: depois de # e ;

Variveis

Existem diversas variveis que podem ser utilizadas pelos arquivos do samba. Dentre elas podemos citar:

%u: nome do usurio; %g: grupo do usurio; %a: arquitetura da mquina; %m: nome NetBIOS do cliente; %L: nome NetBIOS do servidor SAMBA.

Para testar se a configurao do servidor SAMBA ficou correta utilize o comando testparm.

Analisando o smb.conf[global] ##Browsing/Identification### #Changethistotheworkgroup/NTdomainnameyourSambaserverwillpartof workgroup=cursolinux #serverstringistheequivalentoftheNTDescriptionfield serverstring=%hserver(Samba%v) #WindowsInternetNameServingSupportSection: #WINSSupportTellstheNMBDcomponentofSambatoenableitsWINSServer ;winssupport=no #WINSServerTellstheNMBDcomponentsofSambatobeaWINSClient #Note:SambacanbeeitheraWINSServer,oraWINSClient,butNOTboth ;winsserver=w.x.y.z #ThiswillpreventnmbdtosearchforNetBIOSnamesthroughDNS. dnsproxy=no #Whatnamingserviceandinwhatordershouldweusetoresolvehostnames #toIPaddresses ;nameresolveorder=lmhostshostwinsbcast

Analisando o smb.conf####Debugging/Accounting#### #ThistellsSambatouseaseparatelogfileforeachmachine #thatconnects logfile=/var/log/samba/log.%m #Putacappingonthesizeofthelogfiles(inKb). maxlogsize=1000 #IfyouwantSambatoonlylogthroughsyslogthensetthefollowing #parameterto'yes'. ;syslogonly=no #WewantSambatologaminimumamountofinformationtosyslog.Everything #shouldgoto/var/log/samba/log.{smbd,nmbd}instead.Ifyouwanttolog #throughsyslogyoushouldsetthefollowingparametertosomethinghigher. syslog=0 #DosomethingsensiblewhenSambacrashes:mailtheadminabacktrace panicaction=/usr/share/samba/panicaction%d

Analisando o smb.conf#######Authentication####### #"security=user"isalwaysagoodidea.ThiswillrequireaUnixaccount #inthisserverforeveryuseraccessingtheserver.See #/usr/share/doc/sambadoc/htmldocs/ServerType.htmlinthesambadoc #packagefordetails. ;security=user #Youmaywishtousepasswordencryption.Seethesectionon #'encryptpasswords'inthesmb.conf(5)manpagebeforeenabling. encryptpasswords=true #Ifyouareusingencryptedpasswords,Sambawillneedtoknowwhat #passworddatabasetypeyouareusing. passdbbackend=tdbsamguest obeypamrestrictions=yes ;guestaccount=nobody invalidusers=root #ThisbooleanparametercontrolswhetherSambaattemptstosynctheUnix #passwordwiththeSMBpasswordwhentheencryptedSMBpasswordinthe #passdbischanged. ;unixpasswordsync=no

Nveis de segurana

Para uma pessoa acessar um compartilhamento que no permita convidados tem que fornecer um login e uma senha de acesso. Existem quatro nveis de segurana:

security=share security=user security=server security=domain

Analisando o smb.conf#ForUnixpasswordsynctoworkonaDebianGNU/Linuxsystem,thefollowing #parametersmustbeset(thankstoAugustinLutonfor #sendingthecorrectchatscriptforthepasswdprograminDebianPotato). passwdprogram=/usr/bin/passwd%u passwdchat=*Enter\snew\sUNIX\spassword:*%n\n *Retype\snew\sUNIX\spassword:*%n\n. #ThisbooleancontrolswhetherPAMwillbeusedforpasswordchanges #whenrequestedbyanSMBclientinsteadoftheprogramlistedin #'passwdprogram'.Thedefaultis'no'. ;pampasswordchange=no

Analisando o smb.conf##########Printing########## #Ifyouwanttoautomaticallyloadyourprinterlistrather #thansettingthemupindividuallythenyou'llneedthis ;loadprinters=yes #lpr(ng)printing.Youmaywishtooverridethelocationofthe #printcapfile ;printing=bsd ;printcapname=/etc/printcap #CUPSprinting.Seealsothecupsaddsmb(8)manpageinthe #cupsysclientpackage. ;printing=cups ;printcapname=cups #Whenusing[print$],rootisimplicitlya'printeradmin',butyoucan #alsogivethisrighttootheruserstoadddriversandsetprinter #properties ;printeradmin=@ntadmin ########Filesharing######## #Namemanglingoptions ;preservecase=yes ;shortpreservecase=yes

Analisando o smb.conf############Misc############ #Usingthefollowinglineenablesyoutocustomiseyourconfiguration #onapermachinebasis.The%mgetsreplacedwiththenetbiosname #ofthemachinethatisconnecting ;include=/home/samba/etc/smb.conf.%m #Mostpeoplewillfindthatthisoptiongivesbetterperformance. #Seesmb.conf(5)and/usr/share/doc/sambadoc/htmldocs/speed.html #fordetails #YoumaywanttoaddthefollowingonaLinuxsystem: #SO_RCVBUF=8192SO_SNDBUF=8192 socketoptions=TCP_NODELAY #Thefollowingparameterisusefulonlyifyouhavethelinpopuppackage #installed.Thesambamaintainerandthelinpopupmaintainerare #workingtoeaseinstallationandconfigurationoflinpopupandsamba. ;messagecommand=/bin/shc'/usr/bin/linpopup"%f""%m"%s;rm%s'& #DomainMasterspecifiesSambatobetheDomainMasterBrowser.Ifthis #machinewillbeconfiguredasaBDC(asecondarylogonserver),you #mustsetthisto'no';otherwise,thedefaultbehaviorisrecommended. ;domainmaster=auto #Somedefaultsforwinbind(makesureyou'renotusingtheranges #forsomethingelse.) ;idmapuid=1000020000 ;idmapgid=1000020000 ;templateshell=/bin/bash

Analisando o smb.conf[homes] comment=HomeDirectories browseable=no #Bydefault,thehomedirectoriesareexportedreadonly.Changenext #parameterto'yes'ifyouwanttobeabletowritetothem. writable=no #Filecreationmaskissetto0700forsecurityreasons.Ifyouwantto #createfileswithgroup=rwpermissions,setnextparameterto0775. createmask=0700 #Directorycreationmaskissetto0700forsecurityreasons.Ifyouwantto #createdirs.withgroup=rwpermissions,setnextparameterto0775. directorymask=0700 #UncommentthefollowingandcreatethenetlogondirectoryforDomainLogons #(youneedtoconfigureSambatoactasadomaincontrollertoo.) ;[netlogon] ;comment=NetworkLogonService ;path=/home/samba/netlogon ;guestok=yes ;writable=no ;sharemodes=no

Analisando o smb.conf#Windowsclientslookforthissharenameasasourceofdownloadable #printerdrivers [print$] comment=PrinterDrivers path=/var/lib/samba/printers browseable=yes readonly=yes guestok=no #UncommenttoallowremoteadministrationofWindowsprintdrivers. #Replace'ntadmin'withthenameofthegroupyouradminusersare #membersof. ;writelist=root,@ntadmin #AsampleshareforsharingyourCDROMwithothers. ;[cdrom] ;comment=Sambaserver'sCDROM ;writable=no ;locking=no ;path=/cdrom ;public=yes

Entendendo melhor os compartilhamentos

Os compartilhamentos so da forma:[nome_do_compartilhamento] path= ...opes...

As principais opes so:

readonly=[yes|no] browseable=[yes|no] writable=[yes|no] Comment= createmode=[hexadecimal4dgitos]. P. ex. 0777 available=[yes|no] public=[yes|no] validusers= available=[yes|no]

Exemplo smb.conf[global] workgroup=MIDEARTH security=SHARE [Plans] path=/plans readonly=Yes guestok=Yes

Exemplo smb.conf[global] workgroup=EMPRESA1 netbiosname=SERVBAK serverstring=ServidordearquivosSAMBA hostsdeny=10.100.16. hostsallow=10.100.52. [homes] comment=Diretriohomedousurio browseable=no writable=yes [printers] compartilhamentodeimpressoras

Exemplo smb.conf[global] guestaccount=teste [compartilhamento1] path=/diretorio1/compartilhamento1 comment=compartilhamentogeral writable=yes guestok=yes [compartilhamento2] path=/diretorio2/teste2 readonly=yes validusers=teste1teste2@teste

Partindo para o PDC

Para configurarmos o Linux como PDC temos que realizar pelo menos 3 (trs) aes:

Cadastramento do root no SAMBA; Cadastramento dos computadores que acessaro o PDC. Configurao do smb.conf.

#smbpasswdaroot

O cadastramentos dos computadores realizado em 2 (duas) etapas:

Adicionar o computador como usurio do sistema; Adicionar o computador ao samba.

Vamos cadastrar diferentes do seu.

os

computadores

aluno?,

Cadastrando os computadores ...

Antes de cadastrarmos os computadores vamos criar um grupo do qual pertencero os computadores que se autenticao no servidor Vamos criar o grupo computadores com o comando: Para cadastrar o computador aluno? execute os comandos:

#groupaddcomputadores

#useraddgcomputadoress/bin/falsed /dev/nullaluno?$ #smbpasswdamnome_da_maquina

smb.conf para PDC[global] workgroup=cursolinux netbiosname=aluno? serverstring=ServidorPDC adminusers=@administradores domainlogons=yes localmaster=yes preferredmaster=yes domainmaster=yes oslevel=100 logonpath= logonhome= logonscript=/home/netlogon/logon.bat security=user nullpasswords=no encryptpasswords=true unixcharset=iso88591 displaycharset=cp850 hostsallow=10.100.52.10.100.53.127. logfile=/var/log/samba/log.%m maxlogsize=10000 loglevel=2 debuglevel=2

smb.conf para PDC[homes] comment=Diretriohomedousurio browseable=no writable=yes [NETLOGON] comment=Serviodelogonnarede path=/home/netlogon browseable=no readonly=yes [documentos] browseable=yes readonly=yes path=/home/documentos createmode=0700

Netlogon

Crie o diretrio /home/netlogon. D permisses de escrita para todos os usurios no diretrio:

#mkdir/home/netlogon

#chmod777/home/netlogon #chgrpnobody/home/netlogon

Crie o arquivo profile.pds no diretrio de cada usurio. Torne permanente criando-o no /etc/skel. Crie um arquivo logon.bat (notepad) dentro do diretrio /home/netlogon com o seguinte contedo:

netuseE:\\aluno?\documentos

Executando o Samba e adicionando as estaesDepois de termos configurado o smb.conf temos que reiniciar o SAMBA: #/etc/init.d/sambarestart Agora podemos comear a incluir as estaes Windows no domnio do Samba. Na estao:

Propriedades de Meu Computador -> Identificao de Rede; Selecione Domnio e digite o nome, no caso cursolinux, de acordo com o especificado smb.conf. Ser solicitado nome e senha de administrador de domnio. Aps reiniciar o computador interessante que voc defina a senha de administrador local da mquina e exclua todas as outras contas locais. No Painel de Controle, Ferramentas Administrativas, Gerenciamento do Computador, voc controla isso, inclusive pode definir quais usurios do domnio ou grupo tero acesso de administrador na mquina (podero instalar ou remover programas, modificar configuraes, etc.) os demais, apenas podero trabalhar na mquina sem fazer nada de significativo.

Para bloquear a gravao de arquivos .exe, .pif e .bat, insira na seo global: veto files = /*.exe/*.pif/*.bat/*. {*}/ Depois disso rode um teste:

Bloqueando a gravao de arquivos no Samba por extenso

#testparm

Se tudo deu certo, parabns! Agora s reiniciar o Samba.

#/etc/init.d/sambarestart

http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=1748

Mais dicas ...Para adicionar os usurios do /etc/passwd no samba execute o comando: #cat/etc/passwd|mksmbpasswd> /etc/samba/smbpasswd Depois de fazer isso edite o arquivo /etc/samba/smbpasswd e retire os usurios indesejados. Utilize o comando smbmount para montar compartilhamentos da rede: #smbmount//nomeServidor/servico /pontoDeMontagemousername=usuario, password=senha smbumount: desmonta compartilhamentos

Mais dicas ...O smbstatus empregado para verificar quem est acessando o servidor e que recursos est utilizando: #smbstatus Se desejar habilitar o compartilhamento das pastas locais do usurio instale o programa kdenetwork-filesharing. #aptgetinstallkdenetworkfilesharing Se desejar utilizar uma interface web para gerenciar o samba instale o swat. #aptgetinstallswat Para acessar a interface digite no browser http://localhost:901/.

Quotas

O gerenciamento de quotas suportado automaticamente pelo kernel aps a verso 2.6. necessrio criar uma partio separada para gerenciar, como por exemplo /home ou /var/spool/mail.

Quotas - configurao

Editar o aquivo /etc/fstab e alterar a linha da partio que pretende gerenciar as cotas: Instalar pacote responsvel pelas quotas: Criar arquivos responsvel pelas cotas:

/dev/hda*/homereiserfsdefaults,usrquota,grpquota02

#aptgetinstallquotaquotatool

#touch/home/quota.user #touch/home/quota.group

Alterar a permisso dos arquivos:

#chmod600/home/quota.user #chmod600/home/quota.user

Quotas - configurao

Atualizar o arquivo /etc/fstab Habilitar as quotas para o ponto de montagem Adicionar usurio Editar cotas do usurio Verificar quotas de todos os usurios

#mountaou mountoremount/particao

#quotacheckacvugou#quotacheckacvugm

#adduserusurioou#useraddmusurio

#edquotauusurio

#repquotaa

Quotas - configurao

Atualizar cotas (sem precisar para o servio) Inicializar ou finalizar quotas

#quotacheckavou#quotacheckavm

#quotaon/home #quotaoff/home

Servio responsvel pelas quotas

#/etc/init.d/quotastop #/etc/init.d/quotastart

Alterar os dias de avisos (Grace time)

#edquotat

Quotas - configurao

Para replicar uma configurao de quota para outro usurio basta executar: Depois reinicie o servio de quotas:

edquotaupusurio_padronovo_usurio

#quotaonav #quotaoffav

Autenticao de usurios

Bibliografia

http://tldp.org/HOWTO/User-Authentication-HOWTO/ (c) 2000 Peter Hernberg

Autenticao de usurios

Os dados sobre os usurios do sistema esto nos arquivos:

/etc/passwd:leitura usurios;

liberada

para

TODOS

os

/etc/shadow: leitura restrita ao usurio root.

Informaes sobre os grupos:

/etc/group. /etc/gshadow.

Tradicionalmente as senhas dos usurios so encriptadas com a funo crypt(). Atualmente alguns sistemas utilizam o algoritmo has MD5.

Pluggable Autentication Module (PAM)

Permite a autenticao dos usurios de forma transparente independentemente da forma como a informao est armazenada. Quando um programa necessita autenticar um usurio o PAM disponibiliza bibliotecas com funes para realizara tal tarefa. Os arquivos de configurao do PAM esto localizados no diretrio /etc/pam.d e as bibliotecas no diretrio /lib/security. A sintaxe dos arquivos de configurao do PAM :

tipocontrolepath_do_mduloargumentos

tipo

Sinaliza para o PAM o tipo de autenticao que deve ser usada pelo mdulo. Mdulos do mesmo tipo podem ser empilhados obrigando ao usurio a satisfazer mltiplos quesitos para ser autenticado. Os tipos reconhecidos pelo PAM so:

account: determina quando o usurio pode acessar o servio, quando a senha expira, etc.; auth: determina quando o usurio quem ele diz ser, normalmente pelo uso de senha (biometria); password: prov um mecanismo para o usurios alterar sua autenticao; session: aes que devem ser realizadas antes ou depois do usurio ser autenticado, como por exemplo: montagem e desmontagem do home ou restrio/liberao de servios.

controle

Sinaliza so PAM o que deve ser feito em caso de falha de autenticao do mdulo. Os controles aceitos so:

requisite: falha na autenticao neste mdulo resulta em uma imediata falha na autenticao. required: falha na autenticao deste mdulo implica na negao de autenticao, embora o PAM ainda chamar os demais mdulos selecionados para o servio antes de, finalmente, negar a autenticao do servio. sufficient: se funcionar a autenticao deste mdulo o PAM permitir a autenticao mesmo que a autenticao de um mdulo required tenha falhado. optional: a falha ou o acerto na autenticao significante se for o nico mdulo para este servio. s

Observaes

No arquivo de configurao do login existem diversos controles, dentre eles podemos citar:

A

dos pam_unix.so;

maioria

mdulos

required

so

do

tipo

Um mdulo do tipo requisite o pam_securetty.so; O nico mdulo opcional o pam_lastlog.so.

Arquivos do PAMservidor:~#cd/etc/pam.d servidor:/etc/pam.d#ls chfncommonaccountcommonpasswordcrongdm kcheckpassloginpasswdsshsudoxdmchsh commonauthcommonsessioncvsgdmautologin kscreensaverotherpppsuwebminxscreensaver

login# #ThePAMconfigurationfilefortheShadow`login'service # #NOTE:Ifyouuseasessionmodule(suchaskerberosorNIS+)thatretains #persistentcredentials(likekeycaches,etc),youneedtoenablethe #`CLOSE_SESSIONS'optionin/etc/login.defsinorderforlogintostayaround #untilafterlogouttocallpam_close_session()andcleanup. # #Outputsanissuefilepriortoeachloginprompt(Replacesthe #ISSUE_FILEoptionfromlogin.defs).Uncommentforuse #authrequiredpam_issue.soissue=/etc/issue #Disallowsrootloginsexceptontty'slistedin/etc/securetty #(Replacesthe`CONSOLE'settingfromlogin.defs) authrequisitepam_securetty.so #Disallowsotherthanrootloginswhen/etc/nologinexists #(Replacesthe`NOLOGINS_FILE'optionfromlogin.defs) authrequisitepam_nologin.so #Thismoduleparses/etc/environmentandalsoallowsyoutouseanextended #configfile/etc/security/pam_env.conf.(Replacesthe`ENVIRON_FILE'setting #fromlogin.defs) authrequiredpam_env.so

login#StandardUn*xauthentication.The"nullok"lineallowspasswordless #accounts. @includecommonauth #Thisallowscertainextragroupstobegrantedtoauserbasedonthings #liketimeofday,tty,service,anduser. #Pleaseuncommentandedit/etc/security/group.confifyouwishtousethis. #(Replacesthe`CONSOLE_GROUPS'optioninlogin.defs) #authoptionalpam_group.so #Uncommentandedit/etc/security/time.confifyouneedtosettime #restrainstonlogins.(Replacesthe`PORTTIME_CHECKS_ENAB'optionfrom #login.defsaswellas/etc/porttime) #accountrequisitepam_time.so #Uncommentandedit/etc/security/access.confifyouneedtosetaccess #limits.(Replaces/etc/login.accessfile) #accountrequiredpam_access.so #StandardUn*xaccountandsession @includecommonaccount @includecommonsession

login#Setsupuserlimits,pleaseuncommentandread/etc/security/limits.conf #toenablethisfunctionality. #(Replacestheuseof/etc/limitsinoldlogin) sessionrequiredpam_limits.so #Printsthelastlogininfouponsuccesfullogin #(Replacesthe`LASTLOG_ENAB'optionfromlogin.defs) sessionoptionalpam_lastlog.so #Printsthemotduponsuccesfullogin #(Replacesthe`MOTD_FILE'optioninlogin.defs) sessionoptionalpam_motd.so #Printsthestatusoftheuser'smailboxuponsuccesfullogin #(Replacesthe`MAIL_CHECK_ENAB'optionfromlogin.defs).You #canalsoenableaMAILenvironmentvariablefromhere,butit #isbetterhandledby/etc/login.defs,sinceuserdelalsouses #ittomakesurethatremovingauser,alsoremovestheirmail #spoolfile. sessionoptionalpam_mail.sostandardnoenv @includecommonpassword

Os arquivos common ...commonaccountcommonauth servidor:/etc/pam.d#catcommonauth # #/etc/pam.d/commonauthauthenticationsettingscommontoallservices # #ThisfileisincludedfromotherservicespecificPAMconfigfiles, #andshouldcontainalistoftheauthenticationmodulesthatdefine #thecentralauthenticationschemeforuseonthesystem #(e.g.,/etc/shadow,LDAP,Kerberos,etc.).Thedefaultistousethe #traditionalUnixauthenticationmechanisms. # authrequiredpam_unix.sonullok_secure

servidor:/etc/pam.d#catcommonaccount # #/etc/pam.d/commonaccountauthorizationsettingscommontoallservices # #ThisfileisincludedfromotherservicespecificPAMconfigfiles, #andshouldcontainalistoftheauthorizationmodulesthatdefine #thecentralaccesspolicyforuseonthesystem.Thedefaultisto #onlydenyservicetouserswhoseaccountsareexpiredin/etc/shadow. # accountrequiredpam_unix.so

Os arquivos common ...servidor:/etc/pam.d#catcommonpassword # #/etc/pam.d/commonpasswordpasswordrelatedmodulescommontoallservices # #ThisfileisincludedfromotherservicespecificPAMconfigfiles, #andshouldcontainalistofmodulesthatdefinetheservicestobe #usedtochangeuserpasswords.Thedefaultispam_unix #The"nullok"optionallowsuserstochangeanemptypassword,else #emptypasswordsaretreatedaslockedaccounts. #(Add`md5'afterthemodulenametoenableMD5passwords) #The"obscure"optionreplacestheold`OBSCURE_CHECKS_ENAB'optionin #login.defs.Alsothe"min"and"max"optionsenforcethelengthofthe #newpassword. passwordrequiredpam_unix.sonullokobscuremin=4max=8md5 #Alternatestrengthcheckingforpassword.Notethatthis #requiresthelibpamcracklibpackagetobeinstalled. #Youwillneedtocommentoutthepasswordlineaboveand #uncommentthenexttwoinordertousethis. #(Replacesthe`OBSCURE_CHECKS_ENAB',`CRACKLIB_DICTPATH') # #passwordrequiredpam_cracklib.soretry=3minlen=6difok=3 #passwordrequiredpam_unix.souse_authtoknullokmd5

Os arquivos common ...servidor:/etc/pam.d#catcommonsession # #/etc/pam.d/commonsessionsessionrelatedmodulescommontoallservices # #ThisfileisincludedfromotherservicespecificPAMconfigfiles, #andshouldcontainalistofmodulesthatdefinetaskstobeperformed #atthestartandendofsessionsof*any*kind(bothinteractiveand #noninteractive).Thedefaultispam_unix. # sessionrequiredpam_unix.so

login.defs#QMAIL_DIRMaildir/ MAIL_DIR/var/mail #MAIL_FILE.mail FAIL_DELAY3 FAILLOG_ENAByes LOG_UNKFAIL_ENABno QUOTAS_ENAByes SYSLOG_SU_ENAByes SYSLOG_SG_ENAByes #SULOG_FILE/var/log/sulog NOLOGIN_STRNOLOGIN ENV_SUPATH PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/bin/X11:/usr/local/sbin:/usr/local/bin ENV_PATHPATH=/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ERASECHAR0177 KILLCHAR025 UMASK022 #ULIMIT2097152 PASS_MAX_DAYS99999 PASS_MIN_DAYS0 PASS_WARN_AGE7 UID_MIN1000 UID_MAX60000 GID_MIN100 GID_MAX60000

login.defsLOGIN_RETRIES5 LOGIN_TIMEOUT60 PASS_MAX_LEN8 CHFN_AUTHyes DEFAULT_HOMEyes # #Enablepam_close_session()calling.Whenusingnormal(pam_unix.so) #sessionhandlingmodules,thisisnotneeded.Howeverwithmodules #(suchaskerberosorotherpersistentsessionmodels),loginandsu #needtoforkandwaitfortheshelltoexitsothatsessionscanbe #cleanedup. # CLOSE_SESSIONSno

Aumentando a segurana

O arquivo /etc/pam.d/other contm utilizado pelos servios que no contm uma arquivo especfico de configurao.

# #/etc/pam.d/otherspecifythePAMfallbackbehaviour # #Notethatthisfileisusedforanyunspecifiedservice;forexample #if/etc/pam.d/cronspecifiesnosessionmodulesbutcroncalls #pam_open_session,thesessionmoduleoutof/etc/pam.d/otheris #used.Ifyoureallywantnothingtohappenthenusepam_permit.soor #pam_deny.soasappropriate. #Wefallbacktothesystemdefaultin/etc/pam.d/common* # @includecommonauth @includecommonaccount @includecommonpassword @includecommonsession

Aumentando a segurana

Configurao paranica:

Configurao razovel.

mais

auth requiredpam_deny.so authrequiredpam_warn.so accountrequiredpam_deny.so accountrequiredpam_warn.so passwordrequiredpam_deny.so passwordrequiredpam_warn.so sessionrequiredpam_deny.so sessionrequiredpam_warn.so

auth requiredpam_unix.so auth requiredpam_warn.so account requiredpam_unix.so account requiredpam_warn.so passwordrequiredpam_deny.so passwordrequiredpam_warn.so sessionrequiredpam_unix.so sessionrequiredpam_warn.so

Aumentando a segurana

Desabilitar logins para usurios sem senha, retirando a clusula nullok. Exemplos de servios: login, rlogin e ssh. Desabilitar servios no utilizados renomeando os arquivos de configurao. Quando for solicitada autenticao no servio recair no arquivo /etc/pam.d/other. Utilizar ferramentas de crack de senhas. As mais conhecidas so a crack e o John the Riper (http://www.false.com/security/john/index.html). Utilizar senhas shadow e MD5.

Network File System (NFS)--- Linux NFS-HOWTO ---

O que NFS?

O Network File System (NFS) foi desenvolvido para possibilitar a montagem de uma partio de um computador remoto, parecendo para o usurio que a mesma pertence ao HD Local. Dessa forma, o NFS permite o compartilhamento de arquivos de uma forma rpida, por meio de uma rede de computadores. O NFS tambm abre uma brecha de segurana, pois usurios indesejedos podero acessar um HD pela rede. Por isso fundamental implementar o NFS da forma mais restritiva possvel.

O que NFS?

Existem outros sistemas que possuem a mesma funcionalidade. Dentre eles podemos citar:

samba: http://www.samba.org; Andrew File System (AFS) from IBM: http://www.transarc.com/Product/EFS/AFS/index.html; Coda File System ( CFS): http://www.coda.cs.cmu.edu/;

Muitas das caractersticas do AFS e do CFS so esperadas na nova verso do NFS (verso 4). A grande vantagem do NFS que j uma ferramenta madura, padronizada, dominada e com suportada em vrias arquiteturas.

Instalao e Ajuda

Para executar o NFS voc precisa de dois pacotes: nfs-common e nfs-kernel-server.

#aptgetinstallnfscommon #aptgetinstallnfskernelserver

Ao trmino da instalao os scripts de inicializao j estaro disponveis no diretrio /etc/init.d e nos diretrios /etc/rc?.d apropriados. Voc pode tirar suas dvidas no site http://nfs.sourceforge.net ou mandar um email para [email protected].

Configurao do servidor e do cliente

A configurao do NFS tem que ser realizada no servidor e no computador cliente. A configurao do servidor NFS envolve a configurao de alguns arquivos e a iniciao dos servios NFS. Existem 3(trs) arquivos que necessitam ser configurados no servidor:

/etc/exports; /etc/hosts.allow; e /etc/hosts.

Para se aumentar a segurana do servio necessrio alterar os scripts de inicializao.

/etc/exports

Este arquivo contm uma lista de diretrios a serem compartilhados e o modo como sero compartilhados. Uma linha desse arquivo da forma: As principais opes so:

diretriocomputador1(opes)computador2(opes)

ro; rw; no_root_squash; sync.

/etc/exports

Exemplos de linhas do /etc/exports: 192.168.0.1(ro)192.168.0.2(ro) 192.168.0.1(rw)192.168.0.2(rw) 192.168.0.0/255.255.255.0(ro) 192.168.0.0/255.255.255.0(rw) *.52ct.eb.mil.br(ro) *.52ct.eb.mil.br(rw)

/usr/local /home /usr/local /home /usr/local /home

Lembretes

Se um diretrio for exportado seu diretrio pai e os diretrios filhos no podero ser exportados se estiverem no mesma partio. extremamente perigoso compartilhar com NFS diretrios formatados com FAT Ou VFAT, pois esses sistemas de arquivo no foram projetados para trabalharem em sistemas multiusurio e os permissionamentos podem no funcionar direito. A exportao de alguns dispositivos ou arquivos especiais no funcionam corretamente para clientes que no so Linux.

/etc/hosts.allow /etc/hosts.deny

Estes arquivos especificam os computadores que tero ou no acesso aos compartilhamentos. So processados na seguinte sequncia:

primeiro verificado o /etc/hosts.allow; depois o /etc/hosts.deny; se nenhuma regra se encaixou ento o acesso franqueado.

Inicializao dos servios

Para funcionar o NFS precisa do daemon portmap iniciado. Alm do portmap necessrio que os daemons nfsd e rpc.mountd estejam iniciados. Uma forma de verificar se os scripts foram iniciados com o comando:

#rpcinfop

Alteraes no /etc/exports

As alteraes realizadas no arquivo /etc/exports depois do incio dos daemons s tero validade aps o reincio do NFS ou depois da emisso do comando:

#exportfsra

Configurao do computador cliente

Os daemon portmap, rpc.statd e rpc.lockd devem estar rodando. Voc pode montar um diretrio remoto com o comando mount: Se desejar que seja montado no momento do boot do sistema basta acrescentar uma linha ao /etc/fstab:

#mounttnfs192.168.0.1:/home/mnt/home

192.168.0.1:/home/mnt/homenfsrw00

Network Information Service (NIS)--- NIS-HOWTO ---

O que o NIS?

Sua funo fornecer informaes, que devem ser conhecidas atravs da rede, para todas as mquinas da rede. Informaes provveis de serem distribudas pelo NIS so:

logins/senhas/diretrios (/etc/passwd);

home

de

usurios

informao de grupo (/etc/group).

NIS era anteriormente conhecido como Sun Yellow Pages (YP), mas o nome Yellow Pages(tm) uma marca registrada no Reino Unido pela British Telecom plc e no pode ser usada sem permisso.

Como funciona?

Dentro de uma rede deve existir pelo menos uma mquina atuando como servidor NIS. possvel ter mltiplos servidores NIS, onde um o NIS mestre e todos os outros so chamados servidores NIS escravos ou uma mistura deles... Servidores escravos apenas contm cpias dos bancos de dados NIS e recebem cpias do servidor NIS mestre conforme mudanas acontecem nos bancos de dados do NIS mestre. Caso um servidor NIS pare de funcionar ou est lento demais ao responder a requisies, um cliente NIS conectado aquele servidor tentar encontrar outro que esteja funcionando, ou um mais rpido.

Como funciona?

Os bancos de dados NIS esto no formato chamado DBM, derivado de bancos de dados ASCII. Servidores escravos sero notificados de quaisquer mudanas nos mapas NIS, (via o programa yppush), e automaticamente recuperar as mudanas necessrias para sincronizar seus bancos de dados. Verses antigas do ypbind lanam um broadcast para encontrar um servidor NIS rodando. Isto inseguro, devido ao fato de que qualquer um pode instalar um servidor NIS e responder s requisies broadcast. Verses mais novas do ypbind possuem a capacidade de obter o servidor a partir de um arquivo de configurao sem a necessidade do broadcast.

O Portmapper RPC

Para executar quaisquer dos softwares mencionados abaixo necessrio rodar o programa /sbin/portmap. O portmapper RPC um servidor que converte nmeros de processos RPC em nmeros no protocolo TCP/IP (ou UDP/IP). Ele deve estar executando para que seja possvel realizar chamadas RPC para servidores RPC em determinada mquina. Quando um servidor RPC iniciado, ele ir dizer ao portmap qual nmero de porta ele est ouvindo, e quais programas RPC ele est preparado para atender.

O Portmapper RPC

Quando um cliente deseja realizar uma chamada RPC para um determinado nmero de processo, ele deve primeiro contatar o portmap no servidor, para determinar o nmero da porta a qual os pacotes RPC devem ser enviados. Uma vez que servidores RPC podem ser iniciados pelo inetd(8), o portmap deve estar rodando antes do inetd ser iniciado. Para RPC seguro, o portmapper precisa que o servio Time esteja rodando. Certifique-se de que ele esteja habilitado no inetd.conf em todas as estaes/servidores.

O que necessrio para configurar o NIS?

Determine se ir Escravo ou Cliente.

configurar

como

Servidor,

Para responder a esta questo, dois casos devem ser considerados:

a mquina ir fazer parte de uma rede com servidores NIS j funcionando