13.07.2015 Views

Apostila Servidores - Gerds - Universidade Tuiuti do Paraná

Apostila Servidores - Gerds - Universidade Tuiuti do Paraná

Apostila Servidores - Gerds - Universidade Tuiuti do Paraná

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong> –UTPFaculdade de Ciências Exatas e de TecnologiaCursos de ComputaçãoGrupo de Estu<strong>do</strong>s de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sProfessores:Marcelo Soares FariasRoberto Néia Amaral


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXINTRODUÇÃOInicialmente, os computa<strong>do</strong>res eram máquinas caríssimas que centralizavam em um único ponto oprocessamento das aplicações de vários usuários, e muitas vezes de toda uma organização. Com a reduçãode custos <strong>do</strong> hardware e introdução <strong>do</strong>s microcomputa<strong>do</strong>res no cenário da informática, a estrutura centralizadacedeu lugar a uma estrutura totalmente distribuída. Nessa estrutura diversos equipamentos <strong>do</strong>s mais varia<strong>do</strong>sportes processam informações de formas isoladas, o que acarreta uma serie de problemas. Dentre osproblemas apresenta<strong>do</strong>s, destaca-se a duplicação desnecessária de recursos de hardware (impressoras,discos, etc.) e de software (programas, arquivos de da<strong>do</strong>s etc.).Nesse cenário surgiram as redes de computa<strong>do</strong>res, onde um sistema de comunicação foi introduzi<strong>do</strong>para interligar os equipamentos de processamentos de da<strong>do</strong>s (estações de trabalhos), antes operan<strong>do</strong>isoladamente com o objetivo de permitir o compartilhamento de recursos.Evolução <strong>do</strong>s Sistemas de ComputaçãoNa década de 1950, computa<strong>do</strong>res eram máquinas grandes e complexas, operadas por pessoasaltamente especializadas. Usuários enfileiravam-se para submeter suas leitoras de cartões ou fitas magnéticasque eram processa<strong>do</strong>s em lote. Não havia nenhuma forma de interação direta entre usuários e máquina.Avanços na década de 1960 possibilitaram o desenvolvimento <strong>do</strong>s primeiros terminais interativos,permitin<strong>do</strong> aos usuários acesso ao computa<strong>do</strong>r central através de linhas de comunicação. Usuários passavama ter então um mecanismo que possibilitava a interação direta com o computa<strong>do</strong>r, ao mesmo tempo em queavanços nas técnicas de processamento davam origem a sistemas de tempo compartilha<strong>do</strong> (time-sharing),permitin<strong>do</strong> que várias tarefas <strong>do</strong>s diferentes usuários ocupassem simultaneamente o computa<strong>do</strong>r central,através de uma espécie de revezamento no tempo de ocupação <strong>do</strong> processa<strong>do</strong>r.Mudanças na caracterização <strong>do</strong>s sistemas de computação ocorreram durante a década de 1970:de um sistema único centraliza<strong>do</strong> e de grande porte, partia-se em direção à distribuição <strong>do</strong> podercomputacional. O desenvolvimento de minis e microcomputa<strong>do</strong>res de bom desempenho, permitiu a instalaçãode considerável poder computacional concentração deste poder em uma determinada área.Embora o custo de hardware de processamento estivesse cain<strong>do</strong>, o preço <strong>do</strong>s equipamentoseletromecânicos continuava alto, tornan<strong>do</strong> a interconexão entre os vários sistemas para o uso compartilha<strong>do</strong>de dispositivos periféricos importante.A capacidade de troca de informações também foi uma razão importante para a interconexão.Usuários individuais de sistemas de computação não trabalham isola<strong>do</strong>s e necessitam de alguns <strong>do</strong>sbenefícios ofereci<strong>do</strong>s pôr um sistema centraliza<strong>do</strong>. Ambientes de trabalho cooperativos se tornaram umarealidade tanto nas empresas como nas universidades, exigin<strong>do</strong> a interconexão <strong>do</strong>s equipamentos.Para solucionar problemas de desempenho, os pesquisa<strong>do</strong>res criaram novas arquiteturas quepropunham a distribuição e o paralelismo como forma de melhorar desempenho, confiabilidade e modularidade<strong>do</strong>s sistemas computacionais, alem de um sistema centraliza<strong>do</strong> de repositório de informasses, ou melhor,servi<strong>do</strong>res.Roberto Amaral – Marcelo Soares Farias 03/03/2010Página 3


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXEvolução das ArquiteturasA maioria <strong>do</strong>s computa<strong>do</strong>res projeta<strong>do</strong>s até a década de 1980 teve sua concepção baseada nosmodelos original de Von Neumann. A interação perfeita entre o mo<strong>do</strong> como os programas são desenvolvi<strong>do</strong>s ea maneira como são interpreta<strong>do</strong>s foi uma das razões para o grande sucesso de tal modelo.A revolução nos sistemas de computa<strong>do</strong>res começou com os avanços de tecnologia de integraçãode circuitos, que reduziram em muito os custos das partes de tais sistemas, onde várias arquiteturas foramentão propostas.Dentre as alternativas apresentadas, podemos citar os Sistemas de UCP única com múltiplasUnidades Funcionais, as Máquinas Pipeline e os Processa<strong>do</strong>res de matriz (Array Processors).A idéia de seqüência múltiplas e independentes de instruções em um sistema composto por várioselementos de processamento compartilhan<strong>do</strong> um espaço comum de memória aparece em uma outraarquitetura (Sistemas de Multiprocessa<strong>do</strong>res) com as seguintes características:• Dois ou mais processa<strong>do</strong>res de capacidade aproximadamente iguais.• To<strong>do</strong>s os processa<strong>do</strong>res dividem o acesso a uma memória comum.• To<strong>do</strong>s os processa<strong>do</strong>res compartilham os canais de I/O unidades de controle e dispositivos periféricos.• O sistema total é controla<strong>do</strong> pôr um único sistema operacional.Por último surgiram os Sistemas de Processamento Distribuí<strong>do</strong>s por Eckhouse 78 como uma”coleção de elementos de processamentos interconecta<strong>do</strong>s tanto logicamente quanto fisicamente paraexecução cooperativa de programas de aplicação com controle <strong>do</strong>s recursos descentraliza<strong>do</strong>”, o qual éo objetivo deste curso.Em Sistemas Distribuí<strong>do</strong>s, o esta<strong>do</strong> <strong>do</strong> sistema é fragmenta<strong>do</strong> em partes que residem emdiferentes processa<strong>do</strong>res e memórias, com comunicação entre essas partes sujeita a retar<strong>do</strong>s variáveis edesconheci<strong>do</strong>s. Em sistemas distribuí<strong>do</strong>s é impossível forçar a simultaneidade de eventos. A mínimainterferência em uma execução de tarefas paralelas vai permitir a obtenção de sistemas de grandedesempenho. A não existência de qualquer elemento sem o qual o sistema para totalmente lhe confere altaconfiabilidade. A possibilidade de utilização em larga escala de um pequeno número de elementos básicos dehardware e software é responsável pelo eleva<strong>do</strong> grau de modularidade <strong>do</strong> sistema.Embora difícil de caracterizar, a arquitetura de múltiplos processa<strong>do</strong>res tem melhor aplicação emsistemas que exigem grande disponibilidade, grandes requisitos de vazão, tempos de resposta garanti<strong>do</strong>s ebaixos, alto grau de modularidade, e também onde as tarefas podem ser executadas de mo<strong>do</strong> concorrente.Um Sistema Distribuí<strong>do</strong> vai ser forma<strong>do</strong> por um conjunto de módulos processa<strong>do</strong>res interliga<strong>do</strong>spor um sistema de comunicação. Vemos então que a interconexão de sistemas veio atender a duasnecessidades distintas:• Construção de sistemas com maior desempenho e maior confiabilidade• Compartilhamento de recursos.Roberto Amaral – Marcelo Soares Farias 03/03/2010Página 4


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXAlguns autores consideram como Sistema Distribuí<strong>do</strong> apenas àqueles construí<strong>do</strong>s para atender aprimeira necessidade, classifican<strong>do</strong> como Redes de Computa<strong>do</strong>res os sistemas construí<strong>do</strong>s com a finalidadede permitir o compartilhamento de recursos. Outros preferem classificar to<strong>do</strong>s esses sistemas como SistemasDistribuí<strong>do</strong>s e subclassificá-los em Máquinas de Arquitetura Distribuída e Redes de Computa<strong>do</strong>res.Uma Máquina de Arquitetura Distribuída é composta por um número ilimita<strong>do</strong>, mas finito demódulos autônomos de processamento interconecta<strong>do</strong>s para formar um único sistema, no qual o controleexecutivo global é implementa<strong>do</strong> através da cooperação de elementos descentraliza<strong>do</strong>s.Uma Rede de Computa<strong>do</strong>res também é formada por um número ilimita<strong>do</strong>, mas finito de módulosautônomos de processamento interconecta<strong>do</strong>s, no entanto a independência <strong>do</strong>s vários módulos deprocessamento é preservada na sua tarefa de compartilhamento de recursos e troca de informações.MAS ENTÃO O QUE VEM A SER UMA REDE DE COMPUTADORES?É UM MEIO FÍSICO E LÓGICO DE COMUNICAÇÃO DE DADOS,COMPARTILHADO, O QUAL POSSUI OBJETIVO DE UNIR INFORMAÇÕES ENTRETODOS OS PARCIPANTES DESTE INFODUTO CONTROLADO DE DADOS.“Quan<strong>do</strong> você precisar de ir além <strong>do</strong> computa<strong>do</strong>r em cima desua mesa, esta na hora de instalar uma rede local”.Roberto Amaral – Marcelo Soares Farias 03/03/2010Página 5


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXClassificação das Redes de Computa<strong>do</strong>resAs redes de computa<strong>do</strong>res podem ser classificadas quanto sua abrangência geográfica. Para cada tipode rede deve existir um tipo de meio de transmissão assim como um tipo de protocolo que fará essacomunicação. Na junção de todas estas idéias, podemos considerar que cada tipo de rede, possuirá suacaracterística particular assim como seus possíveis protocolos de comunicação.TIPOS DE REDESCada tipo de rede tem suas características principais ligadas a sua abrangência, ou seja, a suacapacidade de atendimento em Km.• LAN (Local Area Network) : As redes locais tem uma abrangência limitada por um prédio, uma sala,um campus ou uma fábrica num limite de alguns quilômetros ( 2 a 3 Km).• MAN (Metropolitan Area Network) : As redes metropolitanas podem atender uma grande área comouma região metropolitana, por exemplo atendida por uma anel de fibras óticas interligan<strong>do</strong> diversosmunicípios como se fosse uma infra-estrutura única, com alcance de 30 Km.• WAN (Wide Area Network) : As redes WAN também conhecidas como redes de longa distânciapodem ser redes nacionais atenden<strong>do</strong> to<strong>do</strong> o território como também redes internacionais interligadasvia satélite ou cabos submarinos.Podemos considerar a tabela abaixoRoberto Amaral – Marcelo Soares Farias 03/03/2010Página 6


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXTopologia“Topologia para redes de computa<strong>do</strong>res está relacionada como os equipamentos que compõeuma rede são distribuí<strong>do</strong>s em um determina<strong>do</strong> espaço. Porem esta distribuição não está relacionada somentea questões físicas, mas sim sobre questões lógicas também.”A Topologia define a estrutura da rede. Há <strong>do</strong>is pontos na definição de topologia: a topologia física, que é olayout real <strong>do</strong> meio físico de transmissão, e a topologia lógica, que define como os meios são acessa<strong>do</strong>s. Astopologias físicas geralmente usadas são barramento, anel, estrela, estrela estendida, hierárquica e malha.• Barramento: usa um único segmento de transmissão, ao qual to<strong>do</strong>s os hosts se conectam diretamente.• Anel: conecta um host ao próximo e o último host ao primeiro. Isso cria um anel físico <strong>do</strong> cabo.• Estrela: conecta to<strong>do</strong>s ao ponto central, sen<strong>do</strong> normalmente um hub ou switch..• Estrela estendida: une as estrelas individuais vinculan<strong>do</strong> os hubs/switches.• Hierárquica: forma similar a uma estrela estendida, mas em vez de unir os hubs/switches, o sistema évincula<strong>do</strong> a um computa<strong>do</strong>r que controla o tráfego na topologia.• Malha: Nesta, cada host tem suas próprias conexões com to<strong>do</strong>s os outros hosts. Isso reflete o projetoda Internet, que possui vários caminhos para qualquer lugar.A topologia lógica de uma rede é a forma como os hosts se comunicam através <strong>do</strong>s meios. Os <strong>do</strong>is tiposmais comuns de topologias lógicas são broadcast e passagem de token.• Broadcast: simplesmente significa que cada host envia seus da<strong>do</strong>s a to<strong>do</strong>s os outros hosts no meioda rede. As estações não seguem nenhuma ordem para usar a rede, a primeira a solicitar é a atendida.• Passagem de token: controla o acesso à rede, passan<strong>do</strong> um token eletrônico seqüencialmentepara cada host. Quan<strong>do</strong> um host recebe o token, significa que esse host pode enviar da<strong>do</strong>s na rede. Seo host não tiver da<strong>do</strong>s a serem envia<strong>do</strong>s, ele vai passar o token para o próximo host.Roberto Amaral – Marcelo Soares Farias 03/03/2010Página 7


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXRoberto Amaral – Marcelo Soares Farias 03/03/2010Página 8


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXDispositivos de RedesOs dispositivos que se conectam diretamente a um segmento de rede são chama<strong>do</strong>s de hosts. Esseshosts incluem computa<strong>do</strong>res, clientes e servi<strong>do</strong>res, impressoras, scanners e muitos outros dispositivos <strong>do</strong>usuário. Esses dispositivos fornecem aos usuários conexão à rede, com a qual os usuários compartilham,criam e obtêm as informações.Placas de RedesEm termos de aparência, uma placa de rede é uma placa de circuito impresso que se encaixa no slotde expansão de um barramento em uma placa mãe <strong>do</strong> computa<strong>do</strong>r ou em um dispositivo periférico. É tambémchamada de placa de rede. Em computa<strong>do</strong>res laptop/notebook as placas de rede são normalmente <strong>do</strong>tamanho de uma placa PCMCIA.As placas de rede são consideradas dispositivos da camada 2 <strong>do</strong> modelo OSI, porque cada placa derede em to<strong>do</strong> o mun<strong>do</strong> transporta um código exclusivo, chama<strong>do</strong> de um endereço Media Access Control(MAC). Esse endereço é usa<strong>do</strong> para controlar as comunicações de da<strong>do</strong>s <strong>do</strong> host na rede.Sempre que existir um dispositivo de rede acopla<strong>do</strong> ao meio de rede, há algum tipo de dispositivo deplaca de rede, mesmo que geralmente não seja exibi<strong>do</strong>.Roberto Amaral – Marcelo Soares Farias 03/03/2010Página 9


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXCABEAMENTOS DE REDEPara que computa<strong>do</strong>res funcionem em conjunto em uma rede, são necessários meios de transmissãoou cabos. Os meios de transmissão são utiliza<strong>do</strong>s em redes de computa<strong>do</strong>res para ligar as estações entre si,sen<strong>do</strong> que estes meios diferem com relação à banda passante, potencial para conexão ponto a ponto oumultiponto, limitação geográfica, imunidade a ruí<strong>do</strong>, custo, disponibilidade de componentes e confiabilidade.Qualquer meio físico capaz de transportar informações eletromagnéticas é passível de ser usa<strong>do</strong> emredes de computa<strong>do</strong>res. Os mais comuns utiliza<strong>do</strong>s são: o par trança<strong>do</strong>, o cabo coaxial e a fibra ótica. Sobcircunstâncias especiais, radiodifusão, infravermelho, enlaces de satélite e microondas também são escolhaspossíveis. As taxas de transmissão desses meios são medidas em bits por segun<strong>do</strong>, ou bps.Cabo coaxialÉ composto de um centro condutivo, envolto por uma camada isolante, e novamente envolto por uma camadacondutora. É bastante resistente a interferências. Este possui uma imunidade a ruí<strong>do</strong> ótima, e uma fugaeletromagnética mais baixa. Os ruí<strong>do</strong>s geralmente presentes em áreas urbanas e industriais são de baixafreqüência, tornan<strong>do</strong> as transmissões em banda básica mais susceptíveis a eles. Quanto ao custo, o coaxial émais caro <strong>do</strong> que o par trança<strong>do</strong>, assim como é mais eleva<strong>do</strong> o custo das interfaces para ligação ao cabo.Para ligar esse tipo de cabo na placa de rede de um computa<strong>do</strong>r, é necessário um conector BNC e um T.Vantagens de sua utilização• Baixos custos de manutenção;• Topologia simples de implementar;• Resistência à ruí<strong>do</strong>s e interferências;Desvantagens de sua utilização• Distâncias limitadas;• Baixo nível de segurança;• Difícil de fazer grandes mudanças na topologia da rede.Roberto Amaral – Marcelo Soares Farias 03/03/2010Página 10


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCabo par trança<strong>do</strong>CURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXEste é composto por <strong>do</strong>is pares de fios (ou 4 pares ) envoltos por uma camada isolante de forma areduzir o ruí<strong>do</strong> e manter constante as prioridades elétricas <strong>do</strong> meio através de to<strong>do</strong> o seu comprimento. Aperda de energia é um parâmetro importante quan<strong>do</strong> se discute não só a taxa máxima de transmissão, mastambém a distância máxima permitida, qualquer que seja o meio de transmissão. A perda de energia aumentacom a distância, até chegar um ponto onde o receptor não consegue mais reconhecer o sinal. A energia podeser perdida por radiação ou por calor. Sua desvantagem é a sensibilidade às interferência e ruí<strong>do</strong>. Com oaumento das taxas de transmissão, cabos de par trança<strong>do</strong> de melhor qualidade foram gradativamente sen<strong>do</strong>produzi<strong>do</strong>s. Uma aplicação típica para o par trança<strong>do</strong> é a ligação ponto a ponto entre terminais e computa<strong>do</strong>rese entre estações da rede e o meio de transmissão. Esse é o mais utiliza<strong>do</strong> atualmente e, o custo total da rede émaior pelo fato de necessitar de equipamentos extras (como hub, por exemplo). O conector utiliza<strong>do</strong> é o RJ-45.ConectorizaçãoPino 1 Branco <strong>do</strong> VerdePino 2 VerdePino 3 Branco <strong>do</strong> LaranjaPino 4 AzulPino 5 Branco <strong>do</strong> AzulPino 6 LaranjaPino 7 Branco <strong>do</strong> MarromPino 8 MarromPINOSINAL1 Transmissão -2 Transmissão +3 Recepção -456 Recepção +78Roberto Amaral – Marcelo Soares Farias Página 1103/03/2010


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXFibra ópticaA transmissão em fibra ótica é realizada pelo envio de um sinal de luz. O cabo ótico consiste em umfilamento de sílica ou plástico, por onde é feita a transmissão da luz. Ao re<strong>do</strong>r <strong>do</strong> filamento existem substânciasde menor índice de refração, que fazem com que os raios sejam refleti<strong>do</strong>s internamente, minimizan<strong>do</strong> assim asperdas de transmissão. Existem três tipos de fibras óticas: as multímo<strong>do</strong> degrau, as multímo<strong>do</strong> com índicegradual e as monomo<strong>do</strong>. Fibras ópticas não estão sujeitas a interferência e transmitem a uma taxa bastanteelevada: 100.000 Mbps, poden<strong>do</strong> chegar a 200.000 Mbps.CaracterísticasA fibra óptica é praticamente imune às influências <strong>do</strong> meio ambiente por onde está passan<strong>do</strong>.Imunidade total a interferência eletromagnética e interferência por radio-frequência. Não gera camposmagnéticos e eletromagnéticos. Insensível a relâmpagos e descargas atmosféricas. Segura mesmo emcontacto com condutores de alta voltagem, pois é totalmente dielétrica. Muito segura contra grampeamento(roubo de informações). Suporta grandes distâncias entre repeti<strong>do</strong>res.Sua aplicação se dá emtelecomunicações, é usada para Redes de Telecomunicações e Transmissão de sinais de processamento deda<strong>do</strong>s.Redes de Telecomunicações:- Circuitos de telefonia interurbanos.- Conexões de redes locais (LANs e WANs).- Redes para controle de distribuição de energia elétrica- Redes de transmissão de da<strong>do</strong>s.- Redes de distribuição de sinais de radiodifusão e televisão- Redes de estúdios, cabos de câmeras de televisão.- Redes industriais, em monitoração e controle de processos.- Transmissão de sinais de processamento de da<strong>do</strong>s de computa<strong>do</strong>r para computa<strong>do</strong>r.- Interligação de circuitos dentro de equipamentos.- Aplicações de controle em geral ( fábricas, maquinários)- Em veículos motoriza<strong>do</strong>s, aeronaves, trens e naviosVantagens de sua utilizaçãoDesvantagens de sua utilizaçãoRoberto Amaral – Marcelo Soares Farias 03/03/2010Página 12


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXEquipamentos de RedesExistem diversos fabricantes de equipamentos de redes de computa<strong>do</strong>res, porem basicamente osequipamentos estão classifica<strong>do</strong>s em 3 tipos:1. Os que simplesmente repassam as informações (sinais elétricos)2. Os que tratam a informação através <strong>do</strong>s endereços físicos <strong>do</strong>s equipamentos3. Os que realizam a operação de encaminhar a informação através de redes lógicasNo grupo 1, que são replica<strong>do</strong>res de sinais elétricos, trabalhan<strong>do</strong> no nível físico, estão os Hubs e Repeti<strong>do</strong>resNo grupo 2, os equipamentos que realizam a comutação no primeiro nível lógico de uma rede, são os Switch.No grupo 3 , os equipamentos que realizam o roteamento entre redes diferentes, os Rotea<strong>do</strong>res.HUBA finalidade de um hub é gerar os sinais da rede novamente e os retemporizar. Isso é feito no nível debit para um grande número de hosts usan<strong>do</strong> um processo conheci<strong>do</strong> como concentração. Essa definição émuito similar a <strong>do</strong>s repeti<strong>do</strong>res, por essa razão um hub é também conheci<strong>do</strong> como repeti<strong>do</strong>r multiportas. Adiferença é o número de cabos que se conectam ao dispositivo. Os motivos para se usar os hubs é criar umponto de conexão central para os meios de cabeamento e aumentar a confiabilidade da rede. Aumenta-se aconfiabilidade da rede permitin<strong>do</strong> qualquer cabo único a falhar sem afetar toda a rede. Isso difere da topologiade barramento onde, se houver uma falha no cabo, toda a rede será afetada. Os hubs são considera<strong>do</strong>sdispositivos da camada 1 porque apenas geram novamente o sinal e o transmite para suas portas.Existem diferentes classificações <strong>do</strong>s hubs na rede. A primeira classificação é dizer se os hubs sãoativos ou passivos. Hubs ativos obtêm energia de uma fonte de alimentação para gerar novamente os sinais darede. Alguns são denomina<strong>do</strong>s dispositivos passivos porque simplesmente repartem o sinal entre váriosusuários, como usan<strong>do</strong> um fio "Y". Os hubs passivos não geram novamente os bits. Outra classificação é se oshubs são inteligentes ou burros. Os hubs inteligentes têm portas <strong>do</strong> console, o que significa que podem serprograma<strong>do</strong>s para gerenciar o tráfego da rede. Os hubs burros simplesmente aceitam um sinal da rede deentrada e o repete em todas as portas sem realizar qualquer gerenciamento.Roberto Amaral – Marcelo Soares Farias 03/03/2010Página 13


