| Configurando a impressora PDF-Printer do servidor PDC
Quem já instalou a solução OpçãoLunux PDC deve ter percebido que no servidor há uma impressora chamada PDF-Printer. Essa impressora tem a finalidade de gerar arquivos PDF para as... Leia Mais |
| UltraSurf 9.6: Como bloquear
Vários usuários nos têm reportado que o script que criamos para combater o UltraSurf não tem sido eficiente no bloqueio da nova versão lançada no final do mês passado, o UltraSurf 9.6.... Leia Mais |
| Anteriores: |
(Anônimo)
| Entendendo e configurando o Firewall (Shorewall) |
| Aplicativos |
| Qua, 22 de Julho de 2009 00:50 |
|
Montar um firewall para a proteção de uma única máquina não é tarefa das mais simples, imagine montar um firewall para uma rede inteira, que requer muito mais atenção e conhecimento, tanto dos serviços quanto das ferramentas utilizadas. Qualquer descuido pode comprometer toda a segurança da rede e a reputação do seu administrador. No caso específico do Linux, trabalhar com o Iptables na linha de comando torna as coisas um pouco mais complicadas, principalmente para usuários novatos ou acostumados apenas com cliques na interface gráfica. A criação de regras mais elaboradas requer tantas opções e parâmetros, e em uma rede mais complexa teremos dezenas delas, que é fácil cometer erros. Não estamos questionando a eficácia dessa poderosa ferramenta, muito pelo contrário, mas o domínio de seus comandos para uma utilização eficiente e segura em situações mais avançadas exige bastante experiência por parte do usuário. Pensando nisso, Thomas M. Eastep teve a brilhante idéia de desenvolver uma ferramenta que funcionasse como uma camada entre o estressado e atarefado administrador de rede e o prolixo mas poderoso Iptables: o Shorewall, que é a ferramenta utilizada pelas soluções disponibilizadas neste site na configuração do firewall. A forma simples e intuitiva como são criadas as regras do Shorewall facilita bastante a criação e manutenção do firewall, deixando todo o trabalho sujo transparente para o usuário. Na inicialização do serviço, essas regras serão compiladas e convertidas em regras do Iptables, que, no final das contas, fará a função de firewall. Ou seja, o Shorewall foi feito com o objetivo de facilitar a criação e a manutenção de regras para o Iptables e a vida do administrador de rede. Uma benção para os seus usuários. Com o Shorewall podemos, inclusive, aprimorar nossos conhecimentos no Iptables, estudando as regas que serão criadas após a sua execução, recomendamos que todos façam isso. São tantas configurações avançadas que seria praticamente impossível para um "usuário mortal" configurá-las e administrá-las "na mão". Neste tutorial mostraremos como fazer a configuração das regras do firewall, mas antes de configurar as regras propriamente ditas, é necessário definir as zonas, que representarão as redes conectadas ao servidor, as interfaces que estarão vinculadas a cada zona, as políticas de acesso das zona e ativar o mascaramento, permitindo encaminhamento de pacotes entres as interfaces. Não se preocupe, todas essas configurações são feitas automaticamente na instalação de uma de nossas soluções, mas é importante o entendimento, mãos à obra. ZonasA zonas representam as redes que estarão conectadas ao servidor e o próprio servidor (firewall), por exemplo, a rede local será representada pela zona loc, a Internet será representada pela zona net, o servidor será representado pela zona fw. Caso pretenda adicionar uma DMZ ao servidor, devemos criar a zona dmz, o importante é representar cada rede com uma zona, mais adiante isso ficará mais claro pra você. Para verificar quais as zonas foram definidas no servidor após a instalação da solução, acesse opl > Firewall > Configurações Avançadas > Zonas. Caso queira saber mais sobre o arquivo de configuração das zonas digite man shorewall-zones no terminal. InterfacesCada zona criada anteriormente deverá ser associada a uma interface (placa de rede) do servidor (aquela em que a rede da zona estará conectada). Nas nossas soluções, a zona net estará associada à interface eht0, ou seja, o roteador ou modem ADSL deverá ser conectado à placa de rede eth0 do servidor, e a zona loc estará associada à interface eth1. Caso tivéssemos configurado a zona dmz, esta deveria ser associada a uma outra placa de rede, eth2 provavelmente. Repare que a zona fw não precisa ser associada a nenhuma interface, pois será o próprio servidor. Para verificar como as interfaces foram definidas no servidor após a instalação da solução, acesse opl > Firewall > Configurações Avançadas > Interfaces. Caso queira saber mais sobre o arquivo de configuração das interfaces digite man shorewall-interfaces no terminal. PolíticasAqui definiremos as políticas padrão de acesso entre as zonas, onde ACCEPT significa que o acesso entre as zonas será livre e REJECT e DROP o acesso será bloqueado, sendo que no primeiro haverá respostas ao solicitante e no segundo nada será informado. Para verificar como as políticas foram definidas no servidor após a instalação da soluão, acesse opl > Firewall > Configurações Avançadas > Políticas (policy). Observe que podemos usar a palavra chave all para representar todas as zonas e a palavra chave info para ativar o registro (log) das tentativas de violação da política. Caso queira saber mais sobre o arquivo de configuração das políticas digite man shorewall-policy no terminal. MascaramentoAgora iremos definir para quais interfaces será permitido o mascaramento ou encaminhamento de pacotes, graças a esta configuração será possível realizar NAT/DNAT através do servidor. Para verificar o mascaramento (masq) definido no servidor após a instalação da solução, acesse opl > Firewall > Configurações Avançadas > Mascaramento (Masq). Repare que a interface da zona net, no nosso caso a eth0, deverá sempre ser a primeira, seguida pela interface da zona que se quer ativar o mascaramento. Caso queira saber mais sobre o arquivo de configuração do mascaramento, digite man shorewall-masq no terminal. Configurando as regras do firewallTodas as configurações realizadas até aqui somente deverão ser feitas uma única vez, a não ser que haja alguma alteração na infra-estrutura da rede, como a adição de uma DMZ. Mas as alterações realizadas no arquivo de configuração das regras (opl > Firewall > Editar Regras do Firewall) serão freqüentes e necessárias sempre que se desejar a liberar algum acesso que não foi previsto pela solução, por isso daremos maior atenção a essa configuração. Após a instalação das soluções OpçãoLinux PDC e E-jovem Proxy, o firewall (Shorewall) estará pre-configurado para permitir o acesso a todos os serviços em execução no servidor, no entanto, devido a forma como foram configuradas as políticas de acesso no arquivo policy (DROPs e REJECTs), o tráfego entre as zonas estará bloqueado para os demais protocolos e portas, logo, qualquer liberação de acesso não prevista na configuração inicial deverá ser configurada nesse arquivo, por isso o perfeito entendimento da sua sintaxe é essencial para a configuração do firewall. Organização do arquivo de regrasAbra o arquivo, observe as regras pre-configuradas e procure entender como ele está organizado, repare que as regras foram dividias pelo tipo de acesso: loc para net, loc para fw etc. É muito importante procurar manter essa organização, embora não seja obrigatório, pois assim será mais fácil ter o controle sobre a configuração do firewall. Repare também que não será necessário criar regras do firewall para as demais zonas, uma vez que a zona fw teve sua política definida como ACCEPT para as demais zonas. O arquivo de regra será lido de forma seqüencial, assim as regras que estiverem mais acima terão precedência em relação às que estiverem mais embaixo. O Shorewall vem com várias regras (macros) pre-definidas e isso facilita bastante a configuração, pois não será necessário saber quais são os protocolos e portas de determinados serviços na definição das regras, basta usar a macro correspondente ao serviço, caso exista uma. Para saber quais são as macros disponibilizadas pelo Shorewall, basta acessar o diretório "/usr/share/shorewall" no servidor. Cada macro corresponde a um arquivo com o nome macro.SERVIÇO. Utilizamos muitas delas na configuração do firewall. Regas do firewallA melhor maneira de ensinar e aprender como configurar o firewall é com exemplos práticos, vamos mostrar isso agora, mas lembre-se que, para o perfeito entendimento dos exemplos que serão mostrados aqui, é necessário saber que protocolos e portas são utilizados pelos serviços que se quer configurar, e ensinar isso foge do objetivo deste tutorial. Vamos analisar uma das regras configuradas da rede local para o firewall (loc para fw). Observe que a primeira regra definida no arquivo de configuração é esta listada abaixo: DNS/ACCEPT loc fw Esta regra está permitindo o acesso ao serviço DNS que está em execução no firewall a todas as estações da rede local. Repare que não definimos o protocolo (tcp ou udp) nem a porta (53) usados pelo serviço, isso porque utilizamos uma macro fornecida pelo Shorewall, caso contrário a regra seria assim: ACCEPT loc fw tcp 53 ACCEPT loc fw udp 53 Repare que agora foi necessário definir duas regras, uma para o protocolo tcp e outra para o protocolo udp, mas com o uso da macro DNS bastou criar uma única regra. Macros são bastante úteis quando temos serviços que utilizam várias portas e protocolos como o Samba (SMB). Caso tenha a curiosidade em saber quais os protocolos e portas estão definidos em uma macro, visualize o arquivo correspondente à macro em "/usr/share/shorewall". Não será necessário criar regras para o tráfego de retorno (sentido inverso), como ocorreria se estivéssemos configurando o Iptables na mão, isso será feito automaticamente pelo Shorewall, moleza não? Agora você já tem como entender a maioria das regras pre-configuradas na solução que instalou no seu servidor, aproveite e dê uma nova vistoriada no arquivo de configuração. Mas vamos estender um pouco mais o nosso exemplo, suponhamos agora que você precise liberar acesso ao serviço SMTP na Internet a todas as máquinas da sua rede local, para isso devemos adicionar a regra abaixo: SMTP/ACCEPT loc net Sem o uso de macros teríamos: ACCEPT loc net tcp 25 E se quiséssemos limitar essa regra apenas para a estação da rede local com o endereço 192.168.0.100? Basta adicionar dois pontos e o endereço da estação após o nome da zona loc. SMTP/ACCEPT loc:192.168.0.100 net ou ACCEPT loc:192.168.0.100 net tcp 25 Para adicionar mais estações à regra, pode-se criar uma nova regra para cada estação ou inserir o endereço precedido de vírgula após o endereço existente (sem espaços): SMTP/ACCEPT loc:192.168.0.100,192.168.0.101 net ou ACCEPT loc:192.168.0.100,192.168.0.101 net tcp 25 E se quiséssemos agora restringir o acesso a apenas um host específico na Internet, pois da maneira como a regra foi definida acima, as estações locais terão aceso ao serviço SMTP de todas as máquinas da Internet? Nesse caso, adicione o endereço do host após no nome da zona net: SMTP/ACCEPT loc:192.168.0.100,192.168.0.101 net:200.200.200.200 E para dar acesso ao serviço SMTP do host 200.200.200.200 a todas as estações rede local, devemos definir a regra abaixo: SMTP/ACCEPT loc net:200.200.200.200 Fácil demais! quem já configurou o Iptables na mão sabe do que estou falando. Podemos também definir uma faixa de portas que serão abertas, veja como permitir o acesso às portas altas (1024 a 65535) do protocolo tcp para estação 192.168.0.100 na Internet: ACCEPT loc:192.168.0.100 net tcp 1024:65535 Até aqui definimos apenas regras da zona loc para a zona net, mas devem ser definidas também regras para as demais zonas se necessário, por exemplo, suponhamos que você tenha instalado o serviço Web no servidor e queira dar acesso tanto à rede local quanto à Internet, será necessário então criar duas regras no firewall: Web/ACCEPT loc fw e Web/ACCEPT net fw Crie regras apenas para os serviços que deseje permitir, se no exemplo acima o serviço Web fosse apenas para a rede local, não seria necessário, nem prudente, criar a segunda regra. Redirecionamento e Proxy TransparenteVamos falar agora sobre o redirecionamento que é utilizado pelo Proxy Transparente. Como dissemos em outras oportunidades aqui no site, nossas soluções trabalham com o Proxy Transparente, isso significa que os pacotes com destino à porta 80 (http) serão desviados automaticamente pelo firewall para o serviço proxy na porta 3128 (Squid), isso é feito através do comando mostrado abaixo: REDIRECT loc 3128 tcp http - - Dessa maneira, nenhum acesso a porta 80 (http) será feito diretamente pelas estações, tudo passará pelo proxy e será controlado pelas suas regras de acesso. No entanto, se precisarmos dar acesso direto à porta 80 a uma determinada estação, o que devemos fazer? Neste caso temos que fazer duas coisas, remover a estação do redirecionamento para o proxy (fique atento o ponto de exclamação que funciona como exclusão): REDIRECT loc:!192.168.0.100 3128 tcp http - - e liberar o trafego da estação para a porta 80: HTTP/ACCEPT loc:192.168.0.100 net Agora a estação 192.168.0.100 acessará diretamente a Internet através de NAT, sem ser desviada para o proxy, e não será mais controlada pelas regras de controle acesso do Squid, nem fará uso do cache, o que deixará o acesso a sites na Internet mais lento (pelo menos em teoria). Caso queira excluir alguns hosts da Internet do redirecionamento, fazendo com que o acesso a eles seja feito diretamente sem o uso do proxy, exclua seus endereços da regra REDIRECT: REDIRECT loc 3128 tcp http - !200.200.200.200,200.200.200.201 depois crie uma regra permitindo o acesso direto a eles: Web/ACCEPT loc net:200.200.200.200,200.200.200.201 Esta configuração é bastante útil para serviços como a Conectividade Social da Caixa Econômica Federal, que percisam ser acessados diretamente sem passar pelo proxy. Os endereços dos servidores da Conectiviade Social são: 200.201.166.0/24,200.201.173.0/24,200.201.174.0/24 (sim, você pode usar endereço de rede nas regras!), configure-os no seu firewall caso precise usar esse serviço na rede local da sua empresa (bem provável). O leitor mais atento deve ter percebido que nos referimos às macros Web e HTTP nos exemplos mostrados. É que no Shorewall a macro Web se refere às porta 80 e 443, já a macro HTTP se refere apenas à porta 80. Temos ainda a macro HTTPS que se refere à porta 443. Use aquela que atender as suas necessidades. Acesso às estações da rede localAgora falaremos sobre o trafego da zona net para a zona loc, que é um pouco diferente dos demais. Como não temos IPs válidos nas estações da rede local, será necessário fazer um redirecionamento das requisições ao IP válido do servidor para o endereço não válido da estação que se deseja acessar remotamente. A este tipo e conexão dar-se o nome de DNAT. Vejamos então um outro exemplo prático, vamos supor que o endereço do servidor seja 100.100.100.100 (um endereço válido) e queiramos que o host 200.200.200.200 da Internet acesse o serviço VNC (porta 5900) na estação 192.168.0.100 da rede local. Basta definir a regra abaixo no arquivo de configuração do firewall: DNAT:info net:200.200.200.200 loc:192.168.0.100:5900 tcp 5900 - 100.100.100.100 - - Agora, basta acessar o servidor (através do seu endereço IP) na porta 5900 que o tráfego será redirecionado para o serviço VNC, porta 5900, na estação. Parece complicada a regra, e realmente é um pouco, mas funciona perfeitamente bem. No entanto é necessário que o servidor tenha um endereço IP válido. Se não tiver, caso esteja utilizando um modem ADSL roteado (Velox), será necessário fazer uma configuração semelhante no modem. Assim, o tráfego será redirecionado do modem para o servidor que o redirecionará para a estação. Acredite! isso funciona.. Mas há um grande porém nisso tudo, você está abrindo uma vulnerabilidade de segurança na sua rede, pois está permitindo que estações na Internet acessem a sua rede local e isso não é nada bom. Caso realmente necessite dar acesso às estações da sua rede local através da Internet com segurança, experimente uma outra solução nossa, a connectVpn. Caso queira saber mais sobre o arquivo de configuração das regras do firewall digite man shorewall-rules no terminal. Ativando as alteraçõesSempre que fizer alguma altaração nas regras do firewall, será necessário ativar as alterações: opl > Firewall > Ativar Alterações. Ao fazer isso, surgirá na tela uma listagem semelhante a mostrada abaixo: Compiling... Compiling /etc/shorewall/zones... Compiling /etc/shorewall/interfaces... Determining Hosts in Zones... Preprocessing Action Files... Pre-processing /usr/share/shorewall/action.Drop... Pre-processing /usr/share/shorewall/action.Reject... Compiling /etc/shorewall/policy... Compiling Kernel Route Filtering... Compiling Martian Logging... Compiling /etc/shorewall/masq... Compiling MAC Filtration -- Phase 1... Compiling /etc/shorewall/rules... Generating Transitive Closure of Used-action List... Processing /usr/share/shorewall/action.Reject for chain Reject... Processing /usr/share/shorewall/action.Drop for chain Drop... Compiling MAC Filtration -- Phase 2... Applying Policies... Generating Rule Matrix... Creating iptables-restore input... Shorewall configuration compiled to /var/lib/shorewall/.start Processing /etc/shorewall/params ... Starting Shorewall.... Initializing... Processing /etc/shorewall/init ... Setting up ARP filtering... Setting up Route Filtering... Setting up Martian Logging... Setting up Accept Source Routing... IP Forwarding Enabled Setting up Proxy ARP... Setting up Traffic Control... Preparing iptables-restore input... Running /sbin/iptables-restore... Processing /etc/shorewall/start ... Processing /etc/shorewall/started ... done. Caso alguma coisa dê errado, devido a um erro de configuração por exemplo, não será mostrada a palavra “done” (feito em inglês) no final da listagem. Repare que podemos observar as duas etapas de inicialização do Shorewall: a compilação das configurações e a inicialização do firewall com a ativação das regras do Iptables. Visite o site do desenvolvedor, lá você encontrará várias informações e dicas sobre a configuração e utilização do Shorewall e saberá mais sobre o potencial dessa maravilhosa ferramenta. Acessos: 4884 Comentários
(2)
Gostei muito deste projeto estou implementando na empresa onde trabalho, gostaria de saber se tem como amarrar o ip do micro ao mac no firewall, para os usuarios não burlarem as regras do controle de banda.
|
Comentários:
Olá, boa solução estou tento problema com o telnet e controle de banda, se puder ajudar att
Que que que o QUÊÊÊ? Fala Tarcisio! Aqui é o Junior, Teu primo! Não sabia que vc tinha esse pn..
li o artigo e fiquei com a pulga atras da orelha. E se eu fosse fazer no servidor Debian que nao usa...
Estudante de que e conseqüências em que aspecto? Muito vaga a sua pergunta.