Buscar

Servidores Debian 2016

Prévia do material em texto

Autores
1° Ten Bastos
1° Ten Taffarel
2º Ten Magalhães
2º Ten Fabrizzio
2016
Estágio Servidores Linux
6° CENTRO DE TELEMÁTICA DE ÁREA
Apostila gerada pela Divisão de Operações do 6º CTA para o curso de Servidores Linux pag. 2/88
Este material se destina a servir de apoio na instalação de servidores utilizando o sistema
operacional Debian. Todos os passos aqui apresentados foram testados e não se destinam a
apresentar todos os recursos dos serviços e sim a conduzir aos passos iniciais para se configurar um
servidor produtivo utilizando uma apresentação mais prática e menos teórica.
A distribuição deste é livre no âmbito do exército, desde que se mantenham as informações
sobre os seus autores.
Sumário
Instalação do sistema operacional........................................................................................................4
Obtenção do sistema........................................................................................................................4
Instalando o sistema.........................................................................................................................4
Considerações iniciais....................................................................................................................16
 Estrutura de diretório do sistema Linux (debian).....................................................................16
 Entendo os tipos de arquivos e suas permissões (básico)........................................................17
Primeiras configurações do sistema...............................................................................................18
 Configurando a rede.................................................................................................................18
Primeiras medidas de segurança...............................................................................................19
Servidor LAMP (Linux + Apache + MySQL + PHP)........................................................................22
Apache...........................................................................................................................................22
Como testar o Apache...............................................................................................................22
PHP................................................................................................................................................22
MYSQL.........................................................................................................................................23
Instalar o MySQL......................................................................................................................23
Instalar o PhpMyAdmin............................................................................................................23
Teste do PhpMyAdmin.............................................................................................................23
Servidor LDAP...................................................................................................................................25
Instalação.......................................................................................................................................25
Configuração..................................................................................................................................32
/etc/ldap/slapd.conf (Somente no servidor)...............................................................................33
/etc/ldap/ldap.conf (Cliente local ou remoto)............................................................................36
/etc/pam.d/common-account (Cliente local ou remoto)............................................................36
/etc/pam.d/common-auth (Cliente local ou remoto).................................................................36
/etc/pam.d/common-password (Cliente local ou remoto).........................................................36
/etc/pam.d/common-session (Cliente local ou remoto).............................................................37
/etc/nsswitch.conf (Cliente local ou remoto)............................................................................37
/etc/pam_ldap.conf (Cliente local ou remoto)...........................................................................37
/etc/libnss-ldap.conf (Cliente local ou remoto).........................................................................38
Validando e aplicando as configurações do servidor ldap........................................................39
Configuração do ldap-account-manager...................................................................................39
Servidor Samba (Debian 7)................................................................................................................43
Instalação.......................................................................................................................................43
Configuração..................................................................................................................................43
/etc/samba/smb.conf..................................................................................................................43
/etc/smbldap-tools/smbldap.conf..............................................................................................45
/etc/smbldap-tools/smbldap_bind.conf.....................................................................................49
Alguns comandos:..........................................................................................................................49
Observações importantes...............................................................................................................49
Fontes de consulta Samba:.............................................................................................................49
Squid...................................................................................................................................................50
Instalação.......................................................................................................................................50
Configuração..................................................................................................................................50
/etc/squid3/squid.conf...............................................................................................................50
Observações importantes...............................................................................................................53
Apostila gerada pela Divisão de Operações do 6º CTA para o curso de Servidores Linux pag. 3/88
Squid + SquidGuard...........................................................................................................................53
/etc/squidguard/squidGuard.conf..............................................................................................54
SARG.................................................................................................................................................56
/etc/squid3/sarg.conf.................................................................................................................56
/etc/squid3/gerar_relatorio.sh....................................................................................................57
Rsync..................................................................................................................................................58
Instalação.......................................................................................................................................58
Configuração..................................................................................................................................58Script exemplo – backup.sh......................................................................................................58
Alguns parâmetros do comando................................................................................................59
Bacula.................................................................................................................................................61
Instalação.......................................................................................................................................61
Configurando o servidor................................................................................................................61
/etc/bacula/bacula-fd.conf.........................................................................................................62
/etc/bacula/bacula-sd.conf.........................................................................................................63
/etc/bacula/bacula-dir.conf........................................................................................................64
/etc/bacula/bconsole.conf..........................................................................................................68
Instalação do cliente/agente Bacula..........................................................................................68
Algumas dicas do bconsole.......................................................................................................69
Instalação e configuração do Webacula.........................................................................................69
/var/www/webacula-5.5.1/install/db.conf.................................................................................69
/var/www/webacula-5.5.1/html/.htaccess.................................................................................70
/etc/php5/apache2/php.ini.........................................................................................................70
/etc/apache2/conf.d/webacula.conf...........................................................................................70
 /var/www/webacula/application/config.ini..............................................................................71