SWITCH<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXUm switch é um dispositivo da camada 2. A diferença entre o hub e o switch é que os switches tomamas decisões com base nos endereços MAC e os hubs não tomam nenhuma decisão. Devi<strong>do</strong> às decisões queos switches tomam, eles tornam uma LAN muito mais eficiente. Fazem isso "comutan<strong>do</strong>" os da<strong>do</strong>s apenas pelaporta à qual o host apropria<strong>do</strong> está conecta<strong>do</strong>. Os switches, à primeira vista, se parecem com os hubs. Oshubs e os switches têm muitas portas de conexão, uma vez que parte de suas funções é a concentração daconectividade. A diferença entre um hub e um switch é o que acontece dentro <strong>do</strong> dispositivo.A finalidade de um switch é concentrar a conectividade, ao mesmo tempo tornan<strong>do</strong> a transmissão deda<strong>do</strong>s mais eficiente. Ele comuta os pacotes das portas de entrada para as portas de saída, enquanto fornecea cada porta a largura de banda completa.Rotea<strong>do</strong>resO rotea<strong>do</strong>r encontra-se na camada de rede OSI, conhecida como camada 3. Toma decisões com baseem grupos de endereços de rede ao invés de endereços MAC individuais. Os rotea<strong>do</strong>res podem tambémconectar diferentes tecnologias da camada 2, como Ethernet, Token-ring e FDDI. No entanto, devi<strong>do</strong> à suahabilidade de rotear pacotes basea<strong>do</strong>s nas informações da camada 3, os rotea<strong>do</strong>res se tornaram o backboneda Internet, executan<strong>do</strong> o protocolo IP. A finalidade de um rotea<strong>do</strong>r é examinar os pacotes de entrada (da<strong>do</strong>sda camada 3), escolher o melhor caminho para eles através da rede e depois comutar os pacotes para a portade saída apropriada. São dispositivos de controle de tráfego mais importantes nas grandes redes. Permitemque qualquer tipo de computa<strong>do</strong>r se comunique com qualquer outro computa<strong>do</strong>r em qualquer parte <strong>do</strong> mun<strong>do</strong>.Roberto Amaral – Marcelo Soares Farias 03/03/2010Página 14


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXSistema de EndereçamentoDevemos considerar que existem <strong>do</strong>is tipos de endereçamento dentro de uma rede, ou melhor, umamáquina pode assumir 2 tipos de endereços. Os endereços físicos, que são atribuí<strong>do</strong>s pelos fabricantes deplacas de redes e os endereços lógicos (IP) atribuí<strong>do</strong>s pelo administra<strong>do</strong>r de redes.Protocolo IPO protocolo IP foi projeta<strong>do</strong> ten<strong>do</strong> como principal objetivo a ligação inter-redes. Por isto ele éconsidera<strong>do</strong> como elemento integra<strong>do</strong>r da Internet, através dele é possível a conexão de diversas sub-redes. AInternet é composta de diversos backbones construí<strong>do</strong>s através linhas de altas velocidades de diversos tiposde tecnologia. A cada um destes backbones estão conectadas várias redes locais de muitas outras instituiçõescada uma com suas características de sub-rede. Em muitas empresas é comum utilizar o IP, e outrosprotocolos de sua família, para interligar computa<strong>do</strong>res de tecnologia diferentes.Endereçamento IPIdentifica<strong>do</strong>res UniversaisDiz-se que um sistema provê um serviço de comunicação universal quan<strong>do</strong> é possível a quaisquer <strong>do</strong>selementos deste sistema se comunicar arbitrariamente. Para tornar um sistema de comunicação universal,devemos estabelecer um méto<strong>do</strong> globalmente aceito para identificação <strong>do</strong>s componentes a ele conecta<strong>do</strong>s.Nas redes TCP/IP, a entidade que atua como identifica<strong>do</strong>r universal é o endereço IP, um número de 32 dígitosbinários. A idéia básica de seus mentores era a de tornar o roteamento simples e eficiente.As três Classes Primárias de EndereçoA Internet é uma gigantesca rede de computa<strong>do</strong>res como qualquer outra rede física. A grandediferença, entretanto, está no fato de que a Internet é uma estrutura virtual, concebida por seus desenhistas eimplementada inteiramente em software. Assim, os projetistas tiveram liberdade de arbitrar o tamanho eformato <strong>do</strong>s pacotes, endereços, técnicas de roteamento, etc. Na questão <strong>do</strong> endereçamento, cada host éatribuí<strong>do</strong> um número inteiro que será seu endereço - no caso o endereço IPCada endereço IP possui 32 bits, que se divide em duas partes: uma primeira que identifica a rede aqual esse computa<strong>do</strong>r está logicamente conecta<strong>do</strong> e uma segunda parte que identifica o computa<strong>do</strong>rpropriamente dito. Observe que todas as máquinas conectadas a uma mesma rede irão compartilhar essaprimeira parte, que se convencionou chamar net id (identifica<strong>do</strong>r da rede). Analogamente, à segunda porção <strong>do</strong>endereço IP é o host id (identificação da máquina).Em termos práticos, cada endereço IP deverá estar conti<strong>do</strong> em uma das cinco categorias. A classe deum endereço pode ser identificada através <strong>do</strong> exame <strong>do</strong>s quatro bits de mais alta ordem, sen<strong>do</strong> que as trêsclasses básicas (A, B e C) podem ser distinguidas apenas pelos <strong>do</strong>is primeiros. A classe A, usada para umpequeno número de redes que contêm mais de 65.535 hosts, reserva 7 bits para o net id e 24 bits para o hostid. Os endereços da classe B se destinam a redes de tamanho intermediário (entre 256 e 65535 máquinas) ereservam 14 bits para o net id e 16 bits para o host id. Finalmente, a classe C, apropriada para pequenasRoberto Amaral – Marcelo Soares Farias 03/03/2010Página 15


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXredes, aloca 21 bits para o net id e apenas 8 bits para o host id. Observe que os endereços IP são estrutura<strong>do</strong>sde forma a permitir uma rápida extração da identificação da rede (net id) e da máquina a ela conectada (hostid). Os gateways dependem da extração eficiente <strong>do</strong> net id para realizar o roteamento <strong>do</strong>s pacotes IP.Endereço de uma rede e Endereço de Difusão (Broadcast)Por convenção, um host id 0 nunca é atribuí<strong>do</strong> a uma máquina. Ao invés disso, esse endereço com osbits <strong>do</strong> host id to<strong>do</strong>s zera<strong>do</strong>s irá se referir à rede propriamente dita. O endereçamento IP permite que se façareferência a to<strong>do</strong>s os hosts de uma determinada rede através <strong>do</strong> chama<strong>do</strong> endereço de difusão. Um endereçode broadcast é aquele em que os bits <strong>do</strong> host id são to<strong>do</strong>s 1. Nem todas as redes suportam a difusão, algumasirão precisar de implementação de software e outras não permitirão esta facilidade.Difusão localO endereço de difusão permite que um sistema remoto mande um pacote para to<strong>do</strong>s os nós de umadeterminada rede. Do ponto de vista <strong>do</strong> endereçamento, a desvantagem deste esquema é que ele requer oconhecimento <strong>do</strong> endereço de rede. Outra forma de endereço de difusão é chamada endereço de difusãolimitada ou endereço de difusão local. Este endereço consiste de 32 bits iguais a 1. Esse mecanismo possibilitaa referência a todas as máquinas de uma rede local sem que os endereços IP reais sejam conheci<strong>do</strong>s.Endereços de referência à própria rede e ao próprio host.Campos de endereço preenchi<strong>do</strong>s somente com 1's indicam "to<strong>do</strong>s". Um endereço com 32 bits 1,indica todas as máquinas desta rede e um endereço com to<strong>do</strong>s os bits <strong>do</strong> host id iguais a 1 indica todas asmáquinas de uma determinada rede (especificada no net id). Analogamente, campos preenchi<strong>do</strong>s com 0's sãogeralmente interpreta<strong>do</strong>s como significan<strong>do</strong> "este". Assim, um endereço com 32 bits 0, indica o próprio host(este host) e um endereço com to<strong>do</strong>s os bits <strong>do</strong> net id iguais a zero, se refere à rede local (esta rede).Endereço de MulticastMuitas tecnologias de rede contêm mecanismos que permitem o envio simultâneo de pacotes amúltiplos destinatários. Em redes de barramento (como a Ethernet) isso pode ser alcança<strong>do</strong> com o envio de umúnico pacote (captura<strong>do</strong> por to<strong>do</strong>s os hosts). Em outras topologias, com conexões ponto-a-ponto, esse pacotedeverá ser replica<strong>do</strong> para alcançar to<strong>do</strong>s os hosts.Roberto Amaral – Marcelo Soares Farias 03/03/2010Página 16


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXAlgumas redes suportam um segun<strong>do</strong> tipo de comunicação ponto multi-ponto, conheci<strong>do</strong> commulticast. Ao contrário <strong>do</strong> broadcast, a técnica de multicast permite que cada host "escolha" se deseja ou nãoparticipar daquele "canal". Quan<strong>do</strong> um grupo de máquinas decide se comunicar, elas selecionam um endereçode multicast que será, então, o seu canal de comunicação.Na Internet, quan<strong>do</strong> um determina<strong>do</strong> grupo de máquinas deseja criar um grupo de multicast, elasdevem todas "sintonizar", isto é, configurar suas interfaces para receber pacotes envia<strong>do</strong>s para um mesmoendereço. Esse endereço deverá pertencer à Classe D. Assim, cada endereço entre 224.0.0.0 e239.255.255.255 (mais de 268 milhões de alternativas!) pode ser usa<strong>do</strong> como multicast.A idéia é que hosts podem, a qualquer momento, conectar-se ou desconectar-se de um grupo demulticast. A técnica de multicasting traz como vantagem sobre a difusão, uma melhor seletividade. Isto é, osda<strong>do</strong>s somente serão envia<strong>do</strong>s aos hosts necessários.Notação DecimalNúmeros de 32 bits não são facilmente manipuláveis por seres humanos, e mesmo aplicação nãotratam diretamente com este tipo de representação. Uma forma mais fácil de representar endereços IP é a departicioná-lo em quatro octetos converti<strong>do</strong>s para a notação decimal e separa<strong>do</strong>s por pontos.Desta forma, o binário11000000 11000110 00001011 10000001passa a ser trata<strong>do</strong> como192.198.11.129Pode-se também atribuir nomes alfabéticos a hosts, facilitan<strong>do</strong> ainda mais sua memorização. Estatradução é apoiada por um protocolo específico que atua sobre uma imensa base de da<strong>do</strong>s distribuídaconhecida como Domain Name System (DNS).Por questões de simplificação pode-se representar um endereço IP de 32 bits agrupan<strong>do</strong>-os em gruposde 8 bits e representan<strong>do</strong> estes grupos em valores decimais. Por exemplo o endereço11001000100010011000001100000010 representa<strong>do</strong> em forma de ponto decimal seria 200.137.131.2.Classe A 1.0.0.0 até 127.255.255.255Classe B 128.0.0.0 até 191.255.255.255Classe C 192.0.0.0 até 223.255.255.255Classe D 224.0.0.0 até 239.255.255.255Classe E 240.0.0.0 até 247.255.255.255Classes de Endereços representa<strong>do</strong>s sobe forma decimalRoberto Amaral – Marcelo Soares Farias 03/03/2010Página 17


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sEndereço de LoopbackCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXO endereço 127.0.0.0 é reserva<strong>do</strong> à aplicação de loopback. Isto é, qualquer pacote envia<strong>do</strong> a esteendereço não deve trafegar na rede, mas retornar ao próprio remetente (isto equivale a dizer que o pacoteretornará da própria interface de rede <strong>do</strong> host). O endereço de loopback ou localhost se presta a testes ecomunicação entre processos que rodam numa mesma máquina.Resumo EspeciaisEndereçamento de Sub-RedeUma técnica que permite que se partilhe um mesmo endereço de rede entre diversas redes é oendereçamento de sub-rede. Vamos imaginar uma instituição a qual foi atribuí<strong>do</strong> um endereço classe C masque possui diversas redes interconectadas em suas instalações. Como partilhar este endereço entre estasdiversas redes? A adição de sub-redes implica uma nova subdivisão <strong>do</strong> endereço IP. O sufixo designa<strong>do</strong>r <strong>do</strong>host (host id) é dividi<strong>do</strong> em duas partes: a primeira designará uma sub-rede, e a segunda um host.O problema básico que surge quan<strong>do</strong> realizamos esta nova divisão é que o esquema convencional deroteamento, que procura extrair a porção que designa a rede, deixa de funcionar. Para suplantar estadificuldade, introduz-se no sistema de roteamento uma nova entidade: a máscara de sub-rede. A máscara desub-rede é um número de 32 bits que permite a extração de sua "porção de rede". Isto é, ele possui bits 1 nasposições correspondentes a esta "porção de rede". Para uma rede classe C sem sub-redes a máscara seria:11111111 11111111 11111111 00000000255.255.255.0que em notação decimal corresponde a:Roberto Amaral – Marcelo Soares Farias 03/03/2010Página 18


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXNomenclatura das interfaces no LinuxUm sistema Linux pode ter várias interfaces, cada uma com um endereço de Protocolo de Internet (IP)diferente. As interfaces podem ser de diferentes tipos, incluin<strong>do</strong>:• Loopback: lo• Ethernet: eth0, eth1, . . .• Wi-Fi: wlan0, wlan1, . . .• Token Ring: tr0, tr1, . . .• PPP: ppp0, ppp1, . . .Definin<strong>do</strong> configuraçõesAs ferramentas de configuração de rede de baixo nível tradicionais nos sistemas GNU/Linux são osprogramas ifconfig e route que vêm no pacote net-tools. Essas ferramentas oficialmente foram superadas peloip que vem no pacote iproute. O programa ip funciona no Linux 2.2 e superiores e é mais capaz que asferramentas antigas. Entretanto, as ferramentas antigas ainda funcionam e são mais familiares a muitosusuários.# ifconfig argumentos ( Usa<strong>do</strong> para exibir e configurar uma interface de rede)# route ( Usa<strong>do</strong> para exibir e configurar a tabela de roteamento)Exemplo:Mudan<strong>do</strong> o endereço IP da interface eth0 de 192.168.0.3 para 192.168.0.111 e tornan<strong>do</strong> eth0 como rota para arede 10.0.0.0 via 192.168.0.1.Executan<strong>do</strong> ifconfig e route sem argumentos de interface, vamos exibir o esta<strong>do</strong> atual de todas as interfaces derede e roteamento.# ifconfigeth0 Link encap:Ethernet HWaddr 08:00:46:7A:02:B0 inet addr:192.168.0.3 Bcast:192.168.0.255Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1RX packets:23363 errors:0 dropped:0 overruns:0 frame:0TX packets:21798 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:100RX bytes:13479541 (12.8 MiB) TX bytes:20262643 (19.3 MiB)Interrupt:9lo Link encap:Local Loopbackinet addr:127.0.0.1 Mask:255.0.0.0UP LOOPBACK RUNNING MTU:16436 Metric:1RX packets:230172 errors:0 dropped:0 overruns:0 frame:0TX packets:230172 errors:0 dropped:0 overruns:0 carrier:0Roberto Amaral – Marcelo Soares Farias 03/03/2010Página 19


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXcollisions:0 txqueuelen:0RX bytes:22685256 (21.6 MiB) TX bytes:22685256 (21.6 MiB)# routeKernel IP routing tableDestination Gateway Genmask Flags Metric Ref Use Iface192.168.0.0 * 255.255.0.0 U 0 0 0 eth0default 192.168.0.1 255.255.255.255 UG 0 0 0 eth0Desativan<strong>do</strong> a interface eth0:# ifconfig eth0 inet <strong>do</strong>wnConferin<strong>do</strong>:# ifconfig# routeAtivan<strong>do</strong> a interface com o novo endereço IP e novo roteamento.# ifconfig eth0 inet up 192.168.0.111 netmask 255.255.0.0 broadcast 192.168.255.255# route add -net 10.0.0.0 netmask 255.0.0.0 gw 192.168.0.1 dev eth0Para vermos o resulta<strong>do</strong>:# ifconfigeth0 Link encap:Ethernet HWaddr 08:00:46:7A:02:B0inet addr:192.168.0.111 Bcast:192.168.255.255 Mask:255.255.0.0UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1...lo Link encap:Local Loopbackinet addr:127.0.0.1 Mask:255.0.0.0# routeKernel IP routing tableDestination Gateway Genmask Flags Metric Ref Use Iface192.168.0.0 * 255.255.0.0 U 0 0 0 eth010.0.0.0 192.168.0.1 255.0.0.0 UG 0 0 0 eth0#ipUsa<strong>do</strong> para exibir e configurar uma interface de rede.Uso:ip argumentosOs equivalentes para o ip <strong>do</strong>s coman<strong>do</strong>s ifconfig e route anteriores são:Roberto Amaral – Marcelo Soares Farias 03/03/2010Página 20


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUX• ip link show• ip route list• ip link set eth0 <strong>do</strong>wn• ip addr del dev eth0 local 192.168.0.3• ip addr add dev eth0 local 192.168.0.111/16 broadcast 192.168.255.255• ip link set eth0 up• ip route add dev eth0 to 10.0.0.0/8 src 192.168.0.111 via 192.168.0.1O programa ip mostra sua sintaxe de coman<strong>do</strong> quan<strong>do</strong> executa<strong>do</strong> com o argumento help.Por exemplo, ip link help mostra:Usage: ip link set DEVICE { up | <strong>do</strong>wn | arp { on | off } | dynamic { on | off } | multicast { on | off } | txqueuelenPACKETS | name NEWNAME | address LLADDR | broadcast LLADDR | mtu MTU }ip link show [ DEVICE ]Configuran<strong>do</strong> uma interface Wi-FiO programa iwconfig, que vem no pacote wireless-tools, é usa<strong>do</strong> para interfaces Wi-Fi, juntamente como ifconfig ou ip.Configuran<strong>do</strong> uma interface com um endereço IP estáticoSuponha que você quer configurar uma interface Ethernet que tem um endereço IP fixo 192.168.0.123. Esseendereço começa com 192.168.0 então deve estar em uma LAN. Suponha também que 192.168.0.1 é oendereço <strong>do</strong> gateway da LAN para a Internet. Edite o arquivo /etc/network/interfaces de forma que inclua umaentrada como essa:iface eth0 inet staticaddress 192.168.0.123netmask 255.255.255.0gateway 192.168.0.1Se você tiver o resolvconf instala<strong>do</strong> então pode adicionar linhas que especifiquem informação de DNS. Porexemplo:iface eth0 inet staticaddress 192.168.0.123netmask 255.255.255.0gateway 192.168.0.1dns-search meu<strong>do</strong>minio.orgdns-nameservers 195.238.2.21 195.238.2.22Depois que a interface foi levantada, os argumentos das opções dns-search e dns-nameservers se tornamdisponíveis para o resolvconf para inclusão no arquivo resolv.conf. O argumento meu<strong>do</strong>minio.org da opçãodns-search corresponde ao argumento de uma opção search em resolv.conf(5). Os argumentos 195.238.2.21Roberto Amaral – Marcelo Soares Farias 03/03/2010Página 21


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXe 195.238.2.22 da opção dns-nameservers corresponde aos argumentos das opções nameserver noresolv.conf(5). Outras palavras de opção reconhecidas são dns-<strong>do</strong>main e dns-sortlist.Configuran<strong>do</strong> uma interface usan<strong>do</strong> DHCPPara configurar uma interface usan<strong>do</strong> DHCP edite o arquivo /etc/network/interfaces de forma que inclua umaentrada como essa:iface eth0 inet dhcpPara que isso funcione você precisa ter instala<strong>do</strong> um <strong>do</strong>s clientes DHCP menciona<strong>do</strong>s abaixo. A configuraçãode baixo nível de interfaces de rede pode ser automatizada por meio <strong>do</strong> Dynamic Host Configuration Protocol(DHCP) (Protocolo de Configuração Dinâmica de Sistemas). Seu firewall ou sistema rotea<strong>do</strong>r ou seu ISP debanda larga podem fornecer endereços IP e outros parâmetros dessa maneira. Para isso funcionar vocêprecisa instalar um <strong>do</strong>s seguintes pacotes:• dhcp3-client (versão 3, Internet Software Consortium)• dhcpcd (Yoichi Hariguchi e Sergei Viznyuk)• pump (Redhat)O pump é simples e largamente utiliza<strong>do</strong>. O dhcp3-client é complexo mas mais configurável.Configuran<strong>do</strong> uma interface Wi-FiO pacote wireless-tools inclui um script /etc/network/if-pre-up.d/wireless-tools que torna possível configurarhardware Wi-Fi (802.11a/b/g) antes de levantar a interface. A configuração é feita usan<strong>do</strong> o programa iwconfig.Para cada parâmetro de coman<strong>do</strong> possível <strong>do</strong> iwconfig você pode incluir uma opção em /etc/network/interfacesnomeada como o parâmetro com um prefixo ”wireless-“. Por exemplo, para definir o ESSID de eth0 parameuessid e a chave de encriptação para 123456789e antes de levantar a eth0 usan<strong>do</strong> DHCP, edite oarquivo /etc/network/interfaces de forma a incluir uma entrada como esta:iface eth0 inet dhcpwireless-essid myessidwireless-key 123456789eConfiguran<strong>do</strong> múltiplas interfaces Ethernet para um gatewaySuponha que a eth0 esteja conectada à Internet com um endereço IP configura<strong>do</strong> por DHCP e que a eth1esteja conectada à LAN com um endereço IP estático 192.168.1.1. Editan<strong>do</strong> o arquivo /etc/network/interfacesde forma a incluir entradas como essas:iface eth0 inet dhcpiface eth1 inet staticaddress 192.168.1.1netmask 255.255.255.0Configuran<strong>do</strong> interfaces virtuaisUsan<strong>do</strong> interfaces virtuais você pode configurar uma única placa Ethernet para ser uma interface para váriassub-redes IP. Por exemplo, suponha que seu sistema esteja em uma rede LAN 192.168.0.x/24. Você querRoberto Amaral – Marcelo Soares Farias 03/03/2010Página 22


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXconectar o sistema à Internet usan<strong>do</strong> um endereço IP público provi<strong>do</strong> via DHCP usan<strong>do</strong> sua placa Ethernetexistente. Edite o /etc/network/interfaces de forma a incluir entradas como essas:iface eth0 inet staticaddress 192.168.0.1netmask 255.255.255.0network 192.168.0.0broadcast 192.168.0.255iface eth0:0 inet dhcpA interface eth0:0 é uma interface virtual. Quan<strong>do</strong> é levantada, também é levantada a sua superior eth0.Reconfiguração de redeO que vem a seguir será importante para o leitor compreender a diferença entre uma interface física e umainterface lógica. Uma interface física é o que temos chama<strong>do</strong> de ”a interface“, a coisa que é chamada eth0,ppp1, ou o que você tiver. Uma interface lógica é um conjunto de valores que pode ser atribuí<strong>do</strong> aosparâmetros variáveis de uma interface física. Se você achar isso confuso, substitua a expressão ”configura<strong>do</strong>como interface lógica X“ pela expressão ”configura<strong>do</strong> com o perfil de interface X“ conforme você ler.As definições iface no arquivo /etc/network/interfaces são na verdade definições de interfaces lógicas, não deinterfaces físicas. Se você nunca quiser reconfigurar suas interfaces então pode ignorar esse fato já que ainterface física X por padrão será configurada como interface lógica X. Entretanto, suponha que seucomputa<strong>do</strong>r seja um laptop que você transporta entre a casa e o trabalho. Quan<strong>do</strong> você conecta o computa<strong>do</strong>rà rede corporativa ou à sua LAN <strong>do</strong>méstica você precisa configurar a eth0 apropriadamente.Primeiro defina duas interfaces lógicas casa e trabalho (ao invés de eth0 como fizemos anteriormente) quedescrevem como a interface deve ser configurada para a rede <strong>do</strong>méstica e a rede <strong>do</strong> trabalho,respectivamente.iface casa inet staticaddress 192.168.0.123netmask 255.255.255.0gateway 192.168.0.1iface work inet staticaddress 81.201.3.123netmask 255.255.0.0gateway 81.201.1.1Então a interface física eth0 pode ser levantada para a rede <strong>do</strong>méstica com a configuração apropriadaespecifican<strong>do</strong> na linha de coman<strong>do</strong>:# ifup eth0=casaPara configurar a eth0 para a rede <strong>do</strong> trabalho execute os coman<strong>do</strong>s:Roberto Amaral – Marcelo Soares Farias 03/03/2010Página 23


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUX# if<strong>do</strong>wn eth0# ifup eth0=workNote que com o arquivo interfaces escrito como acima não será mais possível levantar a eth0 usan<strong>do</strong> apenasifup eth0. A razão para isso é que o ifup usa o nome da interface física como o nome padrão da interface lógicae agora em nosso exemplo não há uma interface lógica eth0 definida.Configuração de rede durante a inicializaçãoNa inicialização o script /etc/rcS.d/S40networking executa o coman<strong>do</strong> ifup -a. Isso levanta todas as interfacesfísicas listadas em entradas auto no etc/network/interfaces. Atualmente é freqüentemente melhor gerenciar aconfiguração de rede usan<strong>do</strong> méto<strong>do</strong>s dinâmicos. Uma vez que estão disponíveis mecanismos para suportarhardware que mude dinamicamente se torna mais simples tratar hardware estático como se fosse dinâmicotambém. Entretanto, na maioria <strong>do</strong>s casos se deseja que pelo menos a interface de loopback lo seja levantadana inicialização. Assim, certifique-se de que o /etc/network/interfaces inclua as seguintes entradas.auto loiface lo inet loopbackVocê pode listar nomes de interfaces físicas adicionais em entradas auto se desejar que também sejamlevantadas durante a inicialização. Nunca liste interfaces PCMCIA em entradas auto. O programa cardmgr dePCMCIA é inicia<strong>do</strong> mais tarde na seqüência de inicialização que quan<strong>do</strong> o /etc/rcS.d/S40networking éexecuta<strong>do</strong>.Configuração de rede via hotplugPara obter suporte a hot plug instale o pacote hotplug. Hardware de rede pode ser conecta<strong>do</strong> com ocomputa<strong>do</strong>r liga<strong>do</strong> durante a inicialização ou depois que um cartão (por exemplo, um cartão PCMCIA) éinseri<strong>do</strong> na máquina ou depois que um utilitário como o discover é executa<strong>do</strong> e carrega os módulos decontrola<strong>do</strong>res necessários. Quan<strong>do</strong> o kernel detecta um novo hardware ele inicializa o controla<strong>do</strong>r (driver) parao hardware e então executa o programa hotplug para configurá-lo. Mais tarde, se o hardware for removi<strong>do</strong>,então o kernel executa o hotplug novamente com ajustes de variáveis de ambiente diferentes. No Debian,quan<strong>do</strong> o hotplug é chama<strong>do</strong> ele executa scripts em /etc/hotplug/ e /etc/hotplug.d/.O hardware de rede recentemente inseri<strong>do</strong> é configura<strong>do</strong> pelo script /etc/hotplug/net.agent. Suponha que seucartão de rede PCMCIA tenha si<strong>do</strong> inseri<strong>do</strong> resultan<strong>do</strong> na interface eth0 se tornan<strong>do</strong> disponível para uso. O/etc/hotplug/net.agent faz o seguinte:ifup eth0=hotplugA menos que você tenha adiciona<strong>do</strong> uma definição de interface lógica ou um mapeamento chama<strong>do</strong> hotplugem /etc/network/interfaces, esse coman<strong>do</strong> não fará nada. Para fazer com que o coman<strong>do</strong> configure a eth0,adicione a seguinte entrada em /etc/network/interfaces:Roberto Amaral – Marcelo Soares Farias 03/03/2010Página 24


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXmapping hotplugscript echo(Não inclua uma entrada mapping como essa se você estiver usan<strong>do</strong> pedi<strong>do</strong>s <strong>do</strong> ifplugd inicia<strong>do</strong>s pelo hotplugpara controlar a interface, como descrito em ‘Gatilhan<strong>do</strong> a configuração de rede – ifplugd’ on the current page.)Se você quiser que apenas a eth0 e mais nenhuma outra interface seja levantada com hot plug então use grepao invés de echo como a seguir:mapping hotplugscript grepmap eth0Resolução de problemas com redeSe você encontrar problemas então verifique a saída seguinte como primeira verificação <strong>do</strong> que estáacontecen<strong>do</strong>:# ifconfig# cat /proc/pci# cat /proc/interrupts# dmesg | moreTestes de rede básicosInstale os pacotes netkit-ping, traceroute, dnsutils, ipchains (para kernel 2.2), iptables (para kernel 2.4) e nettoolse :$ ping yahoo.com # checa a conexão Internet$ traceroute yahoo.com # rastrea pacotes IP$ ifconfig # checa configuração <strong>do</strong> host$ route -n # checa configuração de roteamento$ dig [@servi<strong>do</strong>r-dns.com] host.<strong>do</strong>mínio [{a|mx|any}] |less# checa os registros DNS de host.<strong>do</strong>mínio usan<strong>do</strong> servi<strong>do</strong>r-dns.com para um registro a {mx|any}$ ipchains -L -n |less # checa o filtro de pacotes (kernel 2.2)$ iptables -L -n |less # checa o filtro de pacotes (kernel 2.4)$ netstat -a # encontra todas as portas abertas$ netstat -l --inet # encontra as portas em escuta$ netstat -ln --tcp # encontra todas as portas TCP em escuta (numérico)RoteamentoRoberto Amaral – Marcelo Soares Farias 03/03/2010Página 25


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXO primeiro endereço em uma rede IP é o endereço da própria rede. O último endereço é o endereço debroadcast da rede. To<strong>do</strong>s os outros endereços podem ser aloca<strong>do</strong>s a sistemas na rede. Desses, o primeiro ouo último endereço normalmente é aloca<strong>do</strong> para o gateway de Internet para a rede.A tabela de roteamento contém a informação <strong>do</strong> kernel sobre como enviar pacotes IP aos seus destinos. Aquiestá um exemplo de tabela de roteamento para um sistema Debian em uma rede local (LAN) com endereço IP192.168.50.x/24. O sistema 192.168.50.1 (também na LAN) é um rotea<strong>do</strong>r para a rede corporativa172.20.x.x/16 e o sistema 192.168.50.254 (também na LAN) é um rotea<strong>do</strong>r para a Internet para to<strong>do</strong>s.# routeKernel IP routing tableDestination Gateway Genmask Flags Metric Ref Use Iface127.0.0.0 * 255.0.0.0 U 0 0 2 lo192.168.50.0 * 255.255.255.0 U 0 0 137 eth0172.20.0.0 192.168.50.1 255.255.0.0 UG 1 0 7 eth0default 192.168.50.254 0.0.0.0 UG 1 0 36 eth0A primeira linha depois <strong>do</strong> cabeçalho diz que o tráfego destina<strong>do</strong> à rede 127.x.x.x será rotea<strong>do</strong> para lo ainterface de loopback.• A segunda linha diz que o tráfego destina<strong>do</strong> aos sistemas na LAN serão rotea<strong>do</strong>s através de eth0.• A terceira linha diz que o tráfego destina<strong>do</strong> à rede corporativa será rotea<strong>do</strong> para o gateway192.168.50.1 e também através de eth0.• A quarta linha diz que o tráfego destina<strong>do</strong> à Internet será rotea<strong>do</strong> para o gateway 192.168.50.254 etambém através de eth0.Os endereços IP na tabela também podem aparecer como nomes que são obti<strong>do</strong>s procuran<strong>do</strong> endereços em/etc/networks ou usan<strong>do</strong> o resolve<strong>do</strong>r da Biblioteca C.Configuração de rotasPara inserir uma rota use o coman<strong>do</strong> no formato:route add [ -net | -host ] target [ netmask Nm ] [ gw Gw ] [[ dev ] If ].Exemplos:Inserir uma rota para uma rede:# route add -net 192.168.5.0 netmask 255.255.255.0 gw 192.168.1.3Inserir uma rota para um host, utilizan<strong>do</strong> uma determinada interface ponto-aponto:# route add -net 192.168.10.1 dev ppp0Para selecionar a rota default:# route add default gw 192.168.1.200Roberto Amaral – Marcelo Soares Farias 03/03/2010Página 26


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXPara remover rotas usamos praticamente a mesma sintaxe, mas ao invés <strong>do</strong> "add" usamos o "del". Sequisermos adicionar uma rota ao subir uma determinada interface, poderíamos usar a seguinte linha dentro dasopções da interface:iface eth0 inet static...up ip route add 10.0.0.0/24 via 200.X.X.YEntradas na Tabela de Roteamento.Cada tabela de roteamento pode ter várias entradas. Abaixo temos alguns tipos de rotas que podem seradicionadas com o coman<strong>do</strong> ip route.• unicast: Uma rota unicast é a mais comum na tabela. Isto é tipicamente um rota para uma rede dedestino. Se o tipo de rota não é especifica<strong>do</strong> é assumi<strong>do</strong> como sen<strong>do</strong> unicast. Ex:# ip route add unicast 192.168.0.0/24 via 192.168.100.5# ip route add default via 193.7.255.1# ip route add unicast default via 206.59.29.193# ip route add 10.40.0.0/16 via 10.72.75.254• broadcast: Esta rota é usada pela camada de link de dispositivos (placas Ethernet) o qual suportam anotação de endereço broadcast. Este tipo de rota é usa<strong>do</strong> somente na tabela local e é tipicamentemanusea<strong>do</strong> pelo kernel. Ex:# ip route add table local broadcast 10.10.20.255 dev eth0 proto kernel scope link src10.10.20.67# ip route add table local broadcast 192.168.43.31 dev eth4 proto kernel scope link src192.168.43.14• local: O kernel irá adicionar entradas para a tabela de roteamento local quan<strong>do</strong> endereços IP sãoadiciona<strong>do</strong>s para uma interface. Isto significa que os IP's estão no próprio host.# ip route add table local local 10.10.20.64 dev eth0 proto kernel scope host src 10.10.20.67# ip route add table local local 192.168.43.12 dev eth4 proto kernel scope host src192.168.43.14• nat: Esta rota é adicionada para o kernel na tabela de roteamento local, quan<strong>do</strong> o usuário tentaconfigurar stateless NAT. (Re-escreve o destino <strong>do</strong> pacote) Ex:# ip route add nat 193.7.255.184 via 172.16.82.184# ip route add nat 10.40.0.0/16 via 172.40.0.0• unreachable: Quan<strong>do</strong> um requisição para uma decisão de roteamento retorna um destino com rota <strong>do</strong>tipo unreachable, um ICMP unreachable é gera<strong>do</strong> e retorna<strong>do</strong> para o endereço de origem. Ex:# ip route add unreachable 172.16.82.184# ip route add unreachable 192.168.14.0/26# ip route add unreachable 209.10.26.51Roberto Amaral – Marcelo Soares Farias 03/03/2010Página 27


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUX• prohibit: Análogo ao unreachable mas gera um ICMP prohibit. Ex:# ip route add prohibit 10.21.82.157# ip route add prohibit 172.28.113.0/28# ip route add prohibit 209.10.26.51• blackhole: Um pacote que casa com uma rota <strong>do</strong> tipo blackhole é descarta<strong>do</strong>. Ex:# ip route add blackhole default# ip route add blackhole 202.143.170.0/24# ip route add blackhole 64.65.64.0/18• throw: Este tipo de rota é conveniente, quan<strong>do</strong> deseja-se que uma consulta na tabela de roteamentofalhe, fazen<strong>do</strong> com que o pacote continue sen<strong>do</strong> analiza<strong>do</strong> no RPDB. Ex:# ip route add throw 10.79.0.0/16# ip route add throw 172.16.0.0/12Configuração <strong>do</strong> NetfilterO projeto netfilter/iptables é um subsistema de firewalling para o kernel Linux 2.4 e superiores. Com o usodesta ferramenta definimos regras especiais para entrada, saída e passagem de pacotes entre interfaces,poden<strong>do</strong> atuar antes ou após as ações referentes ao roteamento.O iptables atua sobre as tabelas presentes no Kernel, que indicam situações de roteamento, de acor<strong>do</strong> com asituação em que se encontra o pacote, a qual é referida por uma corrente de regras, ou chain.Básico <strong>do</strong> netfilterAs tabelas <strong>do</strong> iptables são:• filter: é a tabela padrão, sobre a qual podemos nos referir a três correntes de regras, ou chains:• INPUT, pacotes que entram na interface;• OUTPUT, pacotes que saem da interface• FORWARD, pacotes que estão sen<strong>do</strong> rotea<strong>do</strong>s de uma interface para outra;• nat: esta tabela se refere ao uso <strong>do</strong> recurso de Network Address Translation ou NAT, na qual podemosnos referir aos chains: PREROUTING, pacotes que serão altera<strong>do</strong>s antes de roteamento; OUTPUT,pacotes locais que serão altera<strong>do</strong>s antes <strong>do</strong> roteamento e POSTROUTING, pacotes que serãoaltera<strong>do</strong>s após a aplicação das regras de roteamento;• mangle: usada para alterações especiais no pacote, PREROUTING, para alteração antes <strong>do</strong>roteamento e OUTPUT, pacotes locais que serão altera<strong>do</strong>s antes <strong>do</strong> roteamento.Dentre as ações que são feitas sobre os pacotes que atendem a um determina<strong>do</strong> chain em uma dada tabela,temos:• ACCEPT: aceita o pacote;• DROP: rejeita o pacote;Roberto Amaral – Marcelo Soares Farias 03/03/2010Página 28


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUX• MASQUERADE: atua somente sobre a tabela nat e indica que será efetua<strong>do</strong> a conversão deendereços ou NAT, conforme indica<strong>do</strong> no coman<strong>do</strong>.Podemos definir regras padrão para um determina<strong>do</strong> chain e regras mais específicas, usan<strong>do</strong>:iptables [–t TABELA] –P CHAIN AÇÃOonde TABELA é a tabela sobre a qual estamos atuan<strong>do</strong> – caso não especificarmos, será assumida a tabelafilter; CHAIN é a corrente de regras à qual o pacote está associa<strong>do</strong>; e AÇÃO é a ação a ser executada.Para adicionarmos uma regra usan<strong>do</strong> iptables, procedemos da seguinte forma:iptables [–t TABELA] –A CHAIN {OPÇÕES} –j AÇÃOsen<strong>do</strong> OPÇÕES é um conjunto diverso de opções que podemos especificar, como interface de origem ou dedestino e TABELA, CHAIN e AÇÃO defini<strong>do</strong>s como anteriormente. De mo<strong>do</strong> análogo,iptables [–t TABELA] –D CHAIN {OPÇÕES} –j AÇÃOpermite removermos uma regra.Para limparmos todas as regras existentes de um chain usamos:iptables [–t TABELA] –F CHAIN.Alvo NetfilterRegras de firewall possuem diversos alvos:• quatro alvos básicos :oooo• alvos extendi<strong>do</strong>s :oooACCEPT significa deixar o pacote passar.DROP significa descartar o pacote.QUEUE significa passar o pacote para o userspace (caso suporta<strong>do</strong> pelo kernel).RETURN significa parar de atravessar esta chain e continuar na próxima regra na chainanterior (a chain que chamou esta).LOG liga o logging <strong>do</strong> kernel.REJECT envia como resposta um pacote de erro e descarta o pacote.SNAT altera o endereço de origem de pacote e é usa<strong>do</strong> somente na chain POSTROUTING.(somente tabela nat)--to-source endereçoip[-endereçoip][:porta-porta]Roberto Amaral – Marcelo Soares Farias 03/03/2010Página 29


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUX– MASQUERADE é o mesmo que SNAT mas para conexões com endereços IP atribuí<strong>do</strong>s dinamicamente(discadas). (somente tabela nat)--to-ports porta[-porta]– DNAT altera o endereço de destino <strong>do</strong> pacote e é usa<strong>do</strong> nas chains PREROUTING e OUTPUT e em chainsdefinidas pelo usuário que são chamadas somente a partir destas chains. (somente tabela nat)--to-destination endereçoip[-endereçoip][:porta-porta]– REDIRECT altera o endereço IP de destino para enviar o pacote para a própria máquina.--to-ports porta[-porta]Coman<strong>do</strong>s <strong>do</strong> NetfilterOs coman<strong>do</strong>s básicos <strong>do</strong> iptables são :iptables -N chain # cria uma chainiptables -A chain \ # adiciona regra na chain-t tabela \ # usa tabela (filter, nat, mangle)-p protocolo \ # tcp, udp, icmp ou all,-s endereço-origem[/máscara] \--sport porta[:porta] \ # porta de origem caso -p seja tcp ou udp-d endereço-origem[/máscara] \--dport porta[:porta] \ # porta de destino caso -p seja tcp ou udp-j alvo \ # o que fazer se o pacote casar-i nome-interface-entrada \# para INPUT, FORWARD, PREROUTING-o nome-interface-saída # para FORWARD, OUTPUT, POSTROUTINGFazen<strong>do</strong> NATDicas:Qualquer regra aplicada a SNAT usa somente a chain POSTROUTING. Antes de iniciar o uso da tabela NATtemos que habilitar o roteamento no kernel, usan<strong>do</strong>:# echo “1” > /proc/sys/net/ipv4/ip_forwardPara que não percamos o roteamento é necessário editar o arquivo /etc/sysctl.conf e inserirmos oumodificarmos a linha <strong>do</strong> mo<strong>do</strong> que fique assim:net.ipv4.ip_forward= 1Exemplos de SNAT:iptables –t nat –A POSTROUTING –s 10.0.3.1 –o eth0 –j SNAT --to 192.111.22.33iptables –t nat –A POSTROUTING –s 10.0.3.0/8 –o eth0 –j SNAT --to 192.111.22.33iptables –t nat –A POSTROUTING –s 10.0.3.1 –o eth0 –j SNAT --to 192.111.22.33-192.11.22.66Roberto Amaral – Marcelo Soares Farias 03/03/2010Página 30


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sExemplos de DNAT:CURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXiptables –t nat –A PREROUTING –s 10.0.3.1 –i eth0 –j DNAT --to 192.111.22.33iptables –t nat –A PREROUTING –s 10.0.3.1 –i eth0 –j DNAT --to 192.111.22.33-192.11.22.66iptables –t nat –A PREROUTING –i eth0 –j DNAT --to 192.111.22.33:22Teste seus conhecimentos:iptables -t nat -A POSTROUTING -s 192.168.1.0/255.255.255.0 -o eth1 -j MASQUERADECompartilhan<strong>do</strong> Conexão com IPTABLEmodprobe iptable_natecho 1 > /proc/sys/net/ipv4/ip_forwardiptables -t nat -A POSTROUTING -o INTERFACE -j MASQUERADESubstitua o "INTERFACE" pela placa conectada na Internet. Este coman<strong>do</strong> simplesmente compartilhaa conexão proveniente da placa da Internet com todas as demais placas de rede espetadas no servi<strong>do</strong>r, porisso não é necessário especificar a placa de rede local.• O primeiro coman<strong>do</strong> ativa o "iptable_nat", o módulo <strong>do</strong> Iptables responsável por oferecersuporte ao roteamento de pacotes via NAT.• O segun<strong>do</strong> coman<strong>do</strong> ativa o "ip_forward", o módulo responsável pelo encaminhamento depacotes, utiliza<strong>do</strong> pelo módulo iptable_nat.• O terceiro coman<strong>do</strong> cria uma regra de roteamento, que orienta o servi<strong>do</strong>r a direcionar para aInternet to<strong>do</strong>s os pacotes (recebi<strong>do</strong>s <strong>do</strong>s clientes) que se destinarem a endereços que nãofaçam parte da rede local (ou seja, qualquer coisa fora da faixa 192.168.0.x). A partir daí, oservi<strong>do</strong>r passa a ser o gateway da rede.Nem todas as distribuições instalam o executável <strong>do</strong> Iptables por padrão. Em muitas distribuições como Kernel 2.6, é necessário usar um quarto coman<strong>do</strong> ao compartilhar uma conexão, por exemplo ADSL. Estecoman<strong>do</strong> ajusta os tamanhos <strong>do</strong>s pacotes recebi<strong>do</strong>s <strong>do</strong> modem ao MTU usa<strong>do</strong> na rede local.iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:1536 -j TCPMSS --clampmss-to-pmtuCaso a conexão seja via via ADSL com autenticação (PPPoE), e precise usar o pppoeconf ou o adslsetuppara estabelecer a conexão, lembre-se de substituir "eth0" no coman<strong>do</strong> por "ppp0".DHCPDe um mo<strong>do</strong> geral o trabalho de um servi<strong>do</strong>r DHCP é bastante simples. Ele responde aos pacotes debroadcast das estações, envian<strong>do</strong> um pacote com um <strong>do</strong>s endereços IP disponíveis e os demais da<strong>do</strong>s daRoberto Amaral – Marcelo Soares Farias 03/03/2010Página 31


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXrede. Periodicamente o servi<strong>do</strong>r DHCP verifica se as estações ainda estão lá, exigin<strong>do</strong> uma renovação <strong>do</strong>"aluguel" <strong>do</strong> endereço IP (opção lease time). Assim os endereços IP são gastos apenas com quem realmenteestiver online, evitan<strong>do</strong> que os endereços disponíveis se esgotem.No Linux o serviço de DHCP é exerci<strong>do</strong> pelo dhcp3-server que nas distribuições baseadas no Debian pode serinstala<strong>do</strong> através <strong>do</strong> coman<strong>do</strong>:# apt-get install dhcp3-serverOs coman<strong>do</strong>s "/etc/init.d/dhcp3-server start" e "/etc/init.d/dhcp3-server stop" comandam a atividade <strong>do</strong> serviço.O arquivo de configuração é o dhcpd.conf. No Debian o caminho completo para ele é: /etc/dhcp3/dhcpd.confA configuração <strong>do</strong> arquivo é igual independentemente da distribuição. Um arquivo de configuração básico,contém o seguinte:ddns-update-style none;default-lease-time 600;max-lease-time 7200;authoritative;subnet 192.168.0.0 netmask 255.255.255.0 {range 192.168.0.100 192.168.0.201;option routers 192.168.0.10;option <strong>do</strong>main-name-servers 200.177.250.10,200.204.0.10;option broadcast-address 192.168.0.255;}A opção " default-lease-time" controla o tempo de renovação <strong>do</strong>s endereços IP. O "600" indica que oservi<strong>do</strong>r verifica a cada dez minutos se as estações ainda estão ativas. Se você tiver mais endereços IP <strong>do</strong>que máquinas os endereços IP das estações raramente vai precisar mudar. Mas, no caso de uma redecongestionada, o " max-lease-time" determina o tempo máximo que uma estação pode usar um determina<strong>do</strong>endereço IP. Isso foi planeja<strong>do</strong> para ambientes onde haja escassez de endereços IP.A opção "range" determina a faixa de endereços IP que será usada pelo servi<strong>do</strong>r. Se você utiliza a faixa deendereços 192.168.0.1 até 192.168.0.254 por exemplo, pode reservar os endereços de 192.168.0.1 a192.168.0.100 para estações configuradas com IP fixo e usar os demais para o DHCP.Na "option routers" vai o endereço <strong>do</strong> default gateway da rede, ou seja, o endereço <strong>do</strong> servi<strong>do</strong>r que estácompartilhan<strong>do</strong> a conexão. Não é necessário que o mesmo micro que está compartilhan<strong>do</strong> a conexão rodetambém o servi<strong>do</strong>r DHCP.A opção "option <strong>do</strong>main-name-servers" contém os servi<strong>do</strong>res DNS que serão usa<strong>do</strong>s pelas estações. Ao usar<strong>do</strong>is ou mais endereços eles devem ser separa<strong>do</strong>s por vírgula, sem espaços.Ao fazer qualquer alteração no arquivo, você deve reiniciar o servi<strong>do</strong>r DHCP usan<strong>do</strong> o coman<strong>do</strong>:# /etc/init.d/dhcp3-server restartRoberto Amaral – Marcelo Soares Farias 03/03/2010Página 32


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXSempre que configurar um servi<strong>do</strong>r com duas placas de rede, é importante que o servi<strong>do</strong>r DHCP sejaconfigura<strong>do</strong> para escutar apenas na placa da rede local. No Debian, esta configuração vai no arquivo"/etc/default/dhcp3-server". Procure pela linha:INTERFACES=""... e adicione a placa que o servi<strong>do</strong>r DHCP deve escutar, como em:INTERFACES="eth0"Para que a configuração entre em vigor, basta reiniciar o serviço novamente.Trabalho prático sobre conhecimentos adquiri<strong>do</strong>s:Juntar a um amigo, utilize um <strong>do</strong>s computa<strong>do</strong>res para ser o rotea<strong>do</strong>r (compartilhamento de conexão).1º) ExecícioMáquina 1Crie um alias (192.168.0.X) x = número da máquina.Crie um compartilhamento com iptable.Máquina 2Coloque o endereço desta como 192.168.0.x x = número da máquinaColoque o Máquina 1 como gateway.Ping o site www.utp.brCom o Lynx verifique se sua conexão ficou correta, acessan<strong>do</strong> o www.google.com.br2º) ExecícioMáquina 1Crie um alias (192.168.0.X) x = número da máquina.Crie um compartilhamento com iptables.Filtre com iptable o protocolo ICMPMáquina 2Coloque o endereço desta como 192.168.0.x x = número da máquinaColoque o Máquina 1 como gateway.Ping o site www.utp.brCom o Lynx verifique se sua conexão ficou correta, acessan<strong>do</strong> o www.google.com.brRoberto Amaral – Marcelo Soares Farias 03/03/2010Página 33


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUX<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong> –UTPFaculdade de Ciências Exatas e de TecnologiaCursos de ComputaçãoGrupo de Estu<strong>do</strong>s de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sProfessores:Marcelo Soares FariasRoberto Néia AmaralRoberto Amaral – Marcelo Soares Farias 03/03/2010Página 34


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXCuritiba, 2008SambaCom o SAMBA é possível compartilhar diretórios, impressoras, acessar arquivos na rede exatamente como emredes Microsoft. Mas neste caso, seu servi<strong>do</strong>r é um Linux rodan<strong>do</strong> uma aplicação específica.InstalaçãoPara instalar o SAMBA é necessário executar o coman<strong>do</strong>: ( apt-get install samba smbclient smbfs )Algumas perguntas aparecerão e aparecem com a resposta sugerida:Senhas criptografadas? SimModificar para usar conf Wins <strong>do</strong> dhcp? NãoComo deseja executar o Samba? DaemonsGerar a base de da<strong>do</strong>s? SimConfiguraçãoToda a configuração <strong>do</strong> SAMBA é centralizada no arquivo smb.conf, que deve ser guarda<strong>do</strong> no diretório/etc/samba. Nele é que são descritos os compartilhamentos, permissões de acesso, impressoras, dentre outrasconfigurações disponíveis. Quan<strong>do</strong> instala<strong>do</strong>, o SAMBA disponibiliza os seguintes componentes:smbd - O servi<strong>do</strong>r SAMBA.nmbd - O Servi<strong>do</strong>r de nomes NetBios.smbclient - Cliente SMB para sistemas Unix.smbpasswd - Alterar senhas (encriptadas) de usuários smb.smbspool - Cliente para envio de impresão a sistemas Linux.smbstatus - Apresenta a situação atual das conexoes SMB no Host.testparm - Verifica o arquivo smb.conf (configuração <strong>do</strong> SAMBA).testprns - Verifica a comunicação via rede com as impressoras.O smb.conf é dividi<strong>do</strong> basicamente em três partes: a configuração <strong>do</strong> servi<strong>do</strong>r SAMBA (parâmetros na seção[global]), a configuração <strong>do</strong>s diretórios/pastas pessoais <strong>do</strong>s usuários (parâmetros na seção [homes]) e asdemais seções que correspondem aos diretórios compartilha<strong>do</strong>s ou impressoras.Nome de máquina (nome NetBios)Toda a máquina em uma rede NetBEUI é identificada por um nome, este nome deve ser único na rede epermite que outras máquinas acessem os recursos disponibiliza<strong>do</strong>s ou que sejam enviadas mensagens para amáquina. Este nome é composto de 16 caracteres, sen<strong>do</strong> 15 que identificam a máquina e o último o tipo deserviço que ela disponibiliza. O tipo de serviço é associa<strong>do</strong> com o nome da máquina e registra<strong>do</strong> em servi<strong>do</strong>resde nomes confirme a configuração da máquina.Roberto Amaral – Marcelo Soares Farias 03/03/2010Página 35


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXGrupo de trabalhoO grupo de trabalho organiza a estrutura de máquinas da rede em forma de árvore, facilitan<strong>do</strong> sua pesquisa elocalização. Tomemos como exemplo uma empresa grande com os departamentos comunicação, redes, web,rh, as máquinas que pertencem ao grupo de redes serão agrupadas no programa de navegação:redestécnico; marcelo; henrique; michellerhburnswebweb1; web2; web3comunicacaocomunic1; comunic2; comunic3A segurança no acesso a arquivos e diretórios na configuração de grupo de trabalho é controlada pela própriamáquina, normalmente usan<strong>do</strong> segurança a nível de compartilhamento. Esta segurança funciona definin<strong>do</strong> umusuário/senha para acessar cada compartilhamento que a máquina possui. O Lan Manager, Win<strong>do</strong>ws forWorkgroups, Win<strong>do</strong>ws 95, Win<strong>do</strong>ws 98, XP Home Edition usam este nível de acesso por padrão.DomínioO funcionamento é semelhante ao grupo de trabalho, com a diferença que a segurança é controlada pelamáquina central (PDC) usan<strong>do</strong> diretivas de acesso e grupos. O PDC (Primary Domain Controller) deverá tertodas as contas de acesso que serão utilizadas pelo usuário para acessar os recursos existentes em outrasmáquinas, script de logon que poderá ser executa<strong>do</strong> em cada máquina para fazer ajustes, sincronismo,manutenção ou qualquer outra tarefa programada pelo administra<strong>do</strong>r <strong>do</strong> sistema.CompartilhamentoUm compartilhamento é um recurso da máquina local que é disponibiliza<strong>do</strong> para acesso via rede, que poderáser mapeada por outra máquina. O compartilhamento pode ser um diretório, arquivo, impressora. Além depermitir o acesso <strong>do</strong> usuário, o compartilhamento pode ser protegi<strong>do</strong> por senha, e ter controle de acesso deleitura/gravação, monitoração de acessos, diretórios ocultos, autenticação via PDC e outras formas pararestringir e garantir segurança na disponibilidade <strong>do</strong>s da<strong>do</strong>s.Um compartilhamento no SAMBA pode ser acessível publicamente (sem senha) ou estar rigidamente protegi<strong>do</strong>ten<strong>do</strong> que passar por diversas barreiras para chegar ao seu conteú<strong>do</strong>, como senhas, endereço de origem,interfaces, usuários autoriza<strong>do</strong>s, permissões de visualização, etc.Roberto Amaral – Marcelo Soares Farias 03/03/2010Página 36


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sMapeamentoCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXMapear significa pegar um diretório/arquivo/impressora compartilha<strong>do</strong> por alguma máquina da rede para seracessada pela máquina local. Para mapear algum recurso de rede, é necessário que ele seja compartilha<strong>do</strong> naoutra máquina. Por exemplo, o diretório /usr compartilha<strong>do</strong> com o nome usr, pode ser mapea<strong>do</strong> por umamáquina Win<strong>do</strong>ws como a unidade F:, ou mapea<strong>do</strong> por uma máquina Linux no diretório /mnt/samba.O programa responsável por mapear unidades compartilhadas no Linux é o smbmount e smbclient.Navegação na Rede e controle de <strong>do</strong>mínioEsta função é controlada pelo nmbd que fica ativo o tempo to<strong>do</strong> disponibilizan<strong>do</strong> os recursos da máquina narede, participan<strong>do</strong> de eleições NetBIOS, fazer logon de máquinas no <strong>do</strong>mínio, etc.A função de navegação na rede é feita utilizan<strong>do</strong> o compartilhamento IPC$. Este compartilhamento possuiacesso público somente leitura e utiliza o usuário "guest" para disponibilização de seus recursos.OBS: A função de navegação (browsing) poderá não funcionar corretamente caso a máquina não consigaresolver nomes NetBIOS para endereços IP.smbmountO smbmount é uma ferramenta que permite a montagem de um disco compartilha<strong>do</strong> por uma máquinaNetBEUI remota como uma partição. Alguns exemplos:smbmount //servi<strong>do</strong>r/discoc /mnt/discocMonta o compartilhamento de //servi<strong>do</strong>r/discoc em /mnt/discoc usan<strong>do</strong> o nome de usuário atual. Será pedi<strong>do</strong>uma senha para acessar o conteú<strong>do</strong> <strong>do</strong> compartilhamento, caso ele seja público, você pode digitar qualquersenha ou simplesmente pressionar enter.smbmount //servi<strong>do</strong>r/discoc /mnt/discoc -NSemelhante ao coman<strong>do</strong> cima, com a diferença que o parâmetro -N não pergunta por uma senha. Isto é idealpara acessar compartilhamentos anônimos.smbmount //servi<strong>do</strong>r/discoc /mnt/discoc -o username=adminsamba,workgroup=testeSemelhante aos anteriores, mas acessa o compartilhamento usan<strong>do</strong> adminsamba como nome de usuário eteste como grupo de trabalho. Este méto<strong>do</strong> é ideal para redes que tem o nível de acesso por usuário ou paraacessar recursos compartilha<strong>do</strong>s em um <strong>do</strong>mínio.smbclientO smbclient é uma ferramenta de navegação em servi<strong>do</strong>res SAMBA. Ao invés dela montar o compartilhamentocomo um disco local, você poderá navegar na estrutura <strong>do</strong> servi<strong>do</strong>r de forma semelhante a um cliente FTP eexecutar coman<strong>do</strong>s como ls, get, put para fazer a transferência de arquivos entre a máquina remota e amáquina local. Também é através dele que é feita a interface com impressoras compartilhadas remotamente.Alguns exemplos <strong>do</strong> uso <strong>do</strong> smbclient:Roberto Amaral – Marcelo Soares Farias 03/03/2010Página 37


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>ssmbclient -L samba1CURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXLista to<strong>do</strong>s os compartilhamentos existentes (-L) no servi<strong>do</strong>r samba1.smbclient //samba1/discocAcessa o conteú<strong>do</strong> <strong>do</strong> compartilhamento discoc no servi<strong>do</strong>r samba1.smbclient //samba1/discoc -NIdêntico ao acima, mas não utiliza senha (ideal para compartilhamentos com acesso anônimo).smbclient //samba1/discoc -I 192.168.1.2Se conecta ao compartilhamento usan<strong>do</strong> o endereço IP 192.168.1.2 ao invés da resolução de nomes.smbclient //samba1/discoc -U user -W testeSe conecta ao compartilhamento como usuário user usan<strong>do</strong> o grupo de trabalho teste.smbclient //samba1/discoc -U user%senha01 -W testeIdêntico ao acima, mas também envia a senha senha01 para fazer a conexão diretamente.Caso receba a mensagem NT Status Access Denied, isto quer dizer que não possui direitos de acessoadequa<strong>do</strong>s para listas ou acessar os compartilhamentos da máquina. Nesse caso, utilize as opções -U usuárioe -W grupo/<strong>do</strong>mínio para fazer acesso com uma conta válida de usuário existente na máquina.OBS:Note que a ordem das opções faz diferença no smbmount.O smb.confUm parâmetro é defini<strong>do</strong> no formato nome = valor. Na configuração de booleanos, a seguinte sintaxe pode serusada: 0 ou 1 - yes ou no - true ou falseLinhas iniciadas por # ou ; são tratadas como comentário. Quebras de linha podem ser especificadas com uma\ no final da linha.Nomes e grupos de trabalhonetbios name = [nome <strong>do</strong> servi<strong>do</strong>r]Especifica o nome NetBIOS primário <strong>do</strong> servi<strong>do</strong>r samba. Caso não seja ajusta<strong>do</strong>, ele usará o hostname de suamáquina como valor padrão. Ex.: netbios name = Servi<strong>do</strong>rsamba.workgroup = [grupo de trabalho/<strong>do</strong>mínio]Diz qual o nome <strong>do</strong> grupo de trabalho/<strong>do</strong>mínio que a máquina samba pertencerá. Ex.: workgroup = empresa.netbios aliases = [nomes alternativos ao sistema]Permite o uso de nomes alternativos ao servi<strong>do</strong>r, separa<strong>do</strong>s por espaços. Ex.: teste1 teste2.server string = [identificação]Identificação enviada <strong>do</strong> servi<strong>do</strong>r samba para o ambiente de rede. A string padrão é Samba %v (%v ésubstituída pela versão <strong>do</strong> samba) Ex: server string = Servi<strong>do</strong>r Samba versão %v.name resolve order = [ordem]Roberto Amaral – Marcelo Soares Farias 03/03/2010Página 38


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXDefine a ordem de pesquisa para a resolução de nomes no samba. A ordem padrão é: lmhosts host wins bcast,que é a melhor para resolução rápida e que tente gerar menos tráfego broadcast possível.Restrições de acesso/mapeamento de usuáriosguest account = [conta]Define a conta local de usuário que será mapeada quan<strong>do</strong> um usuário se conectar sem senha (usuário guest).invalid usersDefine uma lista de usuários que não terão acesso aos recursos <strong>do</strong> servi<strong>do</strong>r ou compartilhamento. É segurorestringir o acesso samba a usuários com grande poder no sistema (como o root).valid usersSemelhante a opção invalid users mas permite que somente os usuários especifica<strong>do</strong>s tenham acesso aosistema.default service = nomeCaso o serviço que o usuário deseja se conectar não for encontra<strong>do</strong> no servi<strong>do</strong>r, o SAMBA mapeará o serviçoespecifica<strong>do</strong> nesta diretiva como alternativa. A variável "%S" e o caracter "_" podem ser interessantes emalgumas alternativas de configuração. A opção default é um sinônimo para esta opção. Caso utilize esta opção,crie o compartilhamento em mo<strong>do</strong> somente leitura e com acesso público, caso contrário (dependen<strong>do</strong> <strong>do</strong>planejamento de partições e segurança <strong>do</strong> sistema de arquivos) a máquina poderá ser derrubada semdificuldades.username map = [arquivo]Especifica um arquivo que faz o mapeamento entre nomes forneci<strong>do</strong>s por clientes e nomes de contas Unixlocais.obey pam restrictions = yesIndica se as restrições <strong>do</strong> usuário nos módulos PAM terão efeito também no SAMBA.Níveis de autenticaçãoDefine o nível de segurança <strong>do</strong> servi<strong>do</strong>r. Os seguintes valores são váli<strong>do</strong>s:share - Usada principalmente quan<strong>do</strong> apenas a senha é enviada por compartilhamento acessa<strong>do</strong> para oservi<strong>do</strong>r, caso muito típico em sistemas Lan Manager e Win<strong>do</strong>ws for Workgroups.Mesmo assim o samba tenta mapear para um UID de usuário local <strong>do</strong> sistema usan<strong>do</strong> os seguintes méto<strong>do</strong>s(retira<strong>do</strong> da página de manual <strong>do</strong> samba):Se o parâmetro guest only é usa<strong>do</strong> no compartilhamento junto com o guest ok, o acesso éimediatamente permiti<strong>do</strong>, sem verificar inclusive a senha.Caso um nome de usuário seja envia<strong>do</strong> junto com a senha, ele é utiliza<strong>do</strong> para mapear o UID e aplicaras permissões deste usuário (como acontece no nível de segurança user).Roberto Amaral – Marcelo Soares Farias 03/03/2010Página 39


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXSe ele usou um nome para fazer o logon no Win<strong>do</strong>ws este nome será usa<strong>do</strong> como usuário local <strong>do</strong>SAMBA. Caso ele seja diferente, você deverá usar o mapeamento de nomes para associar o nomeremoto <strong>do</strong> nome localO nome <strong>do</strong> serviço é tenta<strong>do</strong> como nome de usuário.O nome da máquina NetBios é tentada como nome de usuárioOs usuários especifica<strong>do</strong>s na opção user <strong>do</strong>s compartilhamentos são utiliza<strong>do</strong>s.Caso nenhum destes méto<strong>do</strong>s acima for satisfeito, o acesso é NEGADO.Hoje em dia, o uso <strong>do</strong> nível de acesso share é raramente usa<strong>do</strong>, porque to<strong>do</strong>s os sistemas a partir <strong>do</strong> Win<strong>do</strong>ws95 e acima enviam o nome de usuário ao acessar um compartilhamento (cain<strong>do</strong> na segunda checagem <strong>do</strong>nível share), sen<strong>do</strong> equivalente a usar o nível user. Entretanto, o nível de segurança share é recomenda<strong>do</strong>para servi<strong>do</strong>res onde TODO o conteú<strong>do</strong> deve ter acesso público (seja leitura ou gravação) e o parâmetro guestshares também funciona nativamente.As senhas criptografadas (encrypt passwords = 1) NÃO funcionarão no nível share, lembre-se deste detalhe.user - Este é o padrão. O usuário precisa ter uma conta de usuário no Linux para acessar seuscompartilhamentos. A mesma conta de usuário/senha deverá ser usada no Win<strong>do</strong>ws para acessar seusrecursos ou realiza<strong>do</strong> um mapeamento de nomes de usuários. Este é o padrão <strong>do</strong> SAMBA. No nível de acessouser o usuário precisa ser autentica<strong>do</strong> de qualquer forma, inclusive se for usa<strong>do</strong> o parâmetro guest only ouuser. Os seguintes passos são usa<strong>do</strong>s para autorizar uma conexão usan<strong>do</strong> o nível user (retira<strong>do</strong> da<strong>do</strong>cumentação <strong>do</strong> SAMBA):É tentada a validação usan<strong>do</strong> o nome/senha passa<strong>do</strong>s pelo cliente. Se tu<strong>do</strong> estiver OK, a conexão é permitida.Caso já tenha se autentica<strong>do</strong> anteriormente para acessar o recurso e forneceu a senha correta, o acesso épermiti<strong>do</strong>.O nome NetBIOS da máquina <strong>do</strong> cliente e qualquer nome de usuário que foi usa<strong>do</strong> é novamente tenta<strong>do</strong> juntocom a senha para tentar permitir o acesso ao recurso compartilha<strong>do</strong>.Caso o cliente tenha valida<strong>do</strong> o nome/senha com o servi<strong>do</strong>r e o cliente enviou novamente o token de validação,este nome de usuário é usa<strong>do</strong>.É tentada a checagem com o parâmetro user no compartilhamento..É verifica<strong>do</strong> se o serviço é público, então a conexão é feita usan<strong>do</strong> o usuário guest account e ignoran<strong>do</strong> asenha.<strong>do</strong>main - Neste nível, o acesso só será permiti<strong>do</strong> quan<strong>do</strong> a máquina for adicionada ao <strong>do</strong>mínio com osmbpasswd. Neste nível de acesso, a conta de usuário será validada em um servi<strong>do</strong>r PDC (controla<strong>do</strong>r de<strong>do</strong>mínio) e o acesso aos recursos das máquinas que fazem parte <strong>do</strong> <strong>do</strong>mínio será feito a partir <strong>do</strong> PDC.server - A máquina samba tentara autenticar o usuário em outro servi<strong>do</strong>r NT (ou samba). No caso daautenticação falhar, será usa<strong>do</strong> o nível de acesso user na base de usuários local (será necessário o arquivo desenhas criptografa<strong>do</strong> <strong>do</strong> samba para que a autenticação local funcione. Este nível é bastante usa<strong>do</strong> quan<strong>do</strong>configuramos um servi<strong>do</strong>r de perfis de usuários ou logon separa<strong>do</strong> <strong>do</strong> PDC.Roberto Amaral – Marcelo Soares Farias 03/03/2010Página 40


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXLog de acessos/serviçoslog file= [arquivo]Define a localização e nome <strong>do</strong> arquivo de log gera<strong>do</strong> pelo samba. As variáveis de expansão podem serusadas caso o administra<strong>do</strong>r queira ter um melhor controle <strong>do</strong>s logs gera<strong>do</strong>s. Ex.: /var/log/samba/samba-log-%m.OBS: Se possível coloque uma extensão no arquivo de log gera<strong>do</strong> pelo SAMBA (como .log). O motivo disto éporque se estes logs forem rotaciona<strong>do</strong>s pelo logrotate você terá problemas de recompactação múltiplas casoutilize um coringa samba-log-*, geran<strong>do</strong> arquivos como .gz.gz.gz.., lotan<strong>do</strong> a tabela de arquivos <strong>do</strong> diretório edeixan<strong>do</strong> sua máquina em um loop de compactação.max log size = [tamanho]Especifica o tamanho máximo em Kb <strong>do</strong> arquivo de log gera<strong>do</strong> pelo samba. O valor padrão é 5000Kb (5MB).debug pid = [valor]Este processo adiciona a pid aos logs gera<strong>do</strong>s pelo processo smbd Isto é útil para depuração caso existammúltiplos processos rodan<strong>do</strong>. O valor padrão é no e a opção debug timestamp deve ser yes para esta opção terefeito.debug timestamp = [valor]Ativa ou desativa a gravação de data/hora nos arquivos de log gera<strong>do</strong>s pelo samba. O valor padrão é yes.debug level = [valor]Aumenta o nível de depuração <strong>do</strong>s daemons <strong>do</strong> SAMBA de 0 a 9. Um nível de depuração interessante e queproduz uma quantidade razoável de da<strong>do</strong>s para configuração de um logrotate só para o SAMBA é o 2,produzin<strong>do</strong> a lista de to<strong>do</strong>s os compartilhamentos acessa<strong>do</strong>s, quem acessou, data/hora (dependen<strong>do</strong> dasoutras opções de depuração). Isto permite ao administra<strong>do</strong>r saber exatamente o que está sen<strong>do</strong> acessa<strong>do</strong> epor quem, quais as tentativas de acesso. Assim terá certeza que o conteú<strong>do</strong> não está sen<strong>do</strong> acessa<strong>do</strong>indevidamente. O nível de depuração 0 é o padrão.debug uid = [valor]Este parâmetro inclui o euid, egid, uid, gid nos arquivos de log. O valor padrão é no.lock directory = [diretório]Define onde serão grava<strong>do</strong>s os arquivos de lock gera<strong>do</strong>s pelo samba.Navegação no servi<strong>do</strong>r/tipo de servi<strong>do</strong>ros level=[num]Especifica o nível <strong>do</strong> sistema operacional. Este número é usa<strong>do</strong> para as eleições netbios para definir onavega<strong>do</strong>r de grupo local e controla<strong>do</strong>r de <strong>do</strong>mínio. O valor pode ser de 0 a 255, o padrão é 32.announce as = [sistema]Selecione o nome que o samba (nmbd) se anunciará na lista de pesquisa de rede. Os seguintes nomes podemser usa<strong>do</strong>s: NT Server (ou NT) - Anuncia como Win<strong>do</strong>ws NT Server. Este é o padrão.NT Workstation - Anuncia-se como um NT Workstation.Roberto Amaral – Marcelo Soares Farias 03/03/2010Página 41


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXWin95 ou WfW - Anuncia-se na rede como uma estação Win<strong>do</strong>ws 9x, Win<strong>do</strong>ws for Workgroups, Win<strong>do</strong>ws NTServer e Win<strong>do</strong>ws NT Workstation de uma só vez.<strong>do</strong>main master = [valor]Diz se o servi<strong>do</strong>r tentará se tornar o navega<strong>do</strong>r principal de <strong>do</strong>mínio. Os valores que podem ser especifica<strong>do</strong>ssão: yes, no e auto. O valor padrão é auto.local master = [valor]Diz se o servi<strong>do</strong>r participará ou não das eleições para navega<strong>do</strong>r local <strong>do</strong> grupo de trabalho (workgroup). Osvalores que podem ser especifica<strong>do</strong>s são: yes, no. O valor padrão é yes. Para vencer a eleição, o sambaprecisa ter o valor de os level maior que os demais.Note também que o Win<strong>do</strong>ws NT não aceita perder as eleições e convoca uma nova eleição caso ele perca.Como esta eleição é feita via broadcasting, isso gera um tráfego grande na rede. Desta forma, se tiver umcomputa<strong>do</strong>r NT na rede configure este valor para "no".preferred master = [valor]Diz se o servi<strong>do</strong>r samba terá ou não vantagens de ganhar uma eleição local. Se estiver configura<strong>do</strong> para "yes",o servi<strong>do</strong>r samba pedirá uma eleição e terá vantagens para ganha-la. O servi<strong>do</strong>r poderá se tornargarantidamente o navega<strong>do</strong>r principal <strong>do</strong> <strong>do</strong>mínio se esta opção for usada em conjunto com <strong>do</strong>main master =1. Os valores especifica<strong>do</strong>s podem ser yes, no e auto, o padrão é auto.Antes de ajustar este valor para yes, verifique se existem outros servi<strong>do</strong>res NetBIOS em sua rede que tempreferência para se tornar o master principal, pois poderá ocorrer um tráfego alto de broadcasting causa<strong>do</strong>pelas eleições solicitadas pelas outras máquinas.Seção [homes]Esta seção tem a função especial de disponibilizar o diretório home <strong>do</strong> usuário. Quan<strong>do</strong> o usuário envia seunome de login como compartilhamento é feita uma busca no arquivo smb.conf procuran<strong>do</strong> por um nome decompartilhamento que confira. Caso nenhum seja encontra<strong>do</strong>, é feita uma busca por um nome de usuáriocorrespondente no arquivo /etc/passwd, se um nome conferir e a senha enviada também, o diretório de usuárioé disponibiliza<strong>do</strong> como um compartilhamento com o mesmo nome <strong>do</strong> usuário local. O diretório home <strong>do</strong> usuáriopoderá ser modifica<strong>do</strong> com o uso de mapeamento de nomes. Quan<strong>do</strong> o caminho <strong>do</strong> compartilhamento não forespecifica<strong>do</strong>, o SAMBA utilizará o diretório home <strong>do</strong> usuário (no /etc/passwd).Para maior segurança da instalação, principalmente porque o diretório home <strong>do</strong> usuário não é um requerimentopara a autenticação de usuário, recomen<strong>do</strong> usar a variável de substituição %S apontan<strong>do</strong> para um diretóriocom as permissões apropriadas configuradas em seu sistema, por exemplo:[homes]comment = Diretórios de Usuáriospath=/pub/usuarios/%SRoberto Amaral – Marcelo Soares Farias 03/03/2010Página 42


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXVocê apenas terá o trabalho extra de criar os diretórios de usuários que farão acesso ao sistema. Isto não seránenhum problema após você programar um shell script simples que verifique os nomes de contas em/etc/passwd e crie os diretórios com as permissões/grupos adequa<strong>do</strong>s.Os parâmetros aceitos em [homes] aqui são os mesmos usa<strong>do</strong>s para compartilhamentos normais.OBS1:Caso nenhum caminho de compartilhamento seja utiliza<strong>do</strong>, o diretório home <strong>do</strong> usuário serácompartilha<strong>do</strong>.OBS2:Não utilize o parâmetro public yes na seção guest, caso contrário to<strong>do</strong>s os diretórios de usuários serãoli<strong>do</strong>s por to<strong>do</strong>s.Seção [printers]Esta seção tem a função de disponibilizar as impressoras existentes no sistema (lp, lp1, lp2, etc) existentes no/etc/printcap como compartilhamento de sistemas Win<strong>do</strong>ws. O méto<strong>do</strong> que os nomes de impressoras sãopesquisa<strong>do</strong>s é idêntico a forma feita para a seção [homes]: Primeiro o nome <strong>do</strong> compartilhamento épesquisa<strong>do</strong> como um nome de serviço, depois se ele é um nome de usuário (tentan<strong>do</strong> mapear o serviçodisponibiliza<strong>do</strong> em [homes]), depois será verifica<strong>do</strong> a seção [printers].OBS:É importante lembrar que a seção [printers] DEVE ser definida como printable usan<strong>do</strong> o parâmetroprintable = yes para funcionar. O utilitário testparm poderá ser usa<strong>do</strong> para verificar problemas no arquivo deconfiguração <strong>do</strong> SAMBA.Compartilhamento de arquivos e diretóriosEsta seção <strong>do</strong>cumenta como disponibilizar arquivos e impressoras com o SAMBA e os parâmetros usa<strong>do</strong>spara realizar restrições de compartilhamento, mo<strong>do</strong> que os da<strong>do</strong>s serão disponibiliza<strong>do</strong>s e itens deperformance. A maior parte destes parâmetros é empregada em serviços <strong>do</strong> SAMBA, mas nada impede quetambém sejam coloca<strong>do</strong>s na seção [global] <strong>do</strong> arquivo de configuração, principalmente quan<strong>do</strong> isto é váli<strong>do</strong>para diversos serviços compartilha<strong>do</strong>s.Descrição de parâmetros usa<strong>do</strong>s em compartilhamentoAbaixo temos algumas das opções que podem ser usadas para controlar o comportamento <strong>do</strong>compartilhamento de arquivos por serviços no servi<strong>do</strong>r SAMBA: pathIndica o diretório que será compartilha<strong>do</strong>. Lembre-se que o usuário terá as permissões de acesso que ele teriacaso estivesse loga<strong>do</strong> no sistema como um usuário UNIX normal, exceto se estiver fazen<strong>do</strong> mapeamento paraoutros nomes de usuários. Ex: path=/pub - Compartilha o diretório local /pub.OBS: Quan<strong>do</strong> não é defini<strong>do</strong> um path, o diretório /tmp é usa<strong>do</strong> como padrão.commentDescrição <strong>do</strong> compartilhamento que será mostrada na janela de procura de rede ou no smbclient -L maquina.Ex: comment=Pasta de conteú<strong>do</strong> público <strong>do</strong> sistema.Roberto Amaral – Marcelo Soares Farias 03/03/2010Página 43


owseable<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXDefine se o compartilhamento será ou não exibi<strong>do</strong> na janela de procura de rede. Mesmo não sen<strong>do</strong> exibi<strong>do</strong>, ocompartilhamento poderá ser acessa<strong>do</strong>. Ex: browseable=yes - Lista o compartilhamento na janela de pesquisade servi<strong>do</strong>res.guest accountConta que será usada para fazer acesso sem senha (convida<strong>do</strong>) quan<strong>do</strong> o parâmetro guest ok ou public foremusa<strong>do</strong>s em um compartilhamento. Por padrão ela é mapeada para o usuário nobody. É importante especificaruma nome de usuário guest (convida<strong>do</strong>), principalmente porque seu UID será usa<strong>do</strong> para fazer váriasoperações no SAMBA, como exibir os recursos disponíveis na máquina para a rede. Por motivos claros, érecomendável que este usuário não tenha acesso login ao sistema.Caso não tenha a intenção de ocultar o SAMBA na lista de máquinas da rede (fazen<strong>do</strong> apenas acesso diretoaos recursos), especifique um valor para esta opção.Ex: guest account = sambausr - Mapeia os usuários se conectan<strong>do</strong> sem senha para o usuário sambausr, desdeque o acesso guest seja permiti<strong>do</strong> pela opção public.publicPermitem aos usuários usuários se conectarem ao compartilhamento sem fornecer uma senha usan<strong>do</strong> ousuário guest. O UID que o usuário guest será mapea<strong>do</strong> é especifica<strong>do</strong> pelo parâmetro guest account. Oparâmetro guest ok é equivalente a public. Ex: public = no - Não permiteguest onlyPermite somente conexões guest ao recurso. O UID <strong>do</strong> usuário é mapea<strong>do</strong> para guest, mesmo que forneçauma senha correta. O valor padrão é no. Ex: guest only = no.write listLista de usuários separa<strong>do</strong>s por espaço ou vírgula que poderão ler e gravar no compartilhamento. Caso onome for inicia<strong>do</strong> por "@", o nome especifica<strong>do</strong> será trata<strong>do</strong> como um grupo UNIX (/etc/group) e to<strong>do</strong>s osusuários daquele grupo terão acesso de gravação. O uso deste parâmetro ignora o read only = yes.Ex: write list = adminsamba, @usuarios - Permite acesso gravação somente <strong>do</strong> usuário adminsamba e to<strong>do</strong>sos usuários pertencentes ao grupo @usuarios.OBS: - O significa<strong>do</strong> de "@" nos parâmetros "invalid users"/"valid users" é diferente das opções write list e readlist.read listLista de usuários separa<strong>do</strong>s por espaço ou vírgula que poderão apenas ler o compartilhamento. O caracter "@"pode ser especifica<strong>do</strong> para fazer referência a grupos, como no write list. O uso deste parâmetro ignora o rea<strong>do</strong>nly = no. Ex: read list = nobody, system, opera<strong>do</strong>r, @usuarios - Permite acesso de leitura somente <strong>do</strong> usuárionobody, system, opera<strong>do</strong>r e to<strong>do</strong>s os usuários pertencentes ao grupo @usuarios.userEspecifica um ou mais nomes de usuários ou grupos (caso o nome seja segui<strong>do</strong> de "@") para checagem desenha. Quan<strong>do</strong> o cliente somente fornece uma senha (especialmente na rede Lan Manager, Win<strong>do</strong>ws forRoberto Amaral – Marcelo Soares Farias 03/03/2010Página 44


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXWorkgroups e primeira versão <strong>do</strong> Win<strong>do</strong>ws 95) ela será validada no banco de da<strong>do</strong>s de senhas usan<strong>do</strong> ousuário especifica<strong>do</strong> nesta opção. Ex: user = john @usuariosredeonly userEspecifica se somente serão permitidas conexões vindas de usuários da diretiva user. O padrão é no. Casodeseje restringir o acesso a determina<strong>do</strong>s usuários, o certo é faze-lo usan<strong>do</strong> valid users e invalid users. O usode only user é apropria<strong>do</strong> quan<strong>do</strong> é necessário um controle específico de acesso sobre a diretiva user. Ex:only user = no.lockingPermite ao SAMBA fazer um lock real de arquivo ou apenas simular. Caso seja especifica<strong>do</strong> como "0", oarquivo não é bloquea<strong>do</strong> para acesso exclusivo no servi<strong>do</strong>r mas uma resposta positiva de lock é retornada aocliente. Se defini<strong>do</strong> como "1", um lock real é feito. O padrão é yes. Ex: locking = yesavailableFaz o SAMBA ignorar o compartilhamento (como se tivesse retira<strong>do</strong> <strong>do</strong> servi<strong>do</strong>r). O valor padrão é "no".follow symlinksPermite o uso de links simbólicos no compartilhamento (veja também a opção wide links). A desativação destaopção diminui um pouco a performance de acesso aos arquivos. Como é restrita a compartilhamento, oimpacto de segurança depende <strong>do</strong>s da<strong>do</strong>s sen<strong>do</strong> compartilha<strong>do</strong>s. O valor padrão desta opção é "YES". Ex:follow symlinks = yeswide linksPermite apontar para links simbólicos para fora <strong>do</strong> compartilhamento exporta<strong>do</strong> pelo SAMBA. O valor padrãoesta opção é "YES". Ex: wide links = yes.OBS: - A desativação desta opção causa um aumento na performance <strong>do</strong> servi<strong>do</strong>r SAMBA, evitan<strong>do</strong> achamada de funções <strong>do</strong> sistema para resolver os links. Entretanto, diminui a segurança <strong>do</strong> seu servi<strong>do</strong>r, poisfacilita a ocorrência de ataques usan<strong>do</strong> links simbólicos.Lembre-se mais uma vez que a segurança <strong>do</strong> seu sistema começa pela política e uma instalação bemconfigurada, isso já implica desde a escolha de sua distribuição até o conhecimento de permissões eplanejamento na implantação <strong>do</strong> servi<strong>do</strong>r de arquivos.<strong>do</strong>nt descendNão mostra o conteú<strong>do</strong> de diretórios especifica<strong>do</strong>s. Ex: <strong>do</strong>nt descend = /root, /proc, /win/win<strong>do</strong>ws,"/win/Arquivos de Programas", "/win/program files".printableEspecifica se o compartilhamento é uma impressora (yes) ou um compartilhamento de arquivo/diretório (no). Opadrão é "no".read onlyEspecifica se o compartilhamento é somente para leitura (yes) ou não (no) para to<strong>do</strong>s os usuários. Oparâmetro writable é um antônimo equivalente a este parâmetro, só que utiliza as opções invertidas. Porsegurança, o valor padrão é somente leitura. Ex: read only = yes.create maskRoberto Amaral – Marcelo Soares Farias 03/03/2010Página 45


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXMo<strong>do</strong> padrão para criação de arquivos no compartilhamento. O parâmetro "create mode" é um sinônimo paraeste. O mo<strong>do</strong> de arquivos deve ser especifica<strong>do</strong> em formato octal. Ex: create mask = 0600.directory maskMo<strong>do</strong> padrão para a criação de diretórios no compartilhamento. O parâmetro "directory mode" é um sinônimopara este. O mo<strong>do</strong> de diretório deve ser especifica<strong>do</strong> em formato octal. Ex: directory mask = 0700.getwd cachePermite utilizar um cache para acesso as requisições getwd, diminuin<strong>do</strong> o número de ciclos de processamentopara acesso a arquivos/diretórios. O valor padrão é "Yes".write cache sizeTamanho <strong>do</strong> cache de leitura/gravação <strong>do</strong> compartilhamento. Este valor é especifica<strong>do</strong> em bytes e o padrão é"0". Ex: write cache size = 384000.inherit permissionsPermite herdar permissões de arquivos/diretórios <strong>do</strong> diretório pai quan<strong>do</strong> novos arquivos/diretórios são cria<strong>do</strong>s,isto inclui bits SGID (set group ID). O padrão é NÃO herdar permissões. O uso desta opção substitui as opçõesfornecidas por create mask, directory mask, force create mask e force directory mask. Ex: inherit permissions.preexecExecuta um coman<strong>do</strong> antes a abertura de um compartilhamento. O parâmetro exec é um sinônimo para este.postexecExecuta um coman<strong>do</strong> depois da utilização <strong>do</strong> compartilhamento.preexec closeFecha imediatamente o compartilhamento caso o valor <strong>do</strong> coman<strong>do</strong> executa<strong>do</strong> pela opção preexec sejadiferente de 0. O uso desta opção só faz senti<strong>do</strong> em conjunto com preexec. O valor padrão é "no". Exemplo:preexec close = yes.volume = nomeRetorna o nome de volume especifica<strong>do</strong> quan<strong>do</strong> é feito o acesso ao compartilhamento. Isto é muito útil parainstalações onde o serial <strong>do</strong> CD, disquete ou HD é verifica<strong>do</strong> durante o acesso. Isto acontece com freqüênciaem produtos de fabricantes proprietários como forma de evitar a execução ilegal <strong>do</strong> programa.WINSEste é um serviço de resolução de nomes que funciona de forma semelhante ao DNS, só que volta<strong>do</strong> para oNetBIOS. Quan<strong>do</strong> uma máquina cliente NetBIOS entra na rede, o servi<strong>do</strong>r WINS pega seu nome e IP e incluiem uma tabela para futura consulta pelos clientes da rede.Esta tabela consultada toda vez que um cliente NetBIOS solicita um nome de máquina, componentes <strong>do</strong> grupode trabalho ou <strong>do</strong>mínio na rede. Uma outra aplicação importante de um servi<strong>do</strong>r WINS é permitir a resoluçãode nomes em pontos de redes que requerem roteamento, a simplicidade de um protocolo não roteável como oNetBIOS fica limitada a simplicidade das instalações de rede. Um servi<strong>do</strong>r WINS pode ser instala<strong>do</strong> em cadaponta da rede e eles trocarem da<strong>do</strong>s entre si e atualizar suas tabelas de nomes/grupos de trabalhos/IPs.A resolução de nomes de máquinas será feita consultan<strong>do</strong> diretamente a máquina WINS ao invés debroadcasting (que geram um tráfego alto na rede).Roberto Amaral – Marcelo Soares Farias 03/03/2010Página 46


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXConfiguran<strong>do</strong> o servi<strong>do</strong>r WINSPara ativar o servi<strong>do</strong>r WINS no samba, inclua as seguinte linha na seção [global] <strong>do</strong> seu arquivo/etc/samba/smb.conf:[global]wins support = yeswins proxy = nodns proxy = nomax wins ttl = 518400O parâmetro wins proxy pode ser necessário para alguns clientes antigos que tenham problemas no envio desuas requisições WINS. O dns proxy permite que o servi<strong>do</strong>r WINS faça a pesquisa no DNS para localização denomes de máquinas caso não exista no cache. Ambas as opções wins support, wins proxy e dns proxy temcomo valor padrão não.Se estiver configuran<strong>do</strong> uma subrede com masquerade para acesso a um PDC ou um servi<strong>do</strong>r WINS, vocêterá que mexer no gateway central para apontar uma rota para o gateway masquerade. O motivo disto éporque o masquerade <strong>do</strong> Linux atua somente nos cabeçalhos, mas o IP da estação é enviada e processadapelo PDC para retornar uma resposta. Da mesma forma, este IP é registra<strong>do</strong> no servi<strong>do</strong>r WINS para uso dasestações de trabalho. Isto só vai ser resolvi<strong>do</strong> quan<strong>do</strong> for escrito um módulo de conntrack para conexõesSAMBA.OBS1: NUNCA configure mais de um servi<strong>do</strong>r WINS em uma mesma rede.OBS2: NÃO especifique o parâmetro wins server caso esteja usan<strong>do</strong> o suporte a WINS.Ativan<strong>do</strong> o suporte a senhas criptografadasO uso de senhas criptografadas é um requisito quan<strong>do</strong> você deseja configurar o SAMBA para ser um servi<strong>do</strong>rPDC ou um cliente de um <strong>do</strong>mínio. Quan<strong>do</strong> utiliza senhas criptografadas, elas trafegam em formato seguroatravés da rede, dificultan<strong>do</strong> a captura por outras pessoas. Em versões mais recentes <strong>do</strong> Win<strong>do</strong>ws (a partir daOSR/2 e NT 4 service pack3) o suporte a senhas criptografadas vem habilita<strong>do</strong> como padrão para login eutilização de serviços da rede.O utilitário smbpasswd é o programa utiliza<strong>do</strong> para gerenciar o arquivo de senhas e também o status de contasde usuários/máquinas <strong>do</strong> <strong>do</strong>mínio.Edite o arquivo /etc/samba/smb.conf e altere as seguintes linhas na seção [global] para adicionar o suporte asenhas criptografadas:[global]encrypt passwords = truesmb passwd file =/etc/samba/smbpasswdA linha encrypt passwords = true diz para usar senhas criptografadas e que o arquivo /etc/samba/smbpasswdcontém as senhas (smb passwd file =/etc/samba/smbpasswd).Roberto Amaral – Marcelo Soares Farias 03/03/2010Página 47


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXuseradd -g grupo-<strong>do</strong>minio -c "Usuário de Domínio" -s /bin/false -d /dev/null joãoEste coman<strong>do</strong> adiciona o usuário "joao" no grupo grupo-<strong>do</strong>minio e não define nem uma shell, diretório homenem senha para este usuário. Isto mantém o sistema mais seguro e não interfere no funcionamento <strong>do</strong>SAMBA, pois somente é necessário para fazer o mapeamento de UID/GID de usuários com as permissões <strong>do</strong>sistema UNIX.É interessante padronizar os usuários cria<strong>do</strong>s no <strong>do</strong>mínio para um mesmo grupo para pesquisa e outrascoisas.Crie o usuário "joao" no SAMBA:smbpasswd -a joaoSerá solicitada a senha <strong>do</strong> usuário.Removen<strong>do</strong> usuários <strong>do</strong> smbpasswdUtilize o coman<strong>do</strong>smbpasswd -x usuariopara remover um usuário <strong>do</strong> arquivo smbpasswd. Se desejar, você pode manter o usuário no /etc/passwd ouremove-lo com o userdel.OBS: Removen<strong>do</strong> um usuário deste arquivo fará que ele não tenha mais acesso ao SAMBA. Utilize o coman<strong>do</strong>smbpasswd -a testeDesabilitan<strong>do</strong> uma conta no smbpasswdComo administra<strong>do</strong>r, pode ser necessário que precise desativar temporariamente uma conta de usuário poralguma situação qualquer (má utilização de recursos, dúvida se a conta está sen<strong>do</strong> usada, etc.). Remover umaconta e novamente adicioná-la então não é uma situação muito prática. Utilize então o seguinte coman<strong>do</strong> paradesativar uma conta de usuário:smbpasswd -d usuárioQuan<strong>do</strong> a conta de usuário é desativada, uma flag "D" é adicionada às opções <strong>do</strong> usuário (junto com as opções"UX").Roberto Amaral – Marcelo Soares Farias 03/03/2010Página 49


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXHabilitan<strong>do</strong> uma conta no smbpasswdUma conta desativada com o uso <strong>do</strong> coman<strong>do</strong> smbpasswd -d pode ser novamente ativada usan<strong>do</strong>:smbpasswd -e usuarioAlteran<strong>do</strong> a senha de um usuárioO utilitário smbpasswd pode ser usa<strong>do</strong> tanto para alterar a senha de usuários locais <strong>do</strong> SAMBA ou de umaconta em um servi<strong>do</strong>r remoto (seja SAMBA, NT, W2K). Para alterar a senha de um usuário local, digite:smbpasswd -U usuarioSerá pedida a antiga senha, a nova senha e a confirmação. Caso seja o usuário root, somente a nova senha ea confirmação. Isto é mecanismo de proteção para usuários que esquecem a senha.Para alterar a senha de um usuário remoto, utilize:smbpasswd -r servi<strong>do</strong>r -U usuárioNote que apenas foi adicionada a opção -r servi<strong>do</strong>r compara<strong>do</strong> com a opção anterior. A diferença é que asenha antiga <strong>do</strong> usuário sempre será solicitada para troca (pois o root das 2 máquinas pode não ser o mesmo).Definin<strong>do</strong> acesso sem senha para o usuárioPara fazer um usuário acessar sem senha, use o coman<strong>do</strong>:smbpasswd -n usuarioIsto é completamente desencoraja<strong>do</strong> e necessita que a opção null passwords da seção [global] no arquivosmb.conf esteja ajustada para yes (que NÃO é o padrão).Ativan<strong>do</strong> o suporte a senhas em texto planoEsta forma de autenticação é enviada por implementações NetBIOS antigas, como a encontrada no LanManager, Win<strong>do</strong>ws for Workgroups e Win<strong>do</strong>ws 95 OSR1. As versões mais novas destas implementaçõesenviam a senha em formato criptografa<strong>do</strong>, sen<strong>do</strong> necessário também usar o formato criptografa<strong>do</strong> no SAMBApara que possa se autenticar.Em geral, o administra<strong>do</strong>r prefere a utilização da autenticação usan<strong>do</strong> texto plano quan<strong>do</strong> deseja usar o/etc/passwd para autenticação e está usan<strong>do</strong> grupos de trabalho é necessário usar senhas criptografadas paraautenticação).Para configurar o SAMBA para utilizar senhas em texto, modifique o parâmetro encrypt passwords para no:[global]encrypt passwords = noRoberto Amaral – Marcelo Soares Farias 03/03/2010Página 50


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXReinicie o SAMBA e a partir de agora, ele usará o /etc/passwd para autenticação.OBS: Tenha certeza de não estar participan<strong>do</strong> de um <strong>do</strong>mínio ou que sua máquina seja o PDC antes de fazeresta modificação.Configuração em DomínioEsta seção descreve to<strong>do</strong>s os passos necessários para configurar um servi<strong>do</strong>r de <strong>do</strong>mínio PDC (PrimaryDomain Control) com perfis móveis e outros recursos que tornam úteis e seguras a administração de uma redeNetBEUI.Uma breve introdução a um Domínio de redeUm <strong>do</strong>mínio de rede consiste em uma máquina central chamada de PDC, que mantém o controle de todas ascontas de usuários/grupos e permissões para acesso a rede NetBEUI. O acesso desta forma é centraliza<strong>do</strong>,como vantagem disto você pode usar o nível de acesso por usuários nas máquinas, definin<strong>do</strong> quais usuáriosou grupos terão acesso de leitura/gravação.É permiti<strong>do</strong> criar scripts de logon, assim coman<strong>do</strong>s programa<strong>do</strong>s pelo administra<strong>do</strong>r serão executa<strong>do</strong>s nasmáquinas clientes durante o logon no.O nome da máquina é protegi<strong>do</strong> contra hijacking através de contas de máquinas que fazem parte <strong>do</strong> <strong>do</strong>mínio.Isto só é possível em clientes Linux, Win<strong>do</strong>ws NT, Win<strong>do</strong>ws 2000 e Win<strong>do</strong>ws XP.Você poderá usar perfis móveis, copian<strong>do</strong> todas as personalizações <strong>do</strong> seu desktop para qualquer máquina narede que você faça o logon. Para o administra<strong>do</strong>r, ele poderá definir políticas com o Poledit e outros programasque serão salvas junto com o perfil <strong>do</strong> usuário, valen<strong>do</strong> para qualquer máquina que ele se autentique na rede.Local Master BrowserÉ a máquina que ganhou a eleição no segmento local de rede. Logo que é declarada o local master browser,ela começa a receber via broadcasting a lista de recursos compartilha<strong>do</strong>s por cada máquina para montar a listaprincipal que será retornada para outras máquinas <strong>do</strong> grupo de trabalho ou outras subredes que solicite osrecursos compartilha<strong>do</strong>s por aquele grupo.Uma nova eleição é feita a cada 36 minutos ou quan<strong>do</strong> a máquina escolhida é desligada.Domain Master BrowserQuan<strong>do</strong> o local master browse é eleito no segmento de rede, uma consulta é feita ao servi<strong>do</strong>r WINS para saberquem é o Domain Master Browse da rede para enviar a lista de compartilhamentos. A máquina escolhida comoLocal Master Browse envia pacotes para a porta UDP 138 <strong>do</strong> Domain Master e este responde pedin<strong>do</strong> a listade to<strong>do</strong>s os nomes de máquinas que o local master conhece, e também o registra como local master paraaquele segmento de rede.Caso tenha configura<strong>do</strong> sua máquina para ser o <strong>do</strong>main master browser da rede (também chama<strong>do</strong> decontrola<strong>do</strong>r principal de <strong>do</strong>mínio ou PDC), ela tentará se tornar a máquina que terá a lista completa de recursosRoberto Amaral – Marcelo Soares Farias 03/03/2010Página 51


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXenvia<strong>do</strong>s pelos locais master browsers de cada segmento de rede. Um PDC também é o local master browsede seu próprio segmento de rede.É possível ter mais de um <strong>do</strong>main master browse, desde que cada um controle seu próprio <strong>do</strong>mínio, mas não épossível ter 2 <strong>do</strong>main master browsers em um mesmo <strong>do</strong>mínio. Caso utilize um servi<strong>do</strong>r WINS em sua rede, oPDC fará consultas constantes em sua base de da<strong>do</strong>s para obter a lista de <strong>do</strong>mínios registra<strong>do</strong>s. O <strong>do</strong>mínio éidentifica<strong>do</strong> pelo caracter 1b na rede.OBS: O Win<strong>do</strong>ws NT configura<strong>do</strong> como PDC sempre tenta se tornar o <strong>do</strong>main master browser em seu grupode trabalho. Não sen<strong>do</strong> possível retirar o Win<strong>do</strong>ws NT configura<strong>do</strong> como PDC <strong>do</strong> <strong>do</strong>mínio (por alguma outrarazão), a única forma será deixar ele ser o <strong>do</strong>main master browser. Se este for o caso, você poderá continuarlen<strong>do</strong> este <strong>do</strong>cumento para aprender mais sobre NetBIOS e talvez ainda mudar de idéia sobre manter o NT narede após ver as características <strong>do</strong> SAMBA ;-)Configuran<strong>do</strong> um servi<strong>do</strong>r PDC no SAMBAPara configurar uma máquina para ser o PDC (Controla<strong>do</strong>ra Principal de Domínio ou Primary Domain Control),siga esta seqüência:Habilite o suporte a senhas criptografadas. Na seção [global], insira/modifique os seguintes parâmetros:;Identificação da máquina e <strong>do</strong>mínionetbios name = adminsambaworkgroup = empresa;níveis de acesso e funções <strong>do</strong> servi<strong>do</strong>rsecurity = user<strong>do</strong>main master = yesprefered master = yeslocal master = yes; senhas criptografadasencrypt passwords = yessmb passwd file = /etc/samba/smbpasswd.dbOnde os parâmetros significam:netbios name = adminsamba - Nome <strong>do</strong> computa<strong>do</strong>r. Este também será o nome usa<strong>do</strong> pelas outras máquinasclientes quan<strong>do</strong> for configurar o PDC (controla<strong>do</strong>r de <strong>do</strong>mínio).workgroup = empresa - Nome <strong>do</strong> <strong>do</strong>mínio que está crian<strong>do</strong>. Todas as máquinas que pertencerem a este<strong>do</strong>mínio terão o nível de acesso defini<strong>do</strong> pelo PDC. Note que o parâmetro workgroup também é usa<strong>do</strong> aoespecificar o nome <strong>do</strong> grupo de trabalho quan<strong>do</strong> se é usa<strong>do</strong> a configuração grupo de trabalho.Roberto Amaral – Marcelo Soares Farias 03/03/2010Página 52


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXsecurity = user - Requeri<strong>do</strong> para controle de acesso por <strong>do</strong>mínio, já que é utiliza<strong>do</strong> o controle de acesso localusan<strong>do</strong> usuários e grupos locais.<strong>do</strong>main master = yes - Especifica se está máquina está sen<strong>do</strong> configurada para ser o PDC da rede.OBS: Certifique-se que não existe outro PDC no <strong>do</strong>mínio.prefered master = yes - Força uma eleição com algumas vantagens para seu servi<strong>do</strong>r ser eleito sempre como ocontrola<strong>do</strong>r de <strong>do</strong>mínio. Isto garante que a máquina SAMBA sempre seja o PDC.local master = yes - Define se a máquina será o controla<strong>do</strong>r principal <strong>do</strong> grupo de trabalho local que elapertence.Pronto, agora teste se existem erros em sua configuração executan<strong>do</strong> o coman<strong>do</strong> testparm e corrija-os seexistir. Resta agora reiniciar o servi<strong>do</strong>r nmbd para que todas as suas alterações tenham efeito.Contas de máquinas de <strong>do</strong>mínioUma conta de máquina de <strong>do</strong>mínio garante que nenhum outro computa<strong>do</strong>r possa utilizar o mesmo nome deuma máquina confiável e assim utilizar os compartilhamentos que ela tem permissão. Os clientes Win<strong>do</strong>ws NT,Win<strong>do</strong>ws XP e Win<strong>do</strong>ws 2000 precisam de uma conta de máquina para ter acesso ao <strong>do</strong>mínio e seus recursos.A criação de uma conta de máquina é bastante semelhante a criação da conta de um usuário normal no<strong>do</strong>mínio.Existe uma coisa que precisa sempre ter em mente quan<strong>do</strong> estiver configuran<strong>do</strong> uma conta de máquina de<strong>do</strong>mínio: Quan<strong>do</strong> você cria uma conta para a máquina, ela entra e altera sua senha no próximo logon usan<strong>do</strong>um "segre<strong>do</strong>" entre ela e o PDC, este segre<strong>do</strong> a identifica sempre como <strong>do</strong>na daquele nome NetBIOS, ou seja,até o primeiro logon no NT, outra máquina com o mesmo nome NetBIOS poderá ser a <strong>do</strong>na <strong>do</strong> netbios naquele<strong>do</strong>mínio caso faça o logon no <strong>do</strong>mínio. A única forma de se evitar isto é logar imediatamente no <strong>do</strong>mínio NTassim que criar as contas de máquinas.Existem duas formas para criação de contas de máquinas: manual e automática.Crian<strong>do</strong> contas de máquinas manualmentePara criar uma conta de <strong>do</strong>mínio para a máquina master, siga estes 2 passos:Crie uma conta de máquina no arquivo /etc/passwd:useradd -g <strong>do</strong>mainmac -c "Maquina de Dominio" -s /bin/false -d /dev/null master$O coman<strong>do</strong> acima cria uma conta para a máquina master$ e torna ela parte <strong>do</strong> grupo <strong>do</strong>mainmac. Énecessário especificar o caracter $ após o nome da máquina para criar uma conta de máquina no <strong>do</strong>mínio,caso contrário o próximo passo irá falhar. Acredito que nas próximas versões <strong>do</strong> SAMBA seja desnecessário ouso <strong>do</strong> arquivo /etc/passwd para a criação de contas de máquina.Crie uma conta de máquina no arquivo /etc/samba/smbpasswd:smbpasswd -m -a masterRoberto Amaral – Marcelo Soares Farias 03/03/2010Página 53


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXIsto cria uma conta de máquina para o computa<strong>do</strong>r master no arquivo /etc/samba/smbpasswd. Note que acriação de uma conta de máquina é muito semelhante a criação de um usuário apenas precisa adicionar aopção -m. Quan<strong>do</strong> for criar uma conta com o smbpasswd Não é necessário especificar $ no final <strong>do</strong> nome damáquina.O mais importante: Entre IMEDIATAMENTE no <strong>do</strong>mínio após criar a conta de máquina usan<strong>do</strong> a conta deadministra<strong>do</strong>r de <strong>do</strong>mínio criada no SAMBA. Como a máquina ainda não se autenticou pela primeira vez,qualquer máquina que tenha o mesmo nome e entre no <strong>do</strong>mínio, poderá alocar o nome recém cria<strong>do</strong>. A únicaforma de resolver este problema, é apagan<strong>do</strong> a conta de máquina e crian<strong>do</strong>-a novamente no <strong>do</strong>mínio. Siga ospassos de acor<strong>do</strong> com o sistema operacional em Configuran<strong>do</strong> clientes em Domínio para colocar seus clientesem <strong>do</strong>mínio.Crian<strong>do</strong> contas de máquinas automaticamenteAtravés deste méto<strong>do</strong>, as máquinas clientes terão sua conta criada automaticamente assim que seja feita aentrada no <strong>do</strong>mínio usan<strong>do</strong> a conta <strong>do</strong> administra<strong>do</strong>r de <strong>do</strong>mínio no SAMBA. Este é o méto<strong>do</strong> recomendávelde colocação de máquinas no <strong>do</strong>mínio por ser mais prática ao invés <strong>do</strong> méto<strong>do</strong> manual. Note que normalmenteisto funciona para o WinXP e Win2000 mas não funciona em redes com o NT4, deven<strong>do</strong> ser criadas contas demáquinas usan<strong>do</strong> o méto<strong>do</strong> manual.Para fazer a configuração automática, coloque a seguinte linha no arquivo smb.conf na seção [global]:add user script = useradd -g <strong>do</strong>mainmac -c "Maquina de Dominio" -s /bin/false -d /dev/null %uAssim, a conta de máquina será automaticamente criada quan<strong>do</strong> o administra<strong>do</strong>r fizer sua configuração no<strong>do</strong>mínio. No SAMBA 3.0, a opção add machine script deverá ser usada no lugar de add user script paraadicionar uma máquina no <strong>do</strong>mínio.Crian<strong>do</strong> uma conta de administra<strong>do</strong>r de <strong>do</strong>mínioA conta de administra<strong>do</strong>r <strong>do</strong> <strong>do</strong>mínio é a conta que tem permissões para realizar operações de manutenção eadministração de máquinas que compõem o <strong>do</strong>mínio de rede. Com ela é possível, entre outras coisas,adicionar e remover máquina que compõem o <strong>do</strong>mínio. Para especificar que contas de usuários <strong>do</strong> arquivo/etc/samba/smbpasswd que terão poderes administrativos, utilize a opção <strong>do</strong>main admin group ou admin usersna seção [global] <strong>do</strong> arquivo /etc/samba/smb.conf.O parâmetro admin users permite que todas as operações realizadas pelo usuário sejam feitas com poderes deusuário root. Isto é necessário porque o arquivo smbpasswd (usa<strong>do</strong> para ajustar as contas de máquinas)normalmente tem permissões de leitura/gravação somente para root. O <strong>do</strong>main admin group permite queusuários específicos ou usuários <strong>do</strong> grupo especifica<strong>do</strong> sejam parte <strong>do</strong> grupo de administra<strong>do</strong>res <strong>do</strong> <strong>do</strong>míniopara adicionar máquinas, etc. Por exemplo, para tornar o usuário adminsamba com privilégios paraadicionar/remover máquinas no <strong>do</strong>mínio:Roberto Amaral – Marcelo Soares Farias 03/03/2010Página 54


