Você está na página 1de 77

CENTRO PAULA SOUZA FACULDADE DE TECNOLOGIA DE TAQUARITINGA TECNOLOGIA EM PROCESSAMENTO DE DADOS

IMPLEMENTAO DE SERVIDOR LINUX UBUNTU SERVER: FIREWALL, PROXY E FILE SERVER

TIAGO BEZERRA DOS SANTOS

Orientador: MARCO ANTONIO ALVES PEREIRA

Taquaritinga 2009

IMPLEMENTAO DE SERVIDOR LINUX UBUNTU SERVER: FIREWALL, PROXY E FILE SERVER

TIAGO BEZERRA DOS SANTOS

Monografia apresentada Faculdade de Tecnologia de Taquaritinga, como parte dos requisitos para a obteno do ttulo de Tecnlogo em Processamento de Dados. Orientador: Marco Antonio Alves Pereira

Taquaritinga 2009

Ningum chega ao seu paraso sem antes lutar. Neil Peart (Rush) Armor And Sword

Dedico, Aos meus pais Ivanildo e Lili, e a minha irm Talita, que sempre me incentivaram.

AGRADECIMENTOS
Ao Prof. Ramlio Ramalho Reis Filho e sua famlia, por terem acreditado em mim. Ao Prof. Marco Antonio Alves Pereira, por sua competncia, dedicao e disponibilidade como orientador. Aos Professores da Fatec, pelos valiosos ensinamentos e experincias. minha amiga Josy Diniz, pelo apoio e palavras de incentivo em diversos momentos. minha famlia e amigos, pelo apoio, pacincia e amor. A Deus, por ter colocado pessoas especiais em minha vida.

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server -

SUMRIO
LISTA DE FIGURAS...............................................................................................................vii LISTA DE QUADROS ............................................................................................................. ix LISTA DE ABREVIATURAS E SIGLAS ................................................................................ x RESUMO................................................................................................................................... xi ABSTRACT .............................................................................................................................xii INTRODUO ........................................................................................................................ 13 1. INSTALAO DO UBUNTU SERVER ............................................................................ 15 1.1 Ubuntu Desktop x Ubuntu Server ................................................................................... 15 1.2 Instalao do Sistema ...................................................................................................... 16 1.2.1 Configurao inicial de rede ..................................................................................... 16 1.2.2 Particionamento ........................................................................................................ 18 1.2.3 Instalao do Sistema Bsico .................................................................................... 20 2. FIREWALL IPTABLES E CONFIGURAO DE REDE ................................................ 23 2.1 Interfaces ......................................................................................................................... 23 2.2 Firewall Iptables .............................................................................................................. 25 2.2.1 Regras de compartilhamento..................................................................................... 25 2.2.2 Configurao de Portas ............................................................................................. 27 2.2.3 Regras de Segurana ................................................................................................. 28 2.3 Servidor DHCP................................................................................................................ 29 2.3.1 Instalao e configurao do servidor....................................................................... 29 3. SERVIDOR PROXY SQUID............................................................................................... 32 3.1 Tipos de Proxy................................................................................................................. 32 3.1.1 Tradicional ................................................................................................................ 32 3.1.2 Transparente.............................................................................................................. 33 3.1.3 Com Autenticao..................................................................................................... 33 3.1.4 PAC ........................................................................................................................... 33 3.1.5 WPAD ....................................................................................................................... 34 3.2 Instalao do Squid.......................................................................................................... 34 3.3 Configurao bsica como Proxy Transparente .............................................................. 35 3.4 Definindo o Cache do servidor Proxy ............................................................................. 37 3.5 Regras para Polticas de Acesso (ACLs) ......................................................................... 39 3.5.1 Bloqueio de sites ....................................................................................................... 39

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server -

vi

3.5.2 Controle de acesso de mquinas ............................................................................... 40 3.6 SquidGuard ...................................................................................................................... 43 3.6.1 Instalao e Configurao ......................................................................................... 43 3.6.2 Ajustando as permisses de acesso e alterando o Squid ........................................... 45 3.7 Monitorando os acessos com o Sarg ............................................................................... 46 4. SERVIDOR DE ARQUIVOS SAMBA ............................................................................... 48 4.1 Instalao do Samba ........................................................................................................ 48 4.2 Usurios ........................................................................................................................... 48 4.2.1 Cadastro de usurios no sistema ............................................................................... 49 4.2.2 Cadastro de usurios no Samba ................................................................................ 50 4.3 Configurao usando o smb.conf .................................................................................... 51 4.3.1 Configurao global .................................................................................................. 51 4.3.2 Criao dos compartilhamentos ................................................................................ 55 4.4 Ajustes de permisses no sistema.................................................................................... 57 4.4.1 Grupos de usurios.................................................................................................... 58 4.4.2 Permisses de acesso ................................................................................................ 58 5. ACESSO REMOTO ............................................................................................................. 62 5.1 Servidor OpenSSH .......................................................................................................... 62 5.1.1 Instalao e configurao no servidor....................................................................... 63 5.2 Administrao remota ..................................................................................................... 65 5.2.1 Usando o no- ip como DNS dinmico ....................................................................... 65 5.2.2 PuTTY....................................................................................................................... 66 5.2.3 Webmin ..................................................................................................................... 69 CONCLUSO .......................................................................................................................... 74 REFERNCIAS BIBLIOGRFICAS ..................................................................................... 75 BIBLIOGRAFIA ...................................................................................................................... 76

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server -

vii

LISTA DE FIGURAS
Figura 1 Gerenciador de boot egrub. ..................................................................................... 16 Figura 2 Seleo de qual interface de rede ser a primria. .................................................. 17 Figura 3 Configurao da rede adiada. .................................................................................. 17 Figura 4 Particionamento do Disco Rgido. .......................................................................... 18 Figura 5 Escolha de um espao livre ou partio a ser usada. ............................................... 19 Figura 6 Esquema de particionamento utilizado. .................................................................. 20 Figura 7 Configurao de usurio e senha............................................................................. 21 Figura 8 Instalao de pacotes de softwares. ......................................................................... 21 Figura 9 Finalizao da instalao......................................................................................... 22 Figura 10 Terminal. ............................................................................................................... 22 Figura 11 Edio das configuraes de rede usando o editor nano. ...................................... 24 Figura 12 Atualizao da lista de pacotes dos repositrios. .................................................. 24 Figura 13 Atualizao dos pacotes j instalados. .................................................................. 25 Figura 14 Regras para compartilhamento de Internet no Iptables. ........................................ 26 Figura 15 Regras para portas no Iptables. ............................................................................. 27 Figura 16 Regras de segurana no Iptables. .......................................................................... 28 Figura 17 Arquivo dhcpd.conf............................................................................................... 30 Figura 18 Instalao do Squid. .............................................................................................. 34 Figura 19 Configurao inicial do squid.conf. ...................................................................... 35 Figura 20 Configurao parcial do squid.conf. ..................................................................... 38 Figura 21 Arquivo com lista de endereos bloqueados. ........................................................ 40 Figura 22 Arquivo com lista de palavras bloqueadas. ........................................................... 40 Figura 23 Arquivo com lista de endereos MAC de mquinas. ............................................ 41 Figura 24 Arquivo squid.conf configurado com ACLs. ........................................................ 42 Figura 25 Acesso negado pelo Squid..................................................................................... 43 Figura 26 Diretrio blacklists. ............................................................................................... 44 Figura 27 Arquivo squidGuard.conf. ..................................................................................... 45 Figura 28 Adicionando usurios ao sistema. ......................................................................... 49 Figura 29 Adicionando usurios ao servidor Samba. ............................................................ 50 Figura 30 Configurao da seo [global] no smb.conf. ....................................................... 52 Figura 31 Adicionando endereo do servidor WINS no DHCP. ........................................... 53 Figura 32 Verificao do smb.conf usando o testparm. ........................................................ 54

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server -

viii

Figura 33 Visualizando o servidor nos Meus locais de rede da estao. ............................... 54 Figura 34 Criao dos diretrios publico e arquivos. ............................................................ 55 Figura 35 Sees de compartilhamento no smb.conf. ........................................................... 56 Figura 36 Visualizando os compartilhamentos nas estaes Windows. ................................ 57 Figura 37 Incluso de usurios em grupos. ........................................................................... 58 Figura 38 Gravao negada no compartilhamento. ............................................................... 59 Figura 39 Alterao da propriedade dos diretrios share. ..................................................... 59 Figura 40 Gravao autorizada no compartilhamento. .......................................................... 60 Figura 41 Ajustes de permisses para os grupos e seus diretrios. ....................................... 60 Figura 42 Acesso aos compartilhamentos arquivos e publico. ....................................... 61 Figura 43 Arquivo sshd_config original. ............................................................................... 63 Figura 44 Arquivo sshd_config configurado. ........................................................................ 64 Figura 45 Gerenciador de Hosts do servio DDNS no- ip. .................................................... 66 Figura 46 Assistente de configurao do no- ip. .................................................................... 66 Figura 47 Configurao do PuTTY. ...................................................................................... 67 Figura 48 Alerta sobre a chave e autorizao de acesso ao servidor. .................................... 68 Figura 49 Acesso remoto ao servidor via SSH pelo PuTTY. ................................................ 68 Figura 50 Tentativa de instalao do pacote .deb do Webmin. ......................................... 69 Figura 51 Resoluo de dependncias e instalao usando o apt-get install - f. ................. 70 Figura 52 Primeiro acesso ao Webmin pelo Firefox. ............................................................ 71 Figura 53 Adicionando uma exceo de segurana no Firefox. ............................................ 71 Figura 54 Tela de login do Webmin. ..................................................................................... 72 Figura 55 Tela inicial do gerenciador Webmin. .................................................................... 72 Figura 56 Webmin listando relatrios do Sarg. ..................................................................... 73

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server -

ix

LISTA DE QUADROS
Quadro 1 Script de compartilhamento no Iptables. ............................................................... 26 Quadro 2 Regras para portas no Iptables. .............................................................................. 27 Quadro 3 Regras de segurana no Iptables. ........................................................................... 29 Quadro 4 Arquivo dhcpd.conf. .............................................................................................. 30 Quadro 5 Configurao inicial do squid.conf. ....................................................................... 35 Quadro 6 Configurao parcial do squid.conf. ...................................................................... 38 Quadro 7 Configurao da seo [global] do smb.conf. ....................................................... 52 Quadro 8 Configurao das sees de compartilhamento no smb.conf. ............................... 56 Quadro 9 Configurao do arquivo sshd_config. .................................................................. 64

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server -

LISTA DE ABREVIATURAS E SIGLAS


