<?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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>FIX T.I</title>
	<atom:link href="http://www.fix.inf.br/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.fix.inf.br</link>
	<description>Informações, dicas e comentários sobre T.I</description>
	<lastBuildDate>Tue, 06 Dec 2011 11:51:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>http://t.co/LtQz5e7W Swiss dec&#8230;</title>
		<link>http://www.fix.inf.br/httpt-coltqz5e7w-swiss-dec/</link>
		<comments>http://www.fix.inf.br/httpt-coltqz5e7w-swiss-dec/#comments</comments>
		<pubDate>Tue, 06 Dec 2011 11:51:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Menu superior]]></category>
		<category><![CDATA[tweets]]></category>

		<guid isPermaLink="false">http://www.fix.inf.br/httpt-coltqz5e7w-swiss-dec/</guid>
		<description><![CDATA[http://t.co/LtQz5e7W Swiss declares legal downloads for personal use. Go Swiss, Go!]]></description>
			<content:encoded><![CDATA[<p><a href="http://t.co/LtQz5e7W" rel="nofollow">http://t.co/LtQz5e7W</a> Swiss declares legal downloads for personal use. Go Swiss, Go!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fix.inf.br/httpt-coltqz5e7w-swiss-dec/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>http://t.co/LYIARJCT #descobri&#8230;</title>
		<link>http://www.fix.inf.br/httpt-colyiarjct-descobri/</link>
		<comments>http://www.fix.inf.br/httpt-colyiarjct-descobri/#comments</comments>
		<pubDate>Thu, 01 Dec 2011 19:39:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Menu superior]]></category>
		<category><![CDATA[tweets]]></category>

		<guid isPermaLink="false">http://www.fix.inf.br/httpt-colyiarjct-descobri/</guid>
		<description><![CDATA[http://t.co/LYIARJCT #descobridoresavell promoção @Avell_Notebooks @NotebookCentury]]></description>
			<content:encoded><![CDATA[<p><a href="http://t.co/LYIARJCT" rel="nofollow">http://t.co/LYIARJCT</a> #<a href="http://search.twitter.com/search?q=%23descobridoresavell" class="aktt_hashtag">descobridoresavell</a> promoção @<a href="http://twitter.com/Avell_Notebooks" class="aktt_username">Avell_Notebooks</a> @NotebookCentury</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fix.inf.br/httpt-colyiarjct-descobri/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Beta testing Star Wars Old Rep&#8230;</title>
		<link>http://www.fix.inf.br/beta-testing-star-wars-old-rep/</link>
		<comments>http://www.fix.inf.br/beta-testing-star-wars-old-rep/#comments</comments>
		<pubDate>Mon, 28 Nov 2011 02:24:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Menu superior]]></category>
		<category><![CDATA[tweets]]></category>

		<guid isPermaLink="false">http://www.fix.inf.br/beta-testing-star-wars-old-rep/</guid>
		<description><![CDATA[Beta testing Star Wars Old Republic. Looks like it´s going to be a big hit. Nicely done so far. Best story driven MMO i have ever played.]]></description>
			<content:encoded><![CDATA[<p>Beta testing Star Wars Old Republic. Looks like it´s going to be a big hit. Nicely done so far. Best story driven MMO i have ever played.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fix.inf.br/beta-testing-star-wars-old-rep/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>http://t.co/IDBDI7te Why every&#8230;</title>
		<link>http://www.fix.inf.br/httpt-coidbdi7te-why-every/</link>
		<comments>http://www.fix.inf.br/httpt-coidbdi7te-why-every/#comments</comments>
		<pubDate>Mon, 28 Nov 2011 02:21:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Menu superior]]></category>
		<category><![CDATA[tweets]]></category>

		<guid isPermaLink="false">http://www.fix.inf.br/httpt-coidbdi7te-why-every/</guid>
		<description><![CDATA[http://t.co/IDBDI7te Why everyone hates the IT department.]]></description>
			<content:encoded><![CDATA[<p><a href="http://t.co/IDBDI7te" rel="nofollow">http://t.co/IDBDI7te</a> Why everyone hates the IT department.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fix.inf.br/httpt-coidbdi7te-why-every/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Aula de Squid</title>
		<link>http://www.fix.inf.br/aula-de-squid/</link>
		<comments>http://www.fix.inf.br/aula-de-squid/#comments</comments>
		<pubDate>Wed, 23 Nov 2011 18:01:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Aulas]]></category>
		<category><![CDATA[Squid]]></category>
		<category><![CDATA[aula]]></category>
		<category><![CDATA[cache]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[proxy]]></category>
		<category><![CDATA[redhat]]></category>
		<category><![CDATA[squid]]></category>
		<category><![CDATA[transparente]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.fix.inf.br/?p=162</guid>
		<description><![CDATA[Como prometido, aula de squid em http://www.fix.inf.br/wiki/doku.php?id=squid_sarg. Honestamente, tenho me divertido e aprendido muito compilando este material. Está sendo uma fonte básica de pesquisa, além de um guia prático. As matérias tem sido simples, mas farei atualizações nas aulas para que elas sejam mais abrangentes, como por exemplo, o iptables que ficou só na parte &#8230; </p><p><a class="more-link block-button" href="http://www.fix.inf.br/aula-de-squid/">Continue lendo &#187;</a>]]></description>
			<content:encoded><![CDATA[<p>Como prometido, aula de squid em <a href="http://www.fix.inf.br/wiki/doku.php?id=squid_sarg"> http://www.fix.inf.br/wiki/doku.php?id=squid_sarg</a>. Honestamente, tenho me divertido e aprendido muito compilando este material. Está sendo uma fonte básica de pesquisa, além de um guia prático.  As matérias tem sido simples, mas farei atualizações nas aulas para que elas sejam mais abrangentes, como por exemplo, o iptables que ficou só na parte de firewall.</p>
<p>Peço também que me ajudem com as correções do material. Sei que muita coisa não deve estar exatamente como deveria, portanto ficaria grato se vocês me ajudassem na correção. </p>
<p>Como antes, aqui vai um ctrl+v ctrl+c do texto, mas a leitura fica melhor na wiki.</p>
<p>Table of Contents<br />
Conceitos básicos de Squid<br />
Instalando<br />
Um arquivo de configuração básico<br />
Entendendo as configurações<br />
ACLs<br />
Lista de opções das ACLs<br />
HTTP_ACCESS<br />
A Ordem importa<br />
Bloqueando endereços<br />
Autenticação<br />
Delimitando horários<br />
Deixando coisas de fora do squid<br />
Cache local<br />
Proxy Transparente<br />
Referências<br />
Conceitos básicos de Squid</p>
<p>O Squid é um servidor proxy e cache de web. A sua utilização mais comum é a aceleração de acesso web, através de um cache de dados acessados com frequência. Também pode ser utilizado para realizar controle de acesso a internet, impedindo ou liberando o acesso através de ACLs (Listas de Controle de Acesso). Desenvolvido inicialmente para Unix, roda agora também em sistemas windows.</p>
<p>A melhor fonte de informações sobre o squid é a Squid Wiki, do próprio squid: http://wiki.squid-cache.org/SquidFaq/</p>
<p>Instalando</p>
<p>Em distribuições baseadas em redhat, instalaremos o squid com a ferramenta yum:</p>
<p>yum install squid<br />
Em distribuções baseadas em debian, usamos o apt-get:</p>
<p>apt-get install squid<br />
<code></p>
<p>Além dele, precisamos também do pacote httpd-tools.<br />
E precisamos fazer uma alteração no sistema para permitir o redirecionamento de pacotes<br />
Podemos fazer isso da seguinte forma:<br />
<code><br />
echo 1 > /proc/sys/net/ipv4/ip_forward<br />
Ou podemos editar o arquivo /etc/sysctl.conf e mudar a opção net.ipv4.ip_forward = 0 para 1</p>
<p>Um arquivo de configuração básico</p>
<p>O arquivo de configuração fica em /etc/squid/squid.conf por padrão na maioria das distribuições:</p>
<p>#<br />
# Recommended minimum configuration:<br />
#<br />
#Tradução livre do squid.conf do fedora # Regra de exemplo permitindo acesso de sua rede interna<br />
# Adapte ela para o endereço de ip da sua rede, onde a navegação será liberada<br />
acl localnet src 10.0.0.0/8	# RFC1918 possible internal network<br />
acl localnet src 172.16.0.0/12	# RFC1918 possible internal network<br />
acl localnet src 192.168.0.0/16	# RFC1918 possible internal network<br />
acl localnet src fc00::/7 # RFC 4193 local private network range<br />
acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines<br />
acl SSL_ports port 443<br />
acl Safe_ports port 80	 # http<br />
acl Safe_ports port 21	 # ftp<br />
acl Safe_ports port 443	 # https<br />
acl Safe_ports port 70	 # gopher<br />
acl Safe_ports port 210	 # wais<br />
acl Safe_ports port 1025-65535	# unregistered ports<br />
acl Safe_ports port 280	 # http-mgmt<br />
acl Safe_ports port 488	 # gss-http<br />
acl Safe_ports port 591	 # filemaker<br />
acl Safe_ports port 777	 # multiling http<br />
acl CONNECT method CONNECT<br />
#<br />
# Configurações recomendadas para permissão de acesso<br />
# Somente permitir acesso ao cachemgr pela localhost<br />
http_access allow localhost manager<br />
http_access deny manager<br />
# Negar acesso a certas portas não seguras<br />
http_access deny !Safe_ports<br />
# Negar conexão a outras portas que não sejam de SSL<br />
http_access deny CONNECT !SSL_ports</p>
<p>#<br />
# Insira suas próprias regras aqui para permitir acesso de seus clientes<br />
#<br />
# Regra de exemplo permitindo acesso de sua rede local<br />
# Adapte para o que for necessário para funcionar na sua rede<br />
http_access allow localnet<br />
http_access allow localhost<br />
# E finalmente, negar todos os outros acessoas a este proxy<br />
http_access deny all<br />
# O Squid normalmente escuta na porta 3128<br />
http_port 3128<br />
# Descomente e ajuste a linha seguinte para adicionar o diretório de cache<br />
cache_dir ufs /var/spool/squid 100 16 256<br />
# Deixe coredumps no primeiro diretório do cache<br />
coredump_dir /var/spool/squid<br />
# Adicione suas próprias entradas de refresh abaixo dessas<br />
refresh_pattern ^ftp:	 1440	20%	10080<br />
refresh_pattern ^gopher:	1440	0%	1440<br />
refresh_pattern -i (/cgi-bin/|\?) 0	0%	0<br />
refresh_pattern .	 0	20%	4320</p>
<p>Entendendo as configurações</p>
<p>ACLs</p>
<p>A tag ACL é a lista de acesso, ou regra, que definimos para o nosso servidor. É através delas que vamos fazer as limitações/permissões de uso. As ACLs do squid são compostas sempre por um par. Uma definição de ACL no estilo</p>
<p>acl nomedaacl tipodaacl opção/localdaacl<br />
Então, uma acl chamada Safe_ports que especifique a porta 80, seria a seguinte.</p>
<p>acl Safe_ports port 80<br />
Esta regra, no momento, não bloqueia nem libera essa porta. Simplesmente diz que temos uma ACL chamada Safe_ports que rege sobre a porta 80. As ACLs são somente as listas de acesso. Depois nós iremos dizer se elas deverão ser liberadas ou não.</p>
<p>Uma mesma ACL pode conter mais de uma informação, como por exemplo:</p>
<p>acl Safe_ports port 80<br />
acl Safe_ports port 3128<br />
Chamamos a mesma ACL duas vezes, mas com valores diferentes.</p>
<p>Lista de opções das ACLs</p>
<p>src: source (client) IP addresses<br />
dst: destination (server) IP addresses<br />
myip: the local IP address of a client's connection<br />
arp: Ethernet (MAC) address matching<br />
srcdomain: source (client) domain name<br />
dstdomain: destination (server) domain name<br />
srcdom_regex: source (client) regular expression pattern matching<br />
dstdom_regex: destination (server) regular expression pattern matching<br />
src_as: source (client) Autonomous System number<br />
dst_as: destination (server) Autonomous System number<br />
peername: name tag assigned to the cache_peer where request is expected to be sent.<br />
time: time of day, and day of week<br />
url_regex: URL regular expression pattern matching<br />
urlpath_regex: URL-path regular expression pattern matching, leaves out the protocol and hostname<br />
port: destination (server) port number<br />
myport: local port number that client connected to<br />
myportname: name tag assigned to the squid listening port that client connected to<br />
proto: transfer protocol (http, ftp, etc)<br />
method: HTTP request method (get, post, etc)<br />
http_status: HTTP response status (200 302 404 etc.)<br />
browser: regular expression pattern matching on the request user-agent header<br />
referer_regex: regular expression pattern matching on the request http-referer header<br />
ident: string matching on the user's name<br />
ident_regex: regular expression pattern matching on the user's name<br />
proxy_auth: user authentication via external processes<br />
proxy_auth_regex: regular expression pattern matching on user authentication via external processes<br />
snmp_community: SNMP community string matching<br />
maxconn: a limit on the maximum number of connections from a single client IP address<br />
max_user_ip: a limit on the maximum number of IP addresses one user can login from<br />
req_mime_type: regular expression pattern matching on the request content-type header<br />
req_header: regular expression pattern matching on a request header content<br />
rep_mime_type: regular expression pattern matching on the reply (downloaded content) content-type header. This is only usable in the http_reply_access directive, not http_access.<br />
rep_header: regular expression pattern matching on a reply header content. This is only usable in the http_reply_access directive, not http_access.<br />
external: lookup via external acl helper defined by external_acl_type<br />
user_cert: match against attributes in a user SSL certificate<br />
ca_cert: match against attributes a users issuing CA SSL certificate<br />
ext_user: match on user= field returned by external acl helper defined by external_acl_type<br />
ext_user_regex: regular expression pattern matching on user= field returned by external acl helper defined by external_acl_type</p>
<p>HTTP_ACCESS</p>
<p>A tag “http_access” é quem define o que será feito com a regra que listamos anteriormente, as ACLs. Ela é quem vai dizer se o acesso será liberado ou bloqueado. Para tanto, devemos utilizar a seguinte forma:</p>
<p>http_access allow/deny nomedaacl<br />
A opção allow ou deny é quem vai dizer se iremos liberar ou negar o acesso a aquela ACL. É possível utilizar o caracter ”!” para realizar uma ACL ao contrário. O seguinte código:</p>
<p>http_access allow Safe_ports<br />
libera o acesso para as portas definidas na ACL Safe_ports. Mas o código:</p>
<p>http_access allow !Safe_ports<br />
Liberar para todas as portas MENOS as definidas em Safe_ports</p>
<p>A Ordem importa</p>
<p>As permissões são lidas na ordem que são colocadas. Se primeiros bloquearmos algo e depois liberarmos, não funcionará. É importante colocar a ordem corretamente. Para isso, mantenha seu arquivo de configuração sempre limpo</p>
<p>Bloqueando endereços</p>
<p>Vamos agora ver como podemos fazer para bloquear sites, baseado em uma lista de sites proibidos.</p>
<p>acl proibidos url_regex "/etc/squid/sitesproibidos"<br />
http_access deny proibidos<br />
Vejamos: Na primeira linha, chamamos uma ACL com nome de “proibidos”. A opção url_regex diz ao squid pesquisar dentro do arquivo /etc/squid/sitesproibidos a lista de endereços que queremos bloquear ou liberar. Na segunda linha, o comando http_access deny nos diz que queremos negar o acesso a esta ACL. Depois, é só criar o arquivo /etc/squid/sitesproibidos e adicionar os endereços que queremos. Lembre-se que o squid é case sensitive, ou seja, ele vai ler os endereços na lista da forma que forem digitados. WWW.GOOGLE.COM é diferente de www.google.com ou WwW.GoOgLe.CoM. Para evitar este detalhe , utilize a opção ”-i” como no exemplo:</p>
<p>acl proibidos url_regex -i "/etc/squid/sitesproibidos"<br />
http_access deny proibidos<br />
O que estiver na lista será bloqueado. Podemos colocar endereços inteiros, ou podemos bloquear sites baseado em uma palavra. Se em nosso /etc/squid/sitesproibidos estiver a seguinte listagem:</p>
<p>www.google.com</p>
<p>www.fix.inf.br</p>
<p>somente os sites www.google.com e www.fix.inf.br serão bloqueados. foo.google.com e bar.fix.inf.br não serão bloqueados.</p>
<p>Mas se colocarmos na nossa lista o seguinte:</p>
<p>google</p>
<p>fix</p>
<p>Todos os sites que contiverem essas palavras serão bloqueados. foo.google.com será bloqueado, assim como google.exemplo.com.br</p>
<p>Autenticação</p>
<p>Uma das outras possibilidades do squid é o bloqueio por usuário. Podemos criar uma lista de logins e senhas, ou integrar com outros métodos, como uma base de dados LDAP ou um servidor mysql. Veremos aqui como montar um sistema de autenticação básico, com uma lista de usuários e senhas em um arquivo de texto. Precisamos adicionar a linha</p>
<p>auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwd<br />
em nosso arquivo /etc/squid/squid.conf se nosso linux for 64 bits e a linha:</p>
<p>auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/passwd<br />
em nosso arquivo /etc/squid/squid.conf se nosso linux for 32 bits. A localização do arquivo basic_ncsa_auth pode ser diferente em seu sistema. Utilize um comando como o whereis ou um find para encontrar o arquivo.</p>
<p>Esta linha ativa o sistema de autenticação “basic_ncsa_auth”, com o arquivo /etc/squid/passwd sendo nosso arquivo de usuários e senhas.</p>
<p>Vejamos:</p>
<p>acl todos proxy_auth REQUIRED<br />
http_access allow todos<br />
http_access deny all<br />
Na primeira linha, definimos que uma ACL chamada todos que é de autenticação (proxy_auth). O REQUIRED diz que qualquer usuário autenticado irá se encaixar nessa ACL.<br />
Na segunda linha, o http_access allow todos libera o acesso aos usuários autenticados. Na terceira linha o http_access deny all nega o acesso a todo o resto dos usuários.</p>
<p>O Squid nos permite um controle sobre os usuários que podem ou não acessar a rede, através de ACLs tipo:</p>
<p>acl diretoria proxy_auth usuario1 usuario2 usuario3<br />
Aqui, temos uma acl chamada diretoria, onde serão lidados somente com os usuários chamados usuario1, usuario2 e usuario3.<br />
Podemos ainda, criar um arquivo com esses usuários, assim como criamos um arquivo com sites bloqueados.</p>
<p>acl diretoria proxy_auth "/etc/squid/diretoria"<br />
http_access allow diretoria</p>
<p>Delimitando horários</p>
<p>Agora, iremos limitar o acesso a rede por horário. Que tal deixarmos o acesso aos usuários comuns somente durante o horário comercial?</p>
<p>acl usuarios proxy_auth REQUIRED<br />
acl diretoria proxy_auth "/etc/squid/diretores<br />
acl horariocomercial time 08:00-18:00<br />
http_access allow diretoria<br />
http_access allow usuarios horariocomercial<br />
http_access deny all<br />
Pronto. Definimos a ACL dos usuários, dos diretores e na terceira linha a ACL do horário, dando o nome para ela de “horariocomercial” e definindo ela das 8 até as 18. Depois, liberamos o acesso da diretoria e na quinta linha, liberamos o acesso aos usuários de acordo com a ACL horariocomercial. Finalmente, negamos o resto. Simples, não é?</p>
<p>Deixando coisas de fora do squid</p>
<p>Algumas vezes queremos deixar algum endereço fora do cache. Alguns sites simplesmente funcionam melhor assim. Neste caso, devemos utilizar o código:</p>
<p>acl hotmail dstdomain .hotmail.com<br />
always_direct allow hotmail<br />
Assim, o hotmail.com será acessado diretamente, sem precisar passar pelo cache.</p>
<p>Cache local</p>
<p>O squid usa uma diretório para armazenamento de seu cache de páginas. Para isso, precisamos utilizar a linha “cache_dir” seguido do tipo de armazenamento, diretório a ser usado, número em megabites, do número de diretórios primários criados e depois do número de diretórios secundários. Sendo assim a linha:</p>
<p>cache_dir ufs /var/spool/squid/  7000 16 256<br />
diz que, o sistema a ser usado é o ufs, o diretório principal é o /var/spool/squid, serão usados 7Gb, serão criados 16 diretórios dentro do /var/spool/squid e mais 256 diretórios dentro de cada um desses 16. Este tipo de armazenamento em diretórios é o padrão do squid e funciona muito bem.</p>
<p>AVISO: Não deixe o squid ocupar todo o espaço do seu disco. Se for usar uma partição separada, use 20% a menos do que o tamanho total dela. Se for no seu disco primário, calcule baseado no taamnho do seu disco e em quanto livre você quer ter.</p>
<p>Proxy Transparente</p>
<p>Algumas vezes queremos deixa o squid transparente, ou seja, com que o usuário nem saiba da sua existência. Chama-se proxy transparente. Assim, o usuário não tem escolha, senão usar o proxy, sem precisar configurar ele no navegador.</p>
<p>Para ativarmos esta opção precisamos adicionar a opção:</p>
<p>http_port 3128 transparent<br />
Já devemos ter uma linha chamada http_port 3128 no squid.conf. Simplesmente iremos adicionar a opção transparent ao lado.</p>
<p>Mas ainda precisamos de mais. Temos que fazer com que todas as requisições que entrem na porta 80 do nosso servidor (já que é a padrão da web) sejam reencaminhadas para a 3128 (evitando assim de alterar as configurações no navegador). Quem fará esse serviço é o iptables, com o comando:</p>
<p>iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128<br />
Lembrando das configurações de iptables, vemos que nessa linha dizemos ao iptables para utilizar a tabela nat, na chain PREROUTING, utilizando a interface eth0(importante notar se essa é a interface usada), no protocolo tcp, na porta 80, para dar um REDIRECT para a porta 3128. Simples, temos nosso proxy transparente agora.</p>
<p>#echo 1 > /proc/sys/net/ipv4/ip_forward Ou, numa maneira mais “elegante”: #sysctl -w net.ipv4.ip_forward=1</p>
<p>Referências</p>
<p>http://www.picoloto.com.br/linux/squid.php</p>
<p>http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_Ch32_:_Controlling_Web_Access_with_Squid</p>
<p>http://wiki.squid-cache.org/</p>
<p>http://wiki.squid-cache.org/SquidFaq/</p>
<p>http://www.mlaureano.org/guias_tutoriais/GuiaInstSquid.htm</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fix.inf.br/aula-de-squid/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Até quarta, aulas de Squid e &#8230;</title>
		<link>http://www.fix.inf.br/ate-quarta-aulas-de-squid-e/</link>
		<comments>http://www.fix.inf.br/ate-quarta-aulas-de-squid-e/#comments</comments>
		<pubDate>Tue, 22 Nov 2011 02:09:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Menu superior]]></category>
		<category><![CDATA[tweets]]></category>

		<guid isPermaLink="false">http://www.fix.inf.br/ate-quarta-aulas-de-squid-e/</guid>
		<description><![CDATA[Até quarta, aulas de Squid e Sarg em http://t.co/TIcKBmF6.]]></description>
			<content:encoded><![CDATA[<p>Até quarta, aulas de Squid e Sarg em <a href="http://t.co/TIcKBmF6" rel="nofollow">http://t.co/TIcKBmF6</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fix.inf.br/ate-quarta-aulas-de-squid-e/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Aula sobre NFS</title>
		<link>http://www.fix.inf.br/aula-sobre-nfs/</link>
		<comments>http://www.fix.inf.br/aula-sobre-nfs/#comments</comments>
		<pubDate>Mon, 21 Nov 2011 17:46:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Aulas]]></category>
		<category><![CDATA[NFS]]></category>
		<category><![CDATA[aula]]></category>
		<category><![CDATA[compartilhamento]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[nfs]]></category>
		<category><![CDATA[rede]]></category>
		<category><![CDATA[redhat]]></category>

		<guid isPermaLink="false">http://www.fix.inf.br/?p=150</guid>
		<description><![CDATA[Gostaria de compartilhar com vocês algumas informações sobre NFS.  Como a de iptables, as informações estão na wiki, no link http://www.fix.inf.br/wiki/doku.php?id=nfs Aconselho que leiam por lá, pois a visualização é bem melhor. &#160; &#160; &#160; Table of Contents Conceitos básicos de NFS Explicando o arquivo de configuração Instalando o NFS Configurando o NFS Aplicando as configurações &#8230; </p><p><a class="more-link block-button" href="http://www.fix.inf.br/aula-sobre-nfs/">Continue lendo &#187;</a>]]></description>
			<content:encoded><![CDATA[<p>Gostaria de compartilhar com vocês algumas informações sobre NFS.  Como a de iptables, as informações estão na wiki, no link <a href="http://www.fix.inf.br/wiki/doku.php?id=nfs">http://www.fix.inf.br/wiki/doku.php?id=nfs</a></p>
<p>Aconselho que leiam por lá, pois a visualização é bem melhor.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<div>
<div>
<div id="toc__header">Table of Contents</div>
<div id="toc__inside">
<ul>
<li>
<div><a href="http://www.fix.inf.br/wiki/doku.php?id=nfs#conceitos_basicos_de_nfs">Conceitos básicos de NFS</a></div>
<ul>
<li>
<div><a href="http://www.fix.inf.br/wiki/doku.php?id=nfs#explicando_o_arquivo_de_configuracao">Explicando o arquivo de configuração</a></div>
</li>
<li>
<div><a href="http://www.fix.inf.br/wiki/doku.php?id=nfs#instalando_o_nfs">Instalando o NFS</a></div>
</li>
<li>
<div><a href="http://www.fix.inf.br/wiki/doku.php?id=nfs#configurando_o_nfs">Configurando o NFS</a></div>
</li>
<li>
<div><a href="http://www.fix.inf.br/wiki/doku.php?id=nfs#aplicando_as_configuracoes">Aplicando as configurações</a></div>
</li>
<li>
<div><a href="http://www.fix.inf.br/wiki/doku.php?id=nfs#clientes_de_nfs">Clientes de NFS</a></div>
</li>
</ul>
</li>
<li>
<div><a href="http://www.fix.inf.br/wiki/doku.php?id=nfs#referencias">Referências</a></div>
</ul>
</div>
</div>
<h2><a id="conceitos_basicos_de_nfs" name="conceitos_basicos_de_nfs"></a>Conceitos básicos de NFS</h2>
<div>
<p>O NFS é um sistema de compartilhamento de arquivos incialmente desenvolvido pela Sun. A sua função principal é a de compartilhar pastas e arquivos em uma rede de um modo transparente ao usuário, para que os mesmos processos que podem ser realizados em uma pasta local sejam realizados em uma pasta remota. O principal arquivo de configuração dele fica em:</p>
<pre>/etc/exports</pre>
<p>É neste arquivo que ficarão guardados as informações necessárias para o servidor nfs funcionar.</p>
</div>
<h3><a id="explicando_o_arquivo_de_configuracao" name="explicando_o_arquivo_de_configuracao"></a>Explicando o arquivo de configuração</h3>
<div>
<p>O arquivo de configuração é composto de duas colunas. A primeira corresponde a pasta que será compartilhada em rede. A segunda consiste nas configurações que serão utilizadas para esta pasta. Veja o exemplo abaixo:</p>
<pre>/mnt/share1 host1.mydomain.com(ro,root_squash)
/mnt/share2 host2.mydomain.com(ro,root_squash)</pre>
<p>Este arquivo está definindo a pasta /mnt/share1 e /mnt/share2 como pastas compartilhadas e nos mostrando as opções definidas para ela.</p>
</div>
<h3><a id="instalando_o_nfs" name="instalando_o_nfs"></a>Instalando o NFS</h3>
<div>
<p>Verifique com o comando (para derivados de redhat)</p>
<pre>rpm -q nfs-utils</pre>
<p>Se o nfs está instalado em seu computador. Caso não, instale com o comando</p>
<pre>yum install nfs-utils</pre>
</div>
<h3><a id="configurando_o_nfs" name="configurando_o_nfs"></a>Configurando o NFS</h3>
<div>
<p>Volte no arquivo de configuração do NFS, em /etc/exports. Editando ele, coloque a pasta que você deseja compartilhar. Ao lado, devemos colocar o endereço de ip ou faixa de ip que queremos que tenha permissão para acessar esta pasta. Pode ser colocado um nome de host ou um endereço ip. E, finalmente, entre parenteses, as permissões. Caso mais de uma, separamos elas por vírgula.</p>
<p>As permissões possíveis podem ser lidas aqui <a title="http://nfs.sourceforge.net/nfs-howto/ar01s03.html" href="http://nfs.sourceforge.net/nfs-howto/ar01s03.html" rel="nofollow">http://nfs.sourceforge.net/nfs-howto/ar01s03.html</a>, mas as mais comuns são:</p>
<pre>ro, ReadOnly - somente leitura
rw, ReadandWrite - gravação e leitura
no_root_squash - Por padrão, o acesso feito por um usuário root remoto é configurado como o usuário "nobody" local.
Com esta opção, o usuário root remoto acessa como se fosse o usuário root local. Isto é uma risco a sua segurança. Não ative esta opção em servidores de produção</pre>
<p>Um arquivo de configurações de teste ficaria da seguinte forma:</p>
<pre>/mnt/share1     192.168.0.0/255.255.255.0(rw)</pre>
<p>este arquivo libera o compartilhamento da pasta /mnt/share1, para toda a rede 192.168.0.0 com leitura e escrita.</p>
</div>
<h3><a id="aplicando_as_configuracoes" name="aplicando_as_configuracoes"></a>Aplicando as configurações</h3>
<div>
<p>Depois de termos criado as configurações desejadas, devemos reiniciar o servidor nfs com o comando:</p>
<pre>service nfs-server restart</pre>
</div>
<h3><a id="clientes_de_nfs" name="clientes_de_nfs"></a>Clientes de NFS</h3>
<div>
<p>Para conectar ao servidor NFS, só precisamos utilizar o comando “mount”, que fará todo o trabalho, apontado para o servidor que queremos montar, da seguinte forma:</p>
<pre>mount ipdoservidor:/mnt/share1  /mnt</pre>
<p>esta linha vai montar a pasta /mnt/share1 do servidor na pasta local /mnt. Veja que precisamos saber quais pastas estão compartilhadas em um servidor para poder montar corretamente. Com a saída do comando mount podemos identificar se a pasta foi montada corretamente. Veja:</p>
<pre>localhost:/mnt/share1 on /mnt/montado type nfs4 (rw,relatime,vers=4,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,
sec=sys,clientaddr=127.0.0.1,minorversion=0,local_lock=none,addr=127.0.0.1)</pre>
</div>
<h2><a id="referencias" name="referencias"></a>Referências</h2>
<div>
<p><a title="http://www.discipulosdopinguim.com.br/tutorial/nfs-tutorial" href="http://www.discipulosdopinguim.com.br/tutorial/nfs-tutorial" rel="nofollow">http://www.discipulosdopinguim.com.br/tutorial/nfs-tutorial</a><br />
<a title="http://fedoraproject.org/wiki/Administration_Guide_Draft/NFS" href="http://fedoraproject.org/wiki/Administration_Guide_Draft/NFS" rel="nofollow">http://fedoraproject.org/wiki/Administration_Guide_Draft/NFS</a><br />
<a title="http://nfs.sourceforge.net/nfs-howto/ar01s03.html" href="http://nfs.sourceforge.net/nfs-howto/ar01s03.html" rel="nofollow">http://nfs.sourceforge.net/nfs-howto/ar01s03.html</a><br />
<a title="http://www.idevelopment.info/data/Unix/Linux/LINUX_ExportingaFileSystemforNFS.shtml" href="http://www.idevelopment.info/data/Unix/Linux/LINUX_ExportingaFileSystemforNFS.shtml" rel="nofollow">http://www.idevelopment.info/data/Unix/Linux/LINUX_ExportingaFileSystemforNFS.shtml</a><br />
<a title="http://www.server-world.info/en/note?os=Fedora_16&amp;p=nfs" href="http://www.server-world.info/en/note?os=Fedora_16&amp;p=nfs" rel="nofollow">http://www.server-world.info/en/note?os=Fedora_16&amp;p=nfs</a></p>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.fix.inf.br/aula-sobre-nfs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Aula sobre Iptables</title>
		<link>http://www.fix.inf.br/aula-iptables/</link>
		<comments>http://www.fix.inf.br/aula-iptables/#comments</comments>
		<pubDate>Mon, 21 Nov 2011 13:37:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Aulas]]></category>
		<category><![CDATA[iptables]]></category>
		<category><![CDATA[aula]]></category>
		<category><![CDATA[básico]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[redhat]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.fix.inf.br/?p=143</guid>
		<description><![CDATA[Caros leitores. Gostaria de compartilhar com vocês algum conteúdo sobre iptables, que estou montando aqui: http://www.fix.inf.br/wiki/doku.php?id=iptables É um pequeno tutorial/aula sobre iptables. Espero que seja útil. Sugiro que leiam o tutorial dentro da wiki acima, é bem melhor de visualizar e o conteúdo será atualizado. Ainda não encontrei uma boa forma de mostrar direto o &#8230; </p><p><a class="more-link block-button" href="http://www.fix.inf.br/aula-iptables/">Continue lendo &#187;</a>]]></description>
			<content:encoded><![CDATA[<p>Caros leitores. Gostaria de compartilhar com vocês algum conteúdo sobre iptables, que estou montando aqui:<br />
<a href="http://www.fix.inf.br/wiki/doku.php?id=iptables">http://www.fix.inf.br/wiki/doku.php?id=iptables</a><br />
É um pequeno tutorial/aula sobre iptables. Espero que seja útil. Sugiro que leiam o tutorial dentro da wiki acima, é bem melhor de visualizar e o conteúdo será atualizado. Ainda não encontrei uma boa forma de mostrar direto o conteúdo da página da wiki no wordpress. Caso alguém conheça, por favor me avise.</p>
<p>Table of Contents</p>
<p>Iptables &#8211; O que é:<br />
Primeiro comando: Listar regras em uso.<br />
Limpando o iptables<br />
Comandos básicos<br />
Tabelas<br />
Chains<br />
Sintaxe<br />
Primeira Regra<br />
Liberação de portas e protocolos<br />
Liberar SSH<br />
Liberar Porta 80<br />
Bloqueando o restante<br />
Liberando Loopback<br />
Liberando de um ip específico<br />
Deletando regras<br />
Outras possibilidades<br />
Salvando as regras<br />
Referências</p>
<p>Iptables &#8211; O que é:</p>
<p>O Iptables é o firewall mais utilizado em todas as distribuições de linux.Outros sistemas utilizam outras implementações de firewall. Existem muitas informações na internet e a documentação do iptables/netfilter é muito grande, sendo ele uma das mais complexas (senão a mais) ferramentasde firewall. De um modo simples, o iptables pode ser utilizado com poucas regras para criar um bom e efetivo firewall para sua rede.</p>
<p>O sistema todo é composto de duas partes. O módulo do kernel netfilter e o aplicativo que controla as regras, chamado iptables. Quem realmente faz a função é o netfilter, mas é comum encontrar referências ao firewall como iptables, já que é o comando usado. Quando um pacote de rede passa pelo netfilter, ele compara as informações com as regras inseridas pelo iptables. Se alguma regra bater com o pacote, ele faz a ação indicada na regra (aceitar, negar, etc) .<br />
Primeiro comando: Listar regras em uso.</p>
<p>Para ir se familiarizando com o iptables, utiliza o comando</p>
<p>iptables -L</p>
<p>Esta opção lista as regras atualmente em uso.</p>
<p>Caso não exista nenhuma regra, o que você deve ver é algo como isso:</p>
<p>Chain INPUT (policy ACCEPT)<br />
target prot opt source destination<br />
Chain FORWARD (policy ACCEPT)<br />
target prot opt source destination<br />
Chain OUTPUT (policy ACCEPT)<br />
target prot opt source destination</p>
<p>Caso alguma regra apareça é porque:<br />
1 &#8211; Você criou regras anteriores<br />
2 &#8211; Sua distribuição de linux já vem com regras como padrão.<br />
Limpando o iptables</p>
<p>No caso do debian/ubuntu, as regras do iptables vem vazias. No caso das distribuições baseadas em redhat como centos e scientific linux, o arquivo /etc/sysconfig/iptables já vem com algumas regras regras. Neste caso, precisamos começar desabilitando todas elas com os comandos:</p>
<p>iptables -F<br />
iptables -X<br />
iptables -t nat -F<br />
iptables -t nat -X<br />
iptables -t mangle -F<br />
iptables -t mangle -X<br />
iptables -P INPUT ACCEPT<br />
iptables -P FORWARD ACCEPT<br />
iptables -P OUTPUT ACCEPT</p>
<p>O comando iptables -F limpa todas as regras do iptables e a opção -X limpa todas as chains personalizadas. Utilizamos o mesmo comando para todas as outras tabelas (aqui, nat e mangle). Depois colocamos as políticas padrão para as chains INPUT, FORWARD e OUTPUT com a opção -P</p>
<p>Estes comandos limpam todas as regras do iptables, em sua tabela filter, mangle e nat. Cuidado, este comando pode eliminar regras necessárias para compartilhamento de internet e outros. Verifique suas regras e faça os testes em uma instalação nova.<br />
Comandos básicos</p>
<p>O iptables aceita, dentre vários, estes comandos mais utilizados (direto do help)</p>
<p>-A &#8211; Append this rule to a rule chain. Valid chains for what we&#8217;re doing are INPUT, FORWARD and OUTPUT, but we mostly deal with INPUT in this tutorial, which affects only incoming traffic.\\<br />
-L &#8211; List the current filter rules.\\<br />
-m conntrack &#8211; Allow filter rules to match based on connection state. Permits the use of the &#8211;ctstate option.\\<br />
&#8211;ctstate &#8211; Define the list of states for the rule to match on. Valid states are:\\<br />
NEW &#8211; The connection has not yet been seen.\\<br />
RELATED &#8211; The connection is new, but is related to another connection already permitted.\\<br />
ESTABLISHED &#8211; The connection is already established.\\<br />
INVALID &#8211; The traffic couldn&#8217;t be identified for some reason.\\<br />
-m limit &#8211; Require the rule to match only a limited number of times. Allows the use of the &#8211;limit option. Useful for limiting logging rules.\\<br />
&#8211;limit &#8211; The maximum matching rate, given as a number followed by &#8220;/second&#8221;, &#8220;/minute&#8221;, &#8220;/hour&#8221;, or &#8220;/day&#8221; depending on how often you want the rule to match. If this option is not used and -m limit is used, the default is &#8220;3/hour&#8221;.\\<br />
-p &#8211; The connection protocol used.\\<br />
&#8211;dport &#8211; The destination port(s) required for this rule. A single port may be given, or a range may be given as start:end, which will match all ports from start to end, inclusive.\\<br />
-j &#8211; Jump to the specified target. By default, iptables allows four targets:\\<br />
ACCEPT &#8211; Accept the packet and stop processing rules in this chain.\\<br />
REJECT &#8211; Reject the packet and notify the sender that we did so, and stop processing rules in this chain.\\<br />
DROP &#8211; Silently ignore the packet, and stop processing rules in this chain.\\<br />
LOG &#8211; Log the packet, and continue processing more rules in this chain. Allows the use of the &#8211;log-prefix and &#8211;log-level options.\\<br />
&#8211;log-prefix &#8211; When logging, put this text before the log message. Use double quotes around the text to use.\\<br />
&#8211;log-level &#8211; Log using the specified syslog level. 7 is a good choice unless you specifically need something else.\\<br />
-i &#8211; Only match if the packet is coming in on the specified interface.\\<br />
-I &#8211; Inserts a rule. Takes two options, the chain to insert the rule into, and the rule number it should be.\\<br />
-I INPUT 5 would insert the rule into the INPUT chain and make it the 5th rule in the list.\\<br />
-v &#8211; Display more information in the output. Useful for if you have rules that look similar without using -v.\\<br />
-s &#8211;source &#8211; address[/mask] source specification\\<br />
-d &#8211;destination &#8211; address[/mask] destination specification\\<br />
-o &#8211;out-interface &#8211; output name[+] network interface name ([+] for wildcard)\\</p>
<p>Tabelas</p>
<p>o Iptables trabalha com o conceito de tabelas, cada uma com funções diferentes, dependendo do que queremos fazer com o pacote de dados. As três mais comuns são:</p>
<p>FILTER<br />
NAT<br />
MANGLE<br />
Lembrando que quanto não especificamos qual tabela do iptables iremos usar (com o -t) ele assume por padrão que é a filter. Quando limpas as regras anteriormente, tivemos que executar os comandos para várias tabelas, pois por padrão, ele só limpará a tabela FILTER Para que o iptables faça o papel de firewall, a tabela utilizada é a filter, que cuida justamente da filtragem dos pacotes recebidos.<br />
Chains</p>
<p>Cada tabela possue algumas chains, que são associadas a algum tipo de tráfego de dados. Dentro desta tabela FILTER temos 3 chains principais:</p>
<p>INPUT<br />
FORWARD<br />
OUTPUT</p>
<p>Essas chains tratam justamente da entrada, encaminhamento e saida. Quando precisarmos lidar com um pacote, nós iremos verificar a origem e/ou destino dele e falar ao iptables para aplicar a função que queremos (ACCEPT, REJECT, DROP), aceitar ou negar o pacote.<br />
Sintaxe</p>
<p>A sintaxe do iptables</p>
<p># iptables -t TABLE -A CADEIA REGRAS -j ALVO Onde:</p>
<p>TABLE identifica a tabela (lembrando que se não for usada nenhuma, a FILTER é a padrão. O -t pode ser abstraído nesse caso) CADEIA identifica a cadeia (CHAIN usada, INPUT, OUTPUT) REGRAS compõe as regras de seleção de pacotes no qual o ALVO deve atuar (Se é protocolo TCP ou UDP ou todos, se é uma porta específica ou um grupo de portas, etc) ALVO ação a ser executada (Permitir, bloquear, recusar, registrar, etc)</p>
<p>Como você já deve ter visto também, o iptables assim como o Linux em geral, é case sensitive. Então, o que estiver em maiúsculo precisa estar em maiúsculo e não pode ser colocado em minúsculo.<br />
Primeira Regra</p>
<p>Tendo isso em vista, a primeira coisa que preciamos é liberar no nosso firewall que quando tivermos conexões já estabelecidas, elas possam receber tráfego. Toda conexão no kernel do linux tem um estado. Ela pode ser NOVA, ESTABELECIDA, RELACIONADA, etc.</p>
<p>#iptables -A INPUT -m conntrack &#8211;ctstate ESTABLISHED,RELATED -j ACCEPT</p>
<p>Com este comando, falamos ao iptables para adicionar uma nova regra (-A) dentro da chain INPUT (entrada), ativando a opção de verificação de estado da conexão (-m conntrack), com as seguintes opções de estado (–ctstate ESTABLISHED,RELATED) e que devemos aceitar essas conexões (ACCEPT)</p>
<p>Todas as conexões em nossa máquina tem um estado e a opção -m conntrack nos permite trabalhar com estes estados no iptables. As que utilizamos neste comando são a ESTABLISHED e a RELATED. A ESTABLISHED refere-se a todas as conexões já estabelecidas e a RELATED refere-se as conexões novas mas que são relacionadas a conexões já estabelecidas.</p>
<p>Assim, queremos dizer que todas as conexões que entrarem na nossa máquina que sejam respostas de conexões já estabelecidas ou conexões novas referentes a conexões já estabelecidas devem ser aceitas.<br />
Liberação de portas e protocolos</p>
<p>A partir de agora, iremos começar a trabalhar em nossas regras. Por padrão, um firewall bom deve negar todas as conexões que não forem explicitamente permitidas. Não podemos negar uma por uma, seria impossível listas todas. Por isso, precisamos definir o que queremos liberar e depois bloquear tudo.<br />
Liberar SSH</p>
<p>Começaremos então liberando o acesso a porta 22, que é a porta do servidor SSH, o servidor de acesso remoto. É sempre importante saber qual protocolo o aplicativo que queremos utiliza. Neste caso, é o protocolo TCP. Para descobrir isso é necessário pesquisar na internet ou procurar no manual de utilização do aplicativo.</p>
<p>Então, começaremos criando uma regre para liberar o nosso acesso a porta 22. O comando utilizado é o seguinte:</p>
<p>#iptables -A INPUT -p tcp -i eth0 &#8211;dport ssh -j ACCEPT</p>
<p>Explicando: chamamos aqui o iptables, dizendo que queremos adicionar uma regra (-A). Este regra é referente ao protocolo tcp (-p tcp), deve ser aplicada somente na interface eth0 (-i eth0) e tem como porta de destino a porta do ssh (–dport ssh) e finalmente falomos ao iptables que queremos aceitar esta regra (-j ACCEPT). Note que utilizamos a palavra “ssh” no lugar do número da porta do ssh. Se tivessemos colocado 22 teria funcionado também. O ipables aceita algumas palavras no lugar de portas. Você pode verificar quais no arquivo /etc/services<br />
Liberar Porta 80</p>
<p>Ótimo! Agora nosso ssh já está liberado. Outras regras serão bem parecidas com essa. Vejamos o seguinte exemplo. Digamos que queremos agora permitir também o acesso a porta 80 pois temos um servidor web nela.</p>
<p>#iptables -A INPUT -p tcp -i eth0 &#8211;dport 80 -j ACCEPT</p>
<p>Bloqueando o restante</p>
<p>Pronto. Nosso firewall agora permite todo o acesso a porta 80 e a porta 22 de entrada. Agora, iremos bloquear todo o resto:</p>
<p>#iptables -A INPUT -j DROP</p>
<p>Com este comando, adicionamos uma regra nova na chain INPUT que nega o acesso a todas as conexões. O iptables uma vez que lê uma regra, obedece ela mesmo que outra regra modifique o comportamento. Uma vez configurada, ela não muda. Sendo assim, a nossa terceira regra vai bloquear todo o acesso de entrada em nosso computador, menos nas portas 80 e 22 porque já foram definidas antes. Digitando iptables -L podemos ver como ficou</p>
<p># iptables -L INPUT<br />
Chain INPUT (policy ACCEPT)<br />
target prot opt source destination<br />
ACCEPT all &#8212; anywhere anywhere state RELATED,ESTABLISHED<br />
ACCEPT tcp &#8212; anywhere anywhere tcp dpt:ssh<br />
ACCEPT tcp &#8212; anywhere anywhere tcp dpt:www<br />
DROP all &#8212; anywhere anywhere</p>
<p>Veja que bloqueamos todo o trafego de entrada, em qualquer interface de rede e permitimos o acesso a 80 e a 22 somente na eth0.Se tivessemos outra interface de rede, ela estaria com toda a sua entrada negada.<br />
Liberando Loopback</p>
<p>Mas esta configuração de iptables tem um grande problema. Ele bloqueou o acesso a nossa interface de loopback também. Isso é ruim, pois muitos programas utilizam ela para suas conexões internas. Sendo assim precisamos adicionar uma regra que libere ela (ou especificar a interface no comando anterior). Mas se colocarmos a regra iptables -A INPUT -i lo &#8211; j ACCEPT, ela não teria efeito, pois uma regra anterior já tinha sido definida para ignorar todo o tráfego de rede de entrada e adicionar outra regra não vai mudar isso. Nossa regra precisa vir antes da regra de negar.<br />
Utilizaremos então a opção -I (insert) no lugar da -A . A regra fica assim:</p>
<p>#iptables -I INPUT 4 -i lo -j ACCEPT</p>
<p>A única difereça é que utilizamos o -I e falamos em qual posição da lista queremos que ela fique, no caso, quarta posição. Um iptables -L mostra que a regra está na quarta posição, antes do bloqueio e por isso, efetiva.</p>
<p>iptables -L INPUT<br />
Chain INPUT (policy ACCEPT)<br />
target prot opt source destination<br />
ACCEPT all &#8212; anywhere anywhere state RELATED,ESTABLISHED<br />
ACCEPT tcp &#8212; anywhere anywhere tcp dpt:ssh<br />
ACCEPT tcp &#8212; anywhere anywhere tcp dpt:www<br />
ACCEPT all &#8212; anywhere anywhere<br />
DROP all &#8212; anywhere anywhere</p>
<p>====Listando as regras com modo verbose====<br />
Olhando a listagem, vemos que ficou um pouco difícil entender sobre qual interface a regra numero 4 se referencia. Daremos então um outro comando</p>
<p><code><br />
iptables -L INPUT -v</code></p>
<p><code><br />
iptables -L INPUT -v<br />
Chain INPUT (policy ACCEPT 227 packets, 22599 bytes)<br />
pkts bytes target prot opt in out source destination<br />
56 3996 ACCEPT all -- any any anywhere anywhere ctstate RELATED,ESTABLISHED<br />
0 0 ACCEPT tcp -- eth0 any anywhere anywhere tcp dpt:ssh<br />
0 0 ACCEPT tcp -- eth0 any anywhere anywhere tcp dpt:http<br />
0 0 ACCEPT all -- lo any anywhere anywhere<br />
0 0 DROP all -- any any anywhere anywhere</code></p>
<p>Liberando de um ip específico</p>
<p>Agora vamos olhar outra regra, um pouco mais complexa. Aqui nós liberamos todo o tráfego de ssh de entrada. Mas digamos que temos uma máquina com ip fixo e só queremos utilizar este IP para acessar nosso servidor. Usaremos uma opção chamada -s (source, fonte) que nos fala de onde é a origem da conexão, de qual ip ela vem:</p>
<p>#iptables -A INPUT -p tcp -i eth0 -s 192.168.0.1 &#8211;dport ssh -j ACCEPT</p>
<p>O comando é igual ao de antes, mas com a adição da opção -s e um ip de origem (192.168.1.1). Poderia ter sido usado também uma rede inteira, com a opção -s 192.168.0.0/24, especificando a máscara 24.<br />
Deletando regras</p>
<p>É possível também deletar uma regra do iptables se soubermos qual a ordem dela. O comando #iptables -L INPUT -n –line-numbers mostra a numeração das linhas das regras de INPUT do iptables.</p>
<p>iptables -L INPUT -n &#8211;line-numbers<br />
Chain INPUT (policy ACCEPT)<br />
num target prot opt source destination<br />
1 ACCEPT all &#8212; 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED<br />
2 ACCEPT tcp &#8212; 0.0.0.0/0 0.0.0.0/0 tcp dpt:22<br />
3 ACCEPT tcp &#8212; 0.0.0.0/0 0.0.0.0/0 tcp dpt:80<br />
4 ACCEPT all &#8212; 0.0.0.0/0 0.0.0.0/0<br />
5 DROP all &#8212; 0.0.0.0/0 0.0.0.0/0</p>
<p>Sabendo o número, podemos deletar uma regra com a opção iptables -D INPUT «número». Claro que podemos sempre limpar todo o iptables com o -F, mas nem sempre queremos fazer isso. Tentaremos então deletar a regra que dá DROP em todos os pacotes. Ela é a regra de número 5. Então o comando é:</p>
<p>iptables -D INPUT 5<br />
iptables -L<br />
ACCEPT all &#8212; anywhere anywhere ctstate RELATED,ESTABLISHED<br />
ACCEPT tcp &#8212; anywhere anywhere tcp dpt:ssh<br />
ACCEPT tcp &#8212; anywhere anywhere tcp dpt:http<br />
ACCEPT all &#8212; anywhere anywhere</p>
<p>Assim, a linha 5 foi deletada.<br />
Outras possibilidades</p>
<p>Outras opções possíveis são: –sport (source port)porta de origem, caso conheçamos a porta de origem do que queremos bloquear<br />
-p protocolos tcp, udp, icmp ou all para todos os protocolos<br />
-s (source) fonte da conexão com ip ou rede<br />
-d (destination) mesma coisa que o -s, mas com relação ao destino na conexão<br />
-j Possíveis alvos da regra, como ACCEPT, DROP, REJECT. Tanto o DROP como o REJECT negam a coenxão, mas o REJECT manda um retorno avisando que a conexão foi negada, enquanto o DROP simplesmente ignora o pacote.<br />
-i (input interface) interface de entrada<br />
-o (output inteface) interface de saida<br />
Salvando as regras</p>
<p>O iptables limpa suas regras toda vez que o computador é reiniciado. Para que as regras fiquem ativas durante todo o tempo, é preciso adicionar um script que as carregue durante a inicialização do sistema. O arquivo /etc/sysconfig/iptables é lido na inicialização dos sistemas baseados em redhat e o conteúdo do seu script de firewall pode ser adicionado lá.</p>
<p>Uma outra opção é o comando iptables-save. Ele salva as regras do iptables atual em um arquivos que você especificar (ou mostra na tela se não for especificado nada) com o comando #iptables-save &gt; nomedoarquivo. E o comando iptables-restore pode ser utilizado para restaurar as configurações da seguinte forma, iptables-restore &lt; nomedoarquivo. Quando executamos o iptables-save sozinho temos como saída algo parecido: # iptables-save # Generated by iptables-save v1.4.12 on Mon Nov 21 11:12:26 2011 *nat <img src='http://www.fix.inf.br/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> REROUTING ACCEPT [0:0] :INPUT ACCEPT [0:0] :OUTPUT ACCEPT [18:1099] <img src='http://www.fix.inf.br/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> OSTROUTING ACCEPT [18:1099] COMMIT # Completed on Mon Nov 21 11:12:26 2011 # Generated by iptables-save v1.4.12 on Mon Nov 21 11:12:26 2011 *mangle <img src='http://www.fix.inf.br/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> REROUTING ACCEPT [452:636466] :INPUT ACCEPT [452:636466] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [441:100355] <img src='http://www.fix.inf.br/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> OSTROUTING ACCEPT [443:100419] COMMIT # Completed on Mon Nov 21 11:12:26 2011 # Generated by iptables-save v1.4.12 on Mon Nov 21 11:12:26 2011 *filter :INPUT ACCEPT [2:4832] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [2:104] -A INPUT -s 192.168.0.1/32 -i eth0 -p tcp -m tcp &#8211;dport 22 -j ACCEPT COMMIT # Completed on Mon Nov 21 11:12:26 2011 Para salvarmos estas regras, é preciso direcionar a saída do iptables-save para um arquivo de texto com o comando iptables-save &gt; nomedoarquivo. Será criado o arquivo no local onde você apontou.</p>
<p>Para restaurar as regras, é só rodar o programa ipables-restore. Ele aceita como entrada a saída do iptables-save</p>
<p>#iptables-restore &lt; nomedoarquivo</p>
<p>Assim, é simples criar um script com suas regras personalizadas.<br />
Referências</p>
<p>http://www.frozentux.net/iptables-tutorial/iptables-tutorial.html</p>
<p>https://help.ubuntu.com/community/IptablesHowTo</p>
<p>http://www.thegeekstuff.com/2011/02/iptables-add-rule/</p>
<p>http://ornellas.apanela.com/dokuwiki/pub:pt-br:linuxfwrt</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fix.inf.br/aula-iptables/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rodando Skyrim em um notebook &#8230;</title>
		<link>http://www.fix.inf.br/rodando-skyrim-em-um-notebook/</link>
		<comments>http://www.fix.inf.br/rodando-skyrim-em-um-notebook/#comments</comments>
		<pubDate>Wed, 16 Nov 2011 16:21:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Menu superior]]></category>

		<guid isPermaLink="false">http://www.fix.inf.br/rodando-skyrim-em-um-notebook/</guid>
		<description><![CDATA[Rodando Skyrim em um notebook #avell da comprado na #notebookcentury O jogo escolheu high Quality como padrão. Lindo!]]></description>
			<content:encoded><![CDATA[<p>Rodando Skyrim em um notebook #<a href="http://search.twitter.com/search?q=%23avell" class="aktt_hashtag">avell</a> da comprado na #<a href="http://search.twitter.com/search?q=%23notebookcentury" class="aktt_hashtag">notebookcentury</a>  O jogo escolheu high Quality como padrão. Lindo!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fix.inf.br/rodando-skyrim-em-um-notebook/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>http://t.co/bkDpZ8wf US Homela&#8230;</title>
		<link>http://www.fix.inf.br/httpt-cobkdpz8wf-us-homela/</link>
		<comments>http://www.fix.inf.br/httpt-cobkdpz8wf-us-homela/#comments</comments>
		<pubDate>Sun, 13 Nov 2011 21:38:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Menu superior]]></category>

		<guid isPermaLink="false">http://www.fix.inf.br/httpt-cobkdpz8wf-us-homela/</guid>
		<description><![CDATA[http://t.co/bkDpZ8wf US Homeland Security wants #Mozilla to ban addon that circumvent domain blocking. They refused. Go Mozilla!]]></description>
			<content:encoded><![CDATA[<p><a href="http://t.co/bkDpZ8wf" rel="nofollow">http://t.co/bkDpZ8wf</a> US Homeland Security wants #<a href="http://search.twitter.com/search?q=%23Mozilla" class="aktt_hashtag">Mozilla</a> to ban addon that circumvent domain blocking.  They refused. Go Mozilla!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fix.inf.br/httpt-cobkdpz8wf-us-homela/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