[global]...<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXadmin users = adminsambaou<strong>do</strong>main admin group = @admins adminsambaIsto permite que o usuário adminsamba possa adicionar/remover máquinas <strong>do</strong> <strong>do</strong>mínio NT entre outras tarefas.Por segurança, recomen<strong>do</strong> que coloque esta conta no invalid users de cada compartilhamento para que sejautilizada somente para fins de gerenciamento de máquinas no <strong>do</strong>mínio, a menos que deseje ter acesso totalaos compartilhamentos <strong>do</strong> servi<strong>do</strong>r (nesse caso, tenha consciência <strong>do</strong> nível de acesso que esta conta possui e<strong>do</strong>s problemas que pode causar caso caia em mãos erradas).Compartilhamento de impressão no servi<strong>do</strong>r SAMBAConfiguran<strong>do</strong> o Linux como um servi<strong>do</strong>r de impressão Win<strong>do</strong>wsSerá necessário ter o pacote samba instala<strong>do</strong> e adicionar as seguintes linhas no seu arquivo/etc/samba/smb.conf:[hp-printer]path = /tmpprinter name=HP DeskJet 690Cprintable = yesprint command = lpr -r -h -P %p %svalid users = winuser winuser2create mode = 0700O compartilhamento acima tornará disponível a impressora local "lp" as máquinas Win<strong>do</strong>ws com o nome "HPDeskJet 690C". Uma impressora alternativa pode ser especificada modifican<strong>do</strong> a opção -P da linha decoman<strong>do</strong> <strong>do</strong> lpr. Note que somente os usuários "winuser" e "winuser2" poderão usar esta impressora. Osarquivos de spool (para gerenciar a fila de impressão) serão grava<strong>do</strong>r em /tmp (path = /tmp) e ocompartilhamento [hp-printer] será mostra<strong>do</strong> como uma impressora (printable = yes).Agora será necessário instalar o driver desta impressora no Win<strong>do</strong>ws (HP 690C) e escolher impressorainstalada via rede e seguir os demais passos de configuração.Controle de acesso ao servi<strong>do</strong>r SAMBANível de acesso de usuários conecta<strong>do</strong>s ao SAMBAQuan<strong>do</strong> acessa um compartilhamento, o usuário <strong>do</strong> samba é mapea<strong>do</strong> com o UID respectivo de usuário <strong>do</strong>sistema ou o usuário guest (especifica<strong>do</strong> pela opção "guest account") no caso de um acesso público. Quan<strong>do</strong>isto ocorre, um processo filho <strong>do</strong> smbd é executa<strong>do</strong> sobre o UID e GID deste usuário. Isto significa que emRoberto Amaral – Marcelo Soares Farias 03/03/2010Página 55


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXnenhuma ocasião o SAMBA dará mais permissões que as necessárias para o usuário (com excessão dequan<strong>do</strong> é usa<strong>do</strong> o parâmetro admin users).Restringin<strong>do</strong> o acesso por IP/redeEsta restrição pode ser feita pelos parâmetros allow hosts e deny hosts tanto em serviços individuais ou emto<strong>do</strong> o servi<strong>do</strong>r. Os parâmetros hosts allow e hosts deny são equivalentes a estes acima. O allow hosts permiteo acesso a máquina especificadas como argumento. São permiti<strong>do</strong>s os seguintes méto<strong>do</strong>s para permitir oacesso a uma máquina/rede:192.168.1.1 - IP da máquinaservi<strong>do</strong>r - Nome da máquina192.168.1.0/255.255.255.0 - IP com máscara de rede192.168.1.0/24 - IP com máscara de rede octal192.168.1. - Porção de rede sem o host (como no hosts.allow e hosts.deny.@nome - Pesquisa por máquinas no grupo NIS.É permiti<strong>do</strong> usar mais de um endereço IP separan<strong>do</strong>-os por vírgulas ou espaços. A palavra chave EXCEPTpode ser usada para fazer excessão de um ou mais endereços IPs, por exemplo:hosts allow = 192.168.1. EXCEPT 192.168.1.20Que permite o acesso a toda as máquinas da faixa de rede 192.168.1.0/24 exceto para a 192.168.1.20.O deny hosts possui a mesma sintaxe <strong>do</strong> allow hosts mas bloqueia o acesso das máquinas especificadas comoargumento. Quan<strong>do</strong> o allow hosts e deny hosts são usa<strong>do</strong>s juntos, as máquinas em allow hosts terãoprioridade (processa primeiro as diretivas em allow hosts e depois em deny hosts).Se você está executan<strong>do</strong> o SAMBA via inetd, os arquivos hosts.allow e hosts.deny são verifica<strong>do</strong>s antes <strong>do</strong>controle e acesso ao smbd. Caso estiver usan<strong>do</strong> o SAMBA via inetd e deseja restringir o acesso usan<strong>do</strong> TCPWrappers.OBS: Lembre-se de usar o testparm para verificar a sintaxe <strong>do</strong> arquivo smb.conf sempre que desconfiar deproblemas.Testan<strong>do</strong> a restrição de Acesso por IP/RedesUm méto<strong>do</strong> interessante e útil para testar se a nossa configuração vai bloquear o acesso a serviços é usan<strong>do</strong> otestparm da seguinte forma:testparm /etc/samba/smb.conf IP/hostVocê precisará dizer para o testparm qual é o arquivo de configuração que está usan<strong>do</strong> e o endereço IP/nomede host que fará a simulação de acesso. Este méto<strong>do</strong> não falsifica o endereço IP para testes, apenas usa osvalores em allow hosts e deny hosts para checagem. Por exemplo, para verificar o acesso vin<strong>do</strong> <strong>do</strong> IP192.168.1.50:testparm /etc/samba/smb.conf 192.168.1.50Load smb config files from /etc/samba/smb.confRoberto Amaral – Marcelo Soares Farias 03/03/2010Página 56


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXProcessing section "[homes]"Processing section "[printers]"Processing section "[tmp]"Processing section "[cdrom]"Loaded services file OK.Allow connection from /etc/samba/smb.conf (empresa) to homesAllow connection from /etc/samba/smb.conf (empresa) to printersAllow connection from /etc/samba/smb.conf (empresa) to tmpAllow connection from /etc/samba/smb.conf (empresa) to cdromRestringin<strong>do</strong> o acesso por interface de redeEsta restrição de acesso permite que façamos o SAMBA responder requisições somente para a interfacesindicadas. O méto<strong>do</strong> de segurança descrito em Restringin<strong>do</strong> o acesso por IP/rede serão analisadas logo apósesta checagem.Para restringir o serviço SAMBA a interfaces, primeiro será necessário ativar o parâmetro bind interfaces onlyusan<strong>do</strong> 1, yes ou true (o padrão é desativa<strong>do</strong>). Depois, definir que interfaces serão servidas pelo samba com oparâmetro interfaces. Os seguintes formatos de interfaces são permiti<strong>do</strong>s:eth0, sl0, plip0, etc - Um nome de interface local. É permiti<strong>do</strong> o uso de * para fazer o SAMBA monitorar todasas interfaces que iniciam com aquele nome (por exemplo, eth*).192.168.1.1, 192.168.1.2, etc - Um endereço IP de interface local.192.168.1.2/24, 192.168.1.2/255.255.255.0 - Um par de endereço/máscara de rede.Mais de uma interface pode ser usada separan<strong>do</strong>-as com vírgula ou espaços. A escolha <strong>do</strong> uso de nome dainterface ou <strong>do</strong> IP é feita de acor<strong>do</strong> com a configuração da máquina. Em uma máquina DHCP por exemplo, érecomenda<strong>do</strong> o uso <strong>do</strong> nome da interface. Quan<strong>do</strong> bind interfaces only estiver ativa<strong>do</strong>, o padrão é esperarconexões em todas as interfaces que permitem broadcast exceto a loopback.Exemplo:bind interfaces only = 1interfaces = loopback eth0Permite o recebimento de requisições de acesso ao SAMBA somente da interface loopback (desnecessário,pois como notou durante a leitura, sempre é permitida a conexão) e eth0.Restringin<strong>do</strong> o acesso por usuáriosPermite que você controle quem poderá ou não acessar o compartilhamento da máquina. Este controle é feitopelos parâmetros valid users e invalid users.O invalid users lista de usuário que NÃO terão acesso ao compartilhamento. Se o nome for inicia<strong>do</strong> por "+" oparâmetro será trata<strong>do</strong> como um nome de grupo UNIX (/etc/group). O caracter "&" faz ele pesquisar o nome deRoberto Amaral – Marcelo Soares Farias 03/03/2010Página 57


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXgrupo no banco de da<strong>do</strong>s NIS. O caracter "@" permite fazer a busca <strong>do</strong> grupo primeiro no banco de da<strong>do</strong>s NISe caso ele não seja encontra<strong>do</strong>, no arquivo de grupos <strong>do</strong> sistema (/etc/group).É possível usar a combinação de caracteres "+&" e "&+" para alternar a ordem de busca enter o /etc/group e oNIS.Exemplos:invalid users = junior, marcio, +badusersNão permite que os usuários especifica<strong>do</strong>s e os usuários <strong>do</strong> grupo +badusers tenham acesso aocompartilhamento.invalid users = &;semacessoBloqueia o acesso de to<strong>do</strong>s os usuários NIS que pertençam ao grupo semacesso.invalid users = bruno, henrique, +@users,Bloqueia o acesso <strong>do</strong>s usuários bruno, henrique e de to<strong>do</strong>s os usuários que pertençam ao grupo users. Apesquisa de grupo é feita primeiro no /etc/group e em seguida no NIS.invalid users = @semacessoBloqueia o acesso <strong>do</strong>s usuários que pertencem ao grupo "semacesso". A pesquisa é feita primeiro no NIS edepois no /etc/group (equivalente ao uso de "&+").O valid users possui a mesma sintaxe de funcionamento <strong>do</strong> invalid users, mas permite somente o acesso paraos usuários/grupos lista<strong>do</strong>s. Caso a opção valid users não seja especificada ou a lista esteja vazia, o acesso épermiti<strong>do</strong>. Se um mesmo nome de usuário estiver na lista valid users e invalid users, o padrão é ser maisrestritivo, negan<strong>do</strong> o acesso.valid users = adminsamba, michelle, geoA segurança deste méto<strong>do</strong> de acesso depende muito da forma de autenticação <strong>do</strong>s nomes antes de passar ocontrole para o SAMBA, pois uma autenticação fraca põe em risco a segurança da sua máquina.Evite o uso <strong>do</strong> parâmetro hosts equiv!Este parâmetro permite que máquinas tenham acesso sem senha a um servi<strong>do</strong>r.Evite o uso de senhas em branco!O parâmetro null passwords é usa<strong>do</strong> na seção [global] permitin<strong>do</strong> que contas de usuários sem senha tenhamacesso permiti<strong>do</strong> ao servi<strong>do</strong>r. ISTO É TOTALMENTE INSEGURO e deve ser sempre evita<strong>do</strong>.Crian<strong>do</strong> um compartilhamento para acesso sem senhaEm algumas situações (mesmo em instalações seguras) é preciso tornar um compartilhamento acessívelpublicamente, exemplos disto incluem um diretório que contém drivers de impressoras, arquivos comuns, umdiretório temporário, etc.Para configurar um acesso público utilizamos a opção public = yes ou guest ok = yes (que é um sinônimo parao último coman<strong>do</strong>). O UID utiliza<strong>do</strong> no acesso público é especifica<strong>do</strong> pelo parâmetro guest account, portantoRoberto Amaral – Marcelo Soares Farias 03/03/2010Página 58


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXele deverá ser um usuário váli<strong>do</strong> <strong>do</strong> sistema. Caso você queira somente definir acesso guest a umcompartilhamento, especifique a opção guest only para o serviço, desta forma, mesmo que o usuário tenhaacesso, ele será mapea<strong>do</strong> para o usuário guest.Uma boa medida de segurança é usar o usuário nobody pois a maioria das distribuições de Linux segurasa<strong>do</strong>tam-o como padrão como usuário que não é <strong>do</strong>no de quaisquer arquivos/diretórios no sistema, não possuilogin, senha ou sequer um diretório home.Veja um exemplo disponibilizan<strong>do</strong> o compartilhamento [<strong>do</strong>wnload] para acesso público com acesso a gravação:[global]guest account = nobody....[<strong>do</strong>wnload]path = /<strong>do</strong>wnloadscomment = Espaço público para abrigar <strong>do</strong>wnloads de Usuáriosguest ok = yes (aqui poderá ser também "public = yes").writable = yesfollow symlinks = falseO parâmetro guest account também poderá ser especifica<strong>do</strong> no compartilhamento, isto é útil quan<strong>do</strong> não quiserque o usuário que acesse o compartilhamento não seja o mesmo usa<strong>do</strong> na diretiva [global].Caso seu servi<strong>do</strong>r somente disponibiliza compartilhamentos para acesso público, é mais recomenda<strong>do</strong> utilizaro nível security = share pra diminuir a carga máquina, pois o usuário guest será o primeiro a ser checa<strong>do</strong> pelasregras de acesso (ao contrário <strong>do</strong> nível user, onde o acesso guest é o último checa<strong>do</strong>).Crian<strong>do</strong> um compartilhamento com acesso somente leituraEsta proteção é útil quan<strong>do</strong> não desejamos que pessoas alterem o conteú<strong>do</strong> de um compartilhamento. Istopode ser feito de duas formas: negan<strong>do</strong> o acesso de gravação para to<strong>do</strong> o compartilhamento ou permitin<strong>do</strong>leitura somente para algumas pessoas. O parâmetro usa<strong>do</strong> para fazer a restrição de acesso somente leitura éo read only = yes ou seu antônimo writable = no. Abaixo seguem os <strong>do</strong>is exemplos comenta<strong>do</strong>s:[teste]comment = Acesso a leitura para to<strong>do</strong>spath = /tmpread only = yespublic = yesNo exemplo acima, o diretório /tmp (path = /tmp) foi compartilha<strong>do</strong> com o nome teste ([teste]), de forma pública(acesso sem senha - public = yes), e to<strong>do</strong>s podem apenas ler seu conteú<strong>do</strong> read only = yes).Roberto Amaral – Marcelo Soares Farias 03/03/2010Página 59