ACL Access Control List APT-GET Advanced Packaging Tool DHCP Dynamic Host Configuration Protocol DDNS Dynamic Domain Name System DNS Domain Name System EXT3 Third Extended File System GB GigaByte GNOME GNU Network Object Model Environment HD Hard Disk HTTP Hypertext Transfer Protocol HTTPS HyperText Transfer Protocol Secure IP Internet Protocol KDE K Desktop Environment LTS Long Term Support MB MegaByte MHz MegaHertz NAT Network Address Translation PAC Proxy Auto-Configuration PDC Primary Domain Controller RAM Random Access Memory SAS Serial Attached SCSI SSH Secure Shell TCP Transmission Control Protocol) UDP User Datagram Protocol WINS Windows Internet Name Services WPAD Web Proxy Auto-Discovery protocol WWW World Wide Web XFCE XForms Common Environment

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server -

xi

RESUMO
O presente trabalho tem como objetivo demonstrar os procedimentos necessrios para a implementao de um servidor Linux com funes de Firewall, Proxy e File Server, utilizando a distribuio Ubuntu Server. Utilizando o software de virtualizao VMware, foi simulado um ambiente de rede de computadores com um servidor virtual com o Ubuntu Server instalado e estaes Windows tambm virtuais. O servidor foi configurado com funes de roteador e Firewall Iptables, possibilitando um acesso compartilhado e seguro Internet a partir das estaes. Por meio de um servio DHCP, o servidor tambm ficou responsvel por distribuir de forma automtica os endereos IP que cada estao deveria ter, alm de filtrar o contedo acessado atravs do Proxy Squid. Adicionalmente, o servidor foi configurado como um File Server, disponibilizando arquivos por meio de compartilhamentos configurados no servidor Samba. A administrao remota do servidor foi definida atravs da configurao do servidor OpenSSH, acessvel utilizando o cliente PuTTY a partir de qualquer mquina conectada rede local ou mesmo Internet. De forma complementar, o software de gerenciamento web Webmin tambm foi instalado e configurado, possibilitando a administrao do servidor atravs de uma interface grfica com acesso a partir de qualquer navegador. Palavras-Chaves: Servidores; Linux; Ubuntu; Firewall; Proxy; File.

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server -

xii

ABSTRACT
This work aims to demonstrate the necessary procedures for the implementation of a Linux server with functions of Firewall, Proxy and File Server, using the Ubuntu Server distribution. Using VMware virtualization software, was a simulated network environme nt for computers with a virtual server with Ubuntu Server installed and Windows virtual stations. The server was configured with Iptables Firewall and router functions, allowing a shared and secure access to the Internet from the stations. Through a DHCP service, the server was also responsible for automatically distributing the IP addresses that each station should have, and filter the content accessed through the Squid Proxy. Additionally, the server was configured as a File Server, providing files via Samba shares configured on the server. The remote administration was defined by the configuration of the OpenSSH server, accessible using the PuTTY client on any machine connected to the LAN or the Internet. In addition, the Webmin web management software was installed and configured, allowing the administration of the server via a graphical interface to access from any browser. Keywords: Servers; Linux; Ubuntu; Firewall; Proxy; File.

INTRODUO
cada vez mais comum a utilizao de uma rede de computadores em qualquer empresa, independentemente de seu porte ou ramo de atuao. Isso contribui de maneira significativa na crescente necessidade de se obter um controle e gerenciamento dos recursos computacionais disponveis. Este tipo de gerenciamento possvel com a utilizao de um computador servidor. Basicamente, qualquer mquina com um mnimo de caractersticas e funcionalidades pode ser utilizada como servidor de uma rede de computadores. possvel, por exemplo, aproveitar uma mquina antiga com 64 MB de memria RAM, processador de 500 MHz e duas placas de rede rodando (sem ambiente grfico) qualquer distribuio Linux para executar funes de roteador e firewall em uma rede de pequeno porte. Ou ainda, utilizar uma mquina com uma configurao mais completa, com 8 GB de RAM (ou mais), processador dual ou quad core, um ou vrios discos rgidos SAS, placas de rede Gigabit , suporte a redundncia e diversos outros recursos; para funes mais crticas, como um servidor de Banco de Dados de alta demanda, um servidor de mquinas virtuais, dentre outras aplicaes que exijam um conjunto mais robusto. Alm do hardware da mquina tambm h a necessidade de se escolher qual sistema operacional ser utilizado no servidor, escolha essa que invariavelmente recai na eterna discusso: Windows ou Linux? A grande popularidade do Windows conhecida por todos que eventualmente usam ou j usaram um computador, principalmente nos ambientes domstico e corporativo, onde se usam computadores comuns (desktops). Sua principal caracterstica a unio de facilidade e praticidade de uso mesmo por usurios com conhecimento bsico em informtica. No entanto, h muitos aspectos que favorecem a escolha de um sistema operacional Linux para utilizao em servidores. O Linux conhecido originalmente por sua alta

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server - 14

estabilidade e segurana, sendo imune a ameaas comuns ao ambiente Windows (como vrus e spywares) devido ao seu sistema de permisses e privilgios de acesso. Pode-se dizer que, sob o ponto de vista terico, um servidor rodando o Linux com programas e servios atualizados e configurados corretamente, atinge um nvel quase que perfeito de confiabilidade e segurana no que se refere a software. Por caractersticas como estas, foi escolhido como foco deste trabalho demonstrar como implementar e configurar um Servidor Linux com as funes de Proxy, Firewall e servidor de Arquivos utilizando a distribuio Ubuntu Server. Estas so algumas das funes mais comuns encontradas em servidores de muitas empresas. O desenvolvimento do trabalho foi feito com o software de virtualizao VMware Server, utilizando para o servidor uma mquina virtual configurada inicialmente com 128 MB de memria RAM, disco rgido com 7,5 GB e duas placas de rede, alm de mquinas virtuais com 256 MB de RAM e disco rgido com 4 GB para estaes com Windows XP Professional, simulando virtualmente as caractersticas reais de uma rede de computadores. Com exceo do espao definido inicialmente para os HDs, praticamente todas as outras configuraes de hardware virtual podem ser modificadas posteriormente atravs da interface web de gerenciamento do VMware Server. Neste trabalho so abordados todos os procedimentos inerentes a instalao da mquina na rede, como a instalao do Sistema Operacional Ubuntu Server, configurao das interfaces de rede e do servidor DHCP necessrio para distribuio de endereos IP para as estaes, definio de regras para uso de Internet atravs do Proxy Squid, instalao e configurao do servidor OpenSSH para acesso remoto, criao de compartilhamentos no Samba, alm de definies de regras de segurana no firewall Iptables e mtodos de administrao remota usando os utilitrios PuTTY e Webmin.

1. INSTALAO DO UBUNTU SERVER


durante a instalao do Sistema Operacional que algumas pr-configuraes bsicas devero ser definidas, determinando a forma como recursos do servidor podero ser mais bem utilizados. Neste captulo sero abordadas as diferenas entre a verso Desktop e Server do Ubuntu, alm de sua instalao e configurao iniciais.

1.1 Ubuntu Desktop x Ubuntu Server


Para Paula Jnior (2007, p.4) o Ubuntu um sistema operacional livre e de cdigo aberto, feito em volta do Kernel do Linux, baseado na distribuio chamada Debian. A empresa Canonical apia o desenvolvimento do Ubuntu, e a lm de verses com diferentes tipos de ambientes de trabalho (Kubuntu/KDE e Xubuntu/XFCE, por exemplo), tambm disponibiliza uma verso destinada a servidores, conhecida como Ubuntu Server. Atualmente na verso 9.04, o Ubuntu Server , essencialmente, idntico ao Ubuntu Desktop. No entanto, seu ambiente de trabalho GNOME no instalado por padro, tornando seu uso possvel mesmo em mquinas com caractersticas mais modestas de hardware; tambm inclui um conjunto de pacotes especficos para servidores. O Ubuntu Server, assim como as verses desktop, utiliza repositrios derivados do repositrio unstable do Debian, sendo que as verses LTS (Long Term Support ) so as mais semelhantes s verses estveis do Debian (MORIMOTO, 2008, p. 38). Para este trabalho foi utilizada a verso 8.04 LTS. A terminologia LTS indica que seu perodo de suporte e atualizaes maior em comparao s verses regulares (como a 9.04). A partir da verso 8.04 LTS, a Canonical estendeu esse perodo de 18 meses para 5 anos.

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server - 16

1.2 Instalao do Sistema


Antes de proceder com a instalao do Ubuntu Server, algumas configuraes como idioma e layout do teclado podem ser necessrias e feitas por meio do gerenciador de boot egrub (Figura 1).

Figura 1 Gerenciador de boot egrub. FONTE: Arquivo do autor. Na parte inferior da tela h informaes sobre quais teclas utilizar para acessar determinadas configuraes do gerenciador, como por exemplo, F2 para idioma e F3 para o layout do teclado. Aps a definio dos ajustes iniciais, basta escolher a opo Install Ubuntu Server e pressionar Enter para iniciar a instalao.

1.2.1 Configurao inicial de rede


A mquina virtual utilizada possui duas interfaces de rede (eth0 e eth1), caracterstica identificada automaticamente pelo instalador e onde se deve escolher qual ser a interface primria (Figura 2).

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server - 17

Figura 2 Seleo de qual interface de rede ser a primria. FONTE: Arquivo do autor. Aps a escolha da interface eth0 como primria, o instalador prossegue com a configurao de rede tentando obt-la automaticamente atravs de um servidor DHCP. Esta configurao pode ser cancelada neste momento e efetuada manualmente mais tarde (Figura 3).

Figura 3 Configurao da rede adiada. FONTE: Arquivo do autor.

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server - 18

Posteriormente o instalador pede a definio de um nome para identificao do servidor na rede, alm de configuraes de fuso horrio.

1.2.2 Particionamento
Particionamento a tarefa de preparao do disco rgido (HD) e m uma ou mais partes (parties) que recebero um sistema de arquivos para armazenamento de dados. Existem diversos tipos de sistema de arquivos para parties Linux, sendo o sistema EXT3 um dos mais utilizados em diversas distribuies. O EXT3 caracteriza-se por possuir suporte ao recurso de journaling, responsvel por manter registros das operaes realizadas no sistema de arquivos da partio. Aps os ajustes inicias da instalao, necessrio executar o particionamento do disco rgido, escolhendo a opo Manual para personalizar a definio das parties (Figura 4).

Figura 4 Particionamento do Disco Rgido. FONTE: Arquivo do autor. Aps a escolha do espao vazio o particionador solicita a criao de uma nova tabela de parties, responsvel pela definio das caractersticas das parties. Assim o disco rgido fica pronto para definio de uma ou mais parties a partir de um espao livre (Figura 5).

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server - 19

