<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pt-BR">
	<id>https://wiki.ourominas.com.br/index.php?action=history&amp;feed=atom&amp;title=Como_configurar_o_Firewall_Shorewall</id>
	<title>Como configurar o Firewall Shorewall - Histórico de revisão</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.ourominas.com.br/index.php?action=history&amp;feed=atom&amp;title=Como_configurar_o_Firewall_Shorewall"/>
	<link rel="alternate" type="text/html" href="https://wiki.ourominas.com.br/index.php?title=Como_configurar_o_Firewall_Shorewall&amp;action=history"/>
	<updated>2026-04-17T10:08:13Z</updated>
	<subtitle>Histórico de revisões para esta página neste wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://wiki.ourominas.com.br/index.php?title=Como_configurar_o_Firewall_Shorewall&amp;diff=142&amp;oldid=prev</id>
		<title>imported&gt;Admin: uma edição</title>
		<link rel="alternate" type="text/html" href="https://wiki.ourominas.com.br/index.php?title=Como_configurar_o_Firewall_Shorewall&amp;diff=142&amp;oldid=prev"/>
		<updated>2020-08-08T03:11:04Z</updated>

		<summary type="html">&lt;p&gt;uma edição&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;pt-BR&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Edição anterior&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Edição das 03h11min de 8 de agosto de 2020&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; class=&quot;diff-notice&quot; lang=&quot;pt-BR&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(Sem diferença)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff cache key omph_wiki-maquine_:diff:1.41:old-141:rev-142 --&gt;
&lt;/table&gt;</summary>
		<author><name>imported&gt;Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.ourominas.com.br/index.php?title=Como_configurar_o_Firewall_Shorewall&amp;diff=141&amp;oldid=prev</id>
		<title>2532252&gt;Jefferson em 16h40min de 22 de abril de 2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.ourominas.com.br/index.php?title=Como_configurar_o_Firewall_Shorewall&amp;diff=141&amp;oldid=prev"/>
		<updated>2015-04-22T16:40:55Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nova&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Material necessário ==&lt;br /&gt;