[teste]<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXcomment = Acesso a gravação para to<strong>do</strong>s com excessõespath = /tmpread only = noread list = @users, adminsambainvalid users = rootNeste, o mesmo compartilhamento teste ([teste]) foi defini<strong>do</strong> como acesso leitura/gravação para to<strong>do</strong>s (rea<strong>do</strong>nly = no), mas os usuários <strong>do</strong> grupo @users e o usuário adminsamba terão sempre acesso leitura (read list =@users, adminsamba). Adicionalmente foi colocada uma proteção para que o superusuário não tenha acesso aele (invalid users = root). Esta forma de restrição é explicada melhor em Excessão de acesso na permissãopadrão de compartilhamento).Crian<strong>do</strong> um compartilhamento com acesso leitura/gravaçãoEsta forma de compartilhamento permite a alteração <strong>do</strong> conteú<strong>do</strong> <strong>do</strong> compartilhamento <strong>do</strong>s usuários quepossuem as permissões de acesso apropriadas. Este controle pode ser feito de duas formas: Acesso total degravação para os usuários e acesso de gravação apenas para determina<strong>do</strong>s usuários. Este controle é feitopela opção read only = no e seu antônimo equivalente writable = yes. Abaixo <strong>do</strong>is exemplos:[teste]comment = Acesso de gravação para to<strong>do</strong>s.path = /tmpwritable = yespublic = yesNo exemplo acima, o diretório /tmp (path = /tmp) foi compartilha<strong>do</strong> com o nome teste ([teste]), de forma pública(acesso sem senha - public = yes) e to<strong>do</strong>s podem ler/gravar dentro dele (writable = yes).[teste]comment = Acesso a leitura para to<strong>do</strong>s com excessõespath = /tmpwritable = nowrite list = @users, adminsambaNeste, o mesmo compartilhamento teste ([teste]) foi defini<strong>do</strong> como acesso de leitura para to<strong>do</strong>s (writable = no),mas os usuários <strong>do</strong> grupo @users e o usuário adminsamba serão os únicos que terão também acesso agravação (write list = @users, adminsamba). Esta forma de restrição é explicada melhor em Excessão deacesso na permissão padrão de compartilhamento).Roberto Amaral – Marcelo Soares Farias 03/03/2010Página 60


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXExcessão de acesso na permissão padrão de compartilhamentoÉ possível alterar o nível de acesso para determina<strong>do</strong>s usuários/grupos em um compartilhamento, paraentender melhor: Caso tenha cria<strong>do</strong> um compartilhamento somente leitura e queira permitir que apenas algunsusuários ou grupos tenham acesso a gravação, isto é possível e será explica<strong>do</strong> nesta seção. Estecomportamento é controla<strong>do</strong> por duas opções: read list e write list. Veja alguns exemplos:[temporario]comment = Diretório temporáriopath = /tmpwritable = yesread list = adminsamba, rootbrowseable = noavailable = yesNeste exemplo, disponibilizamos o diretório /tmp (path = /tmp) como compartilhamento de nome temporario([temporario]), seu acesso padrão é leitura/gravação para to<strong>do</strong>s (writable = yes), exceto para os usuários root eadminsamba (read list = root, adminsamba). Em adição, tornamos o compartilhamento invisível no "Ambientede Rede" <strong>do</strong> Win<strong>do</strong>ws (browseable = no) e ele será li<strong>do</strong> e disponibiliza<strong>do</strong> pelo SAMBA (available = yes).[temporario]comment = Diretório temporáriopath = /tmpwritable = nowrite list = adminsamba, @opera<strong>do</strong>resbrowseable = yesNeste exemplo, disponibilizamos o diretório /tmp (path = /tmp) como compartilhamento de nome temporario([temporario]), seu acesso padrão é apenas leitura para to<strong>do</strong>s (writable = no), exceto para o usuárioadminsamba e usuários <strong>do</strong> grupo Unix opera<strong>do</strong>res, que tem acesso a leitura/gravação (write list =adminsamba, @opera<strong>do</strong>res). Tornamos o compartilhamento visível no "Ambiente de Rede" <strong>do</strong> Win<strong>do</strong>ws(browseable = yes - que é o padrão).Crian<strong>do</strong> um compartilhamento invisívelPara não exibir um compartilhamento da lista de compartilhamentos das máquinas, utilize o parâmetrobrowseable = no. Por exemplo:[teste]path = /tmpcomment = Diretório temporárioread only = yesbrowseable = noRoberto Amaral – Marcelo Soares Farias 03/03/2010Página 61


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXNeste exemplo, o diretório /tmp (path = /tmp) foi compartilha<strong>do</strong> através de teste ([teste]) com acesso somenteleitura (read only = yes) e ele não será mostra<strong>do</strong> na listagem de compartilhamentos <strong>do</strong> ambiente de rede <strong>do</strong>Win<strong>do</strong>ws (browseable = no).Note que o compartilhamento continua disponível, porém ele poderá ser acessa<strong>do</strong> da estação Win<strong>do</strong>ws,especifican<strong>do</strong> a \\maquina\compartilhamento. Para acessar o compartilhamento <strong>do</strong> exemplo acima:# Clique em Iniciar/Executar e digite:\\nome_<strong>do</strong>_servi<strong>do</strong>r_samba\testeAo contrário das máquinas Win<strong>do</strong>ws onde é necessário adicionar um "$" <strong>do</strong> nome de compartilhamento paracriar um compartilhamento oculto (como teste$) o SAMBA cria um compartilhamento realmente oculto, nãoaparecen<strong>do</strong> mesmo na listagem <strong>do</strong> smbclient.Exemplos de configuração <strong>do</strong> servi<strong>do</strong>r SAMBAOs exemplos existentes nesta seção cobrem diferentes tipos de configuração <strong>do</strong> servi<strong>do</strong>r, tanto em mo<strong>do</strong> decompartilhamento com acesso público ou um <strong>do</strong>mínio restrito de rede. To<strong>do</strong>s os exemplos estão bemcomenta<strong>do</strong>s e explicativos, apenas pegue o que se enquadre mais em sua situação para uso próprio eadaptações.Grupo de Trabalho com acesso públicoEste exemplo pode ser usa<strong>do</strong> de modelo para construir uma configuração baseada no controle de acessousan<strong>do</strong> o nível de segurança share e quan<strong>do</strong> possui compartilhamentos de acesso público. Esta configuraçãoé indicada quan<strong>do</strong> necessita de compatibilidade com softwares NetBIOS antigos.[global]# nome da máquina na redenetbios name = teste# nome <strong>do</strong> grupo de trabalho que a máquina pertenceráworkgroup = empresa# nível de segurança share permite que clientes antigos# mantenham a compatibilidade envian<strong>do</strong> somente a senha para# acesso ao recurso, determinan<strong>do</strong> o nome de usuário de outras# formassecurity = share# O recurso de senhas criptografadas não funciona quan<strong>do</strong> usamos# o nível share de segurança. O motivo disto é porque# automaticamente é assumi<strong>do</strong> que você está selecionan<strong>do</strong> este# nível por manter compatibilidade com sistemas antigos ou paraRoberto Amaral – Marcelo Soares Farias 03/03/2010Página 62


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUX# disponibilizar compartilhamentos públicos, ondeencrypt passwords = false# Conta que será mapeada para o usuário guestguest account = nobody# Como to<strong>do</strong>s os compartilhamentos desta configuração são de# acesso público coloquei este parâmetro na seção [global],# assim esta opção afetará to<strong>do</strong>s os compartilhamentos.guest ok = 1# Conjunto de caracteres utiliza<strong>do</strong>s para acessar os# compartilhamentos. O padrão para o Brasil e países de língua# latina é o ISO 8859-1character set = ISO8859-1# Compartilha o diretório /tmp (path = /tmp) com o nome# "temporario" ([temporario]),# é adicionada a descrição "Diretório temporário" com acesso# leitura/gravação (read only = no) e exibi<strong>do</strong> na janela de# navegação da rede (browseable = yes).[temporario]path = /tmpcomment = Diretório temporárioread only = nobrowseable = yes# Compartilha o diretório /pub (path = /pub) com o nome# "publico" ([publico]). A descrição "Diretório de acesso# público" é associada ao compartilhamento com acesso somente# leitura (read only = yes) e exibi<strong>do</strong> na janela de navegação# da rede (browseable = yes).[publico]path =/pubcomment = Diretório de acesso públicoread only = yesbrowseable = yes# Compartilha todas as impressoras encontradas no /etc/printcap# <strong>do</strong> sistema.Roberto Amaral – Marcelo Soares Farias 03/03/2010Página 63