Figura 5 Escolha de um espao livre ou partio a ser usada. FONTE: Arquivo do autor. O Ubuntu Server possui como requisito mnimo de instalao pelo menos 1 GB de espao em disco. Neste servidor virtual com disco rgido de 7.5 GB, sua instalao foi feita usando a partio 1 (primria) com espao de 3 GB para armazenar o diretrio raz (/) e toda a estrutura do sistema operacional. O diretrio /home , local onde ficam os arquivos dos usurios, foi instalado na partio 2 (lgica) com cerca de 4 GB. Este diretrio tende a ter seu espao ocupado com mais rapidez, j que armazena tudo relacionado aos arquivos e configuraes dos usurios cadastrados no sistema. J a partio 3 utilizada como uma memria virtual para o sistema, chamada de SWAP, aproveitando o restante (500 MB) dos 7.5 GB do disco rgido do servidor. Sendo assim, as parties sero criadas com a seguinte configurao (Figura 6):

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server - 20

Figura 6 Esquema de particionamento utilizado. FONTE: Arquivo do autor. Aps a definio do esquema para as parties, a opo Finalizar o particionamento e gravar as mudanas no disco escolhida e o instalador prossegue com a instalao do sistema.

1.2.3 Instalao do Sistema Bsico


Durante o processo de instalao do sistema bsico, algumas configuraes so solicitadas pelo instalador como, por exemplo, a definio de uma conta de usurio e senha de acesso (Figura 7).

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server - 21

Figura 7 Configurao de usurio e senha. FONTE: Arquivo do autor. O usurio criado aqui ser utilizado para configurao do sistema aps o trmino da instalao, evitando o uso da conta root . Tambm dada a opo de instalar alguns dos pacotes de softwares mais comuns usados em servidores (Figura 8).

Figura 8 Instalao de pacotes de softwares. FONTE: Arquivo do autor. No entanto, a instalao dos pacotes necessrios ao Servidor Proxy (Squid), Firewall (Iptables), File Server (Samba) e OpenSSH para acesso remoto ser feita posteriormente atravs da ferramenta APT-GET, o que possibilita a utilizao de verses mais recentes.

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server - 22

A instalao prossegue e alguns minutos depois finalizada (Figura 9).

Figura 9 Finalizao da instalao. FONTE: Arquivo do autor. O instalador reinicia a mquina e o Ubuntu Server iniciado, solicitando em seguida o nome de usurio e senha para login. Aps preencher os dados, o terminal apresentado e as configuraes do servidor j podem ser feitas (Figura 10).

Figura 10 Terminal. FONTE: Arquivo do autor.

2. FIREWALL IP TABLES E CONFIGURAO DE REDE


Neste captulo as interfaces de rede do servidor sero configuradas de acordo com o tipo de conexo Internet existente e das caractersticas da rede onde o servidor ser utilizado. Tambm ser ativado o compartilhamento da Internet usando regras no firewall Iptables, juntamente com regras de segurana. Por fim, ser instalado e configurado um servidor DHCP, responsvel pela distribuio automtica das configuraes de rede que cada estao dever possuir.

2.1 Interfaces
A configurao das interfaces de rede feita no arquivo /etc/network/interfaces, usando um editor de textos como o nano. Neste arquivo possvel definir as configuraes de endereo IP, mscara, rede, broadcast e gateway que cada interface ethernet do servidor possui. Para este trabalho, com um servidor virtual conectado a uma conexo de Internet com IP dinmico, foi definida a configurao representada na imagem abaixo (Figura 11).

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server - 24

Figura 11 Edio das configuraes de rede usando o editor nano. FONTE: Arquivo do autor. Para que as configuraes entrem em funcionamento, o contedo do arquivo /etc/network/interfaces precisa ser recarregado reiniciando o daemon (servio) responsvel pelas configuraes de rede: sudo /etc/init.d/networking restart. Antes de executar outras tarefas de configurao dos servios do servidor, recomendvel atualizar a lista de pacotes dos repositrios do Ubuntu Server atravs do comando sudo apt- get update (Figura 12), alm de efetuar a atualizao dos pacotes j instalados por padro, utilizando o comando sudo apt- get upgrade (Figura 13).

Figura 12 Atualizao da lista de pacotes dos repositrios. FONTE: Arquivo do autor.

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server - 25

Figura 13 Atualizao dos pacotes j instalados. FONTE: Arquivo do autor.

2.2 Firewall Iptables


Para von Hagen (2007, p. 727) Firewall um termo usado para descrever um sistema que fica entre um ou mais sistemas de computadores, e monitora e gerencia o trfego da rede . O Iptables (tambm conhecido como netfilter) um firewall embutido no Kernel do Linux, caracterizado por ser muito estvel e confivel, permitindo grande flexibilidade na definio de regras. Seu funcionamento baseado na comparao de regras para saber se um pacote tem ou no permisso para passar; podendo tambm ser utilizado para modificar e monitorar o trfego da rede, roteamento, compartilhamento (NAT), e proteo contra diversas formas de ataque. O Iptables ainda pode ter diversas funes adicionadas atravs de mdulos, o que possibilita inmeras formas de uso do firewall (SILVA, 2007, p. 107).

2.2.1 Regras de compartilhamento


Aps a configurao das interfaces de rede do servidor, necessrio fazer a configurao que permitir o compartilhamento da Internet (ligada eth0) com a rede local (eth1) atravs de regras no Iptables. Os comandos listados na Figura 14 constituem as regras necessrias para o compartilhamento e para uma proteo bsica contra ataques vindos da Internet. Estes comandos sero colocados em um arquivo chamado firewall dentro do diretrio

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server - 26

/usr/local/bin, e este arquivo ser transformado em um script executvel (sudo chmod +x /usr/local/bin/firewall). Desta forma, adicionando sua localizao ao final do arquivo /etc/rc.local (antes da linha exit0), o script ser sempre carregado mesmo que o servidor seja reiniciado.

Figura 14 Regras para compartilhamento de Internet no Iptables. FONTE: Arquivo do autor. O Quadro 1 apresenta a descrio dos comandos usados no script , sem referncia aos comentrios: Quadro 1 Script de compartilhamento no Iptables. Comando conexinternet= eth0 conexlocal= eth1 modprobe iptable_nat echo 1 > /proc/sys/net/ipv4/ip_forward iptables t nat A POSTROUTING o $conexinternet j MASQUERADE iptables A INPUT p tcp synn j DROP Funo Varivel que identifica a interface de rede conectada Internet (eth0). Varivel que identifica a interface de rede conectada rede local (eth1). Ativa o mdulo iptable_nat para suporte a roteamento de pacotes por NAT. Ativa o mdulo ip_forward que possibilita o encaminhamento de pacotes. Regra que faz efetivamente o compartilhamento. Regra geral de segurana, bloqueando o acesso a partir de conexes externas (Internet ).

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server - 27

2.2.2 Configurao de Portas


As regras definidas anteriormente so suficientes apenas para o compartilhamento da Internet com o restante das estaes da rede e uma proteo geral contra acessos provenientes da Internet . No entanto, tambm possvel no Iptables definir regras para determinadas portas no servidor. A relao de portas que devem ser abertas ou fechadas no firewall depende inicialmente de se ter em mente quais sero as principais atribuies do servidor. Por exemplo, para um servidor web so necessrias pelo menos as portas TCP 80 e 443 (protocolos HTTP e HTTPS respectivamente), TCP 53 e UDP 53 (ambas para DNS, responsvel pela resoluo de nomes de endereos). Para o servidor desenvolvido neste trabalho, sero abertas no firewall as portas TCP 22, TCP 10000, UDP 137 e 138 e TCP 139 e 445, e fechada a porta 1863 utilizada pelo programa de mensagens MSN/Windows Live Messenger (Figura 15).

Figura 15 Regras para portas no Iptables. FONTE: Arquivo do autor. O Quadro 2 apresenta a descrio dos comandos adicionados ao script do firewall : Quadro 2 Regras para portas no Iptables. Comando iptables -A INPUT -p tcp --dport 22 -j ACCEPT Funo Condio para pacotes de entrada destinados porta TCP 22, usada pelo servidor OpenSSH. Condio que bloqueia o acesso a conexo proveniente do programa MSN. Condio para pacotes de entrada destinados porta TCP 10000, usada

iptables -A FORWARD -p tcp --dport 1863 -j REJECT iptables -A INPUT -p tcp --dport 10000 -j ACCEPT

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server - 28

pelo software Webmin para acesso remoto via web. iptables -A INPUT -p udp --dport 137 -j ACCEPT Condies para pacotes de entrada iptables -A INPUT -p udp --dport 138 -j ACCEPT destinados s portas UDP 137 e 138, e iptables -A INPUT -p tcp --dport 139 -j ACCEPT TCP 139 e 445, usadas pelo servidor iptables -A INPUT -p tcp --dport 445 -j ACCEPT Samba para navegao na rede e resoluo de nomes das mquinas da rede. Estas portas so necessrias para os servios que posteriormente sero configurados neste servidor.

2.2.3 Regras de Segurana


Muitos dos problemas relacionados segurana de uma rede de computadores podem ser evitados (ou pelo menos minimizados) com um conjunto de regras definidas no firewall Iptables. Quando combinadas com a atualizao dos servios instalados no servidor, juntamente a uma poltica eficiente e clara sobre as condies de uso da rede e da Internet pelos usurios, estas regras auxiliam o Administrador a ter um controle sobre praticamente tudo o que deve ocorrer em relao ao acesso rede e a Internet . No script configurado anteriormente, foram definidas regras relacionadas ao compartilhamento e a determinadas portas que so usadas por programas previstos nas funcionalidades do servidor. Mas, alm disso, tambm vlido adicionar mais algumas regras visando justamente evitar possveis brechas de segurana no servidor e na rede (Figura 16).

Figura 16 Regras de segurana no Iptables. FONTE: Arquivo do autor. O Quadro 3 apresenta a descrio dos comandos usados no script :

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server - 29

Quadro 3 Regras de segurana no Iptables. Comando iptables A INPUT i $conexlocal j ACCEPT iptables A INPUT p icmp icmp-type echorequest j DROP echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter iptables A INPUT m state state INVALID j DROP iptables A INPUT i lo j ACCEPT Funo Condio que aceita os pacotes provenientes da rede local. Condio que ignora ping, dificultando ao invasor saber se o servidor est online. Regras para ignorar pacotes invlidos. Pacotes vindos do prprio servidor so aceitos.

2.3 Servidor DHCP


O servidor DHCP ( Dynamic Host Configuration Protocol) o servio responsvel por distribuir para as estaes as configuraes de endereamento IP que cada uma dever possuir na rede de forma automtica. Isto especialmente til em redes com uma grande quantidade de computadores, evitando a necessidade de se configurar manualmente cada uma das mquinas pertencentes rede. O funcionamento do DHCP baseado em pacotes de broadcast , onde uma estao configurada para receber um endereo IP automaticamente, envia um pacote de broadcast tentando encontrar um servidor DHCP na rede que fornea uma configurao vlida de IP (VAN VUGT, 2008, p. 279). Alm do endereo IP a estao tambm recebe as configuraes de mscara de rede, gateway e DNS utilizados na rede.

2.3.1 Instalao e configurao do servidor