Fontes de pesquisa....................................................................................................................72
Iptables...............................................................................................................................................73
Exemplo com várias regras............................................................................................................73
Script exemplo para inicialição do sistema /etc/init.d/iptables_rules............................................74
Alguns comandos úteis..................................................................................................................76
Virtualização.......................................................................................................................................77
Instalação do VMware...................................................................................................................77
Configuração do VMware..............................................................................................................80
Extra...................................................................................................................................................85
Página php para troca de senha em base LDAP............................................................................85
estilo.css....................................................................................................................................85
index.html.................................................................................................................................86
senha.php...................................................................................................................................87
Alguns sites com materiais sobre linux..............................................................................................88
Apostila gerada pela Divisão de Operações do 6º CTA para o curso de Servidores Linux pag. 4/88
Instalação do sistema operacional
Os passos necessários para se obter um servidor funcional, estável e seguro começam em
sua instalação. Aqui estão algumas orientações para um sistema seguro, lembrando que tudo
depende da política de segurança da equipe que irá gerenciá-lo.
Obtenção do sistema
O primeiro passo e o mais fundamental é a obtenção do sistema operacional e aplicativos
que serão instalados. Para isso, utilize fontes seguras e, se possível, confira a soma MD5 dos
arquivos baixados. Lembre-se de baixar sempre a última versão estável (“stable”).
Para obtenção do Sistema Operacional Debian foi utilizado o seguinte link: 
http://www.debian.org/CD/http-ftp/#stable 
Depois escolha a forma de download (CD ou DVD) e o tipo de processador. Para este
tutorial foi utilizado a versão debian-8.4.0-i386-CD-1.iso, que se trata da instalação básica para
processadores de 32 bits. Não foi utilizada a versão de 64 bits (amd64), pelo fato de se utilizar
máquinas virtuais em um computador de mesa para teste das configurações, mas para ambientes de
produção recomenda-se o uso da arquitetura amd64 para uma melhor produtividade.
Instalando o sistema
Após inicializar o sistema a partir do CD, aparecerá a seguinte sequência de telas durante a
instalação:
Figura1: Tela inicial da instalação
Selecione a forma desejada de instalação. Neste material foi escolhido o modo texto, ou seja,
somente “Install”.
Apostila gerada pela Divisão de Operações do 6º CTA para o curso de Servidores Linux pag. 5/88
Figura 2: Escolha do idioma de instalação
Figura 3: Confirmação do Idioma
Figura 4: Escolha da localidade
Apostila gerada pela Divisão de Operações do 6º CTA para o curso de Servidores Linux pag. 6/88
Figura 5: Escolha do padrão do teclado
Figura 6: Definição do nome da máquina
Figura 7: Escolha do domínio da máquina
Apostila gerada pela Divisão de Operações do 6º CTA para o curso de Servidores Linux pag. 7/88
Figura 8: Definição da senha do usuário root
Figura 9: Confirmação da senha de root
Figura 10: Criação de um usuário comum
Apostila gerada pela Divisão de Operações do 6º CTA para o curso de Servidores Linux pag. 8/88
Figura 11:Criação do login da conta
Figura 12: Criação senha do usuário
Figura 13: Confirmação da senha
Apostila gerada pela Divisão de Operações do 6º CTA para o curso de Servidores Linux pag. 9/88
Figura 14: Escolha do fuso horário
Figura 15: Método de particionamento, neste caso Manual
Figura 16: Escolha do disco para o particionamento
Apostila gerada pela Divisão de Operações do 6º CTA para o curso de Servidores Linux pag. 10/88
Figura 17: Criar a tabela de particionamento
Figura 18: Criar as partições na tabela
Figura 19: Criando uma nova partição
Figura 20: Definindo o tamanho da partição
Apostila gerada pela Divisão de Operações do 6º CTA para o curso de Servidores Linux pag. 11/88
Figura 21: Tipo de partição (primária ou lógica)
Figura 22: Local da partição
Figura 23: Escolha do tipo de formação e local da montagem da partição
Apostila gerada pela Divisão de Operações do 6º CTA para o curso de Servidores Linux pag. 12/88
Figura 24: Listagem das partições criadas
O tamanho e a quantidade de partições devem serem calculados conforme os serviços que serão instalados e a
segurança a ser implementada.
Figura 25: Confirmação das alterações
Apostila gerada pela Divisão de Operações do 6º CTA para o curso de Servidores Linux pag. 13/88
Figura 26: Caso queira obter arquivos de outra mídia
Figura 27: Caso queira escolher um espelhode rede
Figura 28: Participar do concurso de utilização de pacotes
Apostila gerada pela Divisão de Operações do 6º CTA para o curso de Servidores Linux pag. 14/88
Figura 29: Quais serviços instalar
Para utilização do sistema em servidores, não é recomendado a instalação da interface
gráfica.
Figura 30: Instalar o GRUB na inicialização do sistema
Apostila gerada pela Divisão de Operações do 6º CTA para o curso de Servidores Linux pag. 15/88
Figura 31: Local de instalação do GRUB
Figura 32: Fim da instalação. É só retirar o CD e reiniciar
A instalação foi finalizada, basta agora remover a mídia de instalação e reiniciar o servidor
para começar a configuração e instalação dos serviços.
Apostila gerada pela Divisão de Operações do 6º CTA para o curso de Servidores Linux pag. 16/88
Considerações iniciais
Estrutura de diretório do sistema Linux (debian)
O sistema de arquivos do sistema Linux partem sempre da raiz, simbolizada pela /, e é a
partir dela que está acessível todos os diretórios e dispositivos no sistema, não possuindo letras ( ex.
a:, c:, d:, etc.) para se referenciar dispositivos diferentes. Lembrando que, por ser um sistema de
código aberto, toda personalização pode ser feita, aqui estão listados os diretórios padrões com suas
funções comumente atribuídas:
/bin/ - local onde se encontra os programas comumente utilizados por todos os usuários;
/boot/ - arquivos utilizados na inicialização do sistema;
/dev/ - neste local estão listados os dispositivos de hardware, normalmente cada arquivo
representa um dispositivo, seja uma porta serial (/dev/ttyS0) ou um dispositivo de armazenamento
(/dev/sda);
/etc/ - aqui ficam os principais arquivos de configuração do sistema e dos aplicativos e
serviços instalados via comando apt-get install;
/home/ - local padrão para armazenamento dos arquivos e configurações dos usuários, ex.
/home/cta;
/lib/ - bibliotecas de sistema e módulos do kernel estão aqui;
/media/ - local comum para montagem de mídicas removeíveis, como pendrive e cd por
exemplo;
/mnt/ - utilizado como ponto de montagem temporário;
/opt/ - utilizado para instalação de programas fora do padrão, como programas compilados;
/root/ - diretório home do usuário root;
/sbin/ - local de binários utilizados somente pelo administrador (root);
/tmp/ - padrão para armazenamento de arquivos temporários;
/usr/ - aqui ficam os arquivos acessados pelos usuários, como os programas; e
/var/ - local onde ficam informações variáveis do sistema, como logs (/var/log), cache de
programas (/var/cache), entre outros.
Fonte: https://www.vivaolinux.com.br/artigo/Fundamentos-do-sistema-Linux-arquivos-e-diretorios/?pagina=3
Apostila gerada pela Divisão de Operações do 6º CTA para o curso de Servidores Linux pag. 17/88
Entendo os tipos de arquivos e suas permissões (básico)
Para se listar o conteúdo de um diretório no sistema Linux via console de linha de comando 
(shell), comumente se utiliza o comando ls com os parâmetros -la (ls -la), segue abaixo um exemplo
de resultado obtido:
Resultado do comando ls -la
Na figura acima se pode observar o seguinte:
cta@debian8:/etc/network$ - cta é o usuário ativo, debian8 é o nome do host, /etc/network 
é o diretório atual e $ significa que o usuário ativo não é administrador (será # quando for 
administrador ou root);
total 32 – total de informação armazenada no diretório atual, nesse caso, 32 Kilobytes;
Permissões, primeira coluna composta de 10 caracteres, exemplo: d rwx r-x r-x: Tipo de 
arquivo (d = diretório, l = link, - = arquivo comum), permissões do dono do arquivo/diretório (r = 
leitura, w = escrita, x = execução), permissões dos usuários do grupo e permissões dos demais 
usuários. Em números, x = 1, w = 2 e r = 4, então permissão 7 = rwx e 5 = rx.
root (3ª coluna) – corresponde ao dono do arquivo/diretório;
root (4ª coluna) – corresponde ao grupo referente ao arquivo/diretório;
4096 (5ª coluna) – tamanho do arquivo/diretório, nesse caso 4096 bytes;
Mai 25 14:40 - data da última modificação do arquivo/diretório; e
if-down.d – nome do arquivo/diretório.
Obs.: o arquivo com nome de . (ponto) corresponde ao diretório atual e o arquivo como 
nome de .. (ponto ponto) corresponde ao diretório anterior, nesse caso /etc/. 
No arquivo run -> /run/network, run é o nome do link e /run/network corresponde 
ao destino do link.
Apostila gerada pela Divisão de Operações do 6º CTA para o curso de Servidores Linux pag. 18/88
Primeiras configurações do sistema
Em um servidor costuma-se não instalar a interface gráfica, pois consome recursos e, como
uma das medidas de segurança, não se trabalha diretamente no servidor e todas as configurações
necessárias podem ser feitas no modo texto ou de maneira remota com o SSH (Secure Shell).
Alguns editores de texto já vem com o Debian como o nano e o vi, aqui fica a gosto de cada um.
Configurando a rede
O arquivo de configuração de rede fica no seguinte caminho: /etc/network/interfaces. Nele
devem ser colocadas as seguintes linhas para configuração de cada interface. Para saber quais
interfaces sua máquina possui instalada no sistema, utilize o comando ifconfig -a . 
# Para endereço dinâmico
auto eth0
iface eth0 inet dhcp
Para o caso de se utilizar endereço estático, acrescente as linhas com o endereço, máscara de
sub-rede e gateway, como no exemplo abaixo.
# Para endereço estático
auto eth0
iface eth0 inet static
address 10.0.0.1
netmask 255.255.255.0
gateway 10.0.0.254
Caso a rede seja configurada manualmente, deve-se configurar também o endereço do
servidor de DNS no arquivo /etc/resolv.conf que deve conter um conteúdo similar ao exemplo
abaixo:
domain 6cta.eb.mil.br
search 6cta.eb.mil.br
nameserver 10.0.0.1
nameserver 10.0.0.2
Após fazer os testes de rede é bom fazer a atualização do sistema através dos comandos apt-
get update, que faz a atualização da lista de pacotes e depois o apt-get upgrade, que faz a
atualização dos pacotes instalados no servidor. Porém deve-se configurar a lista com os repositórios
no arquivo /etc/apt/sources.list. Caso utilize um servidor proxy na rede, deve-se configurara
também o arquivo /etc/apt/apt.conf conforme modelo abaixo:
Acquire::HTTP::PROXY "http://usuario:senha@proxy.6cta.eb.mil.br:3128";
Acquire::HTTPS::PROXY "http://usuario:senha@proxy.6cta.eb.mil.br:3128";
Acquire::FTP::PROXY "http://usuario:senha@proxy.6cta.eb.mil.br:3128";
Acquire::HTTP::Proxy::repositorio.6cta.eb.mil.br "DIRECT"; # Caso seja acessível sem proxy.
Acquire::Timeout "60";
Acquire::AllowRedirect "true";
Alguns repositórios para o Debian 8:
### Repositórios padrão.
deb http://http.debian.net/debian/ jessie main non-free contrib
#deb-src http://http.debian.net/debian/ jessie main non-free contrib 
### Atualizações de Segurança.
deb http://security.debian.org/ jessie/updates main contrib non-free
#deb-src http://security.debian.org/ jessie/updates main contrib non-free 
Apostila gerada pela Divisão de Operações do 6º CTA para o curso de Servidores Linux pag. 19/88
### Volatile (softwares atualizados com frequência, Clamav, etc)
deb http://http.debian.net/debian/ jessie-updates main contrib non-free
#deb-src http://http.debian.net/debian/ jessie-updates main contrib non-free
Obs: Os repositórios do tipo deb possuem os binários e os deb-src possuem os códigos fontes.
Primeiras medidas de segurança
As medidas de segurança a serem implementadas vão depender das funcionalidades do
servidor e devem ser personalizadas para cada caso. Aqui estão citados alguns passos como
exemplo, lembrando que deverão ser analisados antes de ser implementados, verificando sempre a
política de segurança adotada e as necessidades dos serviços instalados..
Um dos passos é limitar o acesso físico e remoto ao servidor.Para limitar o acesso remoto
vamos configurar o ssh, que deve ser instalado anteriormente (apt-get install ssh), alterando seu
arquivo de configuração e configurando quais hosts vão poder se conectar no servidor e quem
poderá obter privilégio de acesso à root.
Arquivo de configuração do ssh: /etc/ssh/sshd_config. Neste arquivo deve-se fazer as
seguintes alterações:
#Trocar a porta padrão
Port 1022
# Bloquer o acesso direto do root por ssh
PermitRootLogin no
# Quem poderá se autenticar via ssh
AllowUsers cta user1 user2 user3
# Mensagem a ser mostrada na autenticação
Banner /etc/issue.net
 