[printers]<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>scomment = All Printerspath = /tmpcreate mask = 0700printable = Yesbrowseable = NoCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXGrupo de Trabalho com acesso por usuárioO exemplo abaixo descreve uma configuração a nível de segurança por usuário onde existemcompartilhamentos que requerem login e usuários específicos, e restrições de IPs e interface onde o servi<strong>do</strong>ropera. Esta configuração utiliza senhas em texto claro para acesso <strong>do</strong>s usuários, mas pode ser facilmentemodificada para suportar senhas criptografadas.[global]# nome da máquina na redenetbios name = teste# nome <strong>do</strong> grupo de trabalho que a máquina pertenceráworkgroup = empresa# nível de segurança user somente aceita usuários autentica<strong>do</strong>s# após o envio de login/senhasecurity = user# É utilizada senhas em texto claro nesta configuraçãoencrypt passwords = false# Conta que será mapeada para o usuário guestguest account = nobody# Permite restringir quais interfaces o SAMBA responderábind interfaces only = yes# Faz o samba só responder requisições vin<strong>do</strong> de eth0interfaces = eth0# Supon<strong>do</strong> que nossa interface eth0 receba conexões roteadas de# diversas outras redes, permite somente as conexões vindas da# rede 192.168.1.0/24hosts allow = 192.168.1.0/24# A máquina 192.168.1.57 possui gateway para acesso interno, como# medida de segurança, bloqueamos o acesso desta máquina.hosts deny = 192.168.1.57/32# Conjunto de caracteres utiliza<strong>do</strong>s para acessar osRoberto Amaral – Marcelo Soares Farias 03/03/2010Página 64


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUX# compartilhamentos. O padrão para o Brasil e países de língua# latina é o ISO 8859-1character set = ISO8859-1# As restrições <strong>do</strong> PAM terão efeito sobre os usuários e recursos# usa<strong>do</strong>s <strong>do</strong> SAMBAobey pam restriction = yes# Mapeia o diretório home <strong>do</strong> usuário autentica<strong>do</strong>.[homes]comment = Diretório <strong>do</strong> Usuáriocreate mask = 0700directory mask = 0700browseable = No# Compartilha o diretório win (path = /win) com o nome "win"#([win]). A descrição associada ao compartilhamento será "Disco <strong>do</strong> Win<strong>do</strong>ws", o nome de volume precisa serespecifica<strong>do</strong> pois usamos# programas que a proteção anti cópia é o serial. Ainda fazemos# uma proteção onde qualquer usuário existente no grupo @adm é# automaticamente rejeita<strong>do</strong> e o usuário "baduser" somente possui# permissão de leitura (read list = baduser).#[win]path = /wincomment = Disco <strong>do</strong> Win<strong>do</strong>wsvolume = 3CF434Cinvalid users = @admbrowseable = yesread list = baduser# Compartilha o diretório /pub (path = /pub) com o nome "publico"# ([publico]). A descrição "Diretório de acesso público" é# associada ao compartilhamento com acesso somente leitura (read# only = yes) e exibi<strong>do</strong> na janela de navegação da rede (browseable# = yes). O parâmetro public = yes permite que este# compartilhamento seja acessa<strong>do</strong> usan<strong>do</strong> o usuário "nobody" sem o# fornecimento de senha.Roberto Amaral – Marcelo Soares Farias 03/03/2010Página 65