A instalao do servidor DHCP no Ubuntu feita atravs do pacote dhcp 3-server usando o comando sudo apt-get install dhcp3- server. Sua configurao definida no arquivo /etc/dhcp3/dhcpd.conf. Este arquivo um modelo de configurao com comentrios, o que o deixa bastante extenso. Para simplificar o procedimento de configurao do servidor, o arquivo original dhcpd.conf renomeado para dhcpd.conf.old, e ento criado um novo arquivo dhcpd.conf com apenas as configuraes necessrias para o servidor que est sendo implementado (Figura 17).

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server - 30

Figura 17 Arquivo dhcpd.conf. FONTE: Arquivo do autor. O Quadro 4 apresenta a descrio das linhas utilizadas na configurao do arquivo dhcpd.conf: Quadro 4 Arquivo dhcpd.conf. Linha 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.1 192.168.0.100; option routers 192.168.0.250; option domain- name-servers 208.67.222.222,208.67.220.220; option broadcast-address 192.168.0.255; Funo Define que o DHCP no tentar interagir com um servidor de nomes (DNS). Controla o tempo (em segundos) de renovao dos endereos IP disponibilizados. Tempo mximo que uma estao pode ficar com um endereo IP. Determina que este seja o principal servidor DHCP da rede local. Define que faixa de endereos e mscara a rede local utilizar. Faixa de endereos que sero distribudos automaticamente entre as estaes. Roteador (Gateway) da rede. Endereos dos servidores DNS (neste caso, usando endereos dos servidores pblicos OpenDNS) Endereo para pacotes broadcast .

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server - 31

host micro1 { hardware ethernet 00:0C:29:A1:78:DA; fixed-address 192.168.0.101; } host micro2 { hardware ethernet 00:50:56:C0:00:01; fixed-address 192.168.0.102; } }

Seo que possibilita relacionar um endereo IP fixo ao endereo fsico (MAC Address) da placa de rede de uma estao.

Finaliza as configuraes do arquivo dhcpd.conf. Fora a configurao do dhcpd.conf, como o servidor possui duas placas de rede

tambm importante configurar o DHCP para escutar somente a placa da rede local, j que somente s estaes conectadas a esta interface que o servidor DHCP dever responder. Esta configurao feita no arquivo /etc/default/dhcp3- server, alterando a linha INTERFACES= por INTERFACES=eth1 (MORIMOTO, 2008, p. 129). Para que as alteraes entrem em funcionamento, o servio dhcp3-server reiniciado com o comando sudo /etc/init.d/dhcp3- server restart.

3. SERVIDOR PROXY SQUID


Um servidor Proxy como o Squid tem como principal finalidade servir como um intermedirio entre as mquinas da rede local e a Internet . atravs dele que podemos definir restries baseadas em polticas de acesso (chamadas de ACLs) e um uso mais racional e controlado da Internet ; tendo tambm a vantagem de funcionar como um cache de pginas e arquivos j acessados, economizando assim o uso da banda disponvel e melhorando a velocidade de acesso. Neste captulo ser demonstrado como implementar um servidor Proxy transparente com o Squid.

3.1 Tipos de Proxy


O Squid pode ser configurado para atuar de diferentes formas de acordo com a necessidade de uso da Internet na rede local. possvel us- lo como um Proxy Tradicional, configurando manualmente cada estao da rede; como um Proxy Transparente, com redirecionamento automtico de pacotes para o Squid; como Proxy com Autenticao, exigindo usurio e senha para acesso; como um Proxy com Configurao Automtica (PAC), baseado em um script disponvel em um servidor Web; e como Proxy WPAD, possibilitando que os clientes localizem o script de configurao automaticamente.

3.1.1 Tradicional
O Proxy dito como tradicional ou comum o tipo mais bsico de configurao de um Proxy como o Squid. Neste tipo de uso h a necessidade obrigatria de se configurar manualmente cada uma das mquinas da rede, alterando as configuraes dos navegadores utilizados (como o Internet Explorer e Mozilla Firefox ) para que acessem a Internet somente

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server - 33

pelo endereo do servidor Proxy. Sua principal desvantagem justamente a pouca praticidade de implementao.

3.1.2 Transparente
O Proxy Transparente atua a partir de uma regra de firewall, onde configurado o compartilhamento via NAT de modo que os acessos destinados porta 80 possam ser interceptados e direcionados ao Squid. Desta forma tudo passa obrigatoriamente por suas regras de controle. Uma grande vantagem no uso de um Proxy Transparente reside no fato de que as estaes passam a receber esta configurao automaticamente a partir do gateway da rede. No entanto, esta soluo tambm possui algumas restries como, por exemplo, a impossibilidade de se utilizar um sistema de autenticao juntamente com o Proxy Transparente. Alm disso, somente os dados trafegados na porta 80 so controlados.

3.1.3 Com Autenticao


Nesta modalidade de configurao possvel utilizar um sistema de autenticao para que o usurio possa acessar a Internet com base em alguns critrios. O Squid passa a utilizar um mdulo de autenticao baseado em um arquivo de senhas para definio de quais usurios podero acessar a Internet . Tambm possvel fazer com que o Squid se autentique em um servidor configurado como PDC (como o Samba ou mesmo o Active Directory).

3.1.4 PAC
Neste tipo de aplicao utilizado um script PAC (Proxy Auto Configuration) disponibilizado na rede local por meio de um servidor web como o Apache. Este arquivo criado em /var/www/wpad.dat com um pequeno contedo escrito em Javascript : Function FindProxyForUrl(url, host) { Return PROXY 192.168.0.250:3128; }

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server - 34

Este mtodo ainda exige a configurao manual em cada estao para que o script seja recebido e processado, fazendo com que utilizem o endereo do Proxy como forma de sada para a Internet . No entanto, caso seja necessrio efetuar alguma mudana na configurao de Proxy nas estaes, bastar mudar o script .

3.1.5 WPAD
O WPAD (Web Proxy Auto Discovery protocol) uma forma de implementao que usa como base o Proxy com script PAC juntamente com configuraes nos servidores DHCP e DNS da rede. Assim as estaes so orientadas a buscar de forma automtica o arquivo com o script , bastando ativar nos navegadores das mquinas a opo que permita detectar automaticamente as configuraes de Proxy e Rede.

3.2 Instalao do Squid


Definido o tipo de Proxy que ser utilizado na rede, hora de iniciar sua implementao no servidor Ubuntu Server. A instalao do Squid segue o padro comum a outros pacotes instalados no Ubuntu, usando o comando sudo apt- get install squid (Figura 18).

Figura 18 Instalao do Squid. FONTE: Arquivo do autor.

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server - 35

Sua configurao feita no arquivo /etc/squid/squid.conf , que originalmente possui uma srie de comentrios e exemplos para diversas configuraes e interpretado sequencialmente pelo aplicativo.

3.3 Configurao bsica como Proxy Transparente


Para simplificar o procedimento de configurao do Squid, o arquivo original squid.conf renomeado para squid.conf.old, e ento criado um novo arquivo /etc/squid/squid.conf. O novo arquivo ter inicialmente a configurao demonstrada na Figura 19:

Figura 19 Configurao inicial do squid.conf. FONTE: Arquivo do autor. O Quadro 5 apresenta a descrio das linhas utilizadas na configurao inicial do arquivo squid.conf: Quadro 5 Configurao inicial do squid.conf. Linha http_port 3128 transparent Funo Porta padro utilizada pelo Squid e parmetro que define o Proxy como

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server - 36

visible_hostname konoha acl all src 0.0.0.0/0.0.0.0 acl manager proto cache_object acl localhost src 127.0.0.1/255.255.255.255 acl SSL_ports port 443 563 acl Safe_ports port 21 80 443 563 70 210 280 488 59 777 901 1025-65535 acl purge method PURGE

transparente. Nome do servidor. ACL com todos os endereos de rede possveis. ACL para o protocolo cache_object (protocolo pertencente ao Squid). ACL para o endereo localhost do prprio servidor. ACLs para portas que podem ser utilizadas pelo Proxy. ACL para o mtodo PURGE (responsvel por limpar objetos do cache). ACL para o mtodo CONNECT. Regra que libera o acesso das ACLs manager e localhost combinadas. Regra que nega a ACL manager. Regra que libera o acesso das ACLs purge e localhost combinadas. Regra que nega a ACL purge. Regra que nega as portas no especificadas na ACL Safe_ports. Regra que nega conectividade s portas no especificadas na ACL SSL_ports. ACL para os endereos da rede local Regra que libera o acesso vindo do localhost (servidor). Regra que libera o acesso vindo da rede local. Regra geral que nega o acesso a tudo que no foi especificado nas regras anteriores.

acl CONNECT method CONNECT http_access allow manager localhost http_access deny manager http_access allow purge localhost http_access deny purge http_access deny !Safe_ports http_access deny CONNECT !SSL_ports

acl redelocal src 192.168.0.0/24 http_access allow localhost http_access allow redelocal http_access deny all

Como o Proxy ser usado de forma transparente, tambm necessrio adicionar ao firewall Iptables (logo aps a regra de compartilhamento NAT) uma regra que intercepte e direcione o trfego da porta 80 para o Squid: iptables -t nat -A PREROUTING -i $conexlocal -p tcp --dport 80 -j REDIRECT --to- \ port 3128 Aps estas configuraes, as regras do Iptables so limpas (sudo iptables - F) e o script do firewall carregado novamente (sudo firewall). As novas configuraes do Squid tambm precisam ser carregadas usando o comando sudo /etc/init.d/squid restart.

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server - 37

Estas configuraes so suficientes para que o Proxy funcione com um conjunto mnimo de restries de portas e de acesso local, permitindo que as estaes j tenham acesso Internet.

3.4 Definindo o Cache do servidor Proxy


Depois de ativar o Squid com algumas funes bsicas, possvel definir suas configuraes mais avanadas, como ajustes relacionados ao Cache. O Squid utiliza as formas de cache em memria RAM (com pouco espao e velocidade maior) e em disco (com grande espao de armazenamento, mas com acesso mais lento). A quantidade de espao reservado na memria RAM e no disco rgido depende principalmente do quanto de capacidade estes dispositivos de hardware possuem no servidor. Para Morimoto (2008, p. 140) como regra geral, voc pode reservar 32 ou 64 MB para o cache em um servidor dedicado, que atende a apenas alguns micros, e at 1/3 da memria RAM total em um servidor Proxy dedicado, que atende a um volume maior de usurios. Em relao ao espao reservado em disco, pode-se usar um valor alto caso haja bastante espao no disco rgido do servidor e se quiser que o Squid armazene os downloads por um longo perodo (MORIMOTO, 2008, p. 141). Considerando o servidor virtual implementado neste trabalho, uma mquina com 128 MB de memria RAM e HD de 7,5 GB, podem ser usados os seguintes ajustes para o Cache do servidor: Cache em memria RAM: 50 MB Cache em disco (HD): 2 GB Tamanho mximo de objeto na memria: 64 KB Tamanho mximo de objeto no disco: 512 MB Tamanho mnimo de objeto no disco: 0 KB Tambm so especificados o arquivo que armazenar os logs de acesso do Squid e o diretrio que contm as pginas de erro em Portugus. Posteriormente, o Sarg (utilitrio para relatrios) utilizar o arquivo de log para gerar relatrios com informaes sobre as pginas acessadas pelas estaes. Depois de feitas as alteraes, destacadas na imagem, o arquivo squid.conf ter a configurao demonstrada na Figura 20:

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server - 38

