TADS:Administração de Servidores: mudanças entre as edições

De Wiki Cursos IFPR Foz
Ir para navegaçãoIr para pesquisar
 
(404 revisões intermediárias por 2 usuários não estão sendo mostradas)
Linha 1: Linha 1:
= Administração de Servidores=
'''Semestre''': 4º
<!--=Objetivo=
Instrumentalizar os alunos para administrar e gerenciar redes de computadores e servidores, de forma que possam configurar e controlar os dispositivos que compõe uma rede local e prover serviços de rede aos usuários, instalar e configurar aplicações de rede em servidores, incluindo questões de permissão de acesso aos usuários e segurança das informações.


==Carga Horária==
=Ementa=
72 horas
Instalação  de aplicativos  em servidores. 
Sistema de  arquivos  e permissão  de  acesso.
Administração  de  usuários  e grupos.
Cotas  de disco e políticas  de backup. 
Servidores  de arquivo. 
Configurações  de rede e roteamento  estático e dinâmico. 
Servidores  de  acesso centralizado  a sistemas.
Servidor  DNS. 
Servidores  de  aplicação  (Web, correio  eletrônico, acesso remoto  e outros).
Redes  Privadas  Virtuais (VPN). 
Segurança  e firewall.
-->
==Plano de ensino==
*[[PLANO DE ENSINO - TADS:Administração de Servidores]]


== Ementa ==
<!--=Histórico da Disciplina=
*Instalação  de aplicativos  em servidores. 
*[[TADS:Administração de Servidores: 2019-2|2019-2]]: (Prof. [[Usuário:Evandro.cantu | Evandro Cantú]])
*Sistema de  arquivos  e permissão  de  acesso.
*[[TADS:Administração de Servidores: 2018-2|2018-2]]: (Prof. [[Usuário:Evandro.cantu | Evandro Cantú]])
*Administração de usuários  e grupos.
*[[TADS:Administração de Servidores: 2017-2|2017-2]]: (Prof. [[Usuário:Evandro.cantu | Evandro Cantú]])
*Cotas  de disco e políticas  de backup. 
*[[TADS:Administração de Servidores: 2016-2|2016-2]]: (Prof. [[Usuário:Evandro.cantu | Evandro Cantú]])
*Servidores de arquivo.
*[[TADS:Administração de Servidores: 2015-2|2015-2]]: (Prof. [[Usuário:Evandro.cantu | Evandro Cantú]])
*Configurações  de rede e roteamento  estático e dinâmico.
-->
*Servidores  de acesso centralizado  a sistemas.
==Conteúdo Programático==
*Servidor  DNS. 
===Servidor Linux===
*Servidores de  aplicação  (Web, correio  eletrônico, acesso remoto  e outros).
*[[Introducao a Administracao de Servidores|Introdução a Administração de Servidores]]
*Redes  Privadas  Virtuais (VPN)
*Segurança  e firewall.
 
== Bibliografia Básica==
*SIEVER, E. et all. Linux: O guia  essencial. 5 ed.  Porto Alegre:  Bookman,  2006.
*VALLE, O. T. Administração de Redes  com Linux: Fundamentos  e práticas. Florianópolis: IFSC,  2010.
*SCHRODER,  C. Redes  Linux - Livro  de  Receitas. Rio  de  Janeiro: Alta Books, 2008.
*FERREIRA, R. E. Linux: Guia do  administrador  do  sistema, 2  ed. Novatec,  2008.
*SOUZA,  R. F. Administração de Servidores Linux: Passo-a-passo  para  pequenas empresas.  Fortaleza: Clube  de Autores: 2012.
 
==Bibliografia Complamentar==
*MORIMOTO,  C. E. Servidores  Linux: Guia prático.  Meridional:  2008.
*TIBET,  C. V. Linux: Administração e suporte.  São  Paulo: Novatec,  2001.
*VIANA, E. R. C. Virtualização  de Servidores Linux  Para Redes  Corporativas: Guia  Prático. Ciência  Moderna: 2008.
*KUROSE,  J. F.; ROSS, K. W. Redes  de Computadores  e a Internet:  Uma abordagem  top-down.  5  ed. Addison  Wesley, 2010.
*COMER,  D. E. Interligação  em Redes  com TCP/IP.  Vol. 1, 5  ed. Rio  de Janeiro: Campus,  2006.
 