[publico]path =/pub<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXcomment = Diretório de acesso públicoread only = yesbrowseable = yespublic = yesDomínio[global]# nome da máquina na redenetbios name = teste# nome <strong>do</strong> grupo de trabalho que a máquina pertenceráworkgroup = empresa# String que será mostrada junto com a descrição <strong>do</strong> servi<strong>do</strong>rserver string = servi<strong>do</strong>r PDC principal de testes# nível de segurança user somente aceita usuários autentica<strong>do</strong>s# após o envio de login/senhasecurity = user# Utilizamos senhas criptografadas nesta configuraçãoencrypt passwords = truesmb passwd file = /etc/samba/smbpasswd# Conta que será mapeada para o usuário guestguest account = nobody# Permite restringir quais interfaces o SAMBA responderábind interfaces only = yes# Faz o samba só responder requisições vin<strong>do</strong> de eth0interfaces = eth0# como estamos planejan<strong>do</strong> ter um grande número de usuários na# rede, dividimos os arquivos de log <strong>do</strong> servi<strong>do</strong>r por máquina.log file = /var/log/samba/samba-%m-%I.log# O tamanho de CADA arquivo de log cria<strong>do</strong> deverá ser 1MB (1024Kb).max log size = 1000# Escolhemos um nível de OS com uma boa folga para vencer as# eleições de controla<strong>do</strong>r de <strong>do</strong>mínio localos level = 80# Dizemos que queremos ser o Domain Master Browse (o padrão éRoberto Amaral – Marcelo Soares Farias 03/03/2010Página 66