Figura 20 Configurao parcial do squid.conf. FONTE: Arquivo do autor. O Quadro 6 apresenta a descrio das linhas acrescentadas na configurao parcial do arquivo squid.conf: Quadro 6 Configurao parcial do squid.conf. Linha cache_mem 50 MB maximum_object_size_in_memory 64 KB maximum_object_size 512 MB minimum_object_size 0 KB cache_dir ufs /var/spool/squid 2048 16 256 Funo Quantidade reservada para o cache na memria RAM. Tamanho mximo dos arquivos armazenados no cache em memria. Tamanho mximo dos arquivos armazenados no cache em disco. Tamanho mnimo dos arquivos armazenados no cache em disco. Diretrio onde o Squid armazenar os arquivos, espao reservado no disco rgido em MB, quantidade de pastas e subpastas que sero criadas dentro do diretrio. Diretrio e arquivo onde os logs do Squid

cache_access_log /var/log/squid/access.log

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server - 39

error_directory /usr/share/squid/errors/Portuguese

sero armazenados. Diretrio de pginas de erro (em portugus) usadas pelo Squid.

3.5 Regras para Polticas de Acesso (ACLs)


Alm de funcionar como um cache para armazenar as pginas e arquivos j acessados, o Squid tambm normalmente utilizado como um meio de organizar e restringir o uso da Internet de acordo com determinar regras. Estas regras so definidas atravs de um conjunto de ACLs (Access Control List ), onde por meio de regras e parmetros possvel criar configuraes que restrinjam ou liberem o acesso a domnios, palavras e IPs; que impeam o download de arquivos com determinadas extenses; dentre outras possibilidades. Para este trabalho, sero criadas polticas de acesso baseadas em: Bloqueio de sites (de acordo com domnios e palavras na URL); Acesso livre para determinadas mquinas (de acordo com o MAC Address ).

3.5.1 Bloqueio de sites


O bloqueio de sites no Squid feito usando ACLs com as seguintes regras: dstdomain: verifica os domnios, necessitando que se especifique os endereos com e sem www; url_regex: verifica os domnios, mas no bloqueia endereos dinmicos passados como parmetro da URL; dstdom_regex: verifica todas as palavras existentes na URL. Estas regras podem ser combinadas ao mesmo tempo nas ACLs para obter um melhor resultado no controle de acesso. Sendo assim, o bloqueio dos domnios restritos ser especificado com o auxlio de uma lista de endereos num arquivo de texto comum, armazenado em um diretrio como, por exemplo, /etc/squid/controle-de-acesso/sites- bloqueados. O contedo do arquivo segue um modelo simples, com cada endereo em uma linha como demonstrado na Figura 21:

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server - 40

Figura 21 Arquivo com lista de endereos bloqueados. FONTE: Arquivo do autor. Com a lista definida, basta apenas escrever a ACL usando url_regex e a referncia ao arquivo, alm da regra http_access deny para negar o acesso. acl bloqueados url_regex -i /etc/squid/controle-de-acesso/sites-bloqueados http_access deny bloqueados De forma complementar, tambm possvel utilizar uma lista (/etc/squid/controle-deacesso/palavras) com palavras que sero verificadas pela regra dstdom_regex (Figura 22).

Figura 22 Arquivo com lista de palavras bloqueadas. FONTE: Arquivo do autor. Em seguida, definimos a ACL: acl palavras dstdom_regex /etc/squid/controle-de-acesso/palavras http_access deny palavras

3.5.2 Controle de acesso de mquinas


As ACLs podem ser usadas tambm para definir o controle de acesso de determinadas estaes da rede local. possvel definir uma lista dos MAC Addresses das mquinas que podero ter acesso irrestrito (Figura 23):

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server - 41

Figura 23 Arquivo com lista de endereos MAC de mquinas. FONTE: Arquivo do autor. Com o parmetro arp e a regra http_access allow configuramos a ACL para permitir o acesso destes endereos MAC: acl diretoria arp /etc/squid/admin/diretoria http_access allow diretoria Como o squid.conf lido sequencialmente pelo Squid, as regras que abrem o acesso devem vir antes de regras de restrio para que funcionem corretamente. Depois de definir as ACLs, o arquivo squid.conf estar com as configuraes mostradas na Figura 24:

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server - 42

Figura 24 Arquivo squid.conf configurado com ACLs. FONTE: Arquivo do autor. Para que as regras entrem em funcionamento, necessrio que o Squid recarregue as novas configuraes, tarefa que pode ser feita com o comando sudo /etc/init.d/squid reload. Feito isso, ao tentar acessar uma dos domnios bloqueados ou endereos com alguma palavra proibida na URL, o usurio encontra uma pgina de erro informando q ue o acesso foi negado (Figura 25).

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server - 43

Figura 25 Acesso negado pelo Squid. FONTE: Arquivo do autor.

3.6 SquidGuard
O SquidGuard um aplicativo que permite usar longas listas com milhes de URLs de sites imprprios (pornogrficos, downloads ilegais, cracks, drogas etc), auxiliando o Squid na tarefa de bloquear o acesso a estes endereos sem com isso prejudicar o desempenho do Proxy (MORIMOTO, 2008, p. 168). Regras como url_regex e dstdom_regex so teis na tarefa de bloquear endereos ou termos especficos. No entanto, para bloquear a maior parte dos milhes de endereos de sites imprprios existentes na Internet , h a necessidade de se utilizar uma grande lista de URLs mantida por grupos como o MESD B lacklists e Shallas Blacklists. O uso de listas a partir do SquidGuard torna as tarefas de restrio muito mais eficientes e prticas para o Squid, j que a necessidade de ficar constantemente atualizando as listas originalmente usadas pelo squid.conf acaba sendo drasticamente reduzida.

3.6.1 Instalao e Configurao


A instalao do SquidGuard feita usando o comando sudo apt -get install squidguard.

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server - 44

Tambm necessrio baixar pelo menos uma das listas que ser usada pelo programa. No servidor implementado neste trabalho, ser utilizada a lista do MESD que pode ser baixada usando o comando wget c http://squidguard.mesd.k12.or.us/blacklists.tgz. Usando agora o usurio root do sistema, aps o download a lista copiada com o comando cp blacklists.tgz /var/lib/squidguard/db para o diretrio /var/lib/squidguard/db e em seguida descompactada usando o comando tar - zxvf blacklists.tgz. Ao acessar o diretrio /var/lib/squidguard/db/blacklists possvel visualizar uma lista de diretrios divididos por assuntos (Figura 26).

Figura 26 Diretrio blacklists. FONTE: Arquivo do autor. O contedo da lista inclui domnios e URLs relacionadas a sites de entretenimento como o Youtube e MSN Web Messenger, passando por sites inerentes a redes sociais (como Orkut), sites com endereos de servidores Proxy pblicos, rdios online, alm de sites pornogrficos e muitos outros. Com o SquidGuard instalado e a lista MESD disponvel, necessrio editar o arquivo /etc/squid/squidGuard.conf para especificar as sees da lista que sero usadas. Para o bloqueio de sites com contedo pornogrfico, drogas, violncia, softwares piratas e servidores de Proxy pblico, o arquivo pode ser configurado da forma mostrada na Figura 27:

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server - 45

Figura 27 Arquivo squidGuard.conf. FONTE: Arquivo do autor. As classes dest indicam o nome da seo e a localizao dos endereos de domnio (domainlist ) e das URLs (urllist ) da blacklist . A ltima ACL, por meio do parmetro pass , indica a forma como as classes dest sero tratadas, sendo que os itens com o sinal de exclamao (!) antes do nome tero o acesso bloqueado com redirecionamento (redirect ) automtico para uma outra pgina ou site (no caso o site Google, na configurao demonstrada na figura anterior). Por fim, necessrio tambm converter a lista para o formato Berkeley DB usando o comando squidGuard - C all. Esta converso possibilita que o acesso ao contedo da lista seja feito de forma mais rpida do que como um arquivo de texto comum.

3.6.2 Ajustando as permisses de acesso e alterando o Squid


Aps a instalao e configurao inicial do SquidGuard, h ainda a necessidade de ajustar as permisses de acesso aos arquivos do aplicativo para que o Squid possa acess- los. O ajuste de permisses feito em trs etapas:

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server - 46