&lt;br /&gt;
* Computador com o Sistema Operacional Linux ligado à rede da Maquiné e com acesso &amp;#039;a Internet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Realizado por ==&lt;br /&gt;
&lt;br /&gt;
Todos da equipe do TI&lt;br /&gt;
&lt;br /&gt;
== Observação ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Assume-se que o leitor já tenha conhecimentos mínimos de protocolos de comunicação, redes de computadores e do firewall Iptables/Netfilter.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Descrição ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
O Shorewall é uma ferramenta “front-end” de configuração do Iptables. Usando-o é possível implementar um firewall ou gateway através de entradas em um conjunto de arquivos de configuração. O Shorewall lê estes arquivos e informa ao Iptables as regras a serem implementadas.&lt;br /&gt;
&lt;br /&gt;
A vantagem da utilização do Shorewall é uma estrutura mais legível dos arquivos e regras do firewall e um número reduzido de linhas para implementação do código desejado. O Shorewall não é nem de longe a ferramenta de configuração do Iptables mais amigável, mas oferece uma flexibilidade de configuração singular. Caso deseje uma ferramenta que não exija muitos conhecimentos técnicos , sugiro que utilize o Firestarter (www.fs-security.com).&lt;br /&gt;
&lt;br /&gt;
Vamos utilizar um ambiente simples, composto de uma rede local ligada à internet por intermédio de um gateway/firewall para ilustrar nosso exemplo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File: Shorewall.jpg|400px|center|link=]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Instalação ====&lt;br /&gt;
&lt;br /&gt;
No Debian, a instalação do Shorewall é realizada rapidamente com os comandos:&lt;br /&gt;
&lt;br /&gt;
#aptitude updade&lt;br /&gt;
#aptitude install shorewall  shorewall-doc&lt;br /&gt;
&lt;br /&gt;
Geralmente, na instalação do Shorewall, ele cria uma pasta em /etc/shorewall contendo o arquivo de configuração do sistema “shorewall.conf” e os arquivos “masq”, “policy”, “interfaces”, “rules” e “zones”. Esses arquivos contêm as respectivas configurações default e explicações das diversas funcionalidades que podem ser atribuídas ao sistema. No Debian a pasta /etc/shorewall contém apenas o arquivo shorewall.conf, os demais arquivos estão contidos na pasta /usr/share/doc/shorewall/default-config. Caso queria utilizá-los na configuração do seu firewall/gateway, basta copíá-los para a pasta principal do sistema /etc/shorewall.&lt;br /&gt;
&lt;br /&gt;
==== Configurando ====&lt;br /&gt;
&lt;br /&gt;
O Shorewall faz uso do conjunto desses arquivos para gerar as regras no Iptables. Precisamos portanto conhecer o que cada um desses arquivos faz para podermos configurá-los da melhor maneira:&lt;br /&gt;
&lt;br /&gt;
===== Zones =====&lt;br /&gt;
&lt;br /&gt;
O Shorewall entende as redes ligadas a ele como zonas e estas são configuradas no arquivo /etc/shorewall/zones. Imagine que você tem um firewall que atua como gateway entre sua rede local e a internet, neste caso você teria seu arquivo zones com duas entradas, algo parecido com:&lt;br /&gt;
&lt;br /&gt;
#ZONE		TYPE		OPTIONS&lt;br /&gt;
fw		firewall&lt;br /&gt;
net		ipv4&lt;br /&gt;
loc		ipv4&lt;br /&gt;
&lt;br /&gt;
Nas definições acima, temos uma zona para a internet (net) e outra zona para a rede local (loc) ambas do tipo ipv4 que é o padrão para os tipos de zonas no Shorewall, há também uma zona específica para o firewall (fw). Quando o arquivo zones é processado, o nome definido para a zona do firewall é armazenado numa variável shell de nome $FW, a qual é utilizada nas configurações do Shorewall para referenciar a zona do firewall. É possível definir o tipo das zonas como firewall, ipv4 e ipsec, este último dando suporte a criptografia. A coluna OPTIONS pode ser preenchida com parâmetros de criptografia para o tipo de zona ipsec. Para nosso exemplo a configuração exibida acima deve bastar.&lt;br /&gt;
&lt;br /&gt;
===== Interfaces =====&lt;br /&gt;
&lt;br /&gt;
O arquivo /etc/shorewall/interfaces relaciona as interfaces ou placas de rede às zonas ligadas a ela. Na nossa rede o arquivo interfaces teria a seguinte estrutura:&lt;br /&gt;
&lt;br /&gt;
#ZONE 		INTERFACE		BROADCAST		OPTIONS			&lt;br /&gt;
net		eth0			detect		                       dhcp&lt;br /&gt;
loc		eth1			detect&lt;br /&gt;
&lt;br /&gt;
A coluna zone contém a zona definida no arquivo /etc/shorewall/zones, a coluna interface deve ser preenchida com a respectiva placa de rede, na coluna broadcast pode-se colocar o endereço de broadcast de sua rede, caso prefira, complete com ‘detect’ para o Shorewall detectar automaticamente o endereço. No nosso caso, estou supondo uma ligação com a internet via modem ADSL, portanto na coluna options da zona net completei com dhcp, imaginando que o endereço IP será atribuído desta maneira a esta interface, caso possua um IP estático fornecido por um provedor de internet, deixe essa coluna em branco.&lt;br /&gt;
&lt;br /&gt;
===== Policy =====&lt;br /&gt;
&lt;br /&gt;
Este arquivo define as política padrões do Shorewall. Quando uma requisição de conexão é recebida pelo Shorewall, ele verifica se há regras no arquivo /etc/shorewall/rules que mencionam a conexão solicitada, caso não tenha, ele aplica a política configurada para a conexão no arquivo /etc/shorewall/policy. &lt;br /&gt;
&lt;br /&gt;
#SOURCE         	DEST           POLICY         LOG&lt;br /&gt;
loc            	                      net           	ACCEPT&lt;br /&gt;
net             	                      all           	DROP            info&lt;br /&gt;
all	                      all	REJECT	   info&lt;br /&gt;
&lt;br /&gt;
Na configuração acima, as políticas definem que:&lt;br /&gt;
&lt;br /&gt;
1) o tráfego da rede local com destino a internet é aceito;&lt;br /&gt;
&lt;br /&gt;
2) o tráfego da internet para qualquer outra zona é ignorado e devidamente documentado em log;&lt;br /&gt;
&lt;br /&gt;
3) qualquer tráfego que não se encaixe nas políticas acima é rejeitado e devidamente documentado em log;&lt;br /&gt;
&lt;br /&gt;
Vale lembrar a diferença entre ignorar (DROP) e rejeitar (REJECT) o tráfego. Quando o tráfego é “dropado”, a requisição é ignorada e o firewall não retorna mensagem ao requisitante dizendo que sua solicitação foi negada, o que evita uma série de ataques conhecidos na internet, enquanto quando a requisição é rejeitada, o firewall responde a solicitação de conexão com uma mensagem de acesso não permitido. Para os clientes de sua rede interna, o ideal é que o tráfego não autorizado seja rejeitado, pois caso este seja dropado, alguns programas que tentam fazer conexões a internet ficarão a espera de uma mensagem de erro por muito tempo, gerando muitos chamados ao suporte técnico. Esta configuração que vimos é a sugerida no arquivo de configuração default do Shorewall, pessoalmente, eu prefiro adotar uma política mais severa, a qual proíbe qualquer tráfego não listado no arquivo de regras /etc/shorewall/rules, neste caso o arquivo de configuração ficaria da seguinte maneira:&lt;br /&gt;
&lt;br /&gt;
#SOURCE			DEST			POLICY		LOG&lt;br /&gt;
all			all			DROP            info&lt;br /&gt;
&lt;br /&gt;
===== Rules =====&lt;br /&gt;
&lt;br /&gt;
O arquivo /etc/shorewall/rules é onde são definidas as regras que permitem ou proíbem acessos que passam pelo firewall. Basicamente, a sintaxe de uma regra é a segunte:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ACTION&amp;gt; &amp;lt;SOURCE&amp;gt; &amp;lt;DEST&amp;gt; &amp;lt;PROTOCOL&amp;gt; &amp;lt;DEST PORT&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde,&lt;br /&gt;
&lt;br /&gt;
ACTION: Define a ação que se deseja aplicar para a conexão. As ações mais utilizadas são Accept, permitindo a conexão, Drop, ignorando-a, Reject, negando a permissão e retornando um pacote icmp- unreachable e Log, simplesmente gerando um log dos pacotes e permitindo a conexão.&lt;br /&gt;
&lt;br /&gt;
SOURCE Origem do tráfego. Lembre-se que no Shorewall as regras são baseadas em zonas, por exemplo, caso tenha-se um tráfego oriundo da zona loc de um endereço IP 10.10.10.20 este deverá ser representado na coluna Source da seguinte forma: loc:10.10.10.20.&lt;br /&gt;
&lt;br /&gt;
DEST Destino do tráfego (também representado como &amp;lt;zona&amp;gt;:&amp;lt;end. IP&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
PROTOCOL Protocolo da conexão esperada.&lt;br /&gt;
&lt;br /&gt;
DEST PORT Porta de comunicação utilizada pelo serviço que será acessado.&lt;br /&gt;
&lt;br /&gt;
Agora que entendemos a estrutura do arquivo rules, vamos ver alguns exemplos de regras:&lt;br /&gt;
&lt;br /&gt;
#ACTION		SOURCE		DEST			PROTOCOL   DEST PORT&lt;br /&gt;
ACCEPT		loc		net			tcp		53&lt;br /&gt;
ACCEPT		loc		net			udp		53&lt;br /&gt;
ACCEPT 		net		$FW			tcp		22&lt;br /&gt;
&lt;br /&gt;
Observando as regras acima, entendemos que:&lt;br /&gt;
&lt;br /&gt;
1) Libera tráfego oriundo da rede interna com destino a internet na porta TCP 53 (DNS);&lt;br /&gt;
&lt;br /&gt;
2) Libera tráfego oriundo da rede interna com destino a internet na porta UDP 53 (DNS);&lt;br /&gt;
&lt;br /&gt;
3) Libera tráfego oriundo da internet com destino a rede interna na porta TCP 22 (SSH);&lt;br /&gt;
&lt;br /&gt;
O Shorewall cria durante sua instalação um conjunto de macros na pasta /etc/share/shorewall que facilita muito a vida do administrador de rede. Com estas macros é possível simplificar a definição das regras mais comuns. Como exemplo vamos ver a definição de uma regra liberando o acesso a servidores DNS na internet para a rede interna. Esta regra que em vias normais necessitaríamos de 2 linhas para implementar (como mostrado no exemplo acima), quando utilizamos a macro, conseguimos o mesmo resultado com apenas uma linha. &lt;br /&gt;
&lt;br /&gt;
#ACTION		SOURCE		DEST			PROTOCOL   DEST PORT&lt;br /&gt;
DNS/ACCEPT	loc		net&lt;br /&gt;
&lt;br /&gt;
O Shorewall conta com um grande acervo de macros na pasta mencionada, mas caso ache necessário, é possível desenvolver suas próprias macros, bastando salvá-las com o nome macro.&amp;lt;Protocolo&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===== Masq =====&lt;br /&gt;
&lt;br /&gt;
Os endereços reservados pela RFC 1918 são destinados a utilização em redes internas e não são roteados pelos backbones da internet. Para que os hosts de uma rede privada acessem serviços na internet e disponibilizem outros serviços para outras redes, é necessário realizar uma tradução do endereço de origem em um endereço válido na internet. Imagine que um computador da rede local de sua empresa, vamos chamá-lo de PC1 precise conectar-se a um site na internet. Como isso seria possível, já que o endereço atribuído ao PC1 é um endereço reservado para uso em redes privadas? Primeiro o PC1 envia a solicitação de conexão ao firewall, que é quem faz a ligação de sua rede com o resto do mundo, o firewall por sua vez reescreve o endereço de origem da requisição com seu endereço externo (IP da internet) e o envia ao host solicitado. Ao receber a resposta da conexão, o firewall faz o caminho inverso, transmitindo ao PC1 a conexão estabelecida. Isso é conhecido como NAT – Network Address Translation, também conhecido como IP Masquerading ou SNAT – Source Network Address Translation. Estas configurações são feitas no arquivo /etc/shorewall/masq.&lt;br /&gt;
&lt;br /&gt;
A princípio, nossa necessidade é traduzir os endereços da rede local para o endereço válido do firewall. A estrutura do arquivo ficaria assim:&lt;br /&gt;
&lt;br /&gt;
	eth0		eth1&lt;br /&gt;