# auto)<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>s<strong>do</strong>main master = yesCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUX# Damos algumas vantagens para o servi<strong>do</strong>r ganhar a eleição caso# aconteça desempate por critériospreferred master = yes# Também queremos ser o local master browser para nosso segmento# de redelocal master = yes# Este servi<strong>do</strong>r suportará logon de usuários<strong>do</strong>main logons = yes# Usuários que possuem poderes para adicionar/remover máquinas no# <strong>do</strong>mínio (terão seu nível de acesso igual a root)admin users = adminsamba# Unidade que será mapeada para o usuário local durante o logon# (apenas sistemas basea<strong>do</strong>s no NT).logon drive = m:# Nome <strong>do</strong> script que será executa<strong>do</strong> pelas máquinas clienteslogon script = logon.bat# Ação que será tomada durante o recebimento de mensagens <strong>do</strong># Winpopup.message command = /bin/sh -c '/usr/bin/linpopup "%f" "%m" %s; rm %s' &# Conjunto de caracteres utiliza<strong>do</strong>s para acessar os# compartilhamentos. O padrão para o Brasil e países de língua# latina é o ISO 8859-1character set = ISO8859-1# As restrições <strong>do</strong> PAM terão efeito sobre os usuários e recursos# usa<strong>do</strong>s <strong>do</strong> SAMBAobey pam restriction = yes# Mapeia o diretório home <strong>do</strong> usuário autentica<strong>do</strong>. Este# compartilhamento especial é descrito em mais detalhes no inicio# <strong>do</strong> capítulo sobre o SAMBA no Foca Linux.[homes]comment = Diretório <strong>do</strong> Usuáriocreate mask = 0700Roberto Amaral – Marcelo Soares Farias 03/03/2010Página 67


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sdirectory mask = 0700browseable = NoCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUX# Compartilha o diretório win (path = /win) com o nome "win"# ([win]). A descrição associada ao compartilhamento será "Disco# <strong>do</strong> Win<strong>do</strong>ws", o nome de volume precisa ser especifica<strong>do</strong> pois# usamos programas que a proteção anti cópia é o serial. Ainda# fazemos uma proteção onde qualquer usuário existente no grupo# @adm é automaticamente rejeita<strong>do</strong> e o usuário "baduser" somente# possui permissão de leitura (read list = baduser).#[win]path = /wincomment = Disco <strong>do</strong> Win<strong>do</strong>wsvolume = 3CF434Cinvalid users = @admbrowseable = yesread list = baduser# Compartilha o diretório /pub (path = /pub) com o nome "publico"# ([publico]). A descrição "Diretório de acesso público" é# associada ao compartilhamento com acesso somente leitura (read# only = yes) e exibi<strong>do</strong> na janela de navegação da rede (browseable# = yes). O parâmetro public = yes permite que este# compartilhamento seja acessa<strong>do</strong> usan<strong>do</strong> o usuário "nobody" sem o# fornecimento de senha.[publico]path =/pubcomment = Diretório de acesso públicoread only = yesbrowseable = yespublic = yes# Compartilhamento especial utiliza<strong>do</strong> para o logon de máquinas na# rede[netlogon]path=/pub/samba/netlogon/logon.batread only = yesRoberto Amaral – Marcelo Soares Farias 03/03/2010Página 68


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXServi<strong>do</strong>r de Informação (NIS)O sistema NIS (Network Information System) permite compartilhar bases de da<strong>do</strong>s globais,conten<strong>do</strong> informações sobre usuários (/etc/passwd), grupos (/etc/group) e hosts (/etc/hosts) em ambiente Unix.Informações compartilhadas por servi<strong>do</strong>res NIS são visíveis pelos cliente, servin<strong>do</strong>, por exemplo, para aautenticação de usuários num <strong>do</strong>mínio de redes. As informações compartilhadas pelo NIS eram chamadas deYellow Pages – yp.A unidade de compartilhamento <strong>do</strong> NIS são os registros e não o arquivo. Um registro correspondea uma linha de configuração em um arquivo de configuração.A operação deste sistema envolve a execução de um processo servi<strong>do</strong>r (ypserv) numa máquinaque será o mestre de um <strong>do</strong>mínio (NIS máster) e a execução da versão cliente <strong>do</strong> programa (ypbind) nasmáquinas clientes. A utilização <strong>do</strong>s arquivos compartilha<strong>do</strong>s para autenticação <strong>do</strong>s usuários nos cliente,contu<strong>do</strong>, depende ainda <strong>do</strong>s ajustes de autenticação.• ypserv: processo servi<strong>do</strong>r <strong>do</strong> NIS;• ypbind: processo cliente NIS;• yppasswdd: processo de autenticação/modificação de senhas via rede. Deve ser executa<strong>do</strong>no servi<strong>do</strong>r mestre <strong>do</strong> <strong>do</strong>mínio;• ypinit: script de configuração <strong>do</strong> servi<strong>do</strong>r NIS (como principal ou secundário). Cria as tabelas apartir <strong>do</strong>s arquivos em /etc;• yppush: coman<strong>do</strong> para cópia <strong>do</strong>s arquivos <strong>do</strong> mestre para os escravos;• portmap: faz o mapeamento entre chamada RPC e número de portas para o serviço NIS;• /etc/yp.conf: arquivo de configuração <strong>do</strong> cliente NIS;• /etc/ypserv.conf: arquivo de configuração <strong>do</strong> servi<strong>do</strong>r NIS;• /var/yp: arquivos de configuração e tabelas de <strong>do</strong>mínio exporta<strong>do</strong> pelo servi<strong>do</strong>r;• /var/yp/ypservers; relação <strong>do</strong>s servi<strong>do</strong>res <strong>do</strong> <strong>do</strong>mínio;• /var/yp/securenets: relação de redes e hosts autoriza<strong>do</strong>s a acessar as informações <strong>do</strong><strong>do</strong>mínioConfiguração <strong>do</strong> servi<strong>do</strong>rAntes que o servi<strong>do</strong>r NIS possa ser ativa<strong>do</strong>, é preciso criar as tabelas exportadas. Para simplificar aconstrução das tabelas exportadas, entretanto, há um arquivo de configuração em /var/yp. Sua operaçãorequer apenas que o nome <strong>do</strong> <strong>do</strong>mínio NIS que se deseja atender esteja configura<strong>do</strong>:Roberto Amaral – Marcelo Soares Farias 03/03/2010Página 69


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUX• Domainname: define o nome <strong>do</strong> <strong>do</strong>mínio DNS. Ex: <strong>do</strong>mainname gerds.utp.br• Yp<strong>do</strong>mainname, nis<strong>do</strong>mainname: define o nome <strong>do</strong> <strong>do</strong>mínio NIS. Ex. yp<strong>do</strong>mainnamegerds.utp.brEmbora sejam normalmente coincidentes, não há restrições entre o nome de <strong>do</strong>mínio DNS e o <strong>do</strong>mínioNIS.A configuração de um servi<strong>do</strong>r NIS requer a instalação <strong>do</strong> pacote ypserv. Uma vez ajusta<strong>do</strong> o <strong>do</strong>mínioNIS que se deseja gerenciar, é preciso ajustar os scripts de configuração das tabelas exportadas, localiza<strong>do</strong>sno diretório /var/yp.• /var/yp: diretório que contém os arquivos para configuração <strong>do</strong> servi<strong>do</strong>r NIS e as tabelasexportadas;• /var/yp/Makefile: arquivo de configuração das tabelas que serão criadas para exportação.Configuração (manual) de um servi<strong>do</strong>r NIS:1. Definição <strong>do</strong> <strong>do</strong>mínio:<strong>do</strong>mainname <strong>do</strong>m.com.br ouyp<strong>do</strong>mainname <strong>do</strong>m.com.br ounis<strong>do</strong>maniname <strong>do</strong>m.com.br2. Ajuste das tabelas exportadas (/var/yp/Makefile) :cd /var/yp#editar /var/yp/Makefile#editar linha all: passwd group hosts ... contém relação <strong>do</strong>s mapas que serão cria<strong>do</strong>s para exportação#editar linha MERGE_PASSWD=true indica se passwd e sha<strong>do</strong>w serão unifica<strong>do</strong>s para exportação#editar linha MERGE_GROUP=true indica se group e gsha<strong>do</strong>w serão unifica<strong>do</strong>s para exportação#editar linha MINUID=500 início <strong>do</strong>s logins exporta<strong>do</strong>s#editar linha MINGID=500 início <strong>do</strong>s grupos exporta<strong>do</strong>s3. Criação das tabelas exportadasMake cria tabelas para <strong>do</strong>mínio defini<strong>do</strong> com yp<strong>do</strong>maninname, caso não existam, ou atualiza astabelas existente.Roberto Amaral – Marcelo Soares Farias 03/03/2010Página 70


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXOBS.: O padrão é utilizar os arquivos em /etc como fonte para geração <strong>do</strong>s maas <strong>do</strong> NIS. Épossível alterar este padrão, editan<strong>do</strong> o arquivo /var/yp/Makefile, modifican<strong>do</strong> as variáveisYPSRCDIR e YPPWDDDIR para que indiquem o diretório onde estão os arquivos. Assim, éviável manter usuários locais e <strong>do</strong> NIS de forma independente. As opções MINUID eMINGID também permitem restringir os usuários que serão exporta<strong>do</strong>s.Os coman<strong>do</strong>s executa<strong>do</strong>s pelo make, equivalem a criação das tabelas, utilizan<strong>do</strong> os coman<strong>do</strong>sabaixo:• /usr/lib/yp/ypinit –m: script para criação das tabelas <strong>do</strong> servi<strong>do</strong>r. Este script, executan<strong>do</strong>com opção –m, configura o servi<strong>do</strong>r como “mestre”(ou principal), pegan<strong>do</strong> comoinformações os da<strong>do</strong>s conti<strong>do</strong>s em /etc/passwd, /etc/group, /etc/hosts, /etc/networks,/etc/services, /etc/protocols, /etc/netgroup e /etc/rpc. Inclui, linha a linha, os servi<strong>do</strong>res<strong>do</strong> NIS.• /usr/lib/yp/yp/ypinit –s nome-<strong>do</strong>-servi<strong>do</strong>r-principal. A opção –s, seguida <strong>do</strong> nome <strong>do</strong>servi<strong>do</strong>r mestre, configura o servi<strong>do</strong>r “escravo” (ou secundário). Pode haver um únicomestre, mas várias escravos.4. Ajustes de segurança: limitar o acesso aos campos das tabelas exportadas editan<strong>do</strong>/etc/ypserv.confUma vez definidas as tabelas que serão exportadas, é preciso realizar ajustes de segurança antes deativar o servi<strong>do</strong>r (ypserv). O ajuste de opção de segurança <strong>do</strong>s mapas exporta<strong>do</strong>s é feito através <strong>do</strong>arquivo /etc/ypserv.conf.• /etc/ypserv.conf: arquivo com parâmetros para o servi<strong>do</strong>r <strong>do</strong> <strong>do</strong>mínio NIS:i. Dns: indica se o servi<strong>do</strong>r fará consultas ao servi<strong>do</strong>r DNS para a resolução denomes de <strong>do</strong>mínio não atendi<strong>do</strong>s por /etc/hostsii. Cada linha contém informações sobre uma tabela exportada, incluin<strong>do</strong> osseguintes campos, separa<strong>do</strong>s por “:”:host, mão, security, mangle e field1. host: endereço IP2. map: nome <strong>do</strong> mapa ou *, para to<strong>do</strong>s os mapas3. security: nome (sempre permite acesso), port (permite acesso se porta


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXExemplo:# /etc/ypserv.conf# HOST: Domain :Map :Security#* :* :passwd.byname :port # restringe o acesso a tabela* :* :passwd.byuid :port # restringe o acesso a tabela5. Restringir os hosts que poderão fazer a autenticação de usuários usan<strong>do</strong> as tabelas exportadas(/var/yp/securenets)A relação de clientes autoriza<strong>do</strong>s a usar as tabelas <strong>do</strong> sistema (nis clients) é definida através <strong>do</strong>arquivo /var/yp/securenets. As linhas <strong>do</strong> arquivo contêm informações sobre as máscaras de rede e osendereços IP autoriza<strong>do</strong>s.# /var/yp/securenets#255.0.0.0 127.0.0.0 #libera acesso para o localhost255.255.255.0 200.1.1.0 #libera acesso para a rede 200.1.1.06. Ativação <strong>do</strong> serviço <strong>do</strong> servi<strong>do</strong>r:A ativação <strong>do</strong> servi<strong>do</strong>r é feita inician<strong>do</strong>-se o processo ypserv (/usr/sbin/ypserv). O ajuste para suaativação automática nos níveis de execução multiusuário pode ser feita como descrito anteriormente.AplicaçõesConfigurações <strong>do</strong> SistemaConfigurações de Servi<strong>do</strong>rServiçosPortmapYpservO serviço ypxferd pode ser ativa<strong>do</strong> para auxiliar na transferência <strong>do</strong>s mapas entre o servi<strong>do</strong>r NISmáster e os servi<strong>do</strong>res slave:Ypxferd7. Habilitan<strong>do</strong> o ajuste de senhas pela rede (yppasswdd):A alteração de senha no ambiente NIS pode ser feita com o coman<strong>do</strong> yppasswd. Para tanto, ;e precisoque o serviço yppasswdd esteja sen<strong>do</strong> executa<strong>do</strong> no servi<strong>do</strong>r NIS, caso contrário, os usuários deverãofazer um acesso remoto ao servi<strong>do</strong>r para alterar a senha localmente com o coman<strong>do</strong>passwd. Nestecaso, ainda, a nova senha só se torna cálida após a reiniciação <strong>do</strong> servi<strong>do</strong>r NIS (ypserv).AplicaçõesConfigurações SistemasConfigurações de Servi<strong>do</strong>rServiçosYppasswddRoberto Amaral – Marcelo Soares Farias 03/03/2010Página 72


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXNos clientes, a senha da rede pode ser alterada executan<strong>do</strong>-se o coman<strong>do</strong> yppasswd.Configuração <strong>do</strong>s clientes para realizarem acessaem um servi<strong>do</strong>r NIS corresponde a habilitar aautenticação usan<strong>do</strong> NIS.HTTPD - Servi<strong>do</strong>r Web Apache2O Apache é o Servi<strong>do</strong>r Web mais utiliza<strong>do</strong> sen<strong>do</strong> utiliza<strong>do</strong>s para servir pedi<strong>do</strong>s de Páginas WEB por clientes.Os clientes em geral fazem requisições e visualizam Páginas da WEB usan<strong>do</strong> navega<strong>do</strong>res. Usuários utilizamURL (Uniform Resource Locator) para apontar para um servi<strong>do</strong>r Web através <strong>do</strong> seu Nome de DomínioCompleto (Fully Qualified Domain Name - FQDN) e um caminho. O protocolo mais comum usa<strong>do</strong> paratransferir páginas é o HTTP - Protocolo de transferência de hipertexto. Protocolos como HTTPS - Protocoloseguro de transferência de hipertexto e FTP - Protocolo de transferência de arquivo, protocolo para enviar ereceber arquivos, são também suporta<strong>do</strong>s. <strong>Servi<strong>do</strong>res</strong> Web Apache são geralmente utiliza<strong>do</strong>s em conjuntocom o banco de da<strong>do</strong>s MySQL, a linguagem de construção de scripts pré-processa<strong>do</strong>ra de hiper-texto (PHP), eoutras linguagens de construção de scripts populares como o Python e o Perl..InstalaçãoO servi<strong>do</strong>r web Apache2 está disponível no Ubuntu Linux. Para instalar o Apache2:# su<strong>do</strong> apt-get install apache2#ConfiguraçãoO Apache é configura<strong>do</strong> colocan<strong>do</strong>-se diretivas em arquivos de configuração de texto puro. O arquivo deconfiguração principal é chama<strong>do</strong> apache.conf. Além disso, outros arquivos de configuração podem seradiciona<strong>do</strong>s utilizan<strong>do</strong>-se a diretiva Include. Qualquer diretiva pode ser colocada em qualquer desses arquivosde configuração. Mudanças no arquivo de configuração apenas são reconhecidas quan<strong>do</strong> este for inicia<strong>do</strong> oureinicia<strong>do</strong>. O servi<strong>do</strong>r também irá ler um arquivo conten<strong>do</strong> os tipos mime de <strong>do</strong>cumentos; o nome <strong>do</strong> arquivo édefini<strong>do</strong> pela diretiva TypesConfig. O arquivo de configuração <strong>do</strong> Apache2 é o /etc/apache2/apache2.conf.Pode ser configura<strong>do</strong>, número da porta, raiz <strong>do</strong>s <strong>do</strong>cumentos, módulos, arquivos de log, hosts virtuais, etc.Configurações BásicasO Apache é configura<strong>do</strong> com um host virtual único padrão (diretiva VirtualHost) o qual pode ser modifica<strong>do</strong> ouutiliza<strong>do</strong> como está, se você tiver apenas um site, ou ainda usa<strong>do</strong> como modelo para hosts virtuais adicionaisRoberto Amaral – Marcelo Soares Farias 03/03/2010Página 73


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXcaso tenha múltiplos sites. Se não for altera<strong>do</strong>, o host virtual padrão servirá como seu site padrão. Paramodificar o virtual host padrão, edite o arquivo /etc/apache2/sites-available/default. Caso desejeconfigurar um novo host virtual, copie esse arquivo para o mesmo diretório com um nome de sua escolha.Por exemplo:su<strong>do</strong> cp /etc/apache2/sites-available/default /etc/apache2/sites-available/meunovosite.Edite o novo arquivo para configurar o novo site utilizan<strong>do</strong> algumas das diretivas descritas abaixo.• ServerAdmin especifica o endereço de email a ser anuncia<strong>do</strong>. Se website apresentar problema, o Apache2mostrará uma mensagem de erro conten<strong>do</strong> este endereço de email para qual o problema poderá ser relata<strong>do</strong>.• Listen especifica a porta, e opcionalmente o endereço IP, na qual o Apache2 irá escutar. Se o endereço IPnão for especifica<strong>do</strong>, o Apache2 irá escutar em to<strong>do</strong>s os endereços IP designa<strong>do</strong>s para a máquina no qual eleesteja rodan<strong>do</strong>. O valor padrão para diretiva Listen é 80. Altere isso para 127.0.0.1:80 para fazer com que oApache apenas escute apenas na sua interface de loopback. Esta diretiva pode ser encontrada e alterada emseu próprio arquivo, /etc/apache2/ports.conf• ServerName especifica qual a FQDN seu site deverá responder. O host virtual padrão não possui diretivaServerName especificada, portanto ele irá responder a todas as requisições que não combinem com umadiretiva ServerName em outro host virtual. Por exemplo: para o <strong>do</strong>mínio ubunturocks.com e adicione este nomena diretiva ServerName no arquivo de configuração <strong>do</strong> host virtual. Adicione esta diretiva ao novo arquivo desite virtual que você criou antes (/etc/apache2/sites-available/meunovosite).• DocumentRoot especifica o local dp s arquivos padrão que formam o site. O padrão é /var/www. Nenhumsite está configura<strong>do</strong> lá, mas pode descomentar a diretiva RedirectMatch em /etc/apache2/apache2.conf asrequisições serão redirecionadas para /var/www/apache2-default. Altere este valor no arquivo de host virtual <strong>do</strong>seu site e lembre-se de criar aquele diretório se necessário. O diretório /etc/apache2/sites-available não édecodifica<strong>do</strong> pelo Apache2. Links simbólicos em /etc/apache2/sites-enabled apontam para sites "disponíveis"(available). Utilize o utilitário a2ensite (Apache2 EnableSite) para criar esses links simbólicos.Configuração PadrãoEsta seção explica a configuração das definições padrão <strong>do</strong> servi<strong>do</strong>r Apache2.• DirectoryIndex é a página padrão <strong>do</strong> servi<strong>do</strong>r quan<strong>do</strong> o usuário requisita um índice de um diretórioespecifican<strong>do</strong> uma barra (/) no final <strong>do</strong> nome <strong>do</strong> diretório. Por exemplo, quan<strong>do</strong> um usuário solicita a páginahttp://www.examplo.com/este_diretório/, ele vai ver: o DirectoryIndex se ele existir; uma lista <strong>do</strong> diretório gera<strong>do</strong>pelo servi<strong>do</strong>r caso não exista e as opções de índices estiverem especificadas; ou uma página de PermissãoNegada se nenhuma das duas opções forem verdadeiras. Se ele não encontrar nenhum destes arquivos e seas Opções de Índices estiver ajustada para aquele diretório, o servi<strong>do</strong>r irá gerar e retornar uma lista, no formatoHTML, <strong>do</strong>s subdiretórios e arquivos no diretório. O valor padrão, encontra<strong>do</strong> em /etc/apache2/apache2.conf é"index.html index.cgi index.pl index.php index.xhtml".• ErrorDocument permite que você especifique um arquivo para o Apache usar para um evento específico deerro. Por exemplo, se um usuário solicitar um recurso que não existe, um erro 404 ocorrerá, e por padrão deRoberto Amaral – Marcelo Soares Farias 03/03/2010Página 74


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXconfiguração <strong>do</strong> Apache, o arquivo /usr/share/apache2/error/HTTP_NOT_FOUND.html. vai será mostra<strong>do</strong>. Estearquivo não está na Raiz de Documentos <strong>do</strong> servi<strong>do</strong>r, mais existe uma diretiva em /etc/apache2/apache2.confque redireciona as requisições <strong>do</strong> diretório /error para /usr/share/apache2/error/. Para ver a listagem de diretivapadrão de Documentos de Erro, use o coman<strong>do</strong>: grep ErrorDocument /etc/apache2/apache2.conf• Por padrão, o servi<strong>do</strong>r registra as transferências no arquivo /var/log/apache2/access.log, conforme informa<strong>do</strong>no arquivo de configuração e na diretriz CustomLog,. Pode ser especifica<strong>do</strong> o arquivo onde os erros serãoregistra<strong>do</strong>s, através da diretriz ErrorLog, que por padrão é /var/log/apache2/error.log. Estes são manti<strong>do</strong>ssepara<strong>do</strong>s <strong>do</strong> log de transferência para permitir eliminação de problemas. Pode ser especifica<strong>do</strong> o LogLevel (ovalor padrão é "alertar") e o LogFormat (veja o /etc/apache2/apache2.conf para o valor padrão).• Algumas opções são especificadas num esquema por diretórios. A diretiva Option é uma dessas diretivas.Uma instância de Directory é encapsulada entre tags semelhantes ao XML, como em:...A diretiva Options com uma instância de Directory aceita um ou mais <strong>do</strong>s seguintes valores:• ExecCGI - Permite execução de scripts CGI. Scripts CGI não são executa<strong>do</strong>s se esta opção não estiverhabilitada. Scripts CGI devem ser manti<strong>do</strong>s em diretórios separa<strong>do</strong>s, fora <strong>do</strong> DocumentRoot, e somente estediretório deve ter a opção ExecCGI habilitada. O local padrão para os scripts CGI é /usr/lib/cgi-bin.• Includes - Permite inclusões no la<strong>do</strong> <strong>do</strong> servi<strong>do</strong>r, permitin<strong>do</strong> que um arquivo HTML inclua outros arquivos.• IncludesNOEXEC - Permite includes, mais desabilita o coman<strong>do</strong>s #exec e #include nos scripts CGI• Indexes - Mostra uma lista formatada <strong>do</strong>s conteú<strong>do</strong>s <strong>do</strong>s diretórios, caso não exista um DirectoryIndex (talcomo index.html). Por motivos de segurança, não deve estar habilita<strong>do</strong>. Habilite esta opção com cuida<strong>do</strong>,somente se você tem certeza de que quer que os usuários vejam o conteú<strong>do</strong> inteiro <strong>do</strong> diretório.• Multiview - Suporta multi-visões negociadas pelo conteú<strong>do</strong>; esta opção é desabilitada por segurança.• SymLinksIfOwnerMatch - Segue os links simbólicos caso o arquivo seja <strong>do</strong> mesmo <strong>do</strong>no que o link.Configurações de Hosts VirtuaisHosts virtuais permitem que rode diferentes servi<strong>do</strong>res para diferentes endereços IP, diferentes nomes, oudiferentes portas da mesma máquina. Por exemplo, pode rodar o website por http://www.exemplo.com.br ehttp://www.outroexemplo.com.br no mesmo servi<strong>do</strong>r Web usan<strong>do</strong> hosts virtuais. Esta opção corresponde àdiretiva para o virtual host padrão e virtual hosts basea<strong>do</strong>s em IP. E corresponde à diretiva para um virtual host basea<strong>do</strong> em nomes. As diretivas para um host virtual somente sãoaplicadas para um host virtual em particular. Se a diretiva é setada para escopo de servi<strong>do</strong>r e não definidadentro das configurações de um virtual host, as configurações padrão serão usadas. Ajuste DocumentRootpara o diretório que contém o <strong>do</strong>cumento raíz para o host virtual. O DocumentRoot padrão é /var/www.A diretiva ServerAdmin dentro da instância <strong>do</strong> VirtualHost armazena o email usa<strong>do</strong> no rodapé da página deerros caso você escolha mostrar um rodapé com o endereço de email na página de erro.Roberto Amaral – Marcelo Soares Farias 03/03/2010Página 75


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXConfigurações <strong>do</strong> Servi<strong>do</strong>rLockFile - A diretiva LockFile define o caminho <strong>do</strong> arquivo usa<strong>do</strong> quan<strong>do</strong> o servi<strong>do</strong>r é compila<strong>do</strong> tanto comUSE_FCNTL_SERIALIZED_ACCEPT quanto com USE_FLOCK_SERIALIZED_ACCEPT.PidFile - A diretiva PidFile define o arquivo em que o servi<strong>do</strong>r gravará o seu ID de processo (pid). Este arquivodeve ter permissões de leitura somente para o root. Na maioria <strong>do</strong>s casos, o valor padrão deve ser deixa<strong>do</strong>.User - A diretiva User seta o UserID usa<strong>do</strong> pelo servi<strong>do</strong>r para responder as solicitações. Esta opção determinao acesso ao servi<strong>do</strong>r. Qualquer arquivo inacessível a este usuário será também inacessível aos visitantes <strong>do</strong>seu website. O valor padrão para o User é www-data. Usan<strong>do</strong> o root como User você irá criar brechas desegurança para seu ser servi<strong>do</strong>r Web. A diretiva Group é similar a diretiva User. Group define o grupo que oservi<strong>do</strong>r irá responder as solicitações. O grupo padrão é www-data.Módulos <strong>do</strong> ApacheO Apache é um servi<strong>do</strong>r modular. Isso significa que somente as funcionalidades básicas são inclusas nonúcleo <strong>do</strong> servi<strong>do</strong>r. A extensão das funcionalidades são disponibilizadas através de módulos, que podem sercarrega<strong>do</strong>s no Apache. Por padrão, alguns módulos básicos já estão inclusos na hora da compilação. Se oservi<strong>do</strong>r for compila<strong>do</strong> para usar o carregamento dinâmico de módulos, então os módulos podem sercompila<strong>do</strong>s separadamente, e adiciona<strong>do</strong>s à qualquer hora usan<strong>do</strong> a diretiva LoadModule. Caso contrário, oApache2 precisa ser recompila<strong>do</strong> para adicionar ou remover módulos. As diretivas de configuração podem serincluídas condicionalmente, com a presença de um módulo em particular incluí<strong>do</strong> num bloco . Vocêpode instalar módulos adicionais <strong>do</strong> Apache2 e usá-los com o seu servi<strong>do</strong>r WEB. Você pode instalar módulos<strong>do</strong> Apache2 usan<strong>do</strong> o coman<strong>do</strong> apt-get. Por exemplo, para instalar o módulo <strong>do</strong> Apache2 para autenticaçãopor MYSQL, você pode executar o seguinte coman<strong>do</strong> de um prompt de terminal (linha de coman<strong>do</strong>).su<strong>do</strong> apt-get install libapache2-mod-auth-mysqlQuan<strong>do</strong> você instala um módulo, ele estará disponível no diretório /etc/apache2/mods-available.Configurações HTTPSO módulo mod_ssl adiciona uma funcionalidade importante no servi<strong>do</strong>r Apache2 – a habilidade de encriptarcomunicações. Portanto, quan<strong>do</strong> o seu navega<strong>do</strong>r se comunica utilizan<strong>do</strong> encriptação SSL, o prefixo https:// éusa<strong>do</strong> no começo da URL na barra de navegação <strong>do</strong> navega<strong>do</strong>r. O módulo mod_ssl está disponível no pacoteapache2-common. Se você possuir este pacote instala<strong>do</strong>, você pode executar o coman<strong>do</strong> a seguir de umprompt de terminal para ativar o módulo mod_ssl: su<strong>do</strong> a2enmod sslCertifica<strong>do</strong>s e SegurançaPara configurar um servi<strong>do</strong>r seguro, use a criptografia de chave pública para criar um par de chaves pública eprivada. Na maioria <strong>do</strong>s casos, você manda o seu pedi<strong>do</strong> de certificação (incluin<strong>do</strong> a sua chave pública), umaprova da identidade da sua companhia e o pagamento para uma Autoridade de Certifica<strong>do</strong>s (CA). A CA verificao pedi<strong>do</strong> de certificação e sua identidade, e depois manda de volta um certifica<strong>do</strong> para o seu servi<strong>do</strong>r seguro.Roberto Amaral – Marcelo Soares Farias 03/03/2010Página 76


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXAlternativamente, você pode criar o seu certifica<strong>do</strong> auto-assina<strong>do</strong>. Note que, entretanto, o certifica<strong>do</strong> autoassina<strong>do</strong>não deve ser usan<strong>do</strong> na maioria <strong>do</strong>s ambientes de produção. Certifica<strong>do</strong>s auto-assina<strong>do</strong>s não sãoautomaticamente aceitos pelo navega<strong>do</strong>r <strong>do</strong>s usuários. Os usuários são questiona<strong>do</strong>s pelo navega<strong>do</strong>r paraaceitar o certifica<strong>do</strong> e criar uma conexão segura. Assim que você tiver um certifica<strong>do</strong> auto-assina<strong>do</strong> ou umcertifica<strong>do</strong> assina<strong>do</strong> por um CA de sua escolha, você precisa instalá-lo no seu servi<strong>do</strong>r seguro.Tipos de Certifica<strong>do</strong>sVocê precisa de uma chave e um certifica<strong>do</strong> para operar o seu servi<strong>do</strong>r seguro, o que significa que você tantopode gerar uma certifica<strong>do</strong> auto-assina<strong>do</strong> como comprar um certifica<strong>do</strong> assina<strong>do</strong> por um CA. Um certifica<strong>do</strong>assina<strong>do</strong> por um CA provê duas capacidades importantes para o seu servi<strong>do</strong>r:• Navega<strong>do</strong>res reconhecem o certifica<strong>do</strong> e permitem uma conexão segura sem questionamentos ao usuário.• Quan<strong>do</strong> um CA emite um certifica<strong>do</strong> assina<strong>do</strong>, está garantin<strong>do</strong> a identidade da organização que estáproven<strong>do</strong> as páginas da web para o navega<strong>do</strong>r.SquidAtualmente, os servi<strong>do</strong>res proxy deixaram de ser um simples privilégio e passaram a ser uma necessidade.Proxy e CacheUm proxy serve para basicamente uma coisa: tratar as requisições <strong>do</strong>s clientes nos protocolos suporta<strong>do</strong>spor ele, seja bloquean<strong>do</strong> URL's de sites indevi<strong>do</strong>s ou controlan<strong>do</strong> o acesso à WWW pelos usuários.O Squid além de um servi<strong>do</strong>r proxy, também integra um sistema de caching para requisições feitas àInternet. Um servi<strong>do</strong>r cache é armazena informações de requisições temporariamente em disco para umavisualização mais rápida posterior.O que é o Squid?O Squid é o servi<strong>do</strong>r proxy HTTP para plataformas UNIX-Like, surgiu de um projeto entre o governo americanoe a <strong>Universidade</strong> <strong>do</strong> Colora<strong>do</strong>. O Squid trabalha com os protocolos HTTP, HTTPS, FTP, Gopher e WAIS e é oproxy que possui o maior número de co-projetos.Instalan<strong>do</strong> via APTPartin<strong>do</strong> <strong>do</strong> princípio que você já tenha o seu APT e seus repositórios de preferência no sources.list, vocêpode simplesmente rodar este coman<strong>do</strong>.# apt-get install squidRoberto Amaral – Marcelo Soares Farias 03/03/2010Página 77


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXO arquivo squid.confO arquivo squid.conf é o principal arquivo de configuração <strong>do</strong> Squid. Zela pela simplicidade das tags, masnão muito pelo tamanho, possuin<strong>do</strong> cerca de 2 mil linhas. Antes de mexer no arquivo, é recomendável que façaum backup <strong>do</strong> arquivo original, em caso quaisquer problemas:# cp /etc/squid/squid.conf /etc/squid/squid.conf.defaultsAlgumas das tags mais importantesUm proxy que apenas sejam configuradas estas tags ainda não é um proxy funcional.http_portPadrão: http_port 3128 - Define a porta em que o serviço Squid irá escutar por requisições.cache_memPadrão: cache_mem 8M - Este parâmetro configura a quantidade de memória utilizada para cache e objetosem trânsito, e não a quantidade de memória reservada para o Squid.cache_dirPadrão: cache_dir ufs /var/spool/squid 100 16 256 - Nesta opção são configura<strong>do</strong>s os números de diretórios,subdiretórios e tamanho <strong>do</strong> cache. onde:• cache_dir - Nome da tag;• ufs - É a forma de armazenamento de cache. Existe também a opção aufs, mas que só está disponívelpara outras plataformas. Para mais informações, leia o squid.conf;• /var/spool/squid - Diretório onde o cache <strong>do</strong> Squid ficará;• 100 - Espaço em disco que o cache <strong>do</strong> Squid poderá ocupar, conta<strong>do</strong> em MB;• 16 - Quantidade de diretórios que o cache <strong>do</strong> Squid possuirá;• 256 - Quantidade de subdiretórios que o cache <strong>do</strong> Squid possuirá;cache_access_logPadrão: cache_access_log /var/log/squid/access.log - Define o arquivo de log de acessos <strong>do</strong> Squid. Casoqueira saber quem acessou determinada página da internet, é através deste arquivo que descobrirá.cache_mgrPadrão: cache_mgr email - Este parâmetro tem a finalidade de especificar o e-mail <strong>do</strong> administra<strong>do</strong>r <strong>do</strong> proxy.Roberto Amaral – Marcelo Soares Farias 03/03/2010Página 78


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXcache_effective_userPadrão: cache_effective_user squid - Informa ao Squid com qual nome de usuário ele deve rodar.cache_effective_groupPadrão: cache_effective_group squid - Tem a mesma função da tag acima, mas trabalhar com com o grupo.visible_hostnamePadrão: visible_hostname none - Define o hostname que fica visível nas mensagens de erro <strong>do</strong> Squidapresentadas para os clientes e caso não seja setada, o Squid não starta. Por isso coloque alguma coisaparecida com isto: visible_hostname squid.seu<strong>do</strong>minio.com.brAccess Control Lists (ACL's)Uma ACL nada mais é <strong>do</strong> que a ferramenta que o Squid utiliza para especificar quem pode quem não pode, oquê pode e o que não pode.Tipos de ACL'sSrc : Endereço IP de origem. Especifica um determina<strong>do</strong> host ou uma determinada rede de origem.Dst : Endereço IP de destino. Especifica um determina<strong>do</strong> host ou uma determinada rede de destino.Dst<strong>do</strong>main : Domínio de destino. Restringe o acesso à um determina<strong>do</strong> ou para identificar um <strong>do</strong>mínio dedestino.time : Hora e dia da semana. Especifica um determina<strong>do</strong> horário.Port : Número da porta de destino, usa<strong>do</strong> para especificar acesso à determinada porta de um servi<strong>do</strong>r.url_regex : Compara uma string à uma URL inteira. Muito utiliza<strong>do</strong> para fazer o bloqueio de sites indevi<strong>do</strong>s.urlpath_regex : Tem uma função semelhante à anterior, porém procura apenas em pedaços <strong>do</strong> caminho daURL. Muito utiliza<strong>do</strong> para bloquear extensões.proto: Especifica um protocolo de transferência.proxy_auth: Somente utilizada caso esteja utilizan<strong>do</strong> autenticação. Serve para especificar nomes de usuários.Definin<strong>do</strong> ACL'sDentro <strong>do</strong> arquivo de configuração <strong>do</strong> Squid, o squid.conf, encontra-se uma área que é ideal para declararas ACL's, onde começam a ser definidas, facilmente identificada. Para declarar ACL's, a sintaxe básica:acl |""Um exemplo prático de ACL:acl palavra_proibida url_regex -i sexoA ACL acima bloqueia to<strong>do</strong>s os sites que contenham em seu endereço a palavra "sexo".A tag http_accessÉ inútil o uso de ACL's sem o uso da tag http_access. Esta trava ou libera o que a ACL está estipulan<strong>do</strong>.Roberto Amaral – Marcelo Soares Farias 03/03/2010Página 79


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sExemplo:http_access deny proibi<strong>do</strong>CURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXSe nós considerarmos o conjunto ACL + http_access, ficaria:acl proibi<strong>do</strong> url_regex -i sexohttp_access deny proibi<strong>do</strong>O que o conjunto acima proibi qualquer site que possua em seu endereço a palavra "sexo".Ordem das ACL's• 1 - O Squid vai ler todas as ACL's e testar se todas as ACL's declaradas possuem uma sintaxe corretae se elas estão sen<strong>do</strong> referenciadas por algum http_access;• 2 - Depois disso, se ele iniciar normalmente, irá começar a testar todas as requisições que são feitas etentar casar as mesmas com as regras que as ACL's estipulam em conjunto com os http_access;• 3 - Caso uma URL case com uma ACL, ele ignorará todas as outras ACL's para aquela requisição.Uma outra maneira mais prática de tentar implementar isso é fazer da seguinte maneira:• 1 - Coloque as ACL's que estipulam uma exceção à alguma regra de bloqueio que virá à seguir;• 2 - Depois coloque as suas ACL's que vão bloquear sites e tu<strong>do</strong> o mais;• 3 - Só então você coloca as suas ACL's liberan<strong>do</strong> o acesso.CasosAlguns casos e alguns mo<strong>do</strong>s principais para configurar o Squid.Habilitan<strong>do</strong> o SquidPara botar o Squid para rodar, basta encontrar a linha: http_access deny allPara: http_access allow allE depois reinicie o serviço: # /etc/init.d/squid restartRestringin<strong>do</strong> o acesso ao SquidQuan<strong>do</strong> encontrar a linha http_access allow all, ela vai estar liberan<strong>do</strong> acesso à to<strong>do</strong>s os hosts, já que aACL "all" está especifican<strong>do</strong> to<strong>do</strong>s os hosts. Para arrumar isto, você deve encontrar e comentar as linhas:acl all src 0.0.0.0/0.0.0.0Roberto Amaral – Marcelo Soares Farias 03/03/2010Página 80


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>shttp_access allow allCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXAgora crie uma nova ACL <strong>do</strong> tipo "src", especifican<strong>do</strong> a rede interna:acl redeinterna src 192.168.0.0/24Agora autorize a ACL que acabou de criar por meio de um http_access:http_access allow redeinternaComo visto acima, estamos somente permitin<strong>do</strong> o uso ao proxy pela rede interna. Agora, caso queiraespecificar uma range de IP's, faça assim:acl faixa_adm src 192.168.0.10-192.168.0.50http_access allow faixa_admBloquean<strong>do</strong> sites indevi<strong>do</strong>s no proxyO tipo de ACL url_regex serve para comparar termos dentro de uma URL para saber se esta palavra estáou não liberada e se os usuários vão ou não, visualizar a página. Utiliza<strong>do</strong> para bloquear sites, Exemplo:Adicione a seguinte ACL: acl palavra url_regex -i sexAgora bloqueie o acesso com o http_access: http_access deny palavraCom este exemplo, to<strong>do</strong>s os sites que possuam a palavra "sex" não serão visualiza<strong>do</strong>s pelos usuários. Oparâmetro "-i" serve para que o Squid não distingua entre maiúsculas ou minúsculas. Porém neste momentovocê deve estar pensan<strong>do</strong> que não é prático definir uma ACL para cada palavra que você deseje bloquear. Erealmente não é. Por isso nós vamos declarar listas inteiras de palavras negadas. Eis o exemplo:Primeiro nós vamos criar o arquivo texto que nos vai servir como lista de palavras bloqueadas e damos àela permissões de leitura:# touch /etc/squid/lists/blocked# chmod 755 /etc/squid/lists/blockedNele insira todas as palavras proibidas. Lembre-se que você deve adicionar uma palavra por linha.Após isto, nós criamos a ACL da seguinte maneira: acl blocked url_regex -i "/etc/squid/lists/blocked"E bloqueamos o acesso com o http_access: http_access deny blockedFeito isto, to<strong>do</strong>s os sites que contém em seu endereço palavras como "sex", "sexo", "sexologia" serãobloquea<strong>do</strong>s, porém nem to<strong>do</strong>s os sites que contém a palavra "sex" é um site pornográfico. Para distinguir ossites que podem ser libera<strong>do</strong>s <strong>do</strong>s que não podem, crie uma outra lista para as exceções como "sexologia".Vamos seguir o mesmo procedimento. Criamos uma lista também para as palavras não bloqueadas.# touch /etc/squid/lists/unblockedRoberto Amaral – Marcelo Soares Farias 03/03/2010Página 81


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUX# chmod 755 /etc/squid/lists/unblockedNesta lista coloque to<strong>do</strong>s os sites que são exceções à regra, como "www.sexologia.org", um site por linha,ou palavras somente. Depois junte as duas ACL's em um único http_access, desta maneira:http_access deny blocked !unblockedNote a utilização <strong>do</strong> sinal de exclamação, significan<strong>do</strong> uma inversão no senti<strong>do</strong> da regra. Pronto, oprocedimento está feito. Agora tu<strong>do</strong> o que você deve fazer é reiniciar o serviço <strong>do</strong> Squid:# /etc/init.d/squid restartRestringin<strong>do</strong> o horário de acessoAqui é o controle que pode ser cria<strong>do</strong> para controle por horário. Para fazer isto, deve ser feito o uso da ACL<strong>do</strong> tipo time. Exemplo:acl horariopermiti<strong>do</strong> time MTWHF 08:00-18:00http_access deny !horariopermiti<strong>do</strong>O sinal de exclamação inverte o senti<strong>do</strong> da regra, negan<strong>do</strong> o uso <strong>do</strong> proxy em to<strong>do</strong>s os horários, COMEXCESSÃO <strong>do</strong> horário especifica<strong>do</strong> na ACL horário permiti<strong>do</strong>. As letras "MTWHF" na frente da ACL,especificam os dias da semana conforme esta tabela: S - Sunday (Domingo), M - Monday (Segunda), T -Tuesday (Terça), W - Wednesday (Quarta), H - Thursday (Quinta), F - Friday (Sexta), A - Saturday (Sába<strong>do</strong>).O chefe...O seu chefe a<strong>do</strong>ra proibir as coisas para os usuários mortais, mas ele quer ter o controle completo. Paracontornar a situação, faça o seguinte: acl chefidap src 192.168.1.23E permitir a lista de palavras negadas para ele, assim: http_access allow blocked chefidapUma outra maneira de se fazer ambos os bloqueios é definir o IP/login <strong>do</strong> seu chefe em uma ACL e na horaem que for declarar o http_access, definir acima das ACL's de bloqueio, assim:http_access allow chefidaphttp_access deny blocked !unblockedSó site libera<strong>do</strong>Ao invés de especificar os sites nega<strong>do</strong>s, especifique o site que vai poder acessar. Primeiramente,especifique os sites que irão poder acessar: acl bancos url_regex -i "/etc/squid/lists/bancos"Adicione os endereços <strong>do</strong>s bancos na lista e especifique também o IP <strong>do</strong> computa<strong>do</strong>r <strong>do</strong> usuário:acl peao src 192.168.1.24Então junte os <strong>do</strong>is em um único http_access, desta maneira: http_access deny !bancos peaoRoberto Amaral – Marcelo Soares Farias 03/03/2010Página 82


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXInterpretan<strong>do</strong> a regra, fica: Vamos bloquear to<strong>do</strong>s os sites, COM EXCESSÃO DOS SITESESPECIFICADOS NA LISTA DE BANCOS para o IP 192.168.1.24.Bloquean<strong>do</strong> MSNBem, aqui está um problema pelo qual alguns administra<strong>do</strong>res possam ter dificuldades. O MSN a partir daversão 6.x (in)felizmente passou a fazer conexões utilizan<strong>do</strong> tunneling por http. Ou seja: Ele se conecta pelaporta 80 também! O bloqueio <strong>do</strong> Squid é simples de ser feito, bastan<strong>do</strong> adicionar o termo "gateway.dll" na sualista de palavras negadas.Bloquean<strong>do</strong> extensões e <strong>do</strong>wnloads de determina<strong>do</strong>sVocê pode bloquear extensões que os usuários baixam no computa<strong>do</strong>r por meio de HTTP ou de FTP e dequaisquer outros protocolos que o Squid suporte, fazen<strong>do</strong> os seguintes passos:Primeiramente, você deve criar a velha listinha e setar as permissões corretas:# touch /etc/squid/lists/extensoes# chmod 755 /etc/squid/lists/extensoesFeito isto, deve escrever as extensões que deseja bloquear da seguinte maneira no arquivo:\.mp3$\.wav$\.pif$\.bat$NOTA: O "\" é um elimina<strong>do</strong>r de metacaracteres e serve para cancelar a função <strong>do</strong> ".". Já o "$" serve paraque seja analiza<strong>do</strong> até o final de string. Agora vamos adicionar a ACL no Squid que vai bloquear as extensõesefetivamente, juntamente com o seu http_access:acl extensoes urlpath_regex -i "/etc/squid/lists/extensoes"http_access deny extensoesNote que ao invés <strong>do</strong> url_regex, eu utilizei o urlpath_regex.Segurança em um servi<strong>do</strong>r SquidTo<strong>do</strong> servi<strong>do</strong>r, independente de plataforma ou serviço que executa, precisa de certas configurações desegurança, para não sofrer ataques. Os principais erros de segurança na configuração <strong>do</strong> Squid:Erro I: Definição de relay <strong>do</strong> servi<strong>do</strong>r SquidAssim como a maioria <strong>do</strong>s servi<strong>do</strong>res, o Squid também possui suas configurações de relay. Entenda porrelay o "la<strong>do</strong> para qual o servi<strong>do</strong>r está rodan<strong>do</strong>, se é para a internet ou para a rede interna". Claro que éRoberto Amaral – Marcelo Soares Farias 03/03/2010Página 83


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXinteressante que monte um servi<strong>do</strong>r para a sua rede interna. Sen<strong>do</strong> assim, deveria se preocupar com o relay<strong>do</strong> servi<strong>do</strong>r Squid, pois geralmente os usuários costumam disfarçar seus IP's utilizan<strong>do</strong> servi<strong>do</strong>res proxyabertos pela Internet, prática conhecida como IP Spoofing. Você pode detectar se existe alguém utilizan<strong>do</strong> oseu proxy de duas maneiras: A primeira é deixar o seu servi<strong>do</strong>r rodan<strong>do</strong> e tirar o log de 1 dia.. Com certezaalgo aparecerá, seja um endereço IP que não é da rede interna ou um endereço de host totalmente nada a ver.A segunda é monitorar a ações <strong>do</strong> seu proxy com o "tail", em tempo real. Por outro la<strong>do</strong>, temos também duasmaneiras de resolver este problema.1ª Maneira: http_portVocê pode editar esta tag para que o Squid só escute requisições vindas da rede interna, desta maneira:Troque o valor-padrão da tag:http_port 3128Para:http_port 192.168.1.1:3128Se você resolver por aqui, o seu problema com relay morreu. Eu prefiro esta maneira por ser mais prática epor não ter que ficar mexen<strong>do</strong> com ACL's e se algum dia um abelhu<strong>do</strong> passar um portscanner na sua máquina,como o nmap, ele não irá apresentar o serviço Squid rodan<strong>do</strong>.2ª Maneira: acl all src 192.168.0.0/24Você pode permitir o http_port como menciona<strong>do</strong> acima, mas deverá definir a sua rede interna quan<strong>do</strong> forutilizar as suas ACL's, desta maneira:Troque a ACL all de: acl all src 0.0.0.0/0Para: acl all src 192.168.0.0/24 (O Squid somente irá permitir conexões vindas da rede interna.)Erro II: http_access deny allColoque esta linha no final das declarações das suas ACL's. O motivo disto é que se o Squid não encontrauma ocasião pela qual encaixar uma ACL, ele simplesmente libera a sua utilização.Erro III: UsuáriosGeralmente usuários removem as configurações de proxy <strong>do</strong> navega<strong>do</strong>r para navegarem sem restrições esomente pelo NAT ou procuram por proxies abertos na Internet e configuram os navega<strong>do</strong>res para utilizaremestes endereços ou ainda vão em páginas como o "anonymizer" ou similares e navegam por lá. Por isto, éimportante bloquear de tais páginas.Roberto Amaral – Marcelo Soares Farias 03/03/2010Página 84


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXErro IV - Proxy Transparente sem ser no gateway da redeTambém é comum receber e-mails de pessoas perguntan<strong>do</strong> como fazer isso. Não é uma idéia muitosegura, a menos que você possua uma DMZ. Isso porque os usuários podem alterar as configurações de redee fazer com que o gateway da rede aponte para o rotea<strong>do</strong>r final, fazen<strong>do</strong> um caminho alternativo para ospacotes e fazen<strong>do</strong> com que os mesmos não passem pelo servi<strong>do</strong>r Squid.Crian<strong>do</strong> um script de relatório simplesPara a criação de um shell-script que gere o relatório que pegue as últimas requisições negadas pelo proxy,devemos criar um arquivo em branco:# touch /usr/bin/squidreportCom o conteú<strong>do</strong> abaixo: #!/bin/bashcat /var/log/squid.log | grep DENIED | tail -n 60 | mail rootMude as permissões <strong>do</strong> arquivo para: # chmod 700 relatoriosquid.shE agende o relatório para ser gera<strong>do</strong> dentro <strong>do</strong> CRON, com a seguinte linha:# crontab -e30 21 * * * squidreportPronto! To<strong>do</strong>s os dias às nove e meia da noite, será gera<strong>do</strong> o relatório de acessos nega<strong>do</strong>s pelo Squid eeles vão estar dentro da caixa de e-mails <strong>do</strong> administra<strong>do</strong>r <strong>do</strong> sistema.NFSO que é NFS?O Network File System (NFS) foi desenvolvi<strong>do</strong> para permitir que se possam montar partições ou diretóriosremotos como se fosse um disco local, garantin<strong>do</strong> especificar diferentes permissões de acesso a cada clientede acesso ao compartilhamento.Servi<strong>do</strong>rInstalação# apt-get install nfs-user-server nfs-common statd portmapConfiguran<strong>do</strong> o Servi<strong>do</strong>r NFSPara começar a configurar o serviço, deve entrar no sistema como root e criar um diretório /Compartilha<strong>do</strong>,como default desse <strong>do</strong>cumento, ou se preferir escolha outro local ou outro nome de diretório a sercompartilha<strong>do</strong>. Editar o arquivo /etc/exports para definir a pasta a ser compartilhada e permissões de acesso. Alinha abaixo, por exemplo, dá acesso diretório "Compartilha<strong>do</strong>" para o IP 192.168.0.2 com direitos de leitura,escrita e execução./Compartilha<strong>do</strong> 192.168.0.2/255.255.255.0(rw,no_root_squash,sync)Roberto Amaral – Marcelo Soares Farias 03/03/2010Página 85


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXOnde:rw (escrita e leitura), no_root_squash (privilégios de superusuário), sync (não permite que o servi<strong>do</strong>r respondaa pedi<strong>do</strong>s antes que as alterações feitas pelo pedi<strong>do</strong> sejam salvas no disco.)O padrão de construção da linha de permissões de acesso ao compartilhamento, está abaixo:Diretório host1(opção11, opção12) host2(opção21, opção22)Diretório: Diretório a ser compartilha<strong>do</strong> (ex. /home/fabio/).HostN: IP <strong>do</strong> pc cliente <strong>do</strong> compartilhamento.OpçãoXY: Permissões de acesso ao compartilhamentoEditar o arquivo /etc/hosts.deny para definir a segurança <strong>do</strong> compartilhamento. nserir as seguintes linhas:portmap: ALLlockd: ALLmountd: ALLrquotad: ALLEditar o arquivo /etc/hosts.allow para definir o IP ou faixa de IPs que poderão "concorrer" aoscompartilhamentos, ou seja, especifica quem terá acesso a cada serviço. Inserir as seguintes linhas parapermitir que toda a rede 192.168.0.0/24 tenha direito serviços especifica<strong>do</strong>s.portmap: 192.168.0.0/24lockd: 192.168.0.0/24rquotad: 192.168.0.0/24mountd: 192.168.0.0/24statd: 192.168.0.0/24No exemplo é especifica<strong>do</strong> uma faixa de IPs, mas pode definir os hosts separadamente dentro <strong>do</strong> padrãoabaixo:serviço: host1, host2, host3, hostXExecutar os seguintes coman<strong>do</strong>s:/etc/init.d/portmap restart/etc/init.d/nfs-user-server restart/etc/init.d/nfs-common restartrpc.montdrpc.nfsdrpc.statdrpc.lockdRoberto Amaral – Marcelo Soares Farias 03/03/2010Página 86


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXClienteInstalação# apt-get install nfs-common statd portmapEditar o arquivo /etc/hosts.deny para definir a segurança <strong>do</strong> compartilhamento. Inserir as seguintes linhas:portmap: ALLlockd: ALLmountd: ALLrquotad: ALLExecutar os seguintes coman<strong>do</strong>s:/etc/init.d/portmap restartrpc.statdrpc.lockdmount -t nfs 192.168.1.115(end <strong>do</strong> servi<strong>do</strong>r):/Compartilha<strong>do</strong> /diretorio/localSe você acha muito incômo<strong>do</strong> ter que repetir essa linha de coman<strong>do</strong> enorme, adicione essa linha ao fstab:: /Compartilha<strong>do</strong> /diretorio/local nfs defaults,noauto 0 0Feito isso a montagem fica bem mais simples, basta digitar:# mount /diretorio/localSshO SSH permite administrar máquinas remotamente, permite transferir arquivos de várias formas diferentes e,como se não bastasse, permite também encapsular outros protocolos. A grande vantagem <strong>do</strong> SSH sobreoutras ferramentas de acesso remoto é a grande ênfase na segurança. Um servi<strong>do</strong>r SSH bem configura<strong>do</strong> évirtualmente impenetrável. O SSH é dividi<strong>do</strong> em <strong>do</strong>is módulos. O sshd é o módulo servi<strong>do</strong>r, um serviço que ficaresidente na máquina que será acessada, enquanto o ssh é o módulo cliente, um utilitário que você utiliza paraacessá-lo. No Debian, ambos são instala<strong>do</strong>s através <strong>do</strong> pacote "ssh".InstalaçãoO padrão <strong>do</strong> Debian é já trazer o ssh instala<strong>do</strong>. Caso seja necessário instalar, use:#apt-get install sshInician<strong>do</strong> o servi<strong>do</strong>r ssh. Com o pacote instala<strong>do</strong>, você inicia o servi<strong>do</strong>r usan<strong>do</strong> o coman<strong>do</strong>:/etc/init.d/ssh startPara que ele seja inicializa<strong>do</strong> durante o boot, use o coman<strong>do</strong>: update-rc.d -f ssh defaultsA configuração <strong>do</strong> servi<strong>do</strong>r, vai no arquivo /etc/ssh/sshd_config, enquanto a configuração <strong>do</strong> cliente vai no/etc/ssh/ssh_config. Note que muda apenas um "d" entre os <strong>do</strong>is. No Debian o servi<strong>do</strong>r só funcionará se oarquivo sshd_not_to_be_run, presente em /etc/ssh for renomea<strong>do</strong> ou excluí<strong>do</strong>. Renomean<strong>do</strong> o arquivo:mv /etc/ssh/sshd_not_to_be_run /etc/sshd_not_to_be_run.oldRoberto Amaral – Marcelo Soares Farias 03/03/2010Página 87


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXConfiguração <strong>do</strong> servi<strong>do</strong>rO SSH tem <strong>do</strong>is protocolos de autenticação:• protocolo SSH versão 1:– méto<strong>do</strong>s de autenticação disponíveis:* RSAAuthentication: autenticação de usuário basea<strong>do</strong> em chave de identidadeRSA* RhostsAuthentication: autenticação de máquina basea<strong>do</strong> em .rhosts (inseguro, desabilita<strong>do</strong>)* RhostsRSAAuthentication: autenticação .rhosts combinada com chave de máquina RSA* ChallengeResponseAuthentication: autenticação pergunta-resposta RSA* PasswordAuthentication: autenticação baseada em senha• protocolo SSH versão 2:– méto<strong>do</strong>s de autenticação disponíveis:* PubkeyAuthentication: autenticação de usuário basea<strong>do</strong> em chave pública* HostbasedAuthentication: autenticação .rhosts ou /etc/hosts.equiv combina<strong>do</strong> com autenticação dechave pública de máquina cliente (desabilita<strong>do</strong>)* ChallengeResponseAuthentication: autenticação pergunta-resposta* PasswordAuthentication: autenticação baseada em senhaVocê pode configurar várias opções relacionadas ao servi<strong>do</strong>r SSH, incluin<strong>do</strong> a porta TCP a ser usada editan<strong>do</strong>o arquivo "/etc/ssh/sshd_config". A maior parte das opções dentro <strong>do</strong> arquivo podem ser omitidas, pois oservi<strong>do</strong>r simplesmente utiliza valores padrão para as opções que não constarem no arquivo.- Porta: Uma das primeiras linhas é a: Port 22Esta é a porta que será usada pelo servi<strong>do</strong>r SSH. O padrão é usar a porta 22. Ao mudar a porta <strong>do</strong> servi<strong>do</strong>raqui, você deverá usar a opção "-p" ao conectar a partir <strong>do</strong>s clientes, para indicar a porta usada, como em:# ssh -p 2222 usuario@IP.DO.SERVIDOR.SSHOutra opção é editar o arquivo "/etc/ssh/ssh_config" (nos clientes) e alterar a porta padrão. Mudar a portapadrão <strong>do</strong> SSH é uma boa idéia se você está preocupa<strong>do</strong> com a segurança. Muitos <strong>do</strong>s ataques "casuais",quan<strong>do</strong> não existe um alvo defini<strong>do</strong>, começam com um portscan genérico, feito em faixas inteiras de endereçosIP, mas apenas em algumas portas conhecidas, como a 21, 22 e 80. A partir daí, os ataques vão sen<strong>do</strong>refina<strong>do</strong>s e direciona<strong>do</strong>s apenas para os servi<strong>do</strong>res vulneráveis encontra<strong>do</strong>s na primeira varredura. Colocarseu servi<strong>do</strong>r numa porta mais escondida, já dificulta um pouco as coisas.Controle de acesso: Logo abaixo vem a opção "ListenAddress", que permite limitar o SSH a uma única placade rede (mesmo sem usar firewall), em casos de micros com duas ou mais placas. O típico caso onde vocêquer que o SSH fique acessível apenas na rede local, mas não na internet, por exemplo. Digamos que oRoberto Amaral – Marcelo Soares Farias 03/03/2010Página 88


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXservi<strong>do</strong>r use o endereço "192.168.0.1" na rede local e você quer que o servi<strong>do</strong>r SSH não fique disponível naInternet. adicionaria a linha: ListenAddress 192.168.0.1Note que especificamos nesta opção o próprio IP <strong>do</strong> servi<strong>do</strong>r na interface escolhida, não a faixa de IP's da redelocal ou os endereços que terão acesso a ele.Protocolo: Atualmente utilizamos o SSH 2, mas ainda existem alguns poucos clientes que utilizam a primeiraversão <strong>do</strong> protocolo. Por padrão, o servi<strong>do</strong>r SSH aceita conexões de clientes que utilizam qualquer um <strong>do</strong>s <strong>do</strong>isprotocolos, o que é indica<strong>do</strong> na linha: Protocol 2,1O protocolo SSH 1 tem alguns problemas fundamentais de segurança, por isso alguns administra<strong>do</strong>respreferem desabilitar a compatibilidade com ele, aceitan<strong>do</strong> apenas clientes que usam o SSH 2. Neste caso, alinha fica apenas "Protocol 2"- Usuários e senhas: Outra opção interessante, logo abaixo é a: PermitRootLogin yesEsta opção determina se o servi<strong>do</strong>r aceitará que usuários se loguem como root. Do ponto de vista dasegurança, é melhor deixar esta opção como "no", pois assim o usuário precisará primeiro se logar usan<strong>do</strong> umlogin normal e depois virar root usan<strong>do</strong> o "su" ou "su -". Por padrão, o SSH permite que qualquer usuáriocadastra<strong>do</strong> no sistema logue-se remotamente, mas você pode refinar isso através da opção "AllowUsers", queespecifica uma lista de usuários que podem usar o SSH. Quem não estiver na lista, continua usan<strong>do</strong> o sistemalocalmente, mas não consegue se logar via SSH. Isso evita que contas com senhas fracas, usadas porusuários que não tem necessidade de acessar o servi<strong>do</strong>r remotamente coloquem a segurança <strong>do</strong> sistema emrisco. Para permitir que apenas os usuários tico e teco possam usar o SSH, adicione a linha: AllowUsers ticoteco. Você pode ainda inverter a lógica, usan<strong>do</strong> a opção "DenyUsers". Neste caso, to<strong>do</strong>s os usuárioscadastra<strong>do</strong>s no sistema podem fazer login, com exceção <strong>do</strong>s especifica<strong>do</strong>s na linha, como em:DenyUsers joaquim ricardaoOutra opção relacionada à segurança é a: PermitEmptyPasswords noEsta opção faz com que qualquer conta sem senha fique automaticamente desativada no SSH, evitan<strong>do</strong> quealguém consiga se conectar ao servi<strong>do</strong>r "por acaso" ao descobrir a conta desprotegida. Lembre-se que a senhaé justamente o ponto fraco <strong>do</strong> SSH. De nada adianta usar 2048 bits de encriptação se o usuário escreve asenha num post-it cola<strong>do</strong> no monitor, ou deixa a senha em branco.- Banner: Alguns servi<strong>do</strong>res exibem mensagens de advertência antes <strong>do</strong> prompt de login, avisan<strong>do</strong> que todasas tentativas de acesso estão sen<strong>do</strong> monitoradas ou coisas <strong>do</strong> gênero. A mensagem é especificada através daopção "Banner", onde você indica um arquivo de texto com o conteú<strong>do</strong> a ser mostra<strong>do</strong>, como em:Roberto Amaral – Marcelo Soares Farias 03/03/2010Página 89


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sBanner = /etc/ssh/banner.txtCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUX- X11 Forwarding: Um pouco depois temos a opção:X11Forwarding yesEsta opção determina se o servi<strong>do</strong>r permitirá que os clientes executem aplicativos gráficos remotamente. Se oservi<strong>do</strong>r será acessa<strong>do</strong> via internet ou se possui um link lento, você pode deixar esta opção como "no" paraeconomizar banda. Desta forma, os clientes poderão executar apenas coman<strong>do</strong>s e aplicativos de mo<strong>do</strong> texto.- Módulos: O SSH inclui um módulo de transferência de arquivos (o SFTP). Ele é ativa<strong>do</strong> através da linha:Subsystem sftp /usr/lib/sftp-serverÉ realmente necessário que esta linha esteja presente para que o SFTP funcione. Comente esta linha apenasse você realmente quiser desativá-lo.Para que as alterações entrem em vigor, reinicie o servi<strong>do</strong>r SSH:# /etc/init.d/ssh restartTransferin<strong>do</strong> arquivosAlém de permitir rodar aplicativos e fazer toda a administração de um servi<strong>do</strong>r remotamente, o ssh tambémpode ser usa<strong>do</strong> para transferir arquivos. Uma forma primitiva de transferir arquivos via SSH é usar o "scp", quepermite especificar numa única linha o login e endereço <strong>do</strong> servi<strong>do</strong>r, junto com o arquivo que será transferi<strong>do</strong>.Graças a isso, ele é muito usa<strong>do</strong> em scripts. A sintaxe <strong>do</strong> scp é:scp arquivo_local login@servi<strong>do</strong>r:pasta_remotacomo em:$ scp /home/arquivo.tar usuario@empresa.com.br:/var/www/<strong>do</strong>wnloadVocê pode adicionar também as opções "-p" (que preserva as permissões de acesso além das datas decriação e modificação <strong>do</strong> arquivo original), "-r" (que permite copiar pastas, recursivamente), "-v" (verbose, ondesão mostradas todas as mensagens) e "-C" (que ativa a compressão <strong>do</strong>s da<strong>do</strong>s, ajuda muito na hora detransferir grandes arquivos via internet). Neste caso o coman<strong>do</strong> ficaria:$ scp -prvC /home/arquivo.tar usuario@empresa.com.br:/var/www/<strong>do</strong>wnloadAo incluir a opção "-r", você pode especificar diretamente uma pasta no primeiro parâmetro.Roberto Amaral – Marcelo Soares Farias 03/03/2010Página 90


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXOutra forma mais básica de fazer isso é usar o sftp, um coman<strong>do</strong> que faz parte <strong>do</strong> pacote padrão. Ele ofereceuma interface similar à <strong>do</strong>s antigos programas de FTP de mo<strong>do</strong> texto, mas to<strong>do</strong>s os arquivos transferi<strong>do</strong>satravés dele trafegam através de um túnel encripta<strong>do</strong>, cria<strong>do</strong> através <strong>do</strong> SSH. Na prática, temos uma espéciede VPN temporária, criada no momento em que é efetuada a conexão. A melhor parte é que o próprio SSHcuida de tu<strong>do</strong>, não é necessário instalar nenhum programa adicional. Para se conectar a um servi<strong>do</strong>r usan<strong>do</strong> osftp, o coman<strong>do</strong> é: $ sftp usuario@IP.DO.SERVIDOR.SSHSe o servi<strong>do</strong>r ssh na outra ponta estiver configura<strong>do</strong> para escutar numa porta diferente da 22, é preciso indicara porta no coman<strong>do</strong>, incluin<strong>do</strong> o parâmetro -o port=, como em:$ sftp -o port=22 usuario@IP.DO.SERVIDOR.SSHA partir daí você tem um prompt <strong>do</strong> sftp. Use o coman<strong>do</strong> "put" para dar upload de um arquivo e "get" parabaixar um arquivo <strong>do</strong> servi<strong>do</strong>r para a pasta local. Para navegar entre as pastas <strong>do</strong> servi<strong>do</strong>r, use os coman<strong>do</strong>s"cd pasta/" (para acessar a pasta), "cd .." (para subir um diretório), "ls" (para listar os arquivos) e "pwd" (paraver em qual diretório está). Exemplo:user@athenas:~$ sftp -o port=2222 usuario@IP.DO.SERVIDOR.SSHConnecting to XX.XX.XX.XX...Password:sftp> lsDesktop Meu Computa<strong>do</strong>r OpenOffice.org1.1.1a bkp060901sftp> get bkp060901Fetching /home/user/bkp060901 to bkp060901/home/user/bkp060901 100% 825KB 825.1KB/s 00:01sftp> put RealPlayer10GOLD.binUploading RealPlayer10GOLD.bin to /home/user/RealPlayer10GOLD.binRealPlayer10GOLD.bin 100% 6726KB 3.3MB/s 00:02sftp> pwdRemote working directory: /home/userExistem ainda os coman<strong>do</strong>s:lcdllslmkdirlpwd#(local cd)#(local ls)#(local mkdir)#(local pwd)Por exemplo, digamos que você está atualmente no diretório /mnt/arquivos. Ao abrir a conexão via sftp, tu<strong>do</strong>que você baixar será coloca<strong>do</strong> automaticamente neste diretório. Mas, digamos que você queira baixar umdetermina<strong>do</strong> arquivo para o diretório /home/tico. Você usaria então o coman<strong>do</strong>lcd /home/ticoRoberto Amaral – Marcelo Soares Farias 03/03/2010Página 91


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXpara mudar o diretório local e depois o get arquivo para baixá-lo já na pasta correta. Na hora de dar upload deum arquivo é a mesma coisa. Você pode usar o "lpwd" para listar os arquivos no diretório local e depois o "putarquivo" para dar upload.TelnetO serviço telnet é oferece o login remoto em seu computa<strong>do</strong>r, que permite trabalhar conecta<strong>do</strong> a distânciacomo se estivesse em frente a ele. Ele substitui o rlogin e possui muitas melhorias em relação a ele, como ocontrole de acesso, personalização de seção e controle de terminal. Atualmente possui tanto a versão original(insegura), quanto uma versão mais segura com suporte a ssl.Pacotes:telnet Cliente telnet com suporte a autenticação.telnetd Servi<strong>do</strong>r telnet com suporte a autenticação.telnet-ssl Cliente telnet com suporte a autenticação e ssl. Também suporta conexão a servi<strong>do</strong>res telnet padrãoquan<strong>do</strong> o servi<strong>do</strong>r não suporta ssl. Por padrão é tentada a conexão usan<strong>do</strong> ssl, se esta falhar será assumida atransmissão em texto plano.Telnetd-ssl Servi<strong>do</strong>r telnet com suporte a autenticação e ssl. Também suporta conexão de clientes telnetpadrão (sem suporte a ssl).Utilitários:in.telnetd Servi<strong>do</strong>r telnettelnet Cliente telnet padrão (quan<strong>do</strong> o pacote telnetssl está instala<strong>do</strong>, é simplesmente um link para telnetssl).telnet-ssl Cliente telnet com suporte a ssl.Instalaçãoapt-get install telnet telnet<strong>do</strong>uapt-get install telnet-ssl telnetd-sslOs pacotes com o ssl no final possuem suporte a criptografia ssl. Por padrão a porta usada para executar oserviço telnet é a 23 (ou outro número de porta defini<strong>do</strong> no /etc/services). A instalação <strong>do</strong> servi<strong>do</strong>r telnet é feitavia inetd (no arquivo /etc/inetd.conf) e o controle de acesso ao serviço é feito através <strong>do</strong>s arquivos/etc/hosts.allow e /etc/hosts.deny. O servi<strong>do</strong>r tem o nome in.telnetd e este deverá ser usa<strong>do</strong> para ajustar ocontrole de acesso nos arquivos acima.Roberto Amaral – Marcelo Soares Farias 03/03/2010Página 92


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXInician<strong>do</strong> o servi<strong>do</strong>r/reinician<strong>do</strong>/recarregan<strong>do</strong> a configuraçãoO arquivo que controla o funcionamento <strong>do</strong> servi<strong>do</strong>r telnet é o /etc/inetd.conf e o controle de acesso sen<strong>do</strong> feitopelos arquivos /etc/hosts.allow e /etc/hosts.deny. Será necessário reiniciar o servi<strong>do</strong>r inetd caso algum destestrês arquivos seja modifica<strong>do</strong>:killall HUP inetdA porta de operação padrão é a 23 e pode ser modificada no arquivo /etc/services.Opções de linha de coman<strong>do</strong> <strong>do</strong> servi<strong>do</strong>r telnetd:-D nível_de_depuração Permite especificar o que será registra<strong>do</strong> pelo servi<strong>do</strong>rdurante a conexão <strong>do</strong>s clientes telnet. As seguintes opções são suportadas:options Mostra detalhes sobre a negociação das opções de conexão.report Mostra detalhe de opções e o que está sen<strong>do</strong> feito.netdata Mostra os da<strong>do</strong>s transferi<strong>do</strong>s na conexão telnetd.ptydata Mostra os da<strong>do</strong>s mostra<strong>do</strong>s na pty.-edebug Ativa a depuração <strong>do</strong> código de criptografia apenas para o servi<strong>do</strong>r telnet com suporte a ssl.-h Somente mostra os detalhes de configuração <strong>do</strong> seu PC após o usuário fornecer um nome/senha váli<strong>do</strong>s.-L [programa] Utiliza o programa especifica<strong>do</strong> para fazer o login <strong>do</strong> usuário(/usr/sbin/telnetlogin é o padrão).-n Não envia pacotes keep alive para verificar o esta<strong>do</strong> da conexão. Desativan<strong>do</strong> esta opção poderá fazer oservi<strong>do</strong>r ficar rodan<strong>do</strong> constantemente caso aconteça algum problema e o usuário não consiga se desconectarnormalmente.-S TOS Ajusta o tipo de serviço usa<strong>do</strong> na conexão para o valor especifica<strong>do</strong>.Estas opções deverão ser especificadas após o servi<strong>do</strong>r in.telnetd no arquivo/etc/inetd.conf.Fazen<strong>do</strong> conexões ao servi<strong>do</strong>r telnetUse o coman<strong>do</strong>:telnet [endereço] [porta]para realizar conexões com uma máquina rodan<strong>do</strong> o servi<strong>do</strong>r telnet.Adicionalmente as seguintes opções podem ser usadas:-l [usuario] Envia o nome de usuário ao computa<strong>do</strong>r remoto. Muito útil com o telnetssl.-E Desativa o caracter de escapeRoberto Amaral – Marcelo Soares Farias 03/03/2010Página 93


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUX-a Tenta fazer o login automático usan<strong>do</strong> o nome de usuário local. Se o login falhar, será solicita<strong>do</strong> o nome deusuário. Esta opção é usada por padrão com o cliente telnetssl.-r Emula o comportamento <strong>do</strong> programa rlogin.Exemplo:# Conecta-se ao servi<strong>do</strong>r telnet rodan<strong>do</strong> na porta 23 de sua própria máquinatelnet localhost# Conecta-se ao servi<strong>do</strong>r telnet 200.200.200.200 operan<strong>do</strong> na porta 53454 usan<strong>do</strong> o# nome de usuário johntelnet –l john 200.200.200.200 53454Roberto Amaral – Marcelo Soares Farias 03/03/2010Página 94


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXInstalação de Servi<strong>do</strong>r de e-mail (usan<strong>do</strong> post-fix)# apt-get install postfix# apt-get install postfix-ldap# apt-get install postfix-mysql# apt-get install postfix-pgsqlPassos de Configuração:I. A primeira pergunta é sobre a função <strong>do</strong> servi<strong>do</strong>r de e-mails.a. "Internet Site", cria um servi<strong>do</strong>r que envia e recebe os e-mails diretamente.b. "with smarthost", servi<strong>do</strong>r recebe mensagens, mas o envio fica a cargo de outra máquina.c. "Satellite system", servi<strong>do</strong>r envia através de outra máquina e não recebe mensagens.d. "Local only" é usada apenas em redes de terminais leves,permite apenas que os usuários loga<strong>do</strong>s noservi<strong>do</strong>r troquem e-mails entre si.II. Defina a conta <strong>do</strong> Administra<strong>do</strong>r <strong>do</strong> Sistema de e-mailIII. Insira o Domíno Registra<strong>do</strong> (neste caso use gerds+bancada.utp.br)IV. Definir os destinos que serão aceitos pelo servi<strong>do</strong>r, ou seja, os endereços que coloca<strong>do</strong>s no destinatário damensagem fazem ele entender que o e-mail é para ele. Use o nome da máquina, o <strong>do</strong>mínio registra<strong>do</strong>,"localhost.local<strong>do</strong>main" e "localhost", to<strong>do</strong>s separa<strong>do</strong>s por vírgula e espaço.V. A opção "synchronous updates" permite desativar as otimizações no envio das mensagens, fazen<strong>do</strong> com que ose-mails sejam envia<strong>do</strong>s conforme são recebi<strong>do</strong>s e em ordem.Depois de concluída a instalação, o servi<strong>do</strong>r já estará inicia<strong>do</strong> e configura<strong>do</strong> para subir automaticamente durante o boot.Testan<strong>do</strong>:$ telnet seuip 25Trying seuipConnected to seuipEscape character is '^]'.220 debian ESMTP Postfix (Debian/GNU)HELO smtp.eu.com250 debianMAIL From: eu@eu-mesmo.com250 OkRCPT to: joao@localhost250 OkDATA354 End data with .Vai ver se estou na esquina!.250 Ok: queued as 8CEDB2215QUIT221 ByeConnection closed by foreign host.Roberto Amaral – Marcelo Soares Farias 03/03/2010Página 95


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXInstalan<strong>do</strong> um Cliente em mo<strong>do</strong> textoapt-get install muttInstalan<strong>do</strong> suportesExistem vários servi<strong>do</strong>res pop3, como o Cyrus e o Courier. O Courier é o mais usa<strong>do</strong>, poisinclui vários componentes adicionais. Ele é, na verdade, uma suíte, que inclui até mesmo umwebmail.# apt-get install courier-pop# apt-get install courier-pop-ssl# apt-get install courier-imap# apt-get install courier-imap-sslCadastro de Usuário# adduser usuarioConfiguran<strong>do</strong> o /etc/postfix/main.cf# /etc/postfix/main.cfmyhostname = gerds(+bancada).utp.brmy<strong>do</strong>main = gerds.utp.brappend_<strong>do</strong>t_my<strong>do</strong>main = noalias_maps = hash:/etc/aliasesalias_database = hash:/etc/aliasesmyorigin = /etc/mailnamemydestination = etch.gerds.utp.br, gerds.utp.br, localhostrelayhost =mynetworks = 10.10.10.0/24home_mailbox = Maildir/mailbox_command =recipient_delimiter = +inet_interfaces = allinet_protocols = allmessage_size_limit = 20000000mailbox_size_limit = 0Roberto Amaral – Marcelo Soares Farias 03/03/2010Página 96


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUX<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong> –UTPFaculdade de Ciências Exatas e de TecnologiaCursos de ComputaçãoGrupo de Estu<strong>do</strong>s de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sAULA PRÁTICAProfessores:Marcelo Soares FariasRoberto Néia AmaralRoberto Amaral – Marcelo Soares Farias 03/03/2010Página 97


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXCuritiba, 2008HTTPD - Servi<strong>do</strong>r Web Apache2InstalaçãoO servi<strong>do</strong>r web Apache2 está disponível no Ubuntu Linux. Para instalar o Apache2:# su<strong>do</strong> apt-get install apache2#Configuraçãosu<strong>do</strong> cp /etc/apache2/sites-available/defaultCampos:• ServerAdmin especifica o endereço de email a ser anuncia<strong>do</strong>.• Listen especifica a porta, e opcionalmente o endereço IP, na qual o Apache2 irá escutar.• ServerName especifica qual a FQDN seu site deverá responder.• DocumentRoot especifica o local <strong>do</strong> s arquivos padrão que formam o site.Configuração PadrãoEsta seção explica a configuração das definições padrão <strong>do</strong> servi<strong>do</strong>r Apache2.• DirectoryIndex é a página padrão <strong>do</strong> servi<strong>do</strong>r quan<strong>do</strong> o usuário requisita um índice de um diretório.• ErrorDocument permite que especifique um arquivo para o Apache usar para um evento específico de erro.• ExecCGI - Permite execução de scripts CGI.• Includes - Permite inclusões no la<strong>do</strong> <strong>do</strong> servi<strong>do</strong>r, permitin<strong>do</strong> que um arquivo HTML inclua outros arquivos.• IncludesNOEXEC - Permite includes, mais desabilita o coman<strong>do</strong>s #exec e #include nos scripts CGI• Indexes - Mostra uma lista formatada <strong>do</strong>s conteú<strong>do</strong>s <strong>do</strong>s diretórios.• Multiview - Suporta multi-visões negociadas pelo conteú<strong>do</strong>; esta opção é desabilitada por segurança.• SymLinksIfOwnerMatch - Segue os links simbólicos caso o arquivo seja <strong>do</strong> mesmo <strong>do</strong>no que o link.Roberto Amaral – Marcelo Soares Farias 03/03/2010Página 98


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXSquidInstalan<strong>do</strong> via APT# apt-get install squidO arquivo squid.confAntes de mexer no arquivo faça um backup <strong>do</strong> arquivo original: # cp /etc/squid/squid.conf/etc/squid/squid.conf.defaultsAlgumas das tags mais importantesUm proxy que apenas sejam configuradas estas tags ainda não é um proxy funcional.http_port Padrão: http_port 3128 - Define a porta em que o serviço Squid irá escutar por requisições.cache_mem Padrão: 8M - Quantidade de memória utilizada para cache e objetos em trânsito.cache_dir Padrão: cache_dir ufs /var/spool/squid 100 16 256• cache_dir - Nome da tag;• ufs - É a forma de armazenamento de cache.• /var/spool/squid - Diretório onde o cache <strong>do</strong> Squid ficará;• 100 - Espaço em disco que o cache <strong>do</strong> Squid poderá ocupar, conta<strong>do</strong> em MB;• 16 - Quantidade de diretórios que o cache <strong>do</strong> Squid possuirá;• 256 - Quantidade de subdiretórios que o cache <strong>do</strong> Squid possuirá;cache_access_logPadrão: cache_access_log /var/log/squid/access.log - Define o arquivo de log de acessos <strong>do</strong> Squidcache_mgrPadrão: cache_mgr email - Este parâmetro tem a finalidade de especificar o e-mail <strong>do</strong> administra<strong>do</strong>r <strong>do</strong> proxy.cache_effective_userPadrão: cache_effective_user squid - Informa ao Squid com qual nome de usuário ele deve rodar.cache_effective_groupPadrão: cache_effective_group squid - Tem a mesma função da tag acima, mas trabalhar com com o grupo.visible_hostnamePadrão: visible_hostname none - Define o hostname que fica visível nas mensagens de erro <strong>do</strong> Squidapresentadas para os clientes e,caso não seja setada, o Squid não starta. Por isso coloque alguma coisaparecida com isto: visible_hostname squid.seu<strong>do</strong>minio.com.brRoberto Amaral – Marcelo Soares Farias 03/03/2010Página 99


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXAccess Control Lists (ACL's)Uma ACL nada mais é <strong>do</strong> que a ferramenta que o Squid utiliza para especificar quem pode quem não pode, oquê pode e o que não pode.Tipos de ACL'sSrc : Endereço IP de origem. Especifica um determina<strong>do</strong> host ou uma determinada rede de origem.Dst : Endereço IP de destino. Especifica um determina<strong>do</strong> host ou uma determinada rede de destino.Dst<strong>do</strong>main : Domínio de destino. Restringe o acesso ou para identificar um <strong>do</strong>mínio de destino.time : Hora e dia da semana. Especifica um determina<strong>do</strong> horário.Port : Número da porta de destino, usa<strong>do</strong> para especificar acesso à determinada porta de um servi<strong>do</strong>r.url_regex : Compara uma string à uma URL inteira. Muito utiliza<strong>do</strong> para fazer o bloqueio de sites indevi<strong>do</strong>s.urlpath_regex : Tem uma função semelhante à anterior, porém procura apenas em pedaços <strong>do</strong> caminho daURL. Muito utiliza<strong>do</strong> para bloquear extensões.proto: Especifica um protocolo de transferência.proxy_auth: Somente utilizada caso esteja utilizan<strong>do</strong> autenticação. Serve para especificar nomes de usuários.Definin<strong>do</strong> ACL'sEm squid.conf, declarar ACL's, a sintaxe básica:acl |""Um exemplo prático de ACL: acl palavra_proibida url_regex -i sexoA tag http_accessÉ inútil o uso de ACL's sem o uso da tag http_access. Esta trava ou libera o que a ACL está estipulan<strong>do</strong>.Exemplo: http_access deny proibi<strong>do</strong>Exemplo:acl proibi<strong>do</strong> url_regex -i sexohttp_access deny proibi<strong>do</strong>Ordem das ACL's• 1 - O Squid vai ler todas as ACL's e testar se possuem uma sintaxe correta;• 2 - Testa todas as requisições que são feitas e casa com as regras;• 3 - Caso uma URL case com uma ACL, ele ignorará todas as outras ACL's para aquela requisição.Uma outra maneira mais prática de tentar implementar isso é fazer da seguinte maneira:• 1 - Coloque as ACL's que estipulam uma exceção à alguma regra de bloqueio que virá à seguir;• 2 - Depois coloque as suas ACL's que vão bloquear sites e tu<strong>do</strong> o mais;• 3 - Só então você coloca as suas ACL's liberan<strong>do</strong> o acesso.Habilitan<strong>do</strong> o SquidPara botar o Squid para rodar, basta encontrar a linha: http_access deny allPara: http_access allow all / E depois reinicie o serviço: # /etc/init.d/squid restartnetfilterAs tabelas <strong>do</strong> iptables são:• filter: é a tabela padrão, sobre a qual podemos nos referir a três correntes de regras, ou chains:Roberto Amaral – Marcelo Soares Farias 03/03/2010Página 100


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUX• INPUT, pacotes que entram na interface;• OUTPUT, pacotes que saem da interface• FORWARD, pacotes que estão sen<strong>do</strong> rotea<strong>do</strong>s de uma interface para outra;• nat: esta tabela se refere ao uso <strong>do</strong> recurso de Network Address Translation ou NAT, na qual podemosnos referir aos chains: PREROUTING, pacotes que serão altera<strong>do</strong>s antes de roteamento; OUTPUT,pacotes locais que serão altera<strong>do</strong>s antes <strong>do</strong> roteamento e POSTROUTING, pacotes que serãoaltera<strong>do</strong>s após a aplicação das regras de roteamento;• mangle: usada para alterações especiais no pacote, PREROUTING, para alteração antes <strong>do</strong>roteamento e OUTPUT, pacotes locais que serão altera<strong>do</strong>s antes <strong>do</strong> roteamento.Dentre as ações que são feitas sobre os pacotes que atendem a um determina<strong>do</strong> chain em uma dada tabela:• ACCEPT: aceita o pacote;• DROP: rejeita o pacote;• MASQUERADE: atua somente sobre a tabela nat e indica que será efetua<strong>do</strong> a conversão deendereços ou NAT, conforme indica<strong>do</strong> no coman<strong>do</strong>.Compartilhan<strong>do</strong> Conexão com IPTABLEmodprobe iptable_natiptables -t nat -A POSTROUTING -o INTERFACE -j MASQUERADEecho 1 > /proc/sys/net/ipv4/ip_forwardMRTGMRTG coleta informações em base de script para criar relatórios que podem ser visualiza<strong>do</strong>s o esta<strong>do</strong> de umrotea<strong>do</strong>r, servi<strong>do</strong>r ou link em determina<strong>do</strong>s tempos.Servi<strong>do</strong>r (script – Monitoração HD)#chmod +x /etc/mrtg/mrtg-hd.shif [ -e $1 ] then printf "parametro ausente\n"elsetotal=`df | grep $1 | awk '{print $2}' 2>> /dev/null`livre=`df | grep $1 | awk '{print $3}' 2>> /dev/null`ocupa<strong>do</strong>=`df | grep $1 | awk '{print $4}' 2>>/dev/null`percent_oc=$(($ocupa<strong>do</strong> * 100 / $total))percent_li=$((100 - $percent_oc))echo "$percent_oc"echo "$percent_li"fiServi<strong>do</strong>r (script – Monitor HD e Memória)#chmod +x /etc/mrtg/mrtg-cpu.shunset LANGmem=$(/usr/bin/free|grep ^-)load=$(cat /proc/loadavg)awk -v load="$load" -v mem="$mem" 'BEGIN {split(load,loadstats)print int(100*loadstats[2])split(mem,memstats);print int(100*memstats[3]/(memstats[3]+\memstats[4]));}'Roberto Amaral – Marcelo Soares Farias 03/03/2010Página 101


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXServi<strong>do</strong>r (script) – Configuração <strong>do</strong> mrtg.cfgWorkDir: /usr/local/apache/ht<strong>do</strong>cs/mrtg/Language: brazilianRunAsDaemon: yesInterval: 5Target[hdboot]:`/etc/mrtg/mrtg-hd.sh hdb1 2>> /dev/null`Title[hdboot]:"Uso <strong>do</strong> HD <strong>do</strong> Sistema"PageTop[hdboot]:Uso <strong>do</strong> HD <strong>do</strong> SistemaOptions[hdboot]: growright,noinfo,gaugeYLegend[hdboot]: PercentualShortLegend[hdboot]: %MaxBytes[hdboot]: 100Legend1[hdboot]: espaco livreLegend2[hdboot]: espaco ocupa<strong>do</strong>LegendI[hdboot]: LivreLegendO[hdboot]: Ocupa<strong>do</strong>Target[eth0]: `/etc/mrtg/mrtgstats-net.sh eth0`Title[eth0]:"Trafego na placa de rede - eth0"MaxBytes[eth0]:1400000PageTop[eth0]: Trafego de da<strong>do</strong>s na placa de redeOptions[eth0]: growright,bits,noinfoTarget[perf]:`/etc/mrtg/mrtg-cpu.sh`Title[perf]:"Carga da CPU e Uso da Mem"PageTop[perf]:Carga da CPU e Uso da MemOptions[perf]: growright,noinfo,gaugeYLegend[perf]: PercentualShortLegend[perf]: %MaxBytes[perf]: 100Legend1[perf]: Carga da CPULegend2[perf]: Uso da mem realLegendI[perf]: CargaLegendO[perf]: MemsshA configuração <strong>do</strong> servi<strong>do</strong>r, vai no arquivo /etc/ssh/sshd_configA configuração <strong>do</strong> cliente vai no /etc/ssh/ssh_config.Com o pacote instala<strong>do</strong>, você inicia o servi<strong>do</strong>r usan<strong>do</strong> o coman<strong>do</strong> /etc/init.d/ssh startNo Debian o servi<strong>do</strong>r só funcionará se o arquivo sshd_not_to_be_run, presente em /etc/ssh for renomea<strong>do</strong> ouexcluí<strong>do</strong>. Renomean<strong>do</strong> o arquivo:mv /etc/ssh/sshd_not_to_be_run /etc/sshd_not_to_be_run.oldRoberto Amaral – Marcelo Soares Farias 03/03/2010Página 102


<strong>Universidade</strong> <strong>Tuiuti</strong> <strong>do</strong> <strong>Paraná</strong>GERDS - Grupo Interdisciplinar de Redes de Computa<strong>do</strong>res e Sistemas Distribuí<strong>do</strong>sCURSO: LPI - SERVIDORES DE REDES E GERENCIAMENTO - LINUXEm uma empresa, é padrão existir um equipamento específico para servi<strong>do</strong>r de serviços,assim como rotea<strong>do</strong>r para acesso a Internet. Este equipamento sempre encontra-se isola<strong>do</strong>e o mesmo somente pode ser acesso através de login remoto.Para as pessoas que trabalham na empresa, este Servi<strong>do</strong>r/Rotea<strong>do</strong>r é utiliza<strong>do</strong> comofirewall, proibin<strong>do</strong> tráfego em certos horários, palavras e principalmente sites.Portanto o objetivo deste trabalho é por em prática a implementação de um equipamentoServi<strong>do</strong>r/Rotea<strong>do</strong>r que atenda uma empresa.Rede Trabalho (10.11.12.X/24)Servi<strong>do</strong>r ApacheAltere o DocumentRoot para /var/www/htmlServi<strong>do</strong>r SSHAntes de fazer o Squid crie um compartilhamentocom IPTableInterface Interna 10.11.12.2Interface Interna 10.11.12.1Cliente ApacheCliente SquidClinete SSHServi<strong>do</strong>r SquidBloquean<strong>do</strong> sexo e siteInterface Externa a local/atualRede Laboratório10.10.10.10/24Gateway10.10.10.10INTERNETRoberto Amaral – Marcelo Soares Farias 03/03/2010Página 103

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!