chown -R proxy:proxy /var/lib/squidguard/db/* : com este comando, o usurio e grupo proxy (pertencentes ao Squid) passam a ter acesso aos arquivos do diretrio do SquidGuard; find /var/lib/squidguard/db type f | xargs chmod 644 : usando o comando find e o parmetro - type f, todos os arquivos do diretrio

/var/lib/squidguard/db so localizados. Logo em seguida so direcionados pelo xargs como parmetros para o comando chmod 644 . find /var/lib/s quidguard/db type d | xargs chmod 755 : novamente usando o find com o parmetro - type d, todos os diretrios do diretrio /var/lib/squidguard/db so localizados e em seguida direcionados pelo xargs como parmetros para o comando chmod 755. Com todos os ajustes de permisses feitos, agora necessrio adicionar a linha redirect_program /usr/bin/squidGuard antes das regras que liberam o acesso da rede local (http_access allow localhost e http_access allow redelocal). Com esta linha o SquidGuard passa a ser ativado fazendo com que as requisies passem por ele. Para que todas as alteraes entrem em funcionamento, basta apenas reiniciar o Squid com o comando /etc/init.d/squid restart.

3.7 Monitorando os acessos com o Sarg


O Sarg (Squid Analysis Report Generator) um aplicativo que interpreta os logs do Squid e gera relatrios com informaes sobre as pginas acessadas a partir de qualquer mquina da rede. Com esses relatrios possvel monitorar quais sites esto sendo acessados pelos usurios e, gradativamente, ir adaptando os filtros do Squid. A instalao do pacote feita usando o comando sudo apt- get install sarg, e sua configurao principal definida no arquivo /etc/squid/sarg.conf. Usando o nano para editlo, as seguintes configuraes sero feitas: Idioma Language Portuguese Formato de data (dd- mm- yy): date_format e Para usar o Sarg basta cham- lo com o comando sudo sarg, e os relatrios sero gerados e gravados automaticamente no diretrio /var/www/squid - reports. Caso seja necessrio gerar um relatrio de algum perodo especfico, pode-se usar o comando sudo sarg -d dd/mm/yyyy-dd/mm/ yyyy. Exemplo: sudo sarg d 20/02/2009- 28/02/2009.

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server - 47

Com o tempo os relatrios vo ocupando muito espao em disco, sendo necessrio eventualmente mov- los para outra mdia ou apag- los conforme ficam antigos. Posteriormente, estes relatrios podero ser visualizados em qualquer navegador na rede local com a utilizao de um gerenciador web, como Webmin, que ser abordado no captulo 5 deste trabalho.

4. SERVIDOR DE ARQUIVOS SAMBA


Um servidor de arquivos (File Server) como o Samba possibilita aos usurios armazenar seus arquivos em um local centralizado na rede, podendo compartilh- los facilmente com outros usurios e acess- los a partir de outras mquinas da rede com segurana e praticidade (VAN VUGT, 2008, p. 299). Para Morimoto (2008, p. 245) hoje, alm de ser quase 100% compatvel com os recursos de rede do Windows 98, NT, 2000 e XP, o Samba reconhecido por ser mais rpido que o prprio Windows na tarefa de servidor de arquivos. Neste captulo ser demonstrada a implementao do Samba como servidor de arquivos, desde sua instalao, cadastro de usurios, configurao dos compartilhamentos de diretrios editando o arquivo smb.conf, alm de ajustes de permisso para acesso.

4.1 Instalao do Samba


O Samba possui originalmente os mdulos de instalao como servidor e como cliente (smbclient). O mdulo cliente tem somente a finalidade de permitir o acesso a compartilhamentos em outras mquinas ou servidores. J o mdulo servidor, o necessrio para configurao do Samba como um servidor de arquivos na rede. O pacote do servidor Samba com mdulo servidor instalado no Ubuntu Server utilizando o comando sudo apt- get install samba.

4.2 Usurios
Aps instalar o Samba, necessrio cadastrar os usurios ( login e senha) que faro acesso aos compartilhamentos do servidor. Como o Samba roda sobre o sistema operacional,

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server - 49

os usurios que iro acessar o servidor precisam estar necessariamente cadastrados no sistema. A quantidade de usurios que devem ser cadastrados no sistema e no Samba, alm das caractersticas e privilgios que cada um deve ter, varia de acordo com o que foi planejado em relao ao uso do Servidor na rede. Para o servidor virtual desenvolvido neste trabalho, sero cadastrados no sistema (e depois no Samba) mais trs usurios: neil, geddy, e alex. O usurio administrativo tiago j existe no sistema e posteriormente tambm ser adicionado ao servidor Samba.

4.2.1 Cadastro de usurios no sistema


O cadastro de usurios no Ubuntu Server feito atravs do comando sudo adduser nomedousuario , especificando obrigatoriamente pelo menos o nome de usurio ( login) que se deseja criar e uma senha (password). Os usurios tiago, neil, geddy e alex tero acesso livre aos seus prprios diretrios compartilhados, alm de acesso controlado outros que sero definidos em seguida configurando as sees de compartilhamento do smb.conf. Ao usar o comando sudo adduser neil o utilitrio solicita as informaes que sero cadastradas para o novo usurio chamado neil, (Figura 28).

Figura 28 Adicionando usurios ao sistema. FONTE: Arquivo do autor.

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server - 50

Os usurios geddy e alex tambm devem ser adicionados ao sistema usando o mesmo comando utilizado para adicionar o usurio neil. Usando o comando sudo adduser nomedousuario sem nenhum parmetro criado um usurio real no sistema, ou seja, um usurio que realmente pode acessar o servidor e possui seu prprio diretrio de arquivos e configuraes, o que de certa forma pode dar margem a alguma brecha de segurana. Uma alternativa criar o usurio sem permisso de acesso ao servidor (com o login desabilitado) e sem o diretrio /home (que possui seus arquivos e configuraes). Por exemplo, para criar um usurio chamado teste, seria utilizado o comando sudo adduser -disabled- login --no-create-home teste . Este usurio passaria a ter acesso somente ao compartilhamento configurado no Samba pelo Administrador, sem qualquer possibilidade de acessar o terminal do servidor.

4.2.2 Cadastro de usurios no Samba


Com os usurios cadastrados no sistema operacional, agora necessrio adicion- los ao servidor Samba. Esta tarefa executada para cada usurio usando o comando sudo smbpasswd - a nomedousuario, especificando em seguida uma senha (que no precisa ser necessariamente a mesma senha usada no sistema) para acesso ao servidor Samba. Desta forma, para adicionar o usurio tiago se utiliza o comando na forma mostrada na Figura 29.

Figura 29 Adicionando usurios ao servidor Samba. FONTE: Arquivo do autor. Os usurios neil, geddy e alex usados no desenvolvimento deste trabalho tambm so adicionados usando o mesmo comando utilizado para adicionar o usurio tiago. O comando smbpasswd tambm pode ser utilizado com outros parmetros, como smbpasswd - d nomedousuario para desativar um usurio cadastrado no Samba, smbpasswd - e nomedousuario para habilitar um usurio inativo e smbpasswd -x

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server - 51

nomedousuario para remover um usurio do servidor Samba, sendo esta ltima opo normalmente combinada posteriormente com o uso do comando deluser nomedousuario para remov-lo tambm do sistema.

4.3 Configurao usando o smb.conf


A configurao do servidor Samba pode ser feita editando diretamente o arquivo /etc/samba/smb.conf ou com o auxlio de aplicativos de administrao via web, como o Swat e o Webmin. Para o servidor de Arquivos desenvolvido neste trabalho, ser demonstrada a configurao feita manualmente no smb.conf usando um editor de texto como o nano. O arquivo smb.conf disponvel aps a instalao do pacote samba bastante extenso, possuindo dezenas de linhas comentadas com explicaes sobre seus parmetros. Assim como feito em relao ao squid.conf (arquivo de configurao do Squid), recomendvel renomear o arquivo original smb.conf para smb.conf.old usando o comando sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.old, e ento criar um novo arquivo smb.conf usando o comando sudo nano /etc/samba/smb.conf e escrever sua configurao desde o incio. Desta forma, possvel configurar um arquivo mais simples contendo somente as opes e parmetros necessrios para o funcionamento do servidor de Arquivos.

4.3.1 Configurao global


O arquivo smb.conf dividido em sees, sendo que a primeira seo de configurao a [global]. Nesta seo definida a configurao geral do servidor, onde podemos especificar diversas opes tais como nome do servidor, grupo de trabalho, nvel de segurana, faixa de endereos que tero ou no acesso aos compartilhamentos, definio da interface de rede que o servidor usar, dentre outras opes. Para o desenvolvimento do servidor Samba deste trabalho, usando o comando sudo nano /etc/samba/smb.conf, a seo [global] ser configurada com as opes e parmetros mostrados na Figura 30:

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server - 52

Figura 30 Configurao da seo [global] no smb.conf. FONTE: Arquivo do autor. Muitas opes possveis no smb.conf so o padro nativo de configurao do Samba. Por exemplo, a opo security = user , que define o nvel de segurana do Samba como sendo baseado em usurio, no precisa ser colocada no arquivo, j que ela uma configurao padro global para o servidor. O Quadro 7 apresenta a descrio das linhas utilizadas na configurao da seo [global] do arquivo smb.conf: Quadro 7 Configurao da seo [global] do smb.conf. Linha netbios name = Konoha server string = Samba Server workgroup = REDELOCAL username level = 2 Funo Opo que define o nome do servidor Samba. Opo que define uma descrio para o servidor. Grupo de trabalho no qual o servidor aparecer. Opo que verifica em at dois nveis as possveis combinaes entre letras maisculas e minsculas digitadas em nomes de logins. Opes que fazem com que o Samba salva todos os arquivos em letras minsculas, evitando possveis problemas ao localizar arquivos. Opes que orientam o Samba a utilizar somente a interface conectada rede local (no caso, a eth1). Opo que possibilita ao Samba convocar (quando necessrio) uma eleio para manter-se como servidor preferencial na rede. Opo para credenciar o Samba como servidor preferencial da rede, utilizando para isso um nvel (de 0 a 255). Usando qualquer valor alto (acima de 32), o Samba vence a eleio

preserve case = no default case = lower interfaces = eth1 bind interfaces only = yes local master = yes

os level = 100

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server - 53

preferred master = yes

wins support = yes

se utilizado em uma rede com outros servidores Windows. Com esta opo ativada, o servidor ter preferncia caso exista outra mquina com o mesmo nvel (os level) na rede. Opo que faz o Samba atuar tambm como um servidor WINS, auxiliando as estaes Windows em tarefas como navegao na rede e listagem de compartilhamentos.

Com o servidor WINS ativado, necessrio que as estaes sejam configuradas para utiliz- lo. Esta tarefa pode ser automatizada adicionando a linha option netbios - name-servers 192.168.0.250; s configuraes de rede do servidor DHCP atravs do arquivo /etc/dhcp3/dhcpd.conf (Figura 31), e em seguida reiniciando-o.

Figura 31 Adicionando endereo do servidor WINS no DHCP. FONTE: Arquivo do autor. O Samba possui um utilitrio chamado testparm utilizado para analisar o arquivo smb.conf. Digitando sudo testparm o programa iniciado e comea a analisar o arquivo, verificando se h alguma configurao incorreta, informando ao Administrador os parmetros a serem corrigidos (caso existam) no smb.conf (Figura 32).

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server - 54

Figura 32 Verificao do smb.conf usando o testparm. FONTE: Arquivo do autor. A linha Loaded services file OK indica que a configurao no possui erros. Aps verificar o smb.conf, necessrio reiniciar o Samba usando o comando sudo /etc/init.d/samba restart para que as configuraes entrem em funcionamento. Ainda no h compartilhamentos, mas esta configurao suficiente para que o Samba fique disponvel atravs dos Meus locais de rede na s estaes Windows (Figura 33):

Figura 33 Visualizando o servidor nos Meus locais de rede da estao. FONTE: Arquivo do autor.

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server - 55

4.3.2 Criao dos compartilhamentos


A criao dos compartilhamentos feita por meio de sees com o nome do compartilhamento que se deseja criar configuradas logo aps a seo [global] do smb.conf. Neste servidor, sero criadas sees de compartilhamento para o diretrio de cada usurio cadastrado no sistema e no Samba (no caso, os usurios tiago, neil, geddy, e alex), alm de compartilhamentos para acesso geral e restrito, chamados respectivamente de publico e arquivos. Os diretrios para estes dois compartilhamentos so cria dos usando o comando sudo mkdir /home/publico /home/arquivos (Figura 34).

Figura 34 Criao dos diretrios publico e arquivos. FONTE: Arquivo do autor. Antes de definir as sees de compartilhamento no smb.conf, possvel criar um diretrio vazio dentro do /home de cada usurio e us- lo como diretrio de compartilhamento. Esta prtica evita que, ao compartilhar o diretrio /home inteiro do usurio, os arquivos e diretrios de configurao de programas fiquem expostos ao acessar o compartilhamento na rede, o que pode dificultar a organizao e visualizao dos arquivos realmente importantes daquele usurio. Sendo assim, aps acessar o diretrio /home, criaremos um diretrio chamado share dentro dos diretrios dos usurios tiago, neil, geddy, e alex, utilizando o comando sudo mkdir tiago/share neil/share geddy/share alex/share . Para que o diretrio share seja criado automaticamente caso outros usurios sejam cadastrados no sistema, basta adicion- lo ao diretrio modelo /etc/skel com o comando sudo mkdir /etc/skel/share. Aps a definio dos diretrios, as sees de compartilhamentos so configuradas no smb.conf, como mostrado na Figura 35:

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server - 56

Figura 35 Sees de compartilhamento no smb.conf. FONTE: Arquivo do autor. O Quadro 8 apresenta a descrio das linhas acrescentadas para a configurao das sees de compartilhamento no arquivo smb.conf: Quadro 8 Configurao das sees de compartilhamento no smb.conf. Linha [homes] Funo Usando homes como nome de seo, o Samba faz o compartilhamento de todos os usurios cadastrados no sistema de forma automtica. Caminho para o diretrio que ser compartilhado. Usurios vlidos. Configurado com a varivel %S, faz com que a pasta fique disponvel somente para o prprio usurio. Define que o compartilhamento possui permisso de escrita. As duas opes definem o padro para criao e remoo de arquivos e diretrios no compartilhamento, neste caso, restringindo estas tarefas a somente o prprio usurio. O compartilhamento no ser visvel por outros usurios. Nome do compartilhamento. Caminho para o diretrio que ser compartilhado. Usurios vlidos, podendo ser especificado uma lista de nomes de usurios e/ou um ou vrios nomes de grupos de usurios do sistema precedidos do sinal +. Neste caso, os grupos arquivos e publico podem acessar o compartilhamento [arquivos]. Define que o compartilhamento possui permisso de escrita.

path = /home/%u/share valid users = %S

writable = yes create mask = 0700 directory mask = 0700

browseable = no [arquivos] path = /home/arquivos/ valid users = +arquivos, +publico

writable = yes

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server - 57

read list = +publico

Opo que define que os usurios participantes do grupo publico podero somente ler o contedo do compartilhamento [arquivos]. Nome do compartilhamento. Caminho para o diretrio que ser compartilhado. Usurios vlidos. Neste caso, todos os usurios dos grupos publico e arquivos. Define que o compartilhamento possui permisso de escrita. Os usurios participantes do grupo arquivos podero somente ler o contedo do compartilhamento [publico].

[publico] path = /home/publico/ valid users = +publico, +arquivos writable = yes read list = +arquivos

Com as configuraes feitas, o Samba deve ser reiniciado (sudo /etc/init.d/samba restart) e em seguida j ser possvel visualizar os compartilhamentos nos Meus locais de rede das estaes Windows (Figura 36):

Figura 36 Visualizando os compartilhamentos nas estaes Windows. FONTE: Arquivo do autor.

4.4 Ajustes de permisses no sistema


A organizao dos privilgios de acesso aos compartilhamentos pode ser facilitada com o uso de grupos de usurios no sistema e com a definio de permisses para estes grupos. Utilizando este mtodo possvel fazer a administrao sobre quais usurios podero acessar os compartilhamentos definidos no Samba de uma fo rma prtica e centralizada.

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server - 58

4.4.1 Grupos de usurios


Para os usurios utilizados neste servidor sero criados dois grupos, chamados de arquivos e publico. Os usurios pertencentes ao grupo arquivos tero acesso livre para leitura e escrita ao compart ilhamento arquivos, e acesso para somente leitura no compartilhamento publico. J os usurios que pertencem ao grupo publico, tero acesso livre a somente este compartilhamento, no entanto, podero visualizar o contedo do compartilhamento arquivos. A criao dos grupos feita utilizando os comandos sudo groupadd arquivos e sudo groupadd publico. A incluso dos usurios feita utilizando o comando sudo adduser nomedousuario nomedogrupo. A Figura 37 mostra a incluso dos usurios tiago e neil ao grupo arquivos; e dos usurios geddy e alex ao grupo publico.

Figura 37 Incluso de usurios em grupos. FONTE: Arquivo do autor.

4.4.2 Permisses de acesso


Depois de cadastrar os usurios no sistema e no Samba, configurar os compartilhamentos no smb.conf e gerenciar os grupos de usurios, ainda h a necessidade de ajustar as permisses de acesso dos diretrios utilizados pelos usurios cadastrados, alm dos grupos arquivos e publico e de seus diretrios. Sem estes ajustes, os usurios podero acessar os compartilhamentos, mas as permisses definidas somente pelo Samba no sero suficientes para autorizar a escrita nos diretrios onde possuem acesso (Figura 38).

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server - 59

Figura 38 Gravao negada no compartilhamento. FONTE: Arquivo do autor.

Mesmo que nas configuraes do Samba exista a permisso de escrita nos compartilhamentos, se os diretrios foram criados como root (usando o comando sudo) ento o padro que apenas ele possa gravar arquivos no diretrio. (MORIMOTO, 2008, p. 267). A Figura 39 mostra como alterar a propriedade d os diretrios share dos us urios configurados no servidor utilizando o comando sudo cho wn - R, fazendo com que cada usurio seja dono de seu respectivo diretrio.

Figura 39 Alterao da propriedade dos diretrios share. FONTE: Arquivo do autor. Aps as alteraes, os usurios j podem gravar em seus prprios compartilhamentos (Figura 40).

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server - 60

Figura 40 Gravao autorizada no compartilhamento. FONTE: Arquivo do autor. Quanto aos compartilhamentos arquivos e publico, tambm necessrio permitir o acesso aos diretrios /home/arquivos e /home/publico a partir dos grupos arquivos e publico, respectivamente, utilizando para isso os comandos sudo chgrp - R, responsvel por trocar o grupo dono do diretrio e sudo chmod 775, que permite o acesso irrestrito do dono do diretrio e do grupo (Figura 41).

Figura 41 Ajustes de permisses para os grupos e seus diretrios. FONTE: Arquivo do autor. Depois dos ajustes, os usurios j podem acessar corretamente os compartilhamentos arquivos e publico, podendo ler e/ou escrever de acordo com suas permisses de acesso controladas pelo servidor Samba (Figura 42).

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server - 61

Figura 42 Acesso aos compartilhamentos arquivos e publico. FONTE: Arquivo do autor.

5. ACESSO REMOTO
A implementao de um servidor de rede sempre envolve tambm a tarefa de administr-lo, no s para alterar suas configuraes quando necessrio, mas tambm para atualizar seus programas e monitorar seu funcionamento. Tarefas como estas poderiam exigir a presena do Administrador frente da mquina, executando as aes necessrias localmente. No entanto, com a utilizao de algumas ferramentas e aplicativos, possvel acessar o servidor remotamente e executar estas mesmas tarefas a partir de qualquer outra mquina da rede local ou mesmo da Internet . Neste captulo sero demonstradas as tarefas de instalao de um servidor OpenSSH combinado com a utilizao do servio de DNS dinmico no-ip , tornando possvel o acesso remoto ao servidor de uma forma prtica e segura utilizando o software PuTTY, alm da utilizao do gerenciador Webmin, responsvel por permitir a administrao remota do servidor atravs de uma interface grfica acessvel pelo navegador de Internet de qualquer computador.

5.1 Servidor OpenSSH


O SSH um servio que possibilita o acesso remoto seguro ao servidor utilizando chaves de encriptao em toda a comunicao feita entre cliente/servidor (SILVA, 2007, p. 249). Segundo Morimoto (2008, p. 512), o SSH utiliza um conjunto de tcnicas de criptografia para assegurar que apenas as pessoas autorizadas tenham acesso ao servidor, que todos os dados transmitidos sejam impossveis de decifrar e que a integridade da conexo seja mantida. Para Bar ret e Silverman (2001, p. 130) o OpenSSH uma implementao livre do SSH.

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server - 63

5.1.1 Instalao e configurao no servidor


O OpenSSH dividido em dois mdulos, chamados de openssh- server (para o servidor) e openssh- client (para clientes Linux). Para clientes Windows utilizado um software compatvel com o SSH, como o caso do PuTTY (que ser abordado mais adiante). A instalao do OpenSSH no servidor segue o mesmo procedimento utilizado na instalao de outros pacotes de software no Ubuntu Server, utilizando o comando sudo aptget install openssh- server. Sua configurao feita editando o arquivo /etc/ssh/sshd_config (Figura 43).

Figura 43 Arquivo sshd_config original. FONTE: Arquivo do autor. O arquivo sshd_config possui diversas linhas com a configurao padro do SSH. Como feito anteriormente em relao aos outros servios instalados, possvel renomear o arquivo original sshd_config para sshd_config.old e criar um novo arquivo sshd_config usando o comando sudo nano /etc/ssh/sshd_config, escrevendo em seguida sua configurao de uma forma simplificada. Os parmetros que no forem especificados no arquivo sero carregados pelo servidor com suas opes padro.

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server - 64

A Figura 44 mostra a configurao adotada para o servidor desenvolvido neste trabalho.

Figura 44 Arquivo sshd_config configurado. FONTE: Arquivo do autor. O Quadro 9 apresenta a descrio das linhas configuradas no arquivo sshd_config: Quadro 9 Configurao do arquivo sshd_config. Linha Port 22 Protocol 2 PermitRootLogin no AllowUsers tiago Funo Porta padro utilizada pelo servidor SSH, j aberta no Firewall Iptables anteriormente. Verso do protocolo SSH, atualmente na verso 2. Opo que nega o acesso remoto ao servidor pelo usurio root do sistema. Opo que restringe o acesso a somente os usurios especificados. Neste caso, apenas ao usurio administrativo tiago. Opo que nega o acesso remoto aos usurios que no possuam senha. Quando ativada (yes), esta opo ativa o suporte a execuo remota de aplicativos grficos. Mdulo SFTP, responsvel pelo suporte a transferncia de arquivos.

PermitEmptyPasswords no X11Forwarding no Subsystem sftp /usr/lib/sftp-server

Com as configuraes feitas, o SSH deve ser reiniciado (sudo /etc/init.d/ssh restart) para que as alteraes entrem em funcionamento.

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server - 65

5.2 Administrao remota


Com o SSH em funcionamento, j possvel acessar o servidor a partir de qualquer outra mquina da rede local ou mesmo a partir da Internet . O acesso e a administrao remota apenas ficam condicionados ao usurio administrativo saber o endereo IP do servidor, o nome de usurio ( login) e a senha (password) autorizados para acessar o servidor via SSH. Para o acesso a partir de qualquer mquina dentro da rede local esta tarefa mais simples, j que a informao sobre o nmero IP privado do servidor normalmente j conhecida pelo usurio administrativo, ou facilmente descoberta consultando as propriedades da conexo de rede de qualquer estao conectada rede local. Mas para o acesso externo via Internet , onde se usa um endereo IP pblico e dinmico no caso deste servidor, existe a necessidade de se descobrir qual o endereo IP que o servidor estar utilizando em determinado momento. Ou, como alternativa mais prtica, utilizar um servio de DNS dinmico como o no- ip .

5.2.1 Usando o no-ip como DNS dinmico


Um servio de DNS dinmico (DDNS) atua por meio de um software responsvel por monitorar as informaes sobre o endereo IP que o servidor possui enquanto est conectado Internet , enviando estas informaes para um servidor externo do servio. Assim, a partir deste servio possvel utilizar um subdomnio ligado ao endereo IP atual do servidor. Mesmo que o servidor seja reiniciado ou a conexo mude de endereo IP, o software instalado no servidor continuar se comunicando com o servidor externo do servio DDNS e, conseqentemente, atualizando o subdomnio para o endereo IP corrente do servidor. Desta forma, para acessar o servidor remotamente bastar utilizar o endereo do subdomnio referente ao servio DDNS, alm das informaes de login e senha autorizados para acesso. Existem diversos servios DDNS gratuitos, como o caso do no- ip (http://www.noip.com/newUser.php), utilizado com o servidor desenvolvido neste trabalho a partir do cadastro do subdomnio konoha-server.no-ip.info (Figura 45).

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server - 66

Figura 45 Gerenciador de Hosts do servio DDNS no- ip. FONTE: Arquivo do autor. No servidor necessrio instalar e configurar o pacote no - ip utilizando o comando sudo apt-get install no- ip. Depois de instalado no sistema, o software carrega automaticamente um assistente de configurao que solicita os dados cadastrados no site do servio, alm do domnio registrado para o DDNS, sendo para este servidor o endereo konoha-server.no-ip.info (Figura 46).

Figura 46 Assistente de configurao do no- ip. FONTE: Arquivo do autor.

5.2.2 PuTTY
Para Silva (2007, p. 255) O PuTTY um cliente SSH Win32 que possui suporte aos protocolos verso 1 e 2 do SSH, aceita compactao alm de funcionar tambm como cliente telnet. O PuTTY possui muitas funes e tem uma utilizao bastante simples no

precisando sequer ser instalado. Ele pode ser obtido no site http://www.putty.org/.

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server - 67

Ao executar o programa a partir de qualquer mquina na rede, necessrio definir o endereo IP do servidor (ou o endereo no- ip criado anteriormente, no caso de acesso pela Internet ) no campo Host Name [or IP address] e a porta utilizada pelo SSH, por padro a porta 22 (Figura 47), j aberta anteriormente no firewall Iptables (Captulo 2). No campo Saved Sessions possvel tambm definir um nome para a sesso e salv- la, facilitando o acesso nas prximas vezes.

Figura 47 Configurao do PuTTY. FONTE: Arquivo do autor.

Ao abrir pela primeira vez uma sesso com o servidor, o PuTTY exibe uma janela de alerta informando que a chave pblica do servidor ainda no est armazenada na mquina, e pergunta se o usurio deseja adicionar esta chave ao cache do PuTTY para autorizar a conexo (Figura 48).

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server - 68

Figura 48 Alerta sobre a chave e autorizao de acesso ao servidor. FONTE: Arquivo do autor. Respondendo Sim o acesso liberado para esta e para outras vezes, e em seguida apresentada uma tela solicitando login e senha para acesso. Aps digitar os dados do usurio administrativo tiago, o terminal de comandos do servidor surge e o usurio j pode utiliz- lo remotamente (Figura 49).

Figura 49 Acesso remoto ao servidor via SSH pelo PuTTY. FONTE: Arquivo do autor.

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server - 69

5.2.3 Webmin
Para Cameron (2004, p. 1), Webmin um programa que simplifica o processo de administrao de sistema Linux ou Unix . O programa est disponvel no site http://www.webmin.com em verses para vrias distribuies Linux. No caso do Ubuntu, necessrio baixar o pacote em formato .deb , usando o comando wget -c http://prdownloads.sourceforge.net/webadmin/webmin_1.470_all.deb . Como mostrado na Figura 50, a instalao do pacote .deb do Webmim feita utilizando o comando sudo dpkg - i.

Figura 50 Tentativa de instalao do pacote .deb do Webmin. FONTE: Arquivo do autor.

No entanto, ao tentar fazer a instalao pela primeira vez surgem algumas mensagens de erro relacionadas a dependncias de instalao, ou seja, o sistema no possui alguns dos mdulos necessrios para instalao e execuo do Webmin. Este problema solucionado utilizando o comando sudo apt-get install - f (Figura 51).

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server - 70

Figura 51 Resoluo de dependncias e instalao usando o apt-get install - f. FONTE: Arquivo do autor.

O comando resolve as dependncias e em seguida instala automaticamente o pacote deb do Webmin. Logo depois o Webmin est p ronto para ser utilizado em um navegador usando o endereo https://konoha:10000 a partir de qualquer estao da rede. Para acesso externo via Internet , bastaria usar o endereo https://konoha-server.no-ip.info :10000. O nmero 10000 referente porta utilizada por padro para acesso ao Webmin. Esta porta j foi aberta anteriormente no firewall Iptables (Captulo 2). Ao acessar o Webmin pela primeira vez em um navegador como o Firefox , surge uma mensagem informando que o certificado de segurana utilizado pelo aplicativo invlido (Figura 52).

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server - 71

Figura 52 Primeiro acesso ao Webmin pelo Firefox. FONTE: Arquivo do autor.

No entanto, o certificado de segurana do Webmin do tipo self-signed (autoassinado), e podemos adicionar uma exceo ao navegador para que seu acesso seja autorizado. A Figura 53 mostra a janela que permite adicionar uma exceo de segurana no Firefox .

Figura 53 Adicionando uma exceo de segurana no Firefox. FONTE: Arquivo do autor.

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server - 72

Assim que a exceo criada, o acesso ao endereo do servidor e Webmin autorizado e a tela de login do sistema exibida (Figura 54).

Figura 54 Tela de login do Webmin. FONTE: Arquivo do autor.

Logo aps colocar o nome de usurio administrativo do sistema e a senha de acesso e clicar em Login , a tela inicial do Webmin exibida com informaes sobre as configuraes gerais do servidor, e do lado esquerdo os mdulos de acesso s suas funes (Figura 55).

Figura 55 Tela inicial do gerenciador Webmin. FONTE: Arquivo do autor.

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server - 73

A utilizao do Webmin para tarefas de gerenciamento do servidor bem simples. Todo o acesso aos diversos servios instalados na mquina feito pelos mdulos localizados do lado esquerdo da tela do sistema. Por exemplo, para utilizar o Sarg para gerar re latrios de acesso feitos a partir do log do Proxy Squid, necessrio clicar em Servers e em Squid Report Generator. Em seguida, no campo Generate report for date range, escolhemos All records in log file ou Those from , especificando nos campos seguintes um perodo de dias a ser verificado. Por fim, aps clicar no boto View Generated Report , o Webmin apresenta uma lista de relatrios do Sarg (Figura 56).

Figura 56 Webmin listando relatrios do Sarg. FONTE: Arquivo do autor.

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server - 74

CONCLUSO

Com a implementao de um servidor com as funes de Firewall, Proxy e File Server neste trabalho, foi possvel exercer na prtica as tarefas que muitos profissionais da rea de Redes de Computadores e Sistemas Operacionais, em especial Linux, desempenham no dia-a-dia, prestando servio em diversas organizaes ou mesmo como profissiona is autnomos no mercado. De fato, a utilizao do Linux como sistema base para um servidor dedicado para diversas funes bastante vantajosa, levando em considerao suas qualidades principalmente no que se refere segurana, versatilidade, estabilidade e desempenho. Talvez com a cada vez maior popularizao da distribuio Ubuntu, os olhares para sua verso Server tambm cresam e faam o sistema mais popular tambm entre os Administradores de Rede, tornando-se assim mais uma boa opo para a implementao como sistema operacional Linux de servidores.

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server - 75

REFERNCIAS BIBLIOGRFICAS
BARRET, D. J.; SILVERMAN, R. E. SSH, the Secure Shell - The Definitive Guide. Sebastopol: OReilly & Associates, 2001. CAMERON, J. Managing Linux Systems with Webmin. New Jersey: Pearson Education, Inc., 2004. MAZIOLI DA SILVA, G. Guia Foca GNU/Linux Captulo 10 - Firewall iptables. Disponvel em: <http://www.guiafoca.org/guia/avancado/ch- fw- iptables.html/>. Acesso em: 09 fev. 2009. MAZIOLI DA SILVA, G. Guia Foca GNU/Linux Captulo 18 - Samba. Disponvel em: <http://www.guiafoca.org/guia/avancado/ch-s-samba.html/>. Acesso em: 27 mar. 2009. MAZIOLI DA SILVA, G. Guia Foca GNU/Linux Captulo 15 Servidor ssh. Disponvel em: <http://focalinux.cipsga.org.br/guia/avancado/ch-s-ssh.htm/>. Acesso em: 29 mar. 2009. MORIMOTO, C. E. Redes Guia Prtico. Porto Alegre: Sul Editores, 2008. MORIMOTO, C. E. Servidores Linux Guia Prtico. Porto Alegre: Sul Editores, 2008. PAULA JNIOR, M. F. de. Ubuntu Guia Prtico para Iniciantes. Rio de Janeiro: Editora Cincia Moderna, 2007. PEARSON, O. Squid Users Guide. Disponvel em: <http://old.squid-cache.org/Doc/UsersGuide/detail/acl.html>. Acesso em: 23 mar. 2009. RICHMOND, G. Webmin: substituindo o terminal na administrao do sistema . Disponvel em: <http://www.guiadohardware.net/tutoriais/webmin/>. Acesso em: 30 mar. 2009. VON HAGEN, W. Ubuntu Linux Bible. Indianapolis: Wiley Publishing, Inc., 2007.

Implementao de Serv idor Linu x Ubuntu Server: Firewall, Pro xy e File Server - 76

BIBLIOGRAF IA
ARUMUGAM, B. Ubuntu Server Guide. Disponvel em: <https://help.ubuntu.com/6.10/ubuntu/serverguide/C/index.html/>. Acesso em: 02 fev. 2009. CARMONA, T. Treinamento Prtico em Linux . So Paulo: Digerati Books, 2005. KUROSE, J. F.; ROSS, K. W. Redes de Computadores e a Internet Uma abordagem topdown. So Paulo: Pearson / Addison-Wesley, 2007. PERKINS, C.; STREBE, M. Firewalls. So Paulo: Makron Books, 2002.

Você também pode gostar