Baixe o app para aproveitar ainda mais
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
Compartilhar