Inserir no arquivo /etc/hosts.deny a seguinte linha seguida da lista de endereços IP que
poderão fazer acesso ao servidor por ssh:
sshd: ALL EXCEPT endereçodeip1 endereçodeip2
Inserir no arquivo /etc/bash.bashrc as seguintes linhas no final para a desconexão automática
quando o terminal ficar ocioso por algum período de tempo. No exemplo abaixo o tempo é de 5
minutos:
TMOUT=300
readonly TMOUT
export TMOUT
Para desabilitar a reinicialização do sistema quando as teclas <ctrl>+<alt>+<del> forem
apertadas altere o seguinte link simbólico com os comandos:
#rm /lib/systemd/system/ctrl-alt-del.target
#ln -s /bin/false /lib/systemd/system/ctrl-alt-del.target
Nas versões antes do debian 8 alterare a seguinte linha do arquivo /etc/inittab para
desabilitar a reinicialização do sistema quando as teclas <ctrl>+<alt>+<del> forem apertadas:
#De
ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
#Para
ca:12345:ctrlaltdel:/bin/echo Desabilitado pelo administrador
Proibir o acesso diretamente ao console pelo usuário root, obrigando o usuário a se
autenticar com seu login e depois se promover a root. Para isso remova as linhas que começam com
tty seguido de números do arquivo /etc/securetty. Não se esqueça de ter um usuário e senha
Apostila gerada pela Divisão de Operações do 6º CTA para o curso de Servidores Linux pag. 20/88
cadastrado para poder se autenticar e caso não deseje bloquear este acesso, ao menos limite a uma
quantidade menor de terminais, como, por exemplo, deixando somente tty1 e tty2 e removendo o
restante.
Restringir acesso ao diretório /etc/ (retira de terceiros a permissão de escrita sobre todos os 
arquivos no diretório):
#chmod -fR o-w /etc/*
Para alertar quem queira se autenticar no sistema de que os acessos estão sendo
monitorados, altere os seguintes arquivos conforme os exemplos abaixo:
/etc/issue.net e o /etc/issue
###########################################################
##################### A T E N C A O #######################
## ##
## Esse sistema se destina apenas a pessoas autorizadas. ##
## ##
## Todas atividades sao logadas e verificas regularmente ##
## ##
###################### W A R N I N G ######################
## ##
## This computer system is only for authorized users. ##
## ##
## All activity will be logged and regulary checked. ##
## ##
###########################################################
/etc/motd
######################################################
## Sistema monitorado / System monitored. ##
######################################################
Para montar as partições do sistema limitando o tipo de acesso a elas e de execução de
arquivos altere o arquivo /etc/fstab para que fique da seguinte forma:
# / was on /dev/sda3 during installation
UUID=xxx / ext3 errors=remount-ro 0 1
# /boot was on /dev/sda2 during installation
UUID=xxx /boot ext3 defaults,noatime,nodev,nosuid,noexec 0 2
# /home was on /dev/sda9 during installation
UUID=xxx /home ext3 defaults,noexec,nodev,nosuid 0 2
# /tmp was on /dev/sda5 during installation
UUID=xxx /tmp ext3 defaults,noatime,nodev,nosuid,noexec 0 2
# /usr was on /dev/sda8 during installation
UUID=xxx /usr ext3 defaults,noatime,nodev 0 2
# /var was on /dev/sda7 during installation
UUID=xxx /var ext3 defaults,noatime,nodev,nosuid,noexec 0 2
# /var/log was on /dev/sda6 during installation
UUID=xxx /var/log ext3 defaults,nosuid,noexec,noatime 0 2
# swap was on /dev/sda1 during installation
UUID=xxx none swap sw 0 0
/dev/scd0 /media/cdrom0 udf,iso9660 nouser,noauto 0 0
Aqui segue uma pequena explicação dos parâmetros da montagem:
defaults: dá à partição as configurações mínimas necessárias para sua montagem
automática na inicialização.
noatime: não atualiza os tempos de acesso aos inodes sobre este sistema de arquivos
quando o arquivo for acessado para somente leitura.
nodev: bloqueia montagem de dispositivos nesta partição.
nosuid: retira as permissões de bit especial SUID sobre os arquivos e diretórios ali
presentes. (somente o dono do arquivo poderá executá-los ou acessá-los,
Apostila gerada pela Divisão de Operações do 6º CTA para o curso de Servidores Linux pag. 21/88
respectivamente)
noexec: não permite a execução direta de qualquer binário ou script no sistema de
arquivos montado.
Deve-se também remover os usuários que já vem com o sistema e não serão utilizados e
limitar o acesso ao shell (console) somente àqueles usuários que realmente necessitem. Para
execução deste passo é bom verificar quais serviços serão instalados para não prejudicar o
funcionamento do sistema. Uma opção que também pode ser utilizada é o bloqueio do usuário que
pode ser realizado com o seguinte comando: 
/usr/sbin/usermod -L user
Usuários que não necessitam de shell e devem ser alterados no /etc/passwd alterando /bin/sh
ou /bin/bash para /bin/false
Outro passo que pode fazer a diferença é restringir somente ao usuário root o acesso a
algumas ferramentas. Abaixo, uma lista dessas ferramentas com o comando para limitar somente ao
root o acesso de leitura, escrita e execução:
chmod 700 /bin/ping
chmod 700 /bin/ping6
chmod 700 /bin/nano
chmod 700 /usr/bin/apt-get
chmod 700 /usr/bin/aptitude
chmod 700 /usr/bin/gcc
chmod 700 /usr/bin/g++
chmod 700 /usr/bin/w
chmod 700 /usr/bin/who
chmod 700 /usr/bin/whereis
chmod 700 /usr/bin/locate
chmod 700 /usr/bin/vim
chmod 700 /usr/bin/make
chmod 700 /usr/bin/scp
chmod 700 /sbin/ifconfig
chmod 750 /etc/alternatives
Obs.: O caminho /etc/alternatives recebeu as permissões 750 por possuir arquivos
necessários ao funcionamento de outros aplicativos.
Também deve-se configurar cliente para NTP (para atualizar horário). Para tal, siga os
seguintes passos:
-Instalar o ntpdate
#apt-get install ntpdate
Obs: Não pode estar rodando o serviço de ntp-server na máquina, por que impedirá a
sincronização da hora. Pode utilizar o rcconf para desabilitar o início do serviço no boot da máquina
e para certificar dê o comando /etc/init.d/ntp stop.
- Inserir uma entrada no crontab para executar todo dia a sincronização da
hora com um servidor conhecido.
#crontab -e
00 12 * * * /usr/sbin/ntpdate ntp.br
- Verificar se a entrada foi inserida com sucesso
#crontab -l
Finalizando estas configurações iniciais, pode-se agora passar para a instalação do serviço.
Apostila gerada pela Divisão de Operações do 6º CTA para o curso de Servidores Linux pag. 22/88
Servidor LAMP (Linux + Apache + MySQL + PHP)
Para realizar a hospedagem de páginas web, é necessário um servidor web completo no com
suporte a banco de dados e uma linguagem de programação web, então o LAMP é a solução. Sigla
de Linux, Apache, MySQL e PHP, esse conjunto de programas proporcionam um servidor web
completo(Apache), uma linguagem de programação voltada para web (PHP) e um poderoso banco
de dados (MySQL).
Apache
O servidor Apache (ou Servidor HTTP Apache, em inglês: Apache HTTP Server, ou
simplesmente: Apache) é o mais bem sucedido servidor web livre. Foi criado em 1995 por Rob
McCool, então funcionário do NCSA (National Center for Supercomputing Applications). Em uma
pesquisa realizada em dezembro de 2007, foi constatado que a utilização do Apache representa
cerca de 47.20% dos servidores ativos no mundo. Em maio de 2010, o Apache serviu
aproximadamente 54,68% de todos os sites e mais de 66% dos milhões de sites mais
movimentados. É a principal tecnologia da Apache Software Foundation, responsável por mais de
uma dezena de projetos envolvendo tecnologias de transmissão via web, processamento de dados e
execução de aplicativos distribuídos.
O Apache é o servidor web mais usado no mundo e pode ser instalado via apt-get:
# apt-get install apache2 
Como testar o Apache
O Debian tem um navegador em modo texto, que pode ser usado para esta tarefa, o w3m,
mas você pode usar qualquer outro navegador para isto.
Execute o seguinte comando:
w3m http://localhost
PHP
PHP (um acrônimo recursivo para "PHP: Hypertext Preprocessor", originalmente Personal
Home Page) é uma linguagem interpretada livre, usada originalmente apenas para o
desenvolvimento de aplicações presentes e atuantes no lado do servidor, capazes de gerar conteúdo
dinâmico na World Wide Web.
Para instalar o PHP5 e a biblioteca de integração do Apache ao PHP:
#apt-get install php5 libapache2-mod-php5
Para testar a instalação do PHP crie um arquivo chamado info.php na pasta /var/www/html
com o conteúdo abaixo
Echo “<?php phpinfo(); ?>
Novamente rode o w3m para verificar a instalação do PHP:
w3m http://localhost/info.php
Apostila gerada pela Divisão de Operações do 6º CTA para o curso de Servidores Linux pag. 23/88
MYSQL
O MySQL é um sistema de gerenciamento de banco de dados (SGBD), que utiliza a
linguagem SQL (Linguagem de Consulta Estruturada, do inglês Structured Query Language) como
interface. É atualmente um dos bancos de dados mais populares, com mais de 10 milhões de
instalações pelo mundo.
Instalar o MySQL
#apt-get install mysql-server mysql-client php5-mysql
Quando o instalador pedir, forneça uma nova senha para o MySQL e confirme-a, quando
solicitado
Instalar o PhpMyAdmin
Esta não é uma ferramenta essencial, mas ajuda a gerenciar os seus bancos de dados e
tabelas no servidor, sem ocupar espaço significante no seu sistema:
#apt-get install phpmyadmin
ovamente, aceite as configurações padrão durante a instalação (teclar Enter em algumas
telas será o suficiente). O PhpMyAdmin vai pedir a senha que você cadastrou anteriormente para
acessar o MySQL e vai pedir uma senha nova pro PhpMyAdmin (que deverá ser confirmada em
seguida). 
Teste do PhpMyAdmin
Como a página do PhpMyAdmin usa frames, é indicado usar um navegador mais sofisticado
para testá-lo, neste caso pode ser utilizado o Firefox ou o Chromium . A página a ser acessada é:
http://localhost/phpmyadmin
Apostila gerada pela Divisão de Operações do 6º CTA para o curso de Servidores Linux pag. 24/88
Tela de autenticação do phpmyadmin
Apostila gerada pela Divisão de Operações do 6º CTA para o curso de Servidores Linux pag. 25/88
Servidor LDAP
Um servidor LDAP pode ser utilizado como centralizador de autenticação, podendo servir
de autenticação para outros servidores, como Samba e Squid, e também como autenticação de
estações de trabalho.
Instalação 
Pacotes necessários para instalação do servidor Ldap:
slapd ldap-utils db5.3-util libnss-ldap libpam-ldap libldap-2.4-2 nscd samba-doc (caso for
utilizar a autenticação do Ldap para o samba)
Pacotes para instalação do servidor 
#apt-get install slapd ldap-utils db5.3-util nscd samba-doc
Pacotes para instalação do servidor com autenticação na base Ldap
#apt-get install slapd ldap-utils db5.3-util libnss-ldap libpam-ldap libldap-2.4-2 nscd samba-doc
Pacotes para autenticação na base Ldap, local ou remoto.
#apt-get install ldap-utils libnss-ldap libpam-ldap libldap-2.4-2 nscd
Durante a instalação apareceram as seguintes telas:Informe a senha do administrador do Ldap
Confirme a senha do administrador do Ldap
Apostila gerada pela Divisão de Operações do 6º CTA para o curso de Servidores Linux pag. 26/88
Configurando o lbnss-ldap, informe o ip do servidor Ldap
Configurando o libnss-ldap, informe a árvore do Ldap
Selecionando a versão do servidor Ldap
Apostila gerada pela Divisão de Operações do 6º CTA para o curso de Servidores Linux pag. 27/88
Configurando o libnss-ldap, informando a conta de administrador do Ldap
Configurando o libnss-ldap, informando a senha do administrador do Ldap
Configurando o libnss-ldap, informando que o arquivo nsswitch.conf deve ser configurado manualmente
Apostila gerada pela Divisão de Operações do 6º CTA para o curso de Servidores Linux pag. 28/88
Configurando libpam-ldap, informar se o administrador do ldap será roo local
Configurando libpam-ldap, informar se a base necessita de autenticação para consulta
Configurando libpam-ldap, informar a conta de administrador do ldap
Apostila gerada pela Divisão de Operações do 6º CTA para o curso de Servidores Linux pag. 29/88
Configurando libpam-ldap, informar a senha do administrador do ldap
Após a instalação execute o seguinte comando para finalizar a configuração e criação de
arquivos inicialmente: dpkg-reconfigure slapd. As seguintes telas aparecerão:
Selecione não para recriar os arquivos
Apostila gerada pela Divisão de Operações do 6º CTA para o curso de Servidores Linux pag. 30/88
Confirme as informações de domínio
Confirme o diretório LDAP
Insira a senha para o administrador do LDAP
Apostila gerada pela Divisão de Operações do 6º CTA para o curso de Servidores Linux pag. 31/88
Confirme a senha
Escolha a base de dados DBD
Selecione se os arquivos vão ser ou não removidos na desinstalação
Apostila gerada pela Divisão de Operações do 6º CTA para o curso de Servidores Linux pag. 32/88
Selecione para não mover a base antiga
Caso seja necessário habilite a versão 2 do LDAP
Para facilitar a gerência das contas dos usuários na base Ldap, neste material apresenta a
ferramenta ldap-account-manager que pode ser instalada conforme comando a seguir:
#apt-get install ldap-account-manager
Configuração
Após a instalação, os seguintes arquivos de configuração devem ser alterados de acordo
com as necessidades do servidor (aqui está sendo utilizado o caminho padrão criado na instalação
do binário da distribuição):
Antes de iniciar as configurações iniciais, é necessário realizar o seguinte passo dentro do
diretório /etc/ldap/ :
- Criar o arquivo slapd.conf
#touch slapd.conf
Apostila gerada pela Divisão de Operações do 6º CTA para o curso de Servidores Linux pag. 33/88
/etc/ldap/slapd.conf (Somente no servidor)
# Este e o arquivo de configuração principal do slapd.
#######################################################################
# Secao Global
#######################################################################
# Permite LDAPv2
#allow bind_v2
# Definiçoes de Schema e objectClass
include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/inetorgperson.schema
## O samba.schema deve ser utilizado no caso do servidor samba
## utilize esta base ldap para autenticação
## este arquivo deve ser copiado e descompactado tendo como origem
## usr/share/doc/samba-doc/examples/LDAP/
include /etc/ldap/schema/samba.schema
# Onde o arquivo .pid esta. O script /etc/init.d/slapd
# nao conseguiraparar o serviço se voce alterar isso.
pidfile /var/run/slapd/slapd.pid
# Lista dos argumentos que sao passados ao servidor
argsfile /var/run/slapd/slapd.args
# ===== Habilita a geracao de log's =====
# Quando em producao colocar 0 se nao precisar de log
loglevel 256
# Diretorio dos modulos dinamicos
modulepath /usr/lib/ldap
moduleload back_bdb
#======================================================================
# Descomente as seguintes linhas para habilitar o SSL e usar o 
# certificado default snakeoil.
#TLSCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
#TLSCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
#======================================================================
sizelimit 500
tool-threads 1
########################################################################
## Secao Especfica para Backend,
## do tipo bdb:
########################################################################
backend bdb
database bdb
## A base de diretorio
suffix "dc=6cta,dc=eb,dc=mil,dc=br"
## Usuario LDAP_ROOT_DN
rootdn cn=admin,dc=6cta,dc=eb,dc=mil,dc=br
## Senha do LDAP_ROOT_DN criptografada com
## slappasswd -h {SSHA} -s Sua_Senha (6cta)
rootpw “{SSHA}L5hphOCG/0yTABKiRJrRs960joVWqqGh”
## Checkpoint do database bdb aps 256kb escritos ou 5 minutos terem passado
## desde o ultimo checkpoint
Apostila gerada pela Divisão de Operações do 6º CTA para o curso de Servidores Linux pag. 34/88
checkpoint 256 5
## Onde os arquivos do database sao fisicamente armazenados
directory "/var/lib/ldap"
dbconfig set_cachesize 0 2097152 0
dbconfig set_lk_max_objects 1500
dbconfig set_lk_max_locks 1500
dbconfig set_lk_max_lockers 1500
## Estruturas de Indices
index cn,sn,uid,displayName pres,sub,eq
index memberUID,mail,givenname eq,subinitial
index objectClass,uidNumber,gidNumber eq
index sambaSID,sambaPrimaryGroupSID,sambaDomainName eq
index uniqueMember,entryCSN,entryUUID eq
############################################################
#Carrega o modulo do protocolo de sincronizacao
###########################################################
moduleload syncprov
###########################################################
#Criar o overlay para o syncprov
##########################################################
overlay syncprov
syncprov-checkpoint 100 10
syncprov-sessionlog 100
## Armazenar a data/hora que os registros forem modificados
lastmod on
## Os campos sambaLMPassword,sambaNTPassword,userPassword,
## sambaPasswordHistory e sambaPwdLastSet podem ser alterados
## pelos proprios usuarios - se tiverem se autenticado.
## Outros usuarios nao podem ver estes campos.
access to attrs=sambaLMPassword,sambaNTPassword,userPassword,sambaPasswordHistory,sambaPwdLastSet,shadowLastChange
by dn="cn=admin,dc=6cta,dc=eb,dc=mil,dc=br" write
by dn="cn=replicador,dc=6cta,dc=eb,dc=mil,dc=br" read 
by anonymous auth
by self write
by * none
###########################################################
#Ativar replicaçao da Base LDAP
##########################################################
#by dn="cn=admin,dc=6cta,dc=eb,dc=mil,dc=br" read
#by dn="cn=replicador,dc=6cta,dc=eb,dc=mil,dc=br" write
#by dn="cn=replicador,dc=6cta,dc=eb,dc=mil,dc=br" read 
## Ensure read access to the base for things like
## supportedSASLMechanisms. Without this you may
## have problems with SASL not knowing what
## mechanisms are available and the like.
## Note that this is covered by the 'access to *'
## ACL below too but if you change that as people
## are wont to do you'll still need this if you
## want SASL (and possible other things) to work 
## happily.
access to dn.base="" 
by * read
## O dn administrador tem acesso completo, o restante 
## podem apenas ler.
access to *
Apostila gerada pela Divisão de Operações do 6º CTA para o curso de Servidores Linux pag. 35/88
by dn="cn=admin,dc=6cta,dc=eb,dc=mil,dc=br" write
by * read
##=========================================================
## Configuracao para SLAVE/BDC
##
## http://www.openldap.org/doc/admin23/syncrepl.html
## Se este servidor eh um SLAVE descomente as linhas abaixo
##=========================================================
##syncrepl rid=100
## provider=ldap://10.56.77.2
## binddn="cn=admin,dc=6cta,dc=eb,dc=mil,dc=br"
## bindmethod=simple
## credentials="${LDAP_ROOT_PW}"
## searchbase="dc=6cta,dc=eb,dc=mil,dc=br"
## type=refreshAndPersist
## retry="60 +"
Apostila gerada pela Divisão de Operações do 6º CTA para o curso de Servidores Linux pag. 36/88
Os arquivos seguintes de configuração devem ser configurados tanto no servidor quanto nos
clientes Linux que irão se autenticar no servidor Ldap, sendo que os pacotes slapd e db5.3-util
devem ser instalados somente no servidor e os restantes em ambos, servidor e clientes.
/etc/ldap/ldap.conf (Cliente local ou remoto)
# O acesso ao seu servidor LDAP tem que ser resolvido sem usar LDAP.
# De preferencia coloque o IP ou tenha certeza que o DNS resolve o nome.
host 127.0.0.1
# O nome distinto da base de procura.
base dc=6cta,dc=eb,dc=mil,dc=br
# A identificacao do root do Ldap, ou seja o "Root Password DN"
# A senha deve ser armazenada no arquivo /etc/ldap.secret (mode 600)
rootbinddn cn=admin,dc=6cta,dc=eb,dc=mil,dc=br
BINDDN cn=admin,dc=6cta,dc=eb,dc=mil,dc=br
## Esta senha deve ser igual a do arquivo slapd.conf
BINPW “{SSHA}L5hphOCG/0yTABKiRJrRs960joVWqqGh”
# Contexto para pesquisa no LDAP (RFC2307bis)
# Nos usaremos ?sub (e nao o default ?one) porque separamos
# sambaAccounts no ou=Computadores,dc=6cta,dc=eb,dc=mil,dc=br
# e usuarios em ou=Usuarios,dc=6cta2,dc=eb,dc=mil,dc=br
nss_base_passwd dc=6cta,dc=eb,dc=mil,dc=br?sub
nss_base_shadow dc=6cta,dc=eb,dc=mil,dc=br?sub
nss_base_group ou=Grupos,dc=6cta,dc=eb,dc=mil,dc=br?one
# Opcoes de seguranca
ssl no
pam_password crypt
/etc/pam.d/common-account (Cliente local ou remoto)
#
# /etc/pam.d/common-account - authorization settings common to all services
#
account [success=2 new_authtok_reqd=done default=ignore] pam_unix.so 
account [success=1 default=ignore] pam_ldap.so 
account sufficient pam_ldap.so
account required pam_unix.so 
/etc/pam.d/common-auth (Cliente local ou remoto)
#
# /etc/pam.d/common-auth - authentication settings common to all services
#
auth [success=2 default=ignore] pam_unix.so nullok_secure
auth [success=1 default=ignore] pam_ldap.so use_first_pass
auth requisite pam_deny.so
auth required pam_permit.so
/etc/pam.d/common-password (Cliente local ou remoto)
#
# /etc/pam.d/common-password - password-related modules common to all services
#
password [success=2 default=ignore] pam_unix.so obscure sha512
password [success=1 user_unknown=ignore default=die] pam_ldap.so use_authtok try_first_pass
Apostila gerada pela Divisão de Operações do 6º CTA para o curso de Servidores Linux pag. 37/88
password requisite pam_deny.so
password required pam_permit.so
/etc/pam.d/common-session (Cliente local ou remoto)
#
# /etc/pam.d/common-session - session-related modules common to all services
#
session [default=1] pam_permit.so
session requisite pam_deny.so
session required pam_permit.so
session required pam_unix.so 
session optional pam_ldap.so 
session optional pam_mkhomedir.so skel=/etc/skel umask=0077
/etc/nsswitch.conf (Cliente local ou remoto)
# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.
passwd: compat ldap
group: compat ldap
shadow: compat ldap
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db filesnetgroup: nis
/etc/pam_ldap.conf (Cliente local ou remoto)
###DEBCONF###
# the configuration of this file will be done by debconf as long as the
# first line of the file says '###DEBCONF###'
#
# you should use dpkg-reconfigure to configure this file
#
# @(#)$Id: pam_ldap.conf,v 1.38 2006/05/15 08:13:31 lukeh Exp $
#
# This is the configuration file for the LDAP nameservice
# switch library and the LDAP PAM module.
#
# PADL Software
# http://www.padl.com
#
host 127.0.0.1
# The distinguished name of the search base.
base dc=6cta,dc=eb,dc=mil,dc=br
# Another way to specify your LDAP server is to provide an
uri ldap://127.0.0.1
# The LDAP version to use (defaults to 3
# if supported by client library)
Apostila gerada pela Divisão de Operações do 6º CTA para o curso de Servidores Linux pag. 38/88
ldap_version 3
# The distinguished name to bind to the server with
# if the effective user ID is root. Password is
# stored in /etc/pam_ldap.secret (mode 600)
rootbinddn cn=admin,dc=6cta,dc=eb,dc=mil,dc=br
# Do not hash the password at all; presume
# the directory server will do it, if
# necessary. This is the default.
pam_password crypt
# Nos usaremos ?sub (e nao o default ?one) porque separamos
# sambaAccounts no ou=Computadores,dc=6cta,dc=eb,dc=mil,dc=br
# e usuarios em ou=Usuarios,dc=6cta,dc=eb,dc=mil,dc=br
nss_base_passwd dc=6cta,dc=eb,dc=mil,dc=br?sub
nss_base_shadow dc=6cta,dc=eb,dc=mil,dc=br?sub
nss_base_group ou=Grupos,dc=6cta,dc=eb,dc=mil,dc=br?one
/etc/libnss-ldap.conf (Cliente local ou remoto)
###DEBCONF###
# the configuration of this file will be done by debconf as long as the
# first line of the file says '###DEBCONF###'
#
# you should use dpkg-reconfigure libnss-ldap to configure this file.
#
# @(#)$Id: ldap.conf,v 2.48 2008/07/03 02:30:29 lukeh Exp $
#
# This is the configuration file for the LDAP nameservice
# switch library and the LDAP PAM module.
#
# PADL Software
# http://www.padl.com
#
# Your LDAP server. Must be resolvable without using LDAP.
# Multiple hosts may be specified, each separated by a 
# space. How long nss_ldap takes to failover depends on
# whether your LDAP client library supports configurable
# network or connect timeouts (see bind_timelimit).
host 127.0.0.1 
# The distinguished name of the search base.
base dc=6cta,dc=eb,dc=mil,dc=br
# Another way to specify your LDAP server is to provide an
uri ldap://127.0.0.1 
# The LDAP version to use (defaults to 3
# if supported by client library)
ldap_version 3
# The distinguished name to bind to the server with
# if the effective user ID is root. Password is
# stored in /etc/libnss-ldap.secret (mode 600)
# Use 'echo -n "mypassword" > /etc/libnss-ldap.secret' instead
# of an editor to create the file.
rootbinddn cn=admin,dc=6cta,dc=eb,dc=mil,dc=br 
# Hash password locally; required for University of
# Michigan LDAP server, and works with Netscape
Apostila gerada pela Divisão de Operações do 6º CTA para o curso de Servidores Linux pag. 39/88
# Directory Server if you're using the UNIX-Crypt
# hash mechanism and not using the NT Synchronization
# service. 
pam_password crypt
bind_policy soft 
nss_base_passwd dc=6cta,dc=eb,dc=mil,dc=br?sub 
nss_base_shadow dc=6cta,dc=eb,dc=mil,dc=br?sub 
nss_base_group ou=Grupos,dc=6cta,dc=eb,dc=mil,dc=br?one
Validando e aplicando as configurações do servidor ldap
Antes de iniciar o processo de validação, caso o Samba não esteja configurado, siga os
seguintes passos:
- Adicione o schema do samba ao ldap
#cp /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz /etc/ldap/schema
#gunzip /etc/ldap/schema/samba.schema.gz
Para aplicar as configurações realizadas no arquivo slapd.conf é necessário realizar os
seguintes passos: dentro do diretório /etc/ldap/:
- Gerar um backup da configuração anterior
#mv slapd.d slapd.d.bck
- Criar novamente a pasta que armazena as configurações
#mkdir slapd.d
- Verificar a sintaxe do arquivo slapd.conf e gerar os novos arquivos de configuração
#slaptest -f slapd.conf -F slapd.d
- Colocar o usuário que executa o servidor ldap como dono dos arquivos de configuração
#chown -R openldap:openldap slapd.d
Feito isso, basta reiniciar o openldap (/etc/init.d/slapd restart) e pronto! Sua nova
configuração foi realizada.
Configuração do ldap-account-manager
Após a instalação do ldap-account-manager, acesse sua interface web utilizando
http://endereco-ip/lam. Para configurá-lo seguia os exemplos a seguir:
Apostila gerada pela Divisão de Operações do 6º CTA para o curso de Servidores Linux pag. 40/88
Tela inicial no primeiro acesso
Tela de configuração do LAM (após clicar em “LAM configuration”)
Tela para “Edit server profiles”- senha inicial = lam
Apostila gerada pela Divisão de Operações do 6º CTA para o curso de Servidores Linux pag. 41/88
Primeira tela de configuração- Alterar principalmente “Tree suffix”
Primeira tela abaixo – altera o usuário administrador e a senha para alterar o perfil
Apostila gerada pela Divisão de Operações do 6º CTA para o curso de Servidores Linux pag. 42/88
Segunda aba – Configurar as entradas na árvore Ldap
Primeiro login após a configuração
Apostila gerada pela Divisão de Operações do 6º CTA para o curso de Servidores Linux pag. 43/88
Servidor Samba (Debian 7)
Instalação
Pacotes necessários para instalação do servidor samba com autenticação em base Ldap
samba samba-common samba-doc libsmbclient smbldap-tools
#apt-get install samba samba-common samba-doc libsmbclient smbldap-tools cups
Configuração
Após a instalação os seguintes arquivos de configuração devem ser alterados de acordo
com as necessidades do servidor (aqui está sendo utilizado o caminho padrão criado na instalação
do binário da distribuição):
/etc/samba/smb.conf
[global]
dos charset = CP850
unix charset = ISO8859-1
### Nome do dominio para as estações Windows
workgroup = 6CTA
### Nome do servidor para rede Windows
netbios name = PDC
 ### Comentário sóbre o nome
