{"id":2717,"date":"2014-03-31T16:56:45","date_gmt":"2014-03-31T16:56:45","guid":{"rendered":"http:\/\/www.deuzebranaweb.com.br\/?p=2717"},"modified":"2014-03-31T16:56:45","modified_gmt":"2014-03-31T16:56:45","slug":"entendendo-os-parametros-de-filtragem","status":"publish","type":"post","link":"https:\/\/blog.deuzebranaweb.com.br\/index.php\/2014\/03\/31\/entendendo-os-parametros-de-filtragem\/","title":{"rendered":"Entendendo os par\u00e2metros de filtragem"},"content":{"rendered":"<div>\n<div>\n<h5>Dominando o Iptables (parte 2)<\/h5>\n<\/div>\n<div>\n<div><a title=\"Perfil do usu\u00e1rio\" href=\"http:\/\/www.vivaolinux.com.br\/perfil\/verPerfil.php?login=ctrlc\"><img decoding=\"async\" src=\"http:\/\/img.vivaolinux.com.br\/imagens\/fotos\/1086743881a3.jpg\" alt=\"Linux user\" width=\"80\" height=\"60\" border=\"0\" \/><\/a><br \/>\n<a title=\"Perfil do usu\u00e1rio\" href=\"http:\/\/www.vivaolinux.com.br\/perfil\/verPerfil.php?login=ctrlc\">ctrlc<\/a><br \/>\n06\/10\/2005<\/div>\n<div>No artigo anterior entendemos como as regras de firewall s\u00e3o tratadas no kernel, criando uma base mais s\u00f3lida para a compreens\u00e3o real do Iptables. Agora vamos come\u00e7ar a entender como constru\u00ed-las em nossos scripts.<\/p>\n<div><strong>Por:<\/strong>\u00a0Ygor Thomaz | Blog:\u00a0<a href=\"http:\/\/www.ygorthomaz.com\/\" target=\"_blank\">http:\/\/www.ygorthomaz.com\/<\/a><\/div>\n<div><\/div>\n<\/div>\n<\/div>\n<\/div>\n<div>\n<h1>Entendendo os par\u00e2metros de filtragem<\/h1>\n<div><\/div>\n<div id=\"HOTWordsTxt\">Como vimos anteriormente, usamos dois par\u00e2metros para a filtragem dos pacotes, foram eles: &#8220;-p&#8221; para especificar o protocolo utilizado e &#8220;-s&#8221; para especificar o endere\u00e7o de origem. No manual do\u00a0<em>Iptables<\/em>\u00a0temos uma longa vers\u00e3o desta parte, que vou reduzir para facilitar a leitura, dividindo em t\u00f3picos, fazendo uma pequena descri\u00e7\u00e3o e incluindo uma regra exemplo para melhorar o entendimento:<\/p>\n<h1>Endere\u00e7os<\/h1>\n<p>Usamos dois par\u00e2metros diferentes para especificar o endere\u00e7o origem e o endere\u00e7o destino. S\u00e3o eles:<\/p>\n<ul>\n<li>-s, &#8211;source, &#8211;src: Origem;<\/li>\n<li>-d, &#8211;destination, &#8211;dst: Destino.<\/li>\n<\/ul>\n<p>\u00c9 muito importante conhecer as caracter\u00edsticas de manipula\u00e7\u00e3o de valores aceitos pra estes par\u00e2metros. Veja abaixo:<\/p>\n<p><strong># iptables -A FORWARD -s 10.38.11.10 -d 10.38.5.100 -j DROP<\/strong><\/p>\n<p>Os pacotes de origem em 10.38.11.10 destinados a 10.38.5.100 ser\u00e3o descartados.<\/p>\n<p><strong># iptables -A FORWARD -s 10.38.11.0\/24 -d 10.38.5.100 -j DROP<\/strong><\/p>\n<p>Os pacotes de origem em 10.38.11.0 ate 10.38.11.255 destinados a 10.38.5.100 ser\u00e3o descartados. Podemos usar valores tamb\u00e9m como www.microsoft.com, localhost e etc nas nossas regras, veja abaixo.<\/p>\n<p><strong># iptables -A FORWARD -d ! www.microsoft.com.br -j ACCEPT<\/strong><\/p>\n<p>Nesta regra usamos o &#8220;!&#8221; para realizar uma invers\u00e3o desta forma todos os endere\u00e7os est\u00e3o liberados apenas o site da Microsoft estar\u00e1 proibido.<\/p>\n<h1>Protocolos<\/h1>\n<p>Usamos o par\u00e2metro &#8216;-p&#8217; (ou `&#8211;protocol&#8217;) para especificar o protocolo envolvido. Como exemplo temos: `TCP&#8217;, `UDP&#8217; ou `ICMP&#8217;, neste caso n\u00e3o faz diferen\u00e7a digitar &#8216;UDP&#8217; ou &#8216;udp&#8217;. Os protocolos podem ser especificados tamb\u00e9m pelo seu n\u00famero, que voc\u00ea encontra em \/etc\/protocols. Vejamos:<\/p>\n<p><strong># iptables -A FORWARD -p tcp &#8211;dport 80 -j DROP<\/strong><\/p>\n<p>Nesta regra temos que os pacotes relacionados com o protocolo &#8216;tcp&#8217; e destinados \u00e0 porta 80 devem ser descartados. N\u00e3o se preocupe com o par\u00e2metro &#8216;&#8211;dport&#8217;. No futuro iremos tratar dele com mais detalhes. Esta regra \u00e9 muito \u00fatil quando usamos um Squid, por exemplo, para impedir que usu\u00e1rio acesse websites sem a configura\u00e7\u00e3o de proxy, obrigando ele ir pela porta 3128 (padr\u00e3o) do Squid para ter acesso a websites. Veja minha dica em rela\u00e7\u00e3o a isso com mais detalhes neste link:<\/p>\n<ul>\n<li><a href=\"http:\/\/www.vivaolinux.com.br\/dicas\/verDica.php?codigo=2345\">For\u00e7ando o uso do proxy com iptables<\/a><\/li>\n<\/ul>\n<h1>Interfaces<\/h1>\n<p>Usamos dois par\u00e2metros para manipular o fluxo dos dados pelas interfaces (eth0, eth1, etc) s\u00e3o eles:<\/p>\n<ul>\n<li>-i, &#8211;in-interface: interface por onde os pacotes vieram;<\/li>\n<li>-o, &#8211;out-interface: interface por onde os pacotes est\u00e3o saindo.<\/li>\n<\/ul>\n<p>O -i n\u00e3o pode ser utilizado com a chain OUTPUT, assim como -o n\u00e3o pode ser utilizado com a chain INPUT. Apenas pacotes passando pela chain FORWARD t\u00eam interfaces de entrada e sa\u00edda. Vejamos:<\/p>\n<p><strong># iptables -A FORWARD -i ! eth0 -j DROP<\/strong><\/p>\n<p>Nesta regra temos que os pacotes que entram pela interface eth0 ser\u00e3o aceitos, o mesmo n\u00e3o vai acontecer com todas as outras interfaces. Fiquem atentos \u00e0 invers\u00e3o &#8220;!&#8221;. Quando queremos criar regras do Iptables para interfaces que ainda n\u00e3o existem, como a ppp0, fazemos da mesma forma como para as existentes, sendo que as regras s\u00f3 come\u00e7ar\u00e3o a funcionar quando a interface existir. Podemos tamb\u00e9m usar a op\u00e7\u00e3o eth+ para aplicar as regras em todas as interfaces com uma \u00fanica linha de c\u00f3digo:<\/p>\n<p><strong># iptables -A FORWARD -i eth+ -j DROP<\/strong><\/p>\n<p>Nesta regra todos os pacotes que entram pelas interfaces, eth0, eth1, eth2 e etc ser\u00e3o negados.<\/p>\n<p>&nbsp;<\/p>\n<p>http:\/\/www.vivaolinux.com.br\/artigo\/Dominando-o-Iptables-(parte-2)?pagina=2<\/p>\n<p>http:\/\/www.vivaolinux.com.br\/artigo\/Dominando-o-Iptables-(parte-2)<\/p>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Dominando o Iptables (parte 2) ctrlc 06\/10\/2005 No artigo anterior entendemos como as regras de firewall s\u00e3o tratadas no kernel, criando uma base mais s\u00f3lida para a compreens\u00e3o real do Iptables. Agora vamos come\u00e7ar a entender como constru\u00ed-las em nossos scripts. Por:\u00a0Ygor Thomaz | Blog:\u00a0http:\/\/www.ygorthomaz.com\/&#8230;<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_angie_page":false,"page_builder":"","footnotes":""},"categories":[12],"tags":[],"class_list":["post-2717","post","type-post","status-publish","format-standard","hentry","category-iptables"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/blog.deuzebranaweb.com.br\/index.php\/wp-json\/wp\/v2\/posts\/2717","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.deuzebranaweb.com.br\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.deuzebranaweb.com.br\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.deuzebranaweb.com.br\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.deuzebranaweb.com.br\/index.php\/wp-json\/wp\/v2\/comments?post=2717"}],"version-history":[{"count":0,"href":"https:\/\/blog.deuzebranaweb.com.br\/index.php\/wp-json\/wp\/v2\/posts\/2717\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.deuzebranaweb.com.br\/index.php\/wp-json\/wp\/v2\/media?parent=2717"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.deuzebranaweb.com.br\/index.php\/wp-json\/wp\/v2\/categories?post=2717"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.deuzebranaweb.com.br\/index.php\/wp-json\/wp\/v2\/tags?post=2717"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}