<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>Pfsense</title>
	<atom:link href="http://pfsense.tambis.org/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://pfsense.tambis.org</link>
	<description>Distribuição para Firewall - Software Livre</description>
	<pubDate>Mon, 06 Oct 2008 17:24:44 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>Principais Vantagens do pFsense</title>
		<link>http://pfsense.tambis.org/?p=8</link>
		<comments>http://pfsense.tambis.org/?p=8#comments</comments>
		<pubDate>Sat, 20 Sep 2008 15:05:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[pfsense]]></category>

		<category><![CDATA[recursos]]></category>

		<category><![CDATA[redes]]></category>

		<guid isPermaLink="false">http://pfsense.tambis.org/?p=8</guid>
		<description><![CDATA[1. Portabilidade
A console gráfica do pFsense (na qual vocë pode operar todos os serviços do servidor), pode ser acessada através dos principais navegadores de Internet, em qualquer sistema operacional.
É uma grande vantagem, pois não cria praticamente nenhuma restrição para as máquinas dos administradores de rede que irão operá-la.

2. Sistema Operacional Dedicado
O pFsense é um Sistema [...]]]></description>
			<content:encoded><![CDATA[<h2>1. Portabilidade</h2>
<p>A console gráfica do pFsense (na qual vocë pode operar todos os serviços do servidor), pode ser acessada através dos principais navegadores de Internet, em qualquer sistema operacional.</p>
<p>É uma grande vantagem, pois não cria praticamente nenhuma restrição para as máquinas dos administradores de rede que irão operá-la.</p>
<p><span id="more-8"></span></p>
<h2>2. Sistema Operacional Dedicado</h2>
<p>O pFsense é um Sistema Operacional (customização do FreeBSD), apenas com os pacotes essenciais para os serviços de Firewall, VPN&#8230; Por isso, consome menos recursos da CPU, além de possuir menos código.</p>
<p>Sabe-se, que quanto mais código (pacotes instalados), aumenta a quantidade de &#8220;bugs&#8221; no sistema e, dessa forma, possíveis vulnerabilidades de segurança.</p>
<h2>3. Completamente Gerenciável pela Interface Gráfica (GUI)</h2>
<p>Nem todos sentem familiariedade com o shell, VIM, etc. Por isso, a Interface Gráfica Web deixa mais amigável a tarefa de gerenciar (configurar) os serviços do pFsense.</p>
<h2>4. Identificação dos Sistemas Operacionais</h2>
<p>pfSense utiliza o p0f, uma avançada identificação de Sistema Operacional/network que permite filtrar no início da conexão. Quer que máquinas FreeBSD e Linux se conectem com a Internet, mas bloquear as Windows? pfSense pode fazê-lo (dentre outras possibilidadas) detectando passivamente o sistema operacional em uso.</p>
<h2>5. Gráficos para Gerenciamento</h2>
<p>O pfSense mantém informação em histórico das seguintes informações:</p>
<p>* Utilização da CPU<br />
* &#8220;Throughput&#8221; total.<br />
* Dados do Firewall<br />
* &#8220;Throughputs&#8221; individualizados para cada interface.<br />
* Razão de Pacotes por secundo em todas as interfaces<br />
* Tempos de acesso do Gateway da Interface WAN</p>
<h2>6. Cluster HA e HP</h2>
<p>Capacidade nativa de configuração em cluster, com funcionalidade de balanceamento de carga e redundância para minimizar impactos de uma possível falha.</p>
]]></content:encoded>
			<wfw:commentRss>http://pfsense.tambis.org/?feed=rss2&amp;p=8</wfw:commentRss>
		</item>
		<item>
		<title>Mandamentos da Configuração do Firewall</title>
		<link>http://pfsense.tambis.org/?p=7</link>
		<comments>http://pfsense.tambis.org/?p=7#comments</comments>
		<pubDate>Sat, 20 Sep 2008 03:13:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Sem categoria]]></category>

		<guid isPermaLink="false">http://pfsense.tambis.org/?p=7</guid>
		<description><![CDATA[1. Firewalls bloqueiam tudo que não esteja explicitamente liberado nas regras. (Portanto&#8230;)
2. Não adicione uma regra se você não sabe o que está fazendo.
3. Adicione apenas as regras estritamente necessárias.
4. Faça backup de suas regras e configuração antes de qualquer mudança.
5. Documente tudo, o tempo todo.
6. Insira descrição nas suas regras (facilite a sua vida [...]]]></description>
			<content:encoded><![CDATA[<h3><span style="color: #000000;"><span style="background-color: #ffffff;">1. Firewalls bloqueiam tudo que não esteja explicitamente liberado nas regras.</span> (Portanto&#8230;)</span></h3>
<h3>2. Não adicione uma regra se você não sabe o que está fazendo.</h3>
<h3>3. Adicione apenas as regras estritamente necessárias.</h3>
<h3><span style="color: #000000;"><span style="background-color: #ffffff;">4. Faça backup de suas regras e configuração antes de qualquer mudança.</span></span></h3>
<h3>5. Documente tudo, o tempo todo.</h3>
<h3>6. Insira descrição nas suas regras (facilite a sua vida e a de seu sucessor!)</h3>
<h3>7.<span style="color: #000000;"> As regras devem ser inseridas sempre na interface de origem do pacote.<br style="background-color: #ffffff;" /></span><span style="color: #000000;"><span style="background-color: #ff9900;"><br />
</span></span></h3>
]]></content:encoded>
			<wfw:commentRss>http://pfsense.tambis.org/?feed=rss2&amp;p=7</wfw:commentRss>
		</item>
		<item>
		<title>Instalando o Pfsense em Máquina Virtual</title>
		<link>http://pfsense.tambis.org/?p=6</link>
		<comments>http://pfsense.tambis.org/?p=6#comments</comments>
		<pubDate>Fri, 05 Sep 2008 19:09:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Sem categoria]]></category>

		<guid isPermaLink="false">http://pfsense.tambis.org/?p=6</guid>
		<description><![CDATA[Pegando os arquivos:
Olá, este artigo foi baseado no &#8220;Installing PfSense in a Vmware&#8221; do próprio site do desenvolvedor:
* http://www.pfsense.com/mirror.php?section=&#8230;vmware.html
Este artigo mostra como instalar o Pfsense, uma poderosa ferramenta de firewall baseada em FreeBSD com uma interface web amigável para criação de regras de firewall, proxy e inclusive Vlans no VMWare para que você possa testar [...]]]></description>
			<content:encoded><![CDATA[<h2>Pegando os arquivos:</h2>
<p>Olá, este artigo foi baseado no &#8220;Installing PfSense in a Vmware&#8221; do próprio site do desenvolvedor:</p>
<p>* http://www.pfsense.com/mirror.php?section=&#8230;vmware.html</p>
<p>Este artigo mostra como instalar o Pfsense, uma poderosa ferramenta de firewall baseada em FreeBSD com uma interface web amigável para criação de regras de firewall, proxy e inclusive Vlans no VMWare para que você possa testar a ferramenta.</p>
<p><span id="more-6"></span></p>
<p>Primeiro iremos precisar dos seguintes arquivos:</p>
<p>VMware Server 1.0.2<br />
http://www.vmware.com/download/server/</p>
<p>Pfsense:<br />
http://www.pfsense.com/mirror.php?section=downloads</p>
<p>Este artigo está utilizando a versão 1.0:</p>
<p>ftp://reflection.ncsa.uiuc.edu/&#8230;/pfSense-LiveCD-1.0-RELEASE-Installer.iso</p>
<p>Com todos os arquivos na mão e devidamente instalados, iremos começar a instalar!</p>
<h2>Criando a máquina virtual</h2>
<p>No VMware, vá em New &gt; Virtual Machine:<br />
<a href="http://www.vivaolinux.com.br/imagens/artigos/comunidade/6869_vm_1.JPG" target="_new"><img src="http://www.vivaolinux.com.br/imagens/artigos/comunidade/thumb_6869_vm_1.JPG" border="0" alt="" width="400" height="300" /></a></p>
<p>Escolha Custom:<br />
<a href="http://www.vivaolinux.com.br/imagens/artigos/comunidade/6869_vm_2.JPG" target="_new"><img src="http://www.vivaolinux.com.br/imagens/artigos/comunidade/thumb_6869_vm_2.JPG" border="0" alt="" width="400" height="300" /></a></p>
<p>Na próxima tela escolha &#8220;Other&#8221; e selecione a opção &#8220;FreeBSD&#8221;.</p>
<p>Em &#8220;Virtual Machine Name&#8221; defina o nome da sua máquina, neste exemplo iremos chamar de &#8220;PfSense&#8221;.<br />
<a href="http://www.vivaolinux.com.br/imagens/artigos/comunidade/6869_vm_3.JPG" target="_new"><img src="http://www.vivaolinux.com.br/imagens/artigos/comunidade/thumb_6869_vm_3.JPG" border="0" alt="" width="400" height="300" /></a></p>
<p>A próxima tela irá perguntar se você quer definir esta máquina como uma máquina privativa, isso acontece somente em versões do Windows XP (não sei se acontece no Windows 2000).</p>
<p>Vamos em frente! <img src='http://pfsense.tambis.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Agora iremos dizer ao VMware quem tem permissões para Start/Shutdown na máquina virtual, escolhi a &#8220;User that powers on the virtual machine&#8221;, que é o <a style="border-bottom: 1px dotted; color: #006600; text-decoration: underline;" onclick="hwClick2147290077183(-435402911);return false;" onmouseover="hw2147290077183(event, this, '-435402911'); this.style.cursor='hand'; this.style.textDecoration='underline'; this.style.borderBottom='solid';" onmouseout="hideMaybe(event, this); this.style.cursor='hand'; this.style.textDecoration='underline'; this.style.borderBottom='dotted 1px'; " href="http://www.vivaolinux.com.br/artigo/Instalando-o-PFSense-em-uma-maquina-virtual/?pagina=2#">usuário</a> logado na máquina no momento.</p>
<p>Você pode usar uma conta do sistema ou definir um usuário.<br />
<a href="http://www.vivaolinux.com.br/imagens/artigos/comunidade/6869_vm_4.JPG" target="_new"><img src="http://www.vivaolinux.com.br/imagens/artigos/comunidade/thumb_6869_vm_4.JPG" border="0" alt="" width="400" height="300" /></a></p>
<p>A próxima tela é sobre o processador, se você tem um ou dois (biprocessado), escolha a sua.</p>
<p>Agora ele pede para você definir a memória da máquina virtual, lembrando que, dependendo da memória da sua máquina, ambas podem ficar lentas, a minha tem 1gb, então dei 128mb pro pfsense (é só Shell mesmo :P).<br />
<a href="http://www.vivaolinux.com.br/imagens/artigos/comunidade/6869_vm_5.JPG" target="_new"><img src="http://www.vivaolinux.com.br/imagens/artigos/comunidade/thumb_6869_vm_5.JPG" border="0" alt="" width="400" height="300" /></a></p>
<p>Network Type. Iremos usar o modo Bridge mesmo (a primeira opção).<br />
<a href="http://www.vivaolinux.com.br/imagens/artigos/comunidade/6869_vm_6.JPG" target="_new"><img src="http://www.vivaolinux.com.br/imagens/artigos/comunidade/thumb_6869_vm_6.JPG" border="0" alt="" width="400" height="300" /></a></p>
<p>SCSI Adapter, escolheremos a opção  BUS LOGIC.</p>
<p>Agora ele pede se você deseja criar um disco, usar um disco existente ou usar o próprio disco físico. Iremos criar um novo disco, então selecione &#8220;Create a New Virtual Disk&#8221;<br />
<a href="http://www.vivaolinux.com.br/imagens/artigos/comunidade/6869_vm_7.JPG" target="_new"><img src="http://www.vivaolinux.com.br/imagens/artigos/comunidade/thumb_6869_vm_7.JPG" border="0" alt="" width="400" height="300" /></a></p>
<p>Virtual Disk Type, escolha IDE.<br />
Disk Size, defina o tamanho desse disco e clique em Next.<br />
Disk File, defina o nome do Disco, eu coloquei pfsense.vmdk.</p>
<p>Clique em &#8220;Concluir&#8221;, pronto, temos a máquina virtual criada, agora iremos configurar outras opções.</p>
<p>Com tudo criado iremos clicar em &#8220;Edit this Virtual Machine&#8221;. Em &#8221; <a style="border-bottom: 1px dotted; color: #006600; text-decoration: underline;" onclick="hwClick1128077309283(-435402911);return false;" onmouseover="hw1128077309283(event, this, '-435402911'); this.style.cursor='hand'; this.style.textDecoration='underline'; this.style.borderBottom='solid';" onmouseout="hideMaybe(event, this); this.style.cursor='hand'; this.style.textDecoration='underline'; this.style.borderBottom='dotted 1px'; " href="http://www.vivaolinux.com.br/artigo/Instalando-o-PFSense-em-uma-maquina-virtual/?pagina=2#">Hardware</a>&#8221; clique em &#8220;Add&#8221;.<br />
<a href="http://www.vivaolinux.com.br/imagens/artigos/comunidade/6869_vm_8.JPG" target="_new"><img src="http://www.vivaolinux.com.br/imagens/artigos/comunidade/thumb_6869_vm_8.JPG" border="0" alt="" width="400" height="300" /></a></p>
<p>Selecione &#8220;Ethernet Adapter&#8221;, clique em Next, selecione &#8220;Custom&#8221; e selecione VMNetX (onde X é o numero da placa).<br />
<a href="http://www.vivaolinux.com.br/imagens/artigos/comunidade/6869_vm_9.JPG" target="_new"><img src="http://www.vivaolinux.com.br/imagens/artigos/comunidade/thumb_6869_vm_9.JPG" border="0" alt="" width="400" height="300" /></a></p>
<p>Clique em &#8220;Concluir&#8221;.</p>
<p>Clique novamente em &#8220;Edit This Virtual Machine&#8221; selecione &#8220;CD-ROM&#8221; e vá em &#8220;Use ISO Image&#8221;<br />
<a href="http://www.vivaolinux.com.br/imagens/artigos/comunidade/6869_vm_10.JPG" target="_new"><img src="http://www.vivaolinux.com.br/imagens/artigos/comunidade/thumb_6869_vm_10.JPG" border="0" alt="" width="400" height="300" /></a></p>
<p>Selecione a imagem do PFSense <img src='http://pfsense.tambis.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Eeee. Dê Start!!!</p>
<h2>Instalando o PFSense</h2>
<p>Irá aparecer a tela de instalação do FreeBSD, opsss, PfSense :D, selecione a opção 1: &#8220;Boot FreeBSD [Default]&#8220;.</p>
<p>Depois de aparecer um monte de linhas irá cair na opção &#8220;Do you Want the Setup VLans Now&#8221;, diga &#8220;N&#8221; e atente que ali em cima aparecem as duas placas de rede.</p>
<p>Ele irá pedir agora quais são as interfaces de rede que você possui, na primeira coloque conforme apareceu na imagem passada e também na segunda opção, no meu caso le0 e le1. Dê enter (2x).</p>
<p>Ele agora irá confirmar os dados de quem é Lan e quem é WAN, se você está certo disso diga &#8220;Y&#8221; e dê enter.</p>
<p>Ok, ele irá cair na tela inicial, como vamos instalar, escolha a opção 99 &#8220;Install Pfsense&#8230;&#8221;</p>
<p>Configure Console<br />
Selecione &#8220;Accept these Settings&#8221;<br />
Select Task &#8220;Install Pfsense&#8221;<br />
Select a Disk</p>
<p>Ele irá mostrar o disco que o VMWare criou:</p>
<p>Format this Disk?</p>
<p>Sim, formate o disco! <img src='http://pfsense.tambis.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Na próxima tela não mude nada, apenas selecione &#8220;Use this Geometry&#8221;. Agora ele pede para você confirmar se deseja realmente formatar o disco, diga &#8220;Sim, Eu aceito&#8221;. hehehehe</p>
<p>Como é comum em  <a style="border-bottom: 1px dotted; color: #006600; text-decoration: underline;" onclick="hwClick9085296211965(-435402911);return false;" onmouseover="hw9085296211965(event, this, '-435402911'); this.style.cursor='hand'; this.style.textDecoration='underline'; this.style.borderBottom='solid';" onmouseout="hideMaybe(event, this); this.style.cursor='hand'; this.style.textDecoration='underline'; this.style.borderBottom='dotted 1px'; " href="http://www.vivaolinux.com.br/artigo/Instalando-o-PFSense-em-uma-maquina-virtual/?pagina=3#">sistemas</a> BSD, ele também terá que particionar o disco (SWAP), etc. Depois que você seleciona o disco ele irá te dizer que o disco não está particionado corretamente e se você deseja que ele particione para você, como uma boa ação você irá selecionar &#8220;Partition Disk&#8221;.</p>
<p>Ok, agora ele mostra que irá formatar o disco com sistema de  <a style="border-bottom: 1px dotted; color: #006600; text-decoration: underline;" onclick="hwClick1975928180965(-435402911);return false;" onmouseover="hw1975928180965(event, this, '-435402911'); this.style.cursor='hand'; this.style.textDecoration='underline'; this.style.borderBottom='solid';" onmouseout="hideMaybe(event, this); this.style.cursor='hand'; this.style.textDecoration='underline'; this.style.borderBottom='dotted 1px'; " href="http://www.vivaolinux.com.br/artigo/Instalando-o-PFSense-em-uma-maquina-virtual/?pagina=3#">arquivos</a> &#8220;FreeBSD&#8221;, ATENÇÃO, não confunda Sistema de arquivos com ponto de montagem ok?  Selecione &#8220;Accept e Create&#8221;.</p>
<p>Depois ele pede para você confirmar novamente, você confirma e dá Ok, no final ele mostrará o disco formatado.</p>
<p>Depois disso ele pede se você deseja instalar o BootBlock, diga &#8220;Sim, eu Aceito&#8221; = &#8220;Accept and Install BootBlocks&#8221;.</p>
<p>Ele pedirá as partições que você deseja instalar, como só temos uma vai nessa mesmo. <img src='http://pfsense.tambis.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /><br />
<a href="http://www.vivaolinux.com.br/imagens/artigos/comunidade/6869_install_11.JPG" target="_new"><img src="http://www.vivaolinux.com.br/imagens/artigos/comunidade/thumb_6869_install_11.JPG" border="0" alt="" width="400" height="300" /></a></p>
<p>Agora ele pergunta se &#8220;Você está  certo disso?&#8221;.</p>
<p>Pronto, nessa parte você pode definir os pontos de montagem, eu deixei default mesmo, mas você pode fazer como melhor achar.<br />
<a href="http://www.vivaolinux.com.br/imagens/artigos/comunidade/6869_install_12.JPG" target="_new"><img src="http://www.vivaolinux.com.br/imagens/artigos/comunidade/thumb_6869_install_12.JPG" border="0" alt="" width="400" height="300" /></a></p>
<p>Ele irá instalar o PFsense, no final ele pede para que você reboot, mas antes vá em VM &gt; Settings selecione CD-ROM e marque novamente &#8220;Use a Phisycal Drive&#8221;.<br />
<a href="http://www.vivaolinux.com.br/imagens/artigos/comunidade/6869_install_13.JPG" target="_new"><img src="http://www.vivaolinux.com.br/imagens/artigos/comunidade/thumb_6869_install_13.JPG" border="0" alt="" width="400" height="300" /></a></p>
<p>Ele iniciará normalmente o sistema,  agora iremos configurar as placas de rede.</p>
<p>Selecione a Opção &#8220;Shell&#8221;. E como no Linux faça:</p>
<p># ifconfig le0 &lt;IP&gt; netmask &lt;Máscara&gt;<br />
# ifconfig le1 &lt;IP&gt; netmask &lt;Máscara&gt;</p>
<p>Se tudo ocorrer certo, agora você vai no navegador da sua máquina e digita:</p>
<p>http://ip.do.pfsense</p>
<p>Abrirá a tela para autenticar, coloque:</p>
<p>User: admin<br />
Senha: pfsense</p>
<p>Altere depois que se logar e, pronto, divirta-se! <img src='http://pfsense.tambis.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Mais referências podem ser encontradas em:</p>
<ul>
<li> <a href="http://www.pfsense.com/">http://www.pfsense.com</a></li>
</ul>
<p>Desculpem se não fui muito claro, qualquer coisa podem escrever nos comentários ou mandar um e-mail: augusto@slackbr.org.</p>
<p>Abraços.</p>
<p>fonte: http://www.vivaolinux.com.br/artigo/Instalando-o-PFSense-em-uma-maquina-virtual/</p>
]]></content:encoded>
			<wfw:commentRss>http://pfsense.tambis.org/?feed=rss2&amp;p=6</wfw:commentRss>
		</item>
		<item>
		<title>Latinoware 2008</title>
		<link>http://pfsense.tambis.org/?p=5</link>
		<comments>http://pfsense.tambis.org/?p=5#comments</comments>
		<pubDate>Fri, 05 Sep 2008 14:12:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Sem categoria]]></category>

		<guid isPermaLink="false">http://pfsense.tambis.org/?p=5</guid>
		<description><![CDATA[Vai acontecer - o melhor evento de software livre da América Latina. Converse com a organização, faça sua caravana, dê seu pulos&#8230; (rs) - Só não deixe de ir.

]]></description>
			<content:encoded><![CDATA[<p>Vai acontecer - o melhor evento de software livre da América Latina. Converse com a organização, faça sua caravana, dê seu pulos&#8230; (rs) - Só não deixe de ir.</p>
<p><a href="http://2008.latinoware.org/"><img src="http://2008.latinoware.org/sites/default/files/anexos/image/banner_center2.jpg" alt="" width="460" height="100" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://pfsense.tambis.org/?feed=rss2&amp;p=5</wfw:commentRss>
		</item>
		<item>
		<title>Recursos do Pfsense</title>
		<link>http://pfsense.tambis.org/?p=4</link>
		<comments>http://pfsense.tambis.org/?p=4#comments</comments>
		<pubDate>Wed, 03 Sep 2008 21:51:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[pfsense]]></category>

		<category><![CDATA[recursos]]></category>

		<guid isPermaLink="false">http://pfsense.tambis.org/?p=4</guid>
		<description><![CDATA[O pfSense inclui a maioria dos recursos das caras ferramentas de firewall proprietárias, ou até mais. Segue a lista de recursos disponíveis na versão 1.2. Todos podem ser configurados através de interface gráfica, sem a necessidade de nenhuma intervanção em linha de comando.
Ainda, estão listadas as limitações da ferramenta, que são comuns, inclusive, a muitos [...]]]></description>
			<content:encoded><![CDATA[<p>O pfSense inclui a maioria dos recursos das caras ferramentas de firewall proprietárias, ou até mais. Segue a lista de recursos disponíveis na versão 1.2. Todos podem ser configurados através de interface gráfica, sem a necessidade de nenhuma intervanção em linha de comando.</p>
<p>Ainda, estão listadas as limitações da ferramenta, que são comuns, inclusive, a muitos softwares proprietários.<br />
<span id="more-4"></span></p>
<h2>Firewall</h2>
<p>* Filtro por IP de origem e destino, protocolo IP, porta de origem e destino, para tráfego TCP e UDP.Filtering by source<br />
* Habilidade de limitar conexões simultâneas.<br />
* pfSense utiliza o p0f, uma avançada identificação de Sistema Operacional/network que permite filtrar no início da conexão. Quer que máquinas FreeBSD e Linux se conectem com a Internet, mas bloquear as Windows? pfSense pode fazê-lo (dentre outras possibilidadas) detectando passivamente o sistema operacional em uso.<br />
* Option to log or not log traffic matching each rule.<br />
* Highly flexible policy routing possible by selecting gateway on a per-rule basis (for load balancing, failover, multiple WAN, etc.)<br />
* Aliases allow grouping and naming of IPs, networks and ports. This helps keep your firewall ruleset clean and easy to understand, especially in environments with multiple public IPs and numerous servers.<br />
* Transparent layer 2 firewalling capable - can bridge interfaces and filter traffic between them, even allowing for an IP-less firewall (though you probably want an IP for management purposes).<br />
* Packet normalization - Description from the pf scrub documentation - &#8220;&#8216;Scrubbing&#8217; is the normalization of packets so there are no ambiguities in interpretation by the ultimate destination of the packet. The scrub directive also reassembles fragmented packets, protecting some operating systems from some forms of attack, and drops TCP packets that have invalid flag combinations.&#8221;<br />
o Enabled in pfSense by default<br />
o Can disable if necessary. This option causes problems for some NFS implementations, but is safe and should be left enabled on most installations.<br />
* Disable filter - you can turn off the firewall filter entirely if you wish to turn pfSense into a pure router.</p>
<p>State Table</p>
<p>The firewall&#8217;s state table maintains information on your open network connections. pfSense is a stateful firewall, by default all rules are stateful.</p>
<p>Most firewalls lack the ability to finely control your state table. pfSense has numerous features allowing granular control of your state table, thanks to the abilities of OpenBSD&#8217;s pf.</p>
<p>* Adjustable state table size - there are multiple production pfSense installations using several hundred thousand states. The default state table size is 10,000, but it can be increased on the fly to your desired size. Each state takes approximately 1 KB of RAM, so keep in mind memory usage when sizing your state table. Do not set it arbitrarily high.<br />
* On a per-rule basis:<br />
o Limit simultaneous client connections<br />
o Limit states per host<br />
o Limit new connections per second<br />
o Define state timeout<br />
o Define state type<br />
* State types - pfSense offers multiple options for state handling.<br />
o Keep state - Works with all protocols. Default for all rules.<br />
o Modulate state - Works only with TCP. pfSense will generate strong Initial Sequence Numbers (ISNs) on behalf of the host.<br />
o Synproxy state - Proxies incoming TCP connections to help protect servers from spoofed TCP SYN floods. This option includes the functionality of keep state and modulate state combined.<br />
o None - Do not keep any state entries for this traffic. This is very rarely desirable, but is available because it can be useful under some limited circumstances.<br />
* State table optimization options - pf offers four options for state table optimization.<br />
o Normal - the default algorithm<br />
o High latency - Useful for high latency links, such as satellite connections. Expires idle connections later than normal.<br />
o Aggressive - Expires idle connections more quickly. More efficient use of hardware resources, but can drop legitimate connections.<br />
o Conservative - Tries to avoid dropping legitimate connections at the expense of increased memory usage and CPU utilization.</p>
<p>Network Address Translation (NAT)</p>
<p>* Port forwards including ranges and the use of multiple public IPs<br />
* 1:1 NAT for individual IPs or entire subnets.<br />
* Outbound NAT<br />
o Default settings NAT all outbound traffic to the WAN IP. In multiple WAN scenarios, the default settings NAT outbound traffic to the IP of the WAN interface being used.<br />
o Advanced Outbound NAT allows this default behavior to be disabled, and enables the creation of very flexible NAT (or no NAT) rules.<br />
* NAT Reflection - in some configurations, NAT reflection is possible so services can be accessed by public IP from internal networks.</p>
<p>NAT Limitations</p>
<p>* PPTP and GRE Limitation - The state tracking code in pf for the GRE protocol can only track a single session per public IP per external server. This means if you use PPTP VPN connections, only one internal machine can connect simultaneously to a PPTP server on the Internet. A thousand machines can connect simultaneously to a thousand different PPTP servers, but only one simultaneously to a single server. The only available work around is to use multiple public IPs on your firewall, one per client, or to use multiple public IPs on the external PPTP server. This is not a problem with other types of VPN connections. A solution for this is currently under development.<br />
* SIP Limitation - By default, all TCP and UDP traffic other than SIP and IPsec gets the source port rewritten. More information on this can be found in the static port documentation. Because this source port rewriting is how pf tracks which internal IP made the connection to the given external server, and most all SIP traffic uses the same source port, only one SIP device can connect simultaneously to a single server on the Internet. Unless your SIP devices can operate with source port rewriting (most can&#8217;t), you cannot use multiple phones with a single outside server without using a dedicated public IP per device. The sipproxd package now provides a solution for this problem in pfSense 1.2.1 and newer.<br />
* NAT Reflection limitations - NAT reflection can only be used with port ranges less than 500 ports and cannot be used with 1:1 NAT hosts.</p>
<p>Redundancy</p>
<p>CARP from OpenBSD allows for hardware failover. Two or more firewalls can be configured as a failover group. If one interface fails on the primary or the primary goes offline entirely, the secondary becomes active. pfSense also includes configuration synchronization capabilities, so you make your configuration changes on the primary and they automatically synchronize to the secondary firewall.</p>
<p>pfsync ensures the firewall&#8217;s state table is replicated to all failover configured firewalls. This means your existing connections will be maintained in the case of failure, which is important to prevent network disruptions.<br />
Limitations</p>
<p>* Only works with static public IPs, does not work with DHCP, PPPoE, PPTP, or BigPond type WANs (will be resolved in a future release)<br />
* Requires a minimum of three public IP addresses (will be resolved in a future release)<br />
* Backup firewalls are idle (active-passive failover), no active-active clustering is possible at this time.<br />
* Failover is not instantaneous, it takes about 5 seconds to switch a backup host to master. During this time no traffic will be passed, but existing states will maintain connectivity after failover is completed. This 5 second outage during a failure isn&#8217;t even noticeable in most environments.</p>
<p>Load Balancing<br />
Outbound Load Balancing</p>
<p>Outbound load balancing is used with multiple WAN connections to provide load balancing and failover capabilities. Traffic is directed to the desired gateway or load balancing pool on a per-firewall rule basis.<br />
Inbound Load Balancing</p>
<p>Inbound load balancing is used to distribute load between multiple servers. This is commonly used with web servers, mail servers, and others. Servers that fail to respond to ping requests or TCP port connections are removed from the pool.<br />
Limitations</p>
<p>* Equally distributes load between all available servers - unable to unequally distribute load between servers at this time.<br />
* Only checks if the server responds to pings or TCP port connections. Cannot check if the server is returning valid content.</p>
<p>VPN</p>
<p>pfSense offers three options for VPN connectivity, IPsec, OpenVPN, and PPTP.<br />
IPsec</p>
<p>IPsec allows connectivity with any device supporting standard IPsec. This is most commonly used for site to site connectivity to other pfSense installations, other open source firewalls (m0n0wall, etc.), and most all commercial firewall solutions (Cisco, Juniper, etc.). It can also be used for mobile client connectivity.<br />
Limitations</p>
<p>* NAT-T is not supported, which means mobile clients behind NAT are not supported. This limits pfSense&#8217;s usefulness with mobile IPsec clients. OpenVPN or PPTP is a better solution.<br />
* Only one end of an IPsec tunnel can have a dynamic IP address.<br />
* Some of the more advanced capabilities of ipsec-tools are not yet supported, including DPD, XAuth, NAT-T, and others.</p>
<p>OpenVPN</p>
<p>OpenVPN is a flexible, powerful SSL VPN solution supporting a wide range of client operating systems. See the OpenVPN website for details on its abilities.<br />
Limitations</p>
<p>* Not all of the capabilities of OpenVPN are supported yet. Support for virtually all of OpenVPN&#8217;s capabilities will be included in the next release.<br />
* Filtering of OpenVPN traffic is not yet possible. Support for this will be in the next release.</p>
<p>PPTP Server</p>
<p>PPTP is a popular VPN option because nearly every OS has a built in PPTP client, including every Windows release since Windows 95 OSR2. See this Wikipedia article for more information on the PPTP protocol.</p>
<p>The pfSense PPTP Server can use a local user database, or a RADIUS server for authentication. RADIUS accounting is also supported. Firewall rules on the PPTP interface control traffic initiated by PPTP clients.<br />
Limitations</p>
<p>* Because of limitations in pf NAT, when the PPTP Server is enabled, PPTP clients cannot use the same public IP for outbound PPTP connections. This means if you have only one public IP, and use the PPTP Server, PPTP clients inside your network will not work. The work around is to use a second public IP with Advanced Outbound NAT for your internal clients. See also the PPTP limitation under NAT on this page.</p>
<p>PPPoE Server</p>
<p>pfSense offers a PPPoE server. For more information on the PPPoE protocol, see this Wikipedia entry. A local user database can be used for authentication, and RADIUS authentication with optional accounting is also supported.<br />
Reporting and Monitoring<br />
RRD Graphs</p>
<p>The RRD graphs in pfSense maintain historical information on the following.</p>
<p>* CPU utilization<br />
* Total throughput<br />
* Firewall states<br />
* Individual throughput for all interfaces<br />
* Packets per second rates for all interfaces<br />
* WAN interface gateway(s) ping response times<br />
* Traffic shaper queues on systems with traffic shaping enable</p>
<p>Real Time Information</p>
<p>Historical information is important, but sometimes it&#8217;s more important to see real time information.</p>
<p>SVG graphs are available that show real time throughput for each interface.</p>
<p>For traffic shaper users, the Status -&gt; Queues screen provides a real time display of queue usage using AJAX updated gauges.</p>
<p>The front page includes AJAX gauges for display of real time CPU, memory, swap and disk usage, and state table size.<br />
Dynamic DNS</p>
<p>A Dynamic DNS client is included to allow you to register your public IP with a number of dynamic DNS service providers.</p>
<p>* DynDNS<br />
* DHS<br />
* DyNS<br />
* easyDNS<br />
* No-IP<br />
* ODS.org<br />
* ZoneEdit</p>
<p>A client is also available for RFC 2136 dynamic DNS updates, for use with DNS servers like BIND which support this means of updating.<br />
Limitations</p>
<p>* Only works on primary WAN interface - multi-WAN support not available at this time.<br />
* Can only update one account with a single provider.<br />
* Only works when pfSense has the public IP assigned to one of its interfaces. If you have a modem that obtains your public IP and gives pfSense a private IP, the private IP will be registered with the provider.</p>
<p>Captive Portal</p>
<p>Captive portal allows you to force authentication, or redirection to a click through page for network access. This is commonly used on hot spot networks, but is also widely used in corporate networks for an additional layer of security on wireless or Internet access. For more information on captive portal technology in general, see the Wikipedia article on the topic. The following is a list of features in the pfSense Captive Portal.</p>
<p>* Maximum concurrent connections - Limit the number of connections to the portal itself per client IP. This feature prevents a denial of service from client PCs sending network traffic repeatedly without authenticating or clicking through the splash page.<br />
* Idle timeout - Disconnect clients who are idle for more than the defined number of minutes.<br />
* Hard timeout - Force a disconnect of all clients after the defined number of minutes.<br />
* Logon pop up window - Option to pop up a window with a log off button.<br />
* URL Redirection - after authenticating or clicking through the captive portal, users can be forcefully redirected to the defined URL.<br />
* MAC filtering - by default, pfSense filters using MAC addresses. If you have a subnet behind a router on a captive portal enabled interface, every machine behind the router will be authorized after one user is authorized. MAC filtering can be disabled for these scenarios.<br />
* Authentication options - There are three authentication options available.<br />
o No authentication - This means the user just clicks through your portal page without entering credentials.<br />
o Local user manager - A local user database can be configured and used for authentication.<br />
o RADIUS authentication - This is the preferred authentication method for corporate environments and ISPs. It can be used to authenticate from Microsoft Active Directory and numerous other RADIUS servers.<br />
* RADIUS capabilities<br />
o Forced re-authentication<br />
o Able to send Accounting updates<br />
o RADIUS MAC authentication allows captive portal to authenticate to a RADIUS server using the client&#8217;s MAC address as the user name and password.<br />
o Allows configuration of redundant RADIUS servers.<br />
* HTTP or HTTPS - The portal page can be configured to use either HTTP or HTTPS.<br />
* Pass-through MAC and IP addresses - MAC and IP addresses can be white listed to bypass the portal. Any machines with NAT port forwards will need to be bypassed so the reply traffic does not hit the portal. You may wish to exclude some machines for other reasons.<br />
* File Manager - This allows you to upload images for use in your portal pages.</p>
<p>Limitations</p>
<p>* Can only run on one interface simultaneously.<br />
* &#8220;Reverse&#8221; portal, i.e. capturing traffic originating from the Internet and entering your network, is not possible.<br />
* Only entire IP and MAC addresses can be excluded from the portal, not individual protocols and ports.<br />
* Currently not compatible with multi-WAN rules (will be fixed in the next release)</p>
<p>DHCP Server and Relay</p>
<p>pfSense includes both DHCP Server and Relay functionality</p>
]]></content:encoded>
			<wfw:commentRss>http://pfsense.tambis.org/?feed=rss2&amp;p=4</wfw:commentRss>
		</item>
		<item>
		<title>FreeBSD com IPFW (conceitos de rede e firewall)</title>
		<link>http://pfsense.tambis.org/?p=3</link>
		<comments>http://pfsense.tambis.org/?p=3#comments</comments>
		<pubDate>Wed, 03 Sep 2008 21:39:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[FreeBSD]]></category>

		<category><![CDATA[conceitos]]></category>

		<category><![CDATA[iptables]]></category>

		<category><![CDATA[redes]]></category>

		<guid isPermaLink="false">http://pfsense.tambis.org/?p=3</guid>
		<description><![CDATA[Para entender e implementar o Pfsense, muito provavelmente você terá de começar a partir de um sistema baseado em IPtables. O artigo abaixo, fala do IPfirewall e traz conceitos valiosos para a implementação/migração de seu servidor:
&#8220;O IPFIREWALL é o filtro de pacotes nativo do FreeBSD, sendo também chamado de IPFW, que é a interface para [...]]]></description>
			<content:encoded><![CDATA[<p>Para entender e implementar o Pfsense, muito provavelmente você terá de começar a partir de um sistema baseado em IPtables. O artigo abaixo, fala do IPfirewall e traz conceitos valiosos para a implementação/migração de seu servidor:</p>
<p>&#8220;O IPFIREWALL é o filtro de pacotes nativo do FreeBSD, sendo também chamado de IPFW, que é a interface para controle do IPFIREWALL. O IPFIREWALL faz o monitoramento de cada pacote em cada conexão feita à máquina, determinando por meio das regras definidas pelo IPFW qual é o tratamento dado a estes pacotes. As regras são lidas de cima para baixo, e podem determinar se o pacote será liberado, bloqueado, encaminhado etc.<br />
<span id="more-3"></span></p>
<p>Atualmente podemos ativar o suporte a IPFW2. O IPFW2 é uma nova versão do IPFW, com maior flexibilidade no formato das regras e algumas funcionalidades a mais, entre elas: suporte a regras não específicas para TCP ou UDP com número de porta, suporte a blocos OR, keepalives para sessões stateful e filtragem por cabeçalho MAC.<br />
Ativando o IPFW2</p>
<p>Para habilitar o suporte ao ipfirewall e o ipfw2, devemos seguir alguns passos. Inicialmente, o próprio ipfw deverá ser recompilado, para suportar ipfw2. Execute os seguintes comandos:</p>
<p># cd /usr/src/sbin/ipfw<br />
# make clean<br />
# make -DIPFW2<br />
# make -DIPFW2 install</p>
<p>Para que quando formos atualizar o sistema e executar um &#8220;make buildworld&#8221; o make saiba deste detalhe no momento de compilar o ipfw, adicione a linha abaixo ao arquivo /etc/make.conf:</p>
<p>IPFW2=TRUE</p>
<p>Edite o arquivo de configuração do kernel e insira as seguintes linhas, descritas abaixo:</p>
<p>options IPFIREWALL<br />
options IPFW2<br />
options IPFIREWALL_VERBOSE<br />
options IPFIREWALL_VERBOSE_LIMIT=100<br />
options IPFIREWALL_FORWARD<br />
options IPDIVERT</p>
<p>Primeira linha: ativa o ipfirewall, carregando-o estaticamente no kernel.<br />
Segunda linha: ativa o ipfw2 propriamente dito.<br />
Terceira linha: ativa o suporte a log no ipfirewall. O log é feito via syslog.<br />
Quarta linha: define um limite para o log de cada regra. O padrão é 100, dessa forma cada regra terá até 100 ocorrências no log. Isto é feito para evitar o comprometimento do sistema em caso de ataques como negação de serviço.<br />
Quarta linha: ativa o suporte a encaminhamento de pacotes.<br />
Quinta linha: ativa o suporte a redirecionamento de porta através de socket &#8220;divert&#8221;.</p>
<p>Após todas estas configurações, compile e reinstale o kernel, e reinicie a máquina. Isto deverá ser feito no console, pois após reiniciar o firewall será carregado, e como não foi definida nenhuma regra irá bloquear tudo. Uma forma de contornar isso, caso não seja possível estar junto a máquina, é inserir as seguintes linhas no arquivo /etc/rc.conf:</p>
<p>firewall_enable=&#8221;YES&#8221;<br />
firewall_type=&#8221;OPEN&#8221;</p>
<p>Isto fará com que na inicialização seja carregada a configuração &#8220;OPEN&#8221; do arquivo /etc/rc.firewall. Esta configuração irá adicionar uma regra que libera todo o tráfego.</p>
<p>Após reiniciada a máquina, digite o seguinte comando:</p>
<p># ipfw list</p>
<p>Será mostrada a lista de regras ativas, que de acordo com a configuração OPEN do arquivo /etc/rc.firewall deverá ser a seguinte:</p>
<p>00100 allow ip from any to any via lo0<br />
00200 deny ip from any to 127.0.0.0/8<br />
00300 deny ip from 127.0.0.0/8 to any<br />
65000 allow ip from any to any<br />
65535 deny ip from any to any</p>
<p>Neste momento, todos os pacotes que entram e saem da máquina estão passando por estas regras, na ordem em que estão, definida pelo número da regra (que vai de 1 a 65535). A primeira regra que for atendida irá definir o que fazer com o pacote, e as demais são geralmente ignoradas (em alguns casos específicos o pacote é reinjetado).</p>
<p>Regra 100: permite que qualquer pacote IP trafegue na interface lo0 (localhost).<br />
Regra 200: bloqueia o tráfego de qualquer origem para a rede 127.0.0.0/8 (localhost).<br />
Regra 300: bloqueia o tráfego com origem na rede 127.0.0.0/8 para qualquer destino.<br />
Regra 65000: permite qualquer tráfego.<br />
Regra 65535: bloqueia qualquer tráfego.</p>
<p>Estas regras estão no formato do ipfw1, que também é suportado, para compatibilidade, pelo ipfw2. Lembre-se que todas estas regras foram definidas pelo rc.firewall, exceto a regra de número 65535 (máximo), que é o padrão do ipfirewall, bloquear tudo. Caso seja conveniente que o padrão do firewall seja liberar tudo, ou seja, a regra 65535 seria &#8220;allow all from any to any&#8221;, então deve ser adicionada a seguinte linha na configuração do kernel:</p>
<p>options IPFIREWALL_DEFAULT_TO_ACCEPT</p>
<p>Comando IPFW</p>
<p>O comando ipfw, de uma forma sucinta, possui os seguintes parâmetros:</p>
<p>ipfw [-q] add regra -&gt; Adiciona a regra (ver o formato abaixo). A opção &#8220;-q&#8221; indica que deverá ser uma operação &#8220;silenciosa&#8221;, não gerando saídas nem relatando as ações.</p>
<p>ipfw delete número_regra -&gt; Remove a regra com o número especificado.</p>
<p>ipfw list -&gt; Lista as regras ativas.</p>
<p>ipfw [-t -d] show -&gt; Lista as regras ativas, incluindo os contadores número de pacotes e número de bytes. O parâmetro -t inclui ainda a data/hora da última ocorrência. O parâmetro -d lista também as regras dinâmicas.</p>
<p>ipfw [-q] flush -&gt; Deleta todas as regras.</p>
<p>ipfw [-q] zero -&gt; Zera todos os contadores (número de pacotes, número de bytes, número de logs e timestamp).</p>
<p>ipfw [-q] resetlog -&gt; Zera o contador número de logs.</p>
<p>Formato das Regras</p>
<p>As regras que vimos anteriormente, como foi mencionado, estão no formato do ipfw1, que atualmente também é aceito pelo ipfw2. Pode-se usar este formato para escrever as regras, no entanto é bom se habituar com o novo formato. Quando forem acrescentadas regras no formato novo, o ipfw2 irá automaticamente inserir as palavras &#8220;ip from any to any&#8221;, que fazem parte do formato antigo, e não irão mudar em nada a regra, já que não impões nenhuma restrição, e quem vai ditar a especificação dos pacotes são as opções, explicadas adiante. Este esquema é feito para manter uma certa compatibilidade com o ipfw1.</p>
<p>A partir de agora, já podem ser definidas regras para controlar o Firewall. É muito importante se familiarizar com a sintaxe e forma de uso do ipfw, que será o único comando utilizado para controlar o ipfirewall. A formato das regras é o seguinte:</p>
<p>[número_regra] [prob probalilidade] ação [log [logamount número] ] corpo_regra</p>
<p>[número_regra]<br />
Varia de 1 a 65535 e indica a seqüência em que as regras serão processadas. A número 65535 é reservado para a ação padrão do firewall, que será bloquear ou permitir tudo, dependendo da configuração do kernel. Se não for inserido um número de regra ela será automaticamente a última antes da 65535. Se forem inseridas duas ou mais regras com o mesmo número, será obedecida a ordem em que foram inseridas.</p>
<p>[prob probabilidade]<br />
Define uma probabilidade para aplicar a regra. Varia de 0 a 1.</p>
<p>ação</p>
<p>allow<br />
Sinônimo de accept, pass e permit. Libera o tráfego do pacote e termina a leitura das regras.</p>
<p>check-state<br />
Checa o pacote contra um conjunto de regras dinâmico.</p>
<p>count<br />
Apenas atualiza o contador desta regra. As demais regras continuam a ser lidas.</p>
<p>deny<br />
Sinônimo de drop, descarta o pacote e termina a leitura das regras.</p>
<p>divert porta<br />
Redireciona o pacote para a porta especificada, utilizando um socket &#8220;divert&#8221;. Pode ser especificado número ou nome, veja /etc/services.</p>
<p>fwd ip[,porta]<br />
Sinônimo de forward, encaminha o pacote para o ip especificado. Se o ip for local será encaminhado para a porta especificada, se o ip não for local a porta será ignorada. O pacote não é alterado, e isto inclui o ip de destino, então se o pacote for encaminhado para outro host provavelmente será rejeitado. Caso seja encaminhado para um ip local, desta máquina, o socket que irá receber o pacote terá o seu endereço alterado para coincidir com o endereço de destino do pacote, aceitando desta forma o mesmo.</p>
<p>pipe número<br />
Passa o pacote através de um &#8220;pipe&#8221; dummynet, para controle de tráfego.</p>
<p>queue número<br />
Passa o pacote para uma &#8220;queue&#8221; dummynet, para controle de tráfego utilizando WF2Q+.</p>
<p>reset<br />
Descarta o pacote, e se o mesmo for TCP tenta enviar um TCP RST.</p>
<p>skipto número<br />
Pula para a regra de número especificado.</p>
<p>tee porta<br />
Aceita o pacote e envia uma cópia do mesmo para a porta especificada, via socket &#8220;divert&#8221;.</p>
<p>unreach código<br />
Descarta o pacote, e tenta enviar uma resposta &#8220;ICMP unreachable&#8221; com o código especificado. O código deve ser entre 0 e 255, ou alguma destas palavras chave: net, host, protocol, port, needfrag, srcfail, net-unknown, host-unknown, isolated, net-prohib, host-prohib, tosnet, toshost, filter-prohib, host-precedence ou precedence-cutoff.</p>
<p>[log [logamount número] ]<br />
Caso mencionada a palavra log, cada vez que um pacote coincidir com esta regra será feito um log, através do syslog. Caso seja inserido logamount número, este será o limite de vezes que será feito o log para esta regra. O valor 0 (zero) significa sem limites. Caso não seja inserido logamount, o padrão é o limite que foi configurado no kernel.</p>
<p>corpo_regra<br />
Contém uma ou mais exigências que o pacote precisa coincidir para a regra ser atendida. Essa especificação pode incluir endereço ip de origem, endereço ip de destino, porta de origem, porta de destino, protocolo, interface de rede de entrada, interface de rede de saída etc. O corpo da regra pode possuir uma ou mais opções. Essas opções podem ser precedidas de &#8220;not&#8221;, como negação, ou serem agrupadas em blocos OR, entre chaves, por exemplo: { dst-port 50 or dst-port 51 or not src-port 52 }.</p>
<p>A seguir as opções mais importantes:</p>
<p>// comentário<br />
Insere o texto como sendo um comentário na regra.</p>
<p>dst-ip endereço<br />
Endereço IP de destino do pacote.</p>
<p>dst-port porta<br />
Porta(s) de destino do pacote. Se for especificada mais de uma porta, separar por vírgula (50, 51, 52), ou em faixa de portas (50-60).</p>
<p>established<br />
Se o pacote tiver os bits RST ou ACK.</p>
<p>frag<br />
fragmentos de pacotes, não sendo o primeiro fragmento.</p>
<p>gid grupo<br />
Pacotes TCP ou UDP enviados ou recebidos pelo grupo. O grupo pode ser especificado pelo nome ou pelo GID.</p>
<p>icmptypes tipo<br />
Tipo(s) de pacotes ICMP. Se for mais de um, separar por vírgula. Os tipos podem ser: echo reply (0), destination unreachable (3), source quench (4), redirect (5), echo request (8), router advertisement (9), router solicitation (10), time-to-live exceeded (11), IP header bad (12), timestamp request (13), timestamp reply (14), information request (15), information reply (16), address mask request (17) e address mask reply (18).</p>
<p>in | out<br />
Pacotes de entrada ou de saída. Note que isto significa que os pacotes estão entrando ou saindo da máquina, então mesmo que um pacote venha da rede interna, estará entrando na máquina antes de sair.</p>
<p>keep-state<br />
Quando um pacote coincidir com uma regra que tiver esta opção, será criada uma regra dinâmica, cujo comportamento será coincidir o tráfego bidirecional entre este ip/porta de origem e ip/porta de destino, no mesmo protocolo. A regra dinâmica expira após um certo tempo. Dessa forma, pode-se definir uma regra &#8220;check-state&#8221; anterior a esta, liberando este fluxo de pacotes, e teremos um firewall &#8220;stateful&#8221;.</p>
<p>limit {ip-origem | porta-origem | ip-destino | porta-destino} número<br />
Serão permitidas apenas o número especificado de conexões com os parâmetros especificados.</p>
<p>mac mac-destino mac-origem<br />
Pacotes com o endereço MAC de destino e/ou de origem especificados. Se não for especificado algum deverá ser usada a palavra &#8220;any&#8221;, para coincidir com todos os endereços.</p>
<p>proto protocolo<br />
Pacotes com o protocolo (IP) especificado. Veja /etc/protocols.</p>
<p>recv interface | xmit interface | via interface<br />
Pacotes recebidos pela interface de rede especificada (recv xl0), pacotes transmitidos pela interface especificada (xmit fxp0), ou pacotes passando pela interface, independentemente de entrar ou sair (via xl0). Quando xmit for utilizado é requerida a opção &#8220;out&#8221;, já que o pacote estará saindo.</p>
<p>setup<br />
Pacotes com o bit SYN mas sem o bit ACK.</p>
<p>src-ip endereço<br />
Endereço IP de origem do pacote.</p>
<p>src-port porta<br />
Porta(s) de origem do pacote.</p>
<p>tcpflags flags<br />
Flags dos pacotes TCP, separadas por vírgula. As possíveis são: fin, syn, rst, psh, ack e urg. A negação pode ser feita por um &#8220;!&#8221;.</p>
<p>uid usuário<br />
Pacotes TCP ou UDP enviados ou recebidos pelo usuário. O usuário pode ser especificado pelo username ou pelo UID.</p>
<p>vrrevpath<br />
Pra pacotes de entrada, é feita uma consulta ao endereço de origem na tabela de roteamento. Se a interface na qual o pacote entrou é a mesma de saída especificada pela rota, então a regra coincide. Isto pode ser utilizado para criar regras anti-spoofing. Os pacotes de saída não são submetidos à verificação.</p>
<p>Firewall Stateful</p>
<p>O funcionamento stateful permite que o firewall crie regras dinâmicas para fluxos específicos de pacotes. Pode-se fazer algumas coisas interessantes, como por exemplo manter o firewall fechado, bloqueando todo tráfego de fora para dentro e permitindo apenas que pacotes da rede interna saiam para a rede externa, passando por uma regra &#8220;keep-state&#8221;. Assim, cada conexão feita de dentro para fora irá criar uma regra dinâmica, que irá liberar aquele tráfego nas duas direções, permitindo que os dados de resposta, por exemplo, uma página web que um usuário acessou, cheguem até a máquina do usuário, na rede interna.<br />
As regras dinâmicas possuem as seguintes informações: protocolo, endereço IP e porta de origem e endereço IP e porta de destino. Elas irão permitir o tráfego bidirecional, ou seja, mesmo que os endereços de origem e destino se invertam. Isto é uma das coisas que possibilita criar o que foi descrito acima. As regras dinâmicas possuem um tempo de vida limitado, que é determinado pelas variáveis net.inet.ip.fw.dyn*, do sysctl (maiores informações vide a man page do sysctl). Estas variáveis também determinam o número máximo de regras dinâmicas, entre outros.<br />
Uma regra dinâmica é criada cada vez que um pacote coincide com uma regra que possua as opções keep-state ou limit, não sem antes checar se a regra já existe. As regras dinâmicas são checadas na ocorrência da ação check-state.</p>
<p>Exemplo:</p>
<p># ipfw add 1000 check-state<br />
# ipfw add 1100 allow tcp from 10.10.0.0/16 to any setup keep-state<br />
# ipfw add 1200 deny tcp from any to any</p>
<p>Este conjunto de regras irá, para cada pacote:<br />
1. Checar se existe alguma regra dinâmica que permita o tráfego do mesmo;<br />
2. Caso o pacote seja da rede 10.10.0.0/16 e tiver o bit SYN, mas não o bit ACK (indicando desta forma um início de conexão), irá permitir o tráfego e criar uma regra dinâmica;<br />
3. Bloquear qualquer outro tráfego.</p>
<p>Log</p>
<p>Para direcionar os logs do ipfw para o arquivo /var/log/ipfw/ipfw.log, primeiramente crie este diretório e este arquivo:</p>
<p># mkdir /var/log/ipfw<br />
# touch /var/log/ipfw/ipfw.log<br />
# chmod -R 600 /var/log/ipfw</p>
<p>Então adicione as seguintes linhas ao arquivo /var/log/syslog.conf:</p>
<p>!ipfw<br />
*.*                /var/log/ipfw/ipfw.log</p>
<p>Após isso, reinicie o syslog, através do comando &#8220;killall -HUP syslog&#8221;. Talvez seja interessante também criar um script que faça a rotação deste log e agendar no Cron, ou adicionar uma entrada no newsyslog.conf, para que o arquivo não fique demasiado grande.</p>
<p>Arquivo de Regras</p>
<p>Não é recomendado editar o arquivo /etc/rc.firewall, que vem com o sistema. O seu conjunto de regras deverá ficar em um arquivo separado, exclusivo para isso. Este arquivo poderá ser um script shell ou poderá ser apenas uma listagem de regras, que o ipfw irá interpretar. O tipo de arquivo é uma escolha pessoal, e não fará diferença no funcionamento do firewall.</p>
<p>Arquivo com listagem de regras</p>
<p>Deverá ser criado um arquivo, por exemplo /etc/firewall, com dono root e permissão 600. Neste arquivo serão colocadas as regras, que são iguais às passadas via linha de comando ao ipfw, mas sem o comando &#8220;ipfw&#8221; no começo. Exemplo:</p>
<p>add 1000 allow src-ip 10.10.0.0/16 dst-ip 192.168.0.0/16</p>
<p>Para efetuar a inicialização destas regras no momento da inicialização, adicione ou modifique as seguintes linhas no /etc/rc.conf:</p>
<p>firewall_enable=&#8221;YES&#8221;<br />
firewall_type=&#8221;/etc/firewall&#8221;<br />
firewall_quiet=&#8221;YES&#8221;</p>
<p>A opção firewall_quiet faz com que seja executado o comando &#8220;ipfw -q&#8221; ao invés de simplesmente &#8220;ipfw&#8221;, ao ler cada regra do arquivo. Dessa forma ocorrerá uma operação &#8220;silenciosa&#8221;, não gerando saídas na tela. Para interpretar um arquivo deste tipo via linha de comando, simplesmente execute &#8220;ipfw /etc/firewall&#8221;.</p>
<p>Script de regras</p>
<p>No caso de criamos um script shell com as regras, também deverá ser criado um arquivo exclusivo para isso, como por exemplo /etc/firewall.sh, com dono root e permissão 700. O conteúdo deste arquivo pode ser como você quiser, pois trata-se de um script comum. Quando for passar as regras, o comando ipfw deve ser exatamente como se fosse via linha de comando. É recomendado usar a opção &#8220;-q&#8221;, do comando ipfw, em scripts.<br />
Para que o script seja executado na inicialização do sistema, edite o arquivo /etc/rc.conf, remova as linhas (caso existirem) firewall_type e firewall_quiet, mantenha a linha</p>
<p>firewall_enable=&#8221;YES&#8221;</p>
<p>e adicione a seguinte linha:</p>
<p>firewall_script=&#8221;/etc/firewall.sh&#8221;</p>
<p>Deste ponto em diante, cabe a você decidir como deverá ser o comportamento do seu firewall, tendo em vista a que ele se destina. Sugiro a leitura do livro &#8220;Building Internet Firewalls&#8221;, de D. Brent Chapman e Elizabeth D. Zwicky, da editora O&#8217;Reilly. Seguem abaixo algumas regras e um script simples, a título de exemplo.</p>
<p>Exemplos de Regras</p>
<p>(não esquecer do comando &#8220;ipfw&#8221; antes delas):</p>
<p>add 100 allow via lo0<br />
add 200 deny { dst-ip 127.0.0.0/8 or src-ip 127.0.0.0/8 }</p>
<p>Observe os espaços após a &#8220;{&#8221; e antes da &#8220;}&#8221;. Se não houver este espaço será retornado o seguinte erro:</p>
<p>ipfw in free(): warning: modified (chunk-) pointer</p>
<p>Estas duas regras acima terão o mesmo efeito que as regras abaixo, no formato antigo, descritas anteriormente:</p>
<p>add 100 pass all from any to any via lo0<br />
add 200 deny all from any to 127.0.0.0/8<br />
add 300 deny ip from 127.0.0.0/8 to any</p>
<p>add 1000 allow src-ip 10.10.0.0/16 dst-port 80<br />
add 1100 allow dst-ip 10.10.0.0/16 dst-port 1024-65535</p>
<p>Irá permitir que máquinas da rede 10.10.0.0/16 enviem pacotes com destino a porta 80 e irá permitir que pacotes cheguem até a rede 10.10.0.0/16 com destino a portas entre 1024 e 65535, permitindo por exemplo a resposta de um pedido HTTP.</p>
<p>add 1000 allow proto tcp dst-port ssh recv xl0<br />
add 1100 deny proto tcp dst-port ssh out</p>
<p>Irá permitir que a máquina receba conexões TCP pela interface de rede xl0, à porta do ssh, que é a porta 22, conforme definido no arquivo /etc/services. Também irá negar a saída de qualquer pacote com protocolo TCP e com destino a porta do ssh.</p>
<p>add 1000 check-state<br />
add 1100 allow src-ip 10.10.0.0/16 keep-state<br />
add 1200 deny log ip from any to any</p>
<p>Irá permitir que a rede 10.10.0.0/16 estabeleça qualquer conexão, cujo tráfego de resposta será liberado pelas regras dinâmicas que serão criadas pela regra 1100 e que serão checadas pela regra 1000. Qualquer outro tráfego será bloqueado e logado no arquivo de log.</p>
<p>add 50 deny not vrrevpath in</p>
<p>Irá bloquear ip-spoofing, conforme explicado anteriormente.</p>
<p>add 500 deny log { src-ip 10.0.0.0/8 or dst-ip 10.0.0.0/8 } via xl0<br />
add 510 deny log { src-ip 172.16.0.0/12 or dst-ip 172.16.0.0/12 } via xl0<br />
add 520 deny log { src-ip 192.168.0.0/16 or dst-ip 192.168.0.0/16 } via xl0</p>
<p>Irá proibir o tráfego de pacotes de redes privadas, conforme definido na RFC1918, na interface de rede xl0. Também irá fazer log quando a regra coincidir com algum pacote.</p>
<p>add 100 prob 0.05 deny in</p>
<p>Irá bloquear 5% dos pacotes de entrada, como se houvesse perda de pacotes.</p>
<p>Exemplo de Script</p>
<p>#!/bin/sh</p>
<p>ipfw=&#8221;/sbin/ipfw -q&#8221;</p>
<p># IP local<br />
ip=&#8221;10.10.0.5&#8243;</p>
<p># Portas de entrada permitidas<br />
portas=&#8221;22,53,80&#8243;</p>
<p>$ipfw flush<br />
$ipfw add 100 deny log not verrevpath in<br />
$ipfw add 1000 check-state<br />
$ipfw add 1100 allow src-ip $ip keep-state<br />
$ipfw add 1200 allow dst-port $portas in<br />
$ipfw add 65000 deny ip from any to any&#8221;</p>
<p>Fonte: http://clebeer.multiply.com/journal/item/11/FreeBSD_com_IPFW</p>
]]></content:encoded>
			<wfw:commentRss>http://pfsense.tambis.org/?feed=rss2&amp;p=3</wfw:commentRss>
		</item>
	</channel>
</rss>