server string = Servidor_PDC
security = user
### Local dos arquivos de log que será gerado por usuário
log file = /var/log/samba/log.%U
### Script que será executado quando a estação windows
### se autenticar na rede através deste servidor Samba
logon script = startup.bat
domain logons = Yes
os level = 99
preferred master = yes
domain master = yes
guest ok = No
logon path = \\PDC\profiles\%U
lanman auth = yes
client NTLMv2 auth = yes
client lanman auth = yes
admin users = administrador,root,@admins,@Administradores
 # Nao mostrar no servidor o Wizard "Adicionar Impressora"
 show add printer wizard = No
 # Quais interfaces de rede utilizar
 interfaces = lo, eth0
 bind interfaces only = Yes
## Configuraçao do servidor LDAP para autenticação
passdb backend = ldapsam:ldap://10.56.79.130
ldap admin dn = cn=admin,dc=6cta,dc=eb,dc=mil,dc=br
ldap suffix = dc=6cta,dc=eb,dc=mil,dc=br
ldap group suffix = ou=Grupos,dc=6cta,dc=eb,dc=mil,dc=br
ldap user suffix = ou=Usuarios,dc=6cta,dc=eb,dc=mil,dc=br
Apostila gerada pela Divisão de Operações do 6º CTA para o curso de Servidores Linux pag. 44/88
ldap machine suffix = ou=Computadores,dc=6cta,dc=eb,dc=mil,dc=br
ldap ssl = no
 # Scrips utilizados para Gerenciar Usuarios da M$
 # adiconar/remover Usuarios
 add user script = /usr/sbin/smbldap-useradd -m "%u"
 delete user script = /usr/sbin/smbldap-userdel "%u"
 # adiconar/remover Grupos
 add group script = /usr/sbin/smbldap-groupadd -p "%g"
 delete group script = /usr/sbin/smbldap-groupdel "%g"
 # Scripts para adiconar/remover Usuarios nos Grupos
 add user to group script = /usr/sbin/smbldap-groupmod -m "%u" "%g"
 delete user from group script = /usr/sbin/smbldap-groupmod-x "%u" "%g"
 # Script para definir o grupo primario do usuario
 set primary group script = /usr/sbin/smbldap-usermod -g "%g" "%u"
 # Script para adicionar maquina Win NT/XP/7 ingressar no Dominio
 add machine script = /usr/sbin/smbldap-useradd -W "%u"
 # Otimizacoes recomendadas em
 smb ports = 445 139
 name resolve order = lmhosts host wins bcast
 utmp = Yes
 time server = Yes
 template shell = /bin/false
 winbind use default domain = no
 map acl inherit = Yes
 strict locking = Yes
 # Como o cliente ira' se comunicar com o servidor
 socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
 # Servidor Wins da Rede 
 # Samba pode ser um Servidor WINS, ou Cliente WINS, mas nao ambos 
 wins support = yes 
 # Nao tentar fazer um lock nestes arquivos
 veto files = /*.eml/*.nws/*.{*}/
 veto oplock files = /*.doc/*.xls/*.mdb/
 # Tratar os arquivos que comecam com "." como ocultos para maquinas Windows
 hidedotfiles = yes
#=============================
#===== Compartilhamentos =====
#=============================
[netlogon] ## Nome do compartilhamento que sera exibido
comment = Servico de Logon em Rede [ startup.bat ]
path = /profiles/samba/netlogon
## Compartilhamento especial para perfil ambulante do windows
[profiles]
comment = Diretorio Pessoal de Cada Usuario [ H:\ ]
path = /profiles/
### Pode sofres escrita
writeable = Yes
### O compartilhamento será exibido ou será oculto
browseable = no
read only = no
create mask = 0600
directory mask = 0700
profile acls = yes
vfs objects = recycle
Apostila gerada pela Divisão de Operações do 6º CTA para o curso de Servidores Linux pag. 45/88
[Dados]
comment = Pasta de Arquivos de Trabalho [ Z:\ ]
path = /dados/
force create mode = 0777
force directory mode = 0777
vfs objects = recycle
guest ok = yes
case sensitive = no
admin users = administrador,root,@admins
read only = no
create mask = 0764
directory mask = 0775
profile acls = yes
#inherit acls = yes
#inherit permissions = yes
### Compartilhamento especial para o home do usuário
[homes]
comment = Pasta de Arquivos Particulares dos Usuarios [ U:\ ]
path = /home/
force create mode = 0777
force directory mode = 0777
vfs objects = recycle
guest ok = yes
case sensitive = no
msdfs proxy = no
admin users = administrador,root,@admins
read only = no
create mask = 0764
directory mask = 0775
profile acls = yes
inherit acls = yes
inherit permissions = yes
### Compartilhamento especial para impressoras
[printers]
comment = Spool de Impressao SMB
path = /var/spool/samba
browseable = No
guest ok = Yes
printable = Yes
create mask = 0700
use client driver = yes
Caso não exista, crie os arquivos smbldap.conf e smbldap_bind.conf:
#scp /usr/share/doc/smbldap-tools/examples/smbldap.conf.gz /etc/smbldap-tools/
# gunzip /etc/smbldap-tools/ smbldap.conf.gz
#scp /usr/share/doc/smbldap-tools/examples/smbldap_bind.conf /etc/smbldap-tools/
/etc/smbldap-tools/smbldap.conf
##############################################################################
#
# General Configuration
#
##############################################################################
# Put your own SID. To obtain this number do: "net getlocalsid".
# If not defined, parameter is taking from "net getlocalsid" return
SID="S-1-5-21-242510398-2983120823-3222678569"
Apostila gerada pela Divisão de Operações do 6º CTA para o curso de Servidores Linux pag. 46/88
# Domain name the Samba server is in charged.
# If not defined, parameter is taking from smb.conf configuration file
# Ex: sambaDomain="IDEALX-NT"
sambaDomain="6CTA"
##############################################################################
#
# LDAP Configuration
#
##############################################################################
# Slave LDAP server
# Ex: slaveLDAP=127.0.0.1
# If not defined, parameter is set to "127.0.0.1"
#slaveLDAP="ldap.example.com"
# Slave LDAP port
# If not defined, parameter is set to "389"
#slavePort="389"
# Master LDAP server: needed for write operations
# Ex: masterLDAP=127.0.0.1
# If not defined, parameter is set to "127.0.0.1"
masterLDAP="10.56.79.130"
# Master LDAP port
# If not defined, parameter is set to "389"
#masterPort="389"
masterPort="389"
# Use TLS for LDAP
# If set to 1, this option will use start_tls for connection
# (you should also used the port 389)
# If not defined, parameter is set to "0"
ldapTLS="0"
# Use SSL for LDAP
# If set to 1, this option will use SSL for connection
# (standard port for ldaps is 636)
# If not defined, parameter is set to "0"
ldapSSL="0"
# How to verify the server's certificate (none, optional or require)
# see "man Net::LDAP" in start_tls section for more details
verify="require"
# CA certificate
# see "man Net::LDAP" in start_tls section for more details
cafile="/etc/smbldap-tools/ca.pem"
# certificate to use to connect to the ldap server
# see "man Net::LDAP" in start_tls section for more details
clientcert="/etc/smbldap-tools/smbldap-tools.example.com.pem"
# key certificate to use to connect to the ldap server
# see "man Net::LDAP" in start_tls section for more details
clientkey="/etc/smbldap-tools/smbldap-tools.example.com.key"
# LDAP Suffix
# Ex: suffix=dc=IDEALX,dc=ORG
suffix="dc=6cta,dc=eb,dc=mil,dc=br"
# Where are stored Users
# Ex: usersdn="ou=Users,dc=IDEALX,dc=ORG"
Apostila gerada pela Divisão de Operações do 6º CTA para o curso de Servidores Linux pag. 47/88
# Warning: if 'suffix' is not set here, you must set the full dn for usersdn
usersdn="ou=Usuarios,${suffix}"
# Where are stored Computers
# Ex: computersdn="ou=Computers,dc=IDEALX,dc=ORG"
# Warning: if 'suffix' is not set here, you must set the full dn for computersdn
computersdn="ou=Computadores,${suffix}"
# Where are stored Groups
# Ex: groupsdn="ou=Grupos,dc=IDEALX,dc=ORG"
# Warning: if 'suffix' is not set here, you must set the full dn for groupsdn
groupsdn="ou=Groups,${suffix}"
# Where are stored Idmap entries (used if samba is a domain member server)
# Ex: groupsdn="ou=Idmap,dc=IDEALX,dc=ORG"
# Warning: if 'suffix' is not set here, you must set the full dn for idmapdn
idmapdn="ou=Idmap,${suffix}"
# Where to store next uidNumber and gidNumber available for new users and groups
# If not defined, entries are stored in sambaDomainName object.
# Ex: sambaUnixIdPooldn="sambaDomainName=${sambaDomain},${suffix}"
# Ex: sambaUnixIdPooldn="cn=NextFreeUnixId,${suffix}"
sambaUnixIdPooldn="sambaDomainName=${sambaDomain},${suffix}"
# Default scope Used
scope="sub"
# Unix password hash scheme (CRYPT, MD5, SMD5, SSHA, SHA, CLEARTEXT)
# If set to "exop", use LDAPv3 Password Modify (RFC 3062) extended operation.
password_hash="SSHA"
# if password_hash is set to CRYPT, you may set a salt format.
# default is "%s", but many systems will generate MD5 hashed
# passwords if you use "$1$%.8s". This parameter is optional!
password_crypt_salt_format="%s"
##############################################################################
# 
# Unix Accounts Configuration
# 
##############################################################################
# Login defs
# Default Login Shell
# Ex: userLoginShell="/bin/bash"
userLoginShell="/bin/bash"
# Home directory
# Ex: userHome="/home/%U"
userHome="/home/%U"
# Default mode used for user homeDirectory
userHomeDirectoryMode="700"
# Gecos
userGecos="System User"
# Default User (POSIX and Samba) GID
defaultUserGid="513"
# Default Computer (Samba) GID
defaultComputerGid="515"
# Skel dir
Apostila gerada pela Divisão de Operações do 6º CTA para o curso de Servidores Linux pag. 48/88
skeletonDir="/etc/skel"
# Treat shadowAccount object or not
shadowAccount="1"
# Default password validation time (time in days) Commentthe next line if
# you don't want password to be enable for defaultMaxPasswordAge days (be
# careful to the sambaPwdMustChange attribute's value)
defaultMaxPasswordAge="45"
##############################################################################
#
# SAMBA Configuration
#
##############################################################################
# The UNC path to home drives location (%U username substitution)
# Just set it to a null string if you want to use the smb.conf 'logon home'
# directive and/or disable roaming profiles
# Ex: userSmbHome="\\PDC-SMB3\%U"
userSmbHome="\\PDC\%U"
# The UNC path to profiles locations (%U username substitution)
# Just set it to a null string if you want to use the smb.conf 'logon path'
# directive and/or disable roaming profiles
# Ex: userProfile="\\PDC-SMB3\profiles\%U"
userProfile="\\PDC\profiles\%U"
# The default Home Drive Letter mapping
# (will be automatically mapped at logon time if home directory exist)
# Ex: userHomeDrive="H:"
userHomeDrive="H:"
# The default user netlogon script name (%U username substitution)
# if not used, will be automatically username.cmd
# make sure script file is edited under dos
# Ex: userScript="startup.cmd" # make sure script file is edited under dos
userScript="logon.bat"
# Domain appended to the users "mail"-attribute
# when smbldap-useradd -M is used
# Ex: mailDomain="idealx.com"
mailDomain="6cta.eb.mil.br"
##############################################################################
#
# SMBLDAP-TOOLS Configuration (default are ok for a RedHat)
#
##############################################################################
# Allows not to use smbpasswd (if with_smbpasswd="0" in smbldap.conf) but
# prefer Crypt::SmbHash library
with_smbpasswd="0"
smbpasswd="/usr/bin/smbpasswd"
# Allows not to use slappasswd (if with_slappasswd="0" in smbldap.conf)
# but prefer Crypt:: libraries
with_slappasswd="0"
slappasswd="/usr/sbin/slappasswd"
# comment out the following line to get rid of the default banner
# no_banner="1"
Apostila gerada pela Divisão de Operações do 6º CTA para o curso de Servidores Linux pag. 49/88
/etc/smbldap-tools/smbldap_bind.conf
# $Id$
#
############################
# Credential Configuration #
############################
# Notes: you can specify two differents configuration if you use a
# master ldap for writing access and a slave ldap server for reading access
# By default, we will use the same DN (so it will work for standard Samba
# release)
#slaveDN="cn=Manager,dc=example,dc=com"
#slavePw="secret"
masterDN="cn=admin,dc=6cta,dc=eb,dc=mil,dc=br"
masterPw="6cta"
Alguns comandos:
Para verificar se o arquivo smb.conf está correto.
testparm.samba3
Para adicionar a senha do administrador da base ldap no samba
smbpasswd -W
Populando a base ldap com grupos e usuários padrões do Windows: 
 smbldap-populate 
Adicionando o usuário root na base ldap: 
smbpasswd -a root 
Observações importantes
Antes de executar os comandos net getlocalsid e smbldap-populate deve-se executar o 
comando smbpasswd -W informando a senha do admin da base ldap e o samba já deve estar 
configurado e executando.
Quando for inserir uma máquina no domínio, deve-se ter um usuário cadastrado no grupo de
administradores para que se possa fazer a inclusão.
Verifique na página do lam se na aba “Domínios Samba” foi importado o domínio 
corretamente. Caso ele não tenha sido importado, deve-se inserir manualmente o domínio, com o 
nome e SID especificados no arquivos smb.conf e smbldap.conf. Caso contrário, não será possível 
adicionar usuários no domínio.
Os arquivos que possuem a senha em claro da base Ldap deve ter permissão de leitura e 
escrita somente para o root, para isso execute o seguinte comando: chmod 600 arquivo.conf .
Caso após todos estes passos o usuário persista em ter problemas ao se logar no domínio,
reinicie o servidor LDAP e tente novamente.
Fontes de consulta Samba:
Para autenticação do Windows 7 
http://wiki.samba.org/index.php/Windows7
Apostila gerada pela Divisão de Operações do 6º CTA para o curso de Servidores Linux pag. 50/88
Squid
Um servidor utilizando o squid é comumente utilizado para se compartilhar conexões de
internet impondo um filtro para esta navegação, seja de conteúdo ou de usuários, porém vale
lembrar que nem toda navegação aceita proxy e algumas aceitam somente proxys sem autenticação
e, para que estas sejam acessadas, devem ser liberadas diretamentes no firewall de saída para
internet. Vale ressaltar que o que está sendo liberado deve ser feito com prudência e com
consciência.
Outra grande vantagem da utilização de um proxy é o cache que ele pode realizar,
agilizando a navegação, principalmente em acessos lentos.
Instalação
Pacotes necessários para instalação do servidor Squid, sendo que para instalação do sarg no
Debian 8 é necessário incluir o seguinte repositório no sources.list:
deb http://backports.debian.org/debian jessie-backports main contrib non-free
#apt-get install squid3 
Atualmente estamos trabalhando com o pacote squid que fornece a versão 3.0 
Configuração
O squid possui um arquivo único de configuração: o squid.conf. Porém, para facilitar a
administração criamos arquivos de texto auxiliares que conterão os domínios e outras informações
utéis e mais constantementes alteradas. Para configuração do sarg deve-se gerar o arquivo sarg.conf
e um script para sua execução e agendamento. Antes de prosseguir faça um backup do arquivo
original de configuração e depois crie novamente um arquivo limpo:
#mv squid.conf squid.bak
#touch squid.conf
Após este precedimento insira no arquivos as configurações abaixo listadas
/etc/squid3/squid.conf
################################################################### 
## ## 
## CONFIGURACAO ARQUIVO SQUID.CONF ## 
## ## 
################################################################### 
# Porta de comunicação do squid 
http_port 3128 
 
#Linhas necessárias para que a mesma tela de caixas de e-mail sejam abertas 
#em navegadores diferentes 
hierarchy_stoplist cgi-bin ? 
acl QUERY urlpath_regex cgi-bin \? 
no_cache deny QUERY 
Apostila gerada pela Divisão de Operações do 6º CTA para o curso de Servidores Linux pag. 51/88
# Configuracao de cache 
cache_mem 100 MB 
cache_swap_low 50 
cache_swap_high 95 
maximum_object_size 25600 KB 
minimum_object_size 10 KB 
maximum_object_size_in_memory 256 KB 
cache_dir ufs /var/cache/squid3 10240 256 256 
cache_access_log /var/log/squid3/access.log 
cache_log /var/log/squid3/cache.log 
error_directory /usr/share/squid3/errors/Portuguese 
coredump_dir /var/cache/squid3 
# Servidores de DNS 
dns_nameservers 10.56.84.54 10.56.84.55 
visible_hostname Servidor_Proxy 
emulate_httpd_log off 
ftp_passive on 
############### Autenticacao de usuarios Squid com ldap ###################### 
auth_param basic program /usr/lib/squid3/basic_ldap_auth -v 3 -R -b 
"ou=Usuarios,dc=6cta,dc=eb,dc=mil,dc=br" -h 10.56.79.130 auth_param basic children 5 
auth_param basic realm Servidor Internet 
# auth_param basic credentialsttl 30 minutes 
#### End autenticacao ############################################### 
refresh_pattern ^ftp: 1440 20% 10080 
refresh_pattern ^gopher: 1440 0% 1440 
refresh_pattern . 0 20% 4320 
####################### ACL 
# Rede que terá acesso ao proxy 
acl all src 0.0.0.0/0.0.0.0 
#acl manager proto cache_object 
acl localhost src 127.0.0.1/255.255.255.255 
acl to_localhost dst 127.0.0.0/8 
### Configuração das portas de comunicação que serão aceitas pelo squid 
acl SSL_ports port443 563 
acl Safe_ports port 80 # http 
acl Safe_ports port 21 # ftp 
acl Safe_ports port 25 # smtp 
acl Safe_ports port 443 563 587 995 # https, snews, pops, smtps 
acl Safe_ports port 70 # gopher 
acl Safe_ports port 110 # pop3 
acl Safe_ports port 210 # wais 
acl Safe_ports port 1025-65535 # unregistered ports 
Apostila gerada pela Divisão de Operações do 6º CTA para o curso de Servidores Linux pag. 52/88
acl Safe_ports port 280 # http-mgmt 
acl Safe_ports port 488 # gss-http 
acl Safe_ports port 4661 8999 23000 #SERPRO 
acl Safe_ports port 591 # filemaker 
acl Safe_ports port 777 # multiling http 
acl Safe_ports port 10000 # webmin 
acl CONNECT method CONNECT 
########################### Regras 
acl senha proxy_auth REQUIRED 
acl servidores src 192.168.50.10 192.168.50.11 
acl user_livre proxy_auth bastos 
acl rede_interna src 10.56.208.0/22 
acl dominios_exp dstdomain "/etc/squid3/dominios_liberados.txt" 
acl palavras_liberadas url_regex -i "/etc/squid3/palavras_liberadas.txt" 
acl dominios_fora dstdomain "/etc/squid3/dominios_liberados_fora.txt" 
acl governamental dstdomain "/etc/squid3/governamentais.txt" 
acl liberados url_regex -i "/etc/squid3/liberados_sem_senha.txt" 
acl bloquear url_regex -i "/etc/squid3/bloqueio.txt" 
############################## Controle por horario 
acl segunda time M 13:00-18:00 
acl tqq time 08:00-13:00 
acl sexta time 08:00-12:00 
acl expediente_manha time M T W H F 08:00-12:00 
acl expediente_tarde time M T W H 13:15-16:30 
acl download urlpath_regex .avi$ .mpeg$ .mpg$ .wma$ .mp3$ .iso$ 
acl html rep_mime_type text/html 
############################# Controle por usuario 
acl users_fora proxy_auth "/etc/squid3/users_fora.txt" 
acl users_restrito proxy_auth "/etc/squid3/users_restrito.txt" 
### 
http_access allow liberados Safe_ports 
http_access allow governamental Safe_ports 
http_access allow servidores Safe_ports 
http_access allow palavras_liberadas Safe_ports 
### acesso total 
http_access allow all user_livre 
#### Limita o tamanho do download exceto de txt e html 
#reply_body_max_size 0 allow html 
#reply_body_max_size 10485760 allow all !user_livre 
#reply_body_max_size 10485760 allow all !user_livre 
### Bloqueio de download 
http_access deny download 
### Liberacoes 
http_access deny bloquear 
Apostila gerada pela Divisão de Operações do 6º CTA para o curso de Servidores Linux pag. 53/88
http_access deny users_fora expediente_manha 
http_access deny users_fora expediente_tarde 
http_access allow dominios_exp Safe_ports 
http_access allow dominios_fora !expediente_manha !expediente_tarde Safe_ports 
#http_access allow users_fora !expediente_manha !expediente_tarde Safe_ports 
http_reply_access allow all Safe_ports 
icp_access allow all Safe_ports 
### Bloqueia todo o restante 
#http_access deny all 
#Configurações do SquidGuard 
url_rewrite_access allow all 
url_rewrite_program /usr/bin/squidGuard -c /etc/squidguard/squidGuard.conf 
url_rewrite_children 20 startup=0 idle=1 concurrency=0 
### Ou para liberar todo o restante 
http_access allow all 
Observações importantes
Após a primeira configuração do squid é necessário para seu funcionamento criar o local
onde será gerado o cache de navegação e depois reiniciá-lo após cada alteração.
Criar o caminho do cache
mkdir /var/cache/squid3
Atriuir as permisões ao usuário do squid
chown proxy:proxy /var/cache/squid3
Criar a sub arvore para geração do cache
squid3 -z
Para parar o squid
/etc/init.d/squid3 stop
Para iniciá-lo
/etc/init.d/squid3 start
Para recarregá-lo sem parar o serviço
/etc/init.d/squid3 reload ou squid3 -k reconfigure
Squid + SquidGuard
Algumas das dificuldades dos administradores de servidores proxy é o gerenciamento dos
usuários através das regras de ACL do Squid. O SquidGuard minimiza este problema
proporcionando uma configuração simples e intuitiva fazendo o uso de listas de bloqueio. Existem
grupos destinados a manter listas com URLs de páginas pornográficas, páginas de cassinos e jogos
e páginas ilícitas em geral, que são atualizadas frequentemente. Por serem construídas através da
combinação dos esforços de muitas pessoas, auxiliadas por ferramentas semiautomáticas de
indexação e classificação de conteúdo, estas listas permitem bloquear a maior parte das páginas
Apostila gerada pela Divisão de Operações do 6º CTA para o curso de Servidores Linux pag. 54/88
ilícitas sem muito esforço.
No Debian a instalação é feita pelo comando:
# apt-get install squidguard apache2 php5
Obs: Como será exibida uma página com a mensagem de aviso de acesso bloqueado e 
para poder gerar histórico de acesso é necessário a instalação dos pacostes apache e php5.
A configuração é feita em três fases. O primeiro passo é baixar os arquivos das listas
desejadas e descompactá-los no diretório "/var/lib/squidguard/db". Em seguida, é necessário
configurar o arquivo "/etc/squid/squidGuard.conf", especificando os arquivos de listas que serão
usados e o comportamento do SquidGuard ao bloquear os acessos e, finalmente, editar o
"/etc/squid3/squid.conf", adicionando a linha que ativa o uso do SquidGuard.
Comece baixando as listas em um diretório qualquer, como em:
$ wget -c http://squidguard.mesd.k12.or.us/blacklists.tgz
$ wget -c http://www.shallalist.de/Downloads/shallalist.tar.gz
Copie os dois arquivos para o diretório "/var/lib/squidguard/db" e descompacte-os, como
em:
# cp blacklists.tgz shallalist.tar.gz /var/lib/squidguard/db/
# cd /var/lib/squidguard/db/
# tar -zxvf blacklists.tgz
# tar -zxvf shallalist.tar.gz
Aproveite para remover os dois arquivos, já que não precisaremos mais deles:
# rm -f blacklists.tgz shallalist.tar.gz
Com isso, você terá as pastas “BL” (as listas do Shalla) e “blacklists” (listas do MESD)
dentro do diretório, cada uma contendo um conjunto de subpasta.
A lista do MESD é concentrada em temas ilegais, enquanto a lista do Shalla inclui listas
relacionadas a temas diversos, que você pode bloquear ou não de acordo com a situação. Dentro de
cada pasta, você encontra dois arquivos, “domains” e “urls”, o primeiro contendo domínios que são
bloqueados completamente e o segundo contendo URLs isoladas. 
Com isso, você tem as duas listas à disposição e pode escolher qual das duas utilizar, ou
mesmo combinar seções de ambas para incrementar o filtro. O próximo passo é configurar o
arquivo "/etc/squidguard/squidGuard.conf", especificando as listas a utilizar. Um exemplo básico
de arquivo de configuração, usando apenas duas das seções da lista do MESD, seria:
/etc/squidguard/squidGuard.conf
dbhome /var/lib/squidguard/db/blacklists
logdir /var/log/squid
dest porn {
domainlist porn/domains
urllist porn/urls
}
dest proxy {
domainlist proxy/domains
Apostila gerada pela Divisão de Operações do 6º CTA para o curso de Servidores Linux pag. 55/88
urllist proxy/urls
}
acl {
default {
pass !porn !proxy all
redirect http://10.56.79.130/squidguard.php
}
}
As duas primeiras linhas indicam o diretório contendo as blacklists e o diretório onde serão
armazenados os logs. No exemplo estou usando as listas do MESD, daí o
"/var/lib/squidguard/db/blacklists" e estou orientando o SquidGuard a salvar o log no mesmo
diretório utilizado pelo Squid, gerando o arquivo "/var/log/squid/squidGuard.log".
Em seguida, temos duas ACLs, batizadas de "porn" e proxy", cada uma incluindo os dois
arquivos da categoria correspondente dentro das listas. Para que fossem adicionadas mais seções,
bastaria adicionar uma nova ACL para cada uma.
No final, a opção "pass" indica como as duas ACLs serão usadas. No exemplo, usei a linha
"pass !porn !proxy all", que indica que os acessos a páginas citadas nas

Continue navegando