==Materiais disponíveis na Wiki sobre Administração de Servidores==
*[[Introdução a Administração de Servidores]]
*[[Servidor Linux]]
*[[Servidor Linux]]
*[[Administração de Usuários e Grupos]]
*[[Administracao de Usuarios e Grupos|Administração de Usuários e Grupos]]
*[[Permissões de acesso a arquivos e diretórios]]
*[[Permissoes de acesso a arquivos e diretorios|Permissões de acesso a arquivos e diretórios]]
*[[Cotas em disco]]
*[[Cotas em disco]]
*[[Programação do Shell]]
*[[Programação do Shell]]
*[[Agendamento de Tarefas]]
*[[Agendamento de Tarefas]]
*[[Cópias de Segurança]]
*[[Copias de Seguranca|Cópias de Segurança]]
*[[Servidor SSH]]
*[[Servidor SSH]]
*[[Rede e Roteamento]]
 
**[[NAT]]
===Servidores de Aplicação===
**[[Protocolo DHCP]]
**[[Laboratório: NetKit DHCP e NAT]]
*[[DNS]]
**[[Servidor DNS]]
**[[Laboratório: NetKit DNS]]
*[[Servidor Web]]
*[[Servidor Web]]
*[[Servidor FTP]]
*[[Servidor Samba]]
*[[Servidor Samba]]
*[[Servidor Proxy]]
*[[Servidor Proxy]] e [[Firewall]]
*[[Firewall]]


= Ano Letivo 2015-2 =
===Contêineres===
*Professor: Evandro Cantú <evandro.cantu@ifpr.edu.br>
*[[Docker]]
*Encontros: 2a feira: 19h15-20h45 / 4a feira 21h00-22h30 - 4 aulas/semana
*Atendimento paralelo: 4a feira - 18h00-19h00.
----
== Diários de Aula ==
===29/fev 2016 (4 aulas)===
;Avaliação envolvendo a apresentação do servidor pela equipe e questionamentos individuais: Será agendado horário por equipe, de 20 minutos, iniciando as 19h00.


===26/fev 2016===
===Servidores em Nuvem===
Finalização de tarefas pendentes.
*AWS (Amazon)
*FireBase (Google)
*Digital Ocean


===24/fev 2016===
= Diários de Aula =
;[[Servidor Proxy]]: Arquivo de configuração '''Squid''' e finalização da '''Tarefa 9'''.


