Curso_Linux_Servidores-base.odp
-
Upload
francisco-lourival-caetano -
Category
Documents
-
view
63 -
download
1
Transcript of Curso_Linux_Servidores-base.odp
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] ;;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