&lt;br /&gt;
Quando eth0 refere-se a interface externa do firewall e eth1 a interface da rede interna.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Conclusão ====&lt;br /&gt;
&lt;br /&gt;
Com este exemplo de configuração do Shorewall vimos a implementação de um firewall para um ambiente extremamente simples. Certamente o ambiente de qualquer empresa será muito diferente deste, tão simplório. Como na maioria dos softwares, a melhor documentação é a do site oficial do produto, portanto, para quem deseja saber mais sobre o assunto: http://www.shorewall.net. Espero ter atingido meu objetivo de apresentar uma ferramenta que facilite a configuração de um firewall. Na empresa em que trabalho, a implementação do firewall usando o Shorewall nos custou cerca de 250 linhas, caso utilizássemos o Iptables, esta levaria cerca de 900 linhas de comandos.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Este post foi COPIADO do site: http://imasters.com.br/artigo/6967/seguranca/introducao-ao-shorewall/&lt;br /&gt;
 Autor: Peterson Raydan&lt;br /&gt;
 Formado em tecnologia em Processamento de Dados na Faculdade Fabrai. Já trabalhou na Raynet Automação Comercial, Conectcon – Consultoria em Informática, Lael Varella Educação e Cultura Ltda. – Faculdade Faminas, Mg-Master – Holding de Lojas Centauro Esportes, ByTennis, Almax e Almax Sports. Atualmente na PRODEMGE Companhia de Tecnologia da Informação do Estado de Minas Gerais.&lt;br /&gt;
&lt;br /&gt;
[[Category: NP_TI]]&lt;br /&gt;
[[Category: LINUX]]&lt;br /&gt;
[[Category: FIREWALL]]&lt;/div&gt;</summary>
		<author><name>2532252&gt;Jefferson</name></author>
	</entry>
</feed>