;[[Firewall]]: Implementação de '''firewall''' com '''iptables'''.
Diários de aula disponibilizados na plataforma '''Moodle IFPR''' (https://ava.ifpr.edu.br).
====Tarefa 10====
;Firewall com Iptables:
 
===22/fev 2016 (4 aulas)===
;[[Servidor Samba]]
====Tarefa 8====
;Servidor Samba: Instalar '''servidor Samba''' e incluir os seguintes compartilhamentos de arquivos:
:*Compartilhar o diretório '''home''' para acesso via rede;
:*Compartilhar diretório para '''acesso público sem senha''';
:*Compartilhar diretório com acesso seguro para '''grupos de usuário''', incluindo um diretório para o grupo alunos e outro para o rupo professores.
 
;[[Servidor Proxy]]: Servidor Squid
====Tarefa 9====
;Servidor Proxy: Instalar '''servidor Squid''' e configurar para permitir acesso de computadores da rede local, e incluir regras '''ACL''' com as seguintes restrições:
:*Bloquear o acesso a alguns sites especificados em lista própria;
:*Bloquear o acesso a determinados computadores da rede local em horários específicos;
:*Bloquear o acesso a sites em função de palavra chave.
 
====Exportar servidor Ubuntu para máquina acessível na Internet====
Os '''Servidores Ubuntu''' deverão exportados para uma '''máquina virtual''' rodando em um servidor acessível da Internet, com as seguintes caracteríscas:
:*'''Endereço IP público''' do Servidor: '''200.17.101.10'''
:*Contas de '''usuário''' e '''senha''': Cada '''aluno''' da turma tem uma conta no servidor, pertencente ao grupo '''sudo''', identificada pelo '''primeiro nome''', com exceção dos nomes repetidos (igorl, igorq, lucasg, lucasm, joaot, joaop). Após o primeiro acesso, importante trocar a senha.
:*Acesso via '''SSH''': O acesso ao '''servidor''' com '''IP público''' será via SSH. Uma vez acessado o servidor os '''servidores individuais''' também serão acessados via '''IP privado''' da rede interna.
:*'''Endereços IP privados''' dos servidores individuais: Os servidores individuais receberão '''IP fixo''', segundo a seguinte listagem:
:**192.168.10.20: Professor
:**192.168.10.21: Bruno e Matheus
:**192.168.10.22: Clelionei e João Pedro
:**192.168.10.23: Douglas e Igor Matheus
:**192.168.10.24: Frederik e Igor Leite
:**192.168.10.25: João Paulo
:**192.168.10.26: Lucas Guerra
:**192.168.10.27: Lucas Mendonça e Thiago
:**192.168.10.28: Luis
:**192.168.10.29: Roberto
 
;[[Mídia:TutorialVM.pdf|Roteiro para exportar servidor Ubuntu para máquina virtual]]: Elaborado por Matheus Marques Martines.
 
;Acesso ao Servidor Ubuntu com navegador modo gráfico via SSH: É possível rodar '''aplicativos gráficos''' via '''SSH''', para tal, no acesso ao servidor digitar os seguintes parâmetros:
ssh -X -C usuario@200.17.101.10
:com isto o X11 vai exportar qualquer aplicativo gráfico que for executado.
 
A partir de um '''navegador gráfico''', como o '''firefox''', rodando no servidor '''200.17.101.10''', será possível acessar o '''servidor Ubuntu''' rodando na máquina virtual '''192.168.10.2?'''.
 
===17/fev 2016===
;Serviços adicionais para permitir a manutenção de VirtualHosts em um [[Servidor Web]]:
:'''Cotas em disco para Servidores Web''': As '''[[Cotas em disco]]''' são um recurso importante para disciplinar o uso do espaço em disco disponível para cada '''VirtualHost''' disponibilizar as conteúdo na Web. Para tal, as cotas em disco devem ser ativadas para os administradores dos VirtualHosts e aplicadas no diretório /var/www/html, ou no diretório na qual o conteúdo Web ficará armazenado.
:'''Acesso remoto com [[Servidor SSH]]'''
:'''Acesso com [[Servidor FTP]]'''
 
====Tarefa 7====
;Servidor FTP: Instalar '''servidor FTP''' para usuários e também '''FTP ''Annonymous''''' com acesso somente em leitura no diretório público.
 
===15/fev 2016===
;Instalação [[Servidor Web]] TomCat: Versão '''[https://www.digitalocean.com/community/tutorials/how-to-install-apache-tomcat-8-on-ubuntu-14-04 TomCat 8]''': Este servidor deverá ser utilizado na apresentação do trabalho da disciplina '''Desenvolvimento Web III''' (Prof. Felippe), sobre aplicação '''Java Web'''. 
 
Continuação da '''Tarefa 6'''
 
===10/fev 2016===
Revisão servidor PHP e MySQL
 
Continuação da '''Tarefa 6'''
 
===06/fev 2016 (sábado)===
;Apresentação: '''Certificados SSL''' -> Frederik
 
Continuação da '''Tarefa 6'''
 
===03/fev 2016===
;Apresentação: '''MySQL''' -> Matheus Marques
 
====Tarefa 6====
;Servidor LAMP: Implementar um '''servidor LAMP''' ('''Apache/MySQL/PHP''') e '''servidor Tomcat'''. Hospedar nos servidores:
*'''Site para a equipe''' em um '''VirtualHost''' no servidor '''Apache''' para páginas HTML básicas.
*'''Site para cliente 1''' em um '''VirtualHost''' no servidor '''Apache''' que inclua scripts em '''PHP''' e acesso ao banco de dados '''MySQL'''.
*'''Site para cliente 2''' no servidor '''Tomcat''' que inclua scripts em '''JSP''' ('''Java Server Pages''') e acesso ao banco de dados '''MySQL'''.
*Suporte para '''páginas pessoais''' para os usuários, incluindo no mínimo uma página para cada membro da equipe.
 
===23/dez===
;Confraternização alunos TADS
===21/dez===
;[[Servidor Web]]:
 
===19/dez (sábado)===
Apresentação dos '''exercícios''' sobre '''[[Laboratório: NetKit DNS]]''' e '''[[Servidor Web]]'''.
 
===16/dez===
;[[Aplicação Web]]: Papel do '''navegador''' e do '''servidor Web''' e os protocolos envolvidos.
;[[Protocolo HTTP]]: Regras para troca de mensagens entre o cliente e o servidor Web.
;[[Servidor Web]]: Servidor Apache
 
===07, 09 e 14/dez===
;[[DNS]]: Serviço de Nomes de Domínio
;[[Servidor DNS]]: Implementação de um servidor para uma Zona de Domínio
;[[Laboratório: NetKit DNS]]: Implementação de um cenário de testes para o servidor DNS
 
===25 e 30/nov e 02/dez===
;[[Rede e Roteamento]]: Servidor DHCP.
;[[Laboratório: NetKit DHCP e NAT]]
 
===23/nov===
;[[Rede e Roteamento]]: Configuração das Interfaces e NAT.
 
===18/nov===
;[[Cópias de Segurança]]: Continuação da '''Tarefa 5''': '''Backup incremental'''.
 
===16/nov===
;[[Cópias de Segurança]]: Backup total.
;[[Servidor SSH]]: Acesso com '''chave pública de autenticação'''.
 
====Tarefa 5====
;Backup total: Criar um '''servidor remoto''' para ser acessado via '''SSH''' para ser utilizado para armazenar arquivos de '''backup total''':
#Utilizar como '''servidor remoto''' o Ubuntu Server de uma outra equipe.
#Criar no servidor remoto uma '''conta especial''' para ser acessada pelo '''script de backup''', por exemplo, '''bkuser'''. Definir como diretório home deste usuário um diretório especial para guardar os '''arquivos de backup''', por exemplo '''/backup''' (este diretório poderia ser montado em uma partição exclusiva para backup).
#Gerar a '''chave de autenticação pública''' no cliente (ssh-keygen) que vai rodar o script de backup e copiá-la para o servidor remoto (ssh-copy-id), que vai armazenar os backups .
#Criar na máquina cliente um '''script de backup''' que identifique e salve diariamente os diretórios '''/home''' e '''/dados''' e que depois transfira os mesmos para o '''servidor remoto'''.
#Agendar a tarefa usando o agendamento de tarefas.
 
;Backup incremetal e Backup total: Criar um '''script de backup''' para ser armazenado em um '''servidor remoto''', combinando:
#Armazenar de arquivos de '''backup total''' realizados mensalmente, mantendo o histórico dos arquivos e nomeando-os com a identificação do mês;
#Atualizar de arquivos de '''backup incremental''', usando '''rsync''', executado diariamente.
 
===14/nov (sábado)===
;[[Agendamento de Tarefas]]: Crontab
;[[Cópias de Segurança]]: Backups
 
===11/nov===
;[[Programação do Shell]]: Resolução dos exercícios.
;[[Agendamento de Tarefas]]
 
===09/nov===
;[[Cotas em disco]]: Revisão
 
===07/nov (sábado)===
Avaliação dos servidores
 
Avaliações individuais
*Igor Matheus (Ñ), Igor Leite (ok), João Paulo (Ñ), Lucas Moraes (ok), Roberto (ok) e Victor (Ñ)
 
===04/nov===
;[[Programação do Shell]]
 
===28/out===
;[[Cotas em disco]]
====Tarefa 4====
Criar '''cotas em disco''' para usuários e grupos para controle do espaço de armazenamento dos diretórios /home e /dados. O ideal seria que estes diretórios tivessem sido montados em partições separadas. Como não foi montado desta forma, vamos aplicar o sistema de quotas a '''partição / (raiz)''' do sistema.
*Atribuir quota de 1MB por usuário e 5MB por grupo.
*Atribuir 500 inodes por usuário e 500 inodes por grupo.
*Testar o funcionamento do sistema de quotas.
 
===26/out===
Continuação '''Tarefa 3'''.
 
===21/out===
;[[Permissões de acesso a arquivos e diretórios]]
 
====Tarefa 3====
Criar '''diretórios''' para utilização compartilhada para os usuários dos grupos primários e secundários:
*'''Grupos primários''': Alunos e Professores
*'''Grupos secundários''': Arduino, PHP, Mobile, etc
Alocar os diretórios no seguinte subdiretório:
/dados/professores
/dados/alunos
/dados/arduino
...
 
;Permissões: Definir para os diretórios as seguintes permissões:
*Diretório '''home''' do usuário: Leitura, Escrita e Execução somente para o Dono do diretório;
*Diretório '''professores''': Leitura, Escrita e Execução para o Dono e para o Grupo do diretório;
*Diretório '''alunos''': Leitura, Escrita e Execução para o Dono e para o Grupo do diretório;
*Diretórios para grupos '''secundários''': Leitura, Escrita e Execução para o Dono e para o Grupo, e acesso a Leitura e Execução para os Outros.
 
Verifique a permissão padrão do diretório '''home''' que está sendo utilizada quando um usuário é criado. Se necessário, utilize o comando '''umask''' para que novos usuários fiquem com a permissão indicada.
 
Testar as permissões de acesso com diferentes tipos de usuário.
 
===19/out===
Continuação '''Tarefa 2'''.
 
===14/out===
Continuação '''Tarefa 2'''.
 
===07/out===
;[[Administração de Usuários e Grupos]]
 
====Tarefa 2====
Criar contas de '''usuário''' e '''grupo''' para todos os alunos e professores da turma:
*'''Grupos primários''': Alunos e Professores
*'''Grupos secundários''': Arduino, PHP, Mobile, etc
**Verificar com a turma os grupos de interesse para formar os grupos secundários.
:Cada usuário '''deve''' pertencer a '''um grupo primário''' e '''pode''' pertencer a '''um ou mais grupos secundários'''.
 
Requisitos para as contas de usuário e grupo:
*Estabelecer '''regramento''' para os nomes de login
**Por exemplo: nome: João Paulo de Souza -> login: jsouza
*Cadastrar cada usuário incluindo as seguintes informações: Nome Completo, Telefone, email.
*Cadastrar as '''senhas''' (1234) e solicitar para os usuários fazerem a troca e testar a conta através '''ssh'''.
 
Exemplo:
groupadd Alunos
groupadd Professores
groupadd Arduino
adduser --ingroup Alunos jsouza
adduser jsouza Arduino
:No exemplo foram criados três '''grupos''' Alunos, Professores e Arduino; em seguida foi criado o '''usuário''' jsouza no '''grupo primário''' Alunos; depois o usuário jsouza foi incluído no '''grupo secundário''' Arduino.
 
Alteração da senha
passwd jsouza
 
Verificar arquivos '''/etc/passwd''' e '''/etc/group''' fazendo os ajustes diretamente com o '''editor vi''' caso necessário.
 
;finger: Instalar o aplicativo '''finger''' com '''apt-get''' e verificar se as informações dos usuários estão corretas. Veja que com o finger é possível identificar se os usuários estão ativos no sistema.
 
===05/out===
;[[Servidor Linux]]:
*dpkg e wget;
*Gerenciador de processos;
*Sistema de arquivos.
 
===03/out (sábado)===
;[http://wiki.ubuntu-br.org/ComandosBasicos Comandos Básicos Linux]
 
===30/set===
;[[Servidor Linux]]: Instalação e configuração.
 
====Tarefa 1====
;[http://200.17.101.9/wiki/index.php/Servidor_Linux#Instala.C3.A7.C3.A3o_e_configura.C3.A7.C3.A3o Instalação e configuração] do Servidor Linux: Instalar o servidor em uma máquina virtual do '''VirtualBox''':
#Escolher '''basic server install''';
#Definir memória RAM de 512MB, pois teremos várias máquinas virtuais em um mesmo hardware;
#Além do servidor básico, instalar o '''Servidor OpenSSH''', para poder acessá-lo remotamente (os demais serviços serão instalados posteriormente).
#Na '''configuração''' da máquina virtual no '''VirtualBox''', estabelacer a configuração de rede do Servidor Linux como '''Placa em modo Bridge''', para que o servidor fica na mesma rede local dos demais computadores do laboratório;
#Verificar a configuração de rede do Servidor Linux com '''ifconfig''';
#Testar conectividade com '''ping''' entre o Servidor Linux a a máquina hospedeira;
#Conectar-se remotamente ao Servidor Linux com '''ssh'''.
 
;Instalação do servidor Web apache:
#Instalar o servidor Web com '''apt-get''';
#Testar funcionamento do servidor a partir de um navegador na máquina hospedeira.
 
;Instalação de outros serviços:
#Instalar e testar navegador '''lynx''';
#Instalar e testar o aplicativo '''traceroute'''.
 
;Teclado ABNT Brasil: Caso tenha instalado versão em inglês do teclado, o mesmo pode ser ajustado com o comando:
setxkbmap -model abnt2 -layout br
 
;Executar aplicativos gráficos via SSH: É possível executar aplicativos gráficos via SSH fazendo alguns ajustes no servidor:
vim /etc/ssh/sshd_config
:Altere as linhas no arquivo sshd_config:
Protocol 2
PermitRootLogin without-password
X11Forwarding yes
:Reinicie o serviço:
/etc/init.d/ssh restart
:Conecte-se ao servidor via SSH usando:
ssh -X -C user@server
:Chame o aplicativo normalmente.
 
===28/set===
;[[Introdução a Administração de Servidores]]
;[[Servidor Linux]]: Origem e conceitos gerais


----
[[Usuário:Evandro.cantu|Evandro.cantu]] ([[Usuário Discussão:Evandro.cantu|discussão]]) 11h09min de 4 de março de 2021 (-03)
----
----


[[Categoria:TADS]]
[[Categoria:TADS]]

Edição atual tal como às 22h20min de 23 de setembro de 2022