O iptables nos fornece uma ferramenta poderosa para a constru\u00e7\u00e3o de firewalls com m\u00e1quinas linux.<\/p>\n
Algumas vezes a gera\u00e7\u00e3o e manuten\u00e7\u00e3o desses firewalls se torna complexa demais e – via de regra – os departamentos de TI tem pessoal de menos para a cada vez mais imensa tarefa.<\/p>\n
Um script que gere as instru\u00e7\u00f5es necess\u00e1rias para construir seu firewall linux.<\/p>\n
$ mkdir \/tmp\/route-sentry\r\n$ cd \/tmp<\/pre>\n<\/li>\n
$ wget http:\/\/www.inovacaosistemas.com.br\/downloads\/testes\/route-sentry.zip<\/pre>\n<\/li>\n
$ cd route-sentry\r\n$ unzip ..\/route-sentry.zip\r\n$ sudo chown root.root *\r\n$ sudo rsync -rv * \/<\/pre>\n<\/li>\n
sudo nano \/etc\/firewall.ini<\/pre>\n<\/li>\n
$ sudo nano \/etc\/meuFirewall<\/pre>\ncom as seguintes linhas<\/p>\n
#!\/bin\/bash\r\nrsfirewall > \/tmp\/meuFirewall.ipt\r\niptables-load \/tmp\/meuFirewall.ipt<\/pre>\n<\/li>\n
sudo vi \/etc\/rc.local<\/pre>\nficando assim:<\/p>\n
...\r\n\/etc\/meuFirewall&\r\n...<\/pre>\n<\/li>\n
rsfirewall conta com a ajuda do \/etc\/firewall.ini para poder trabalhar.<\/p>\n
Este arquivo .ini tem quatro sess\u00f5es: allowed, redirections, nat, input<\/p>\n
A) Em allowed<\/em> voc\u00ea pode colocar aquelas m\u00e1quinas que podem ser atingidas desde dentro da rede.Se \u00e9 uma m\u00e1quina interna que pode ser atingida desde outra m\u00e1quina interna, ent\u00e3o essas m\u00e1quinas devem estar na lista internal<\/em>.<\/p>\n J\u00e1 se um local externo precisa ser alcan\u00e7ado desde a rede interna, o ip ou o dom\u00ednio devem estar na lista external<\/em>.<\/p>\n Lembre que n\u00e3o pode colocar a URL, s\u00f3 dom\u00ednios ou IP. Se quer controlar URL, utilize um proxy.<\/p>\n B) Em redirections<\/em> ser\u00e3o colocadas as regras de redirecionamento de entrada. Ou seja, o que fazer quando um porto \u00e9 aberto para conex\u00e3o desde o lado externo do firewall. Cada linha deve ter o n\u00famero do porto externo, o ip interno e o porto interno que atender\u00e1 a requisi\u00e7\u00e3o. Assim, se por exemplo, seu servidor externo vai abrir a porta 3838 para atender requisi\u00e7\u00f5es RDP no porto 3389 do micro interno 192.168.3.4, ent\u00e3o a linha deve ser ipn<\/em>=3838:192.168.3.4:3389 onde n<\/em> \u00e9 um numero qualquer que n\u00e3o se repita na lista.<\/p>\n C) As regras de redirecionamento nat v\u00e3o na sess\u00e3o nat<\/em> que permite fazer tr\u00eas coisas diferentes:<\/p>\n 1) permitir que um micro ou rede navegue utilizando o protocolo nat livremente.<\/p>\n 2) Permitir que um micro ou rede navegue para um outro ponto quando o porto desejado \u00e9 um porto especifico<\/p>\n 3) Permitir que um micro ou rede navegue diretamente para um outro micro ou rede especifico.<\/p>\n D) Finalmente, h\u00e1 sempre a necessidade de abrir algumas portas no pr\u00f3prio servidor para que os outros (da rede interna ou externa) tenham acesso. A libera\u00e7\u00e3o de entrada pode ser distinguido pela placa que est\u00e1 sendo usada na hora da peti\u00e7\u00e3o assim como o porto.<\/p>\n Tudo o que chegar pela porta 8080 na placa eth1 est\u00e1 liberado<\/p>\n Tudo o que chegar por qualquer placa na porta 22 est\u00e1 liberado<\/p>\n <\/p>\n Os exemplos citados acima, colocados no firewall.ini ficariam assim:<\/p>\n \n","protected":false},"excerpt":{"rendered":" Situa\u00e7\u00e3o O iptables nos fornece uma ferramenta poderosa para a constru\u00e7\u00e3o de firewalls com m\u00e1quinas linux. Algumas vezes a gera\u00e7\u00e3o e manuten\u00e7\u00e3o desses firewalls se torna complexa demais e – via de regra – os departamentos de TI tem pessoal de menos para a cada vez mais imensa tarefa. A proposta Um script que gere […]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spay_email":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false},"categories":[93],"tags":[],"jetpack_featured_media_url":"","jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p5O6UV-3D","jetpack-related-posts":[{"id":570,"url":"http:\/\/www.yeapf.com\/wp\/?p=570","url_meta":{"origin":225,"position":0},"title":"Emulando Raspberry no Desktop","date":"outubro 7, 2019","format":false,"excerpt":"Emular Rspberry usando KVM-QEMU \u00e9 melhor que ficar ajustando a configura\u00e7\u00e3o direto no aparelho.","rel":"","context":"Post similar","img":{"alt_text":"","src":"https:\/\/i1.wp.com\/www.yeapf.com\/wp\/wp-content\/uploads\/2019\/10\/rpi3_1.jpg?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":328,"url":"http:\/\/www.yeapf.com\/wp\/?p=328","url_meta":{"origin":225,"position":1},"title":"Criando um aplicativo YeAPF usando a linha de comandos","date":"janeiro 31, 2017","format":false,"excerpt":"Um aplicativo YeAPF pode ser criado de forma simples copiando manualmente o conteudo do esqueleto apropriado dentro da pasta do seu aplicativo. Por\u00e9m, devemos reconhecer que \u00e9 um processo muito artesanal. YeAPF pode ser instalado como um conjunto de ferramentas desde a vers\u00e3o 0.7.x e entre as ferramentas h\u00e1 uma\u2026","rel":"","context":"Em "Desenvolvimento"","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":432,"url":"http:\/\/www.yeapf.com\/wp\/?p=432","url_meta":{"origin":225,"position":2},"title":"Usando Raspberry com ElectronJS em modo Quiosque","date":"julho 25, 2018","format":false,"excerpt":"Temos um Raspberry e um desafio de fazer um sistema de senhas de atendimento que rode em qualquer plataforma. Ent\u00e3o instalamos node, um boilerplate do electron, uma interface gr\u00e1fica e o YeAPF para fornecer um webservice acess\u00edvel por um consumidor qualquer com uma tela tipo quiosque. Instalando as coisas. Estamos\u2026","rel":"","context":"Em "Desenvolvimento"","img":{"alt_text":"","src":"https:\/\/i2.wp.com\/www.yeapf.com\/wp\/wp-content\/uploads\/2018\/07\/WhatsApp-Image-2018-07-24-at-17.15.10-1-300x224.jpeg?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":201,"url":"http:\/\/www.yeapf.com\/wp\/?p=201","url_meta":{"origin":225,"position":3},"title":"Roteadores Linux redundantes de baixo custo","date":"dezembro 29, 2014","format":false,"excerpt":"Um pouco de hist\u00f3ria Recentemente me vi na obriga\u00e7\u00e3o de dividir um servidor Linux em dois pois nele coincidiam duas linhas de acesso \u00e0 internet concentrando o tr\u00e1fego e distribuindo o mesmo conforme necess\u00e1rio entre as duas linhas de acesso. Quem me conhece sabe que sou p\u00e3o duro com dinheiro\u2026","rel":"","context":"Em "Servidores"","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":25,"url":"http:\/\/www.yeapf.com\/wp\/?p=25","url_meta":{"origin":225,"position":4},"title":"Primeiros passos com YeAPF","date":"fevereiro 22, 2014","format":false,"excerpt":"Tive oportunidade de ver minha irm\u00e3 mais nova andar sozinha pela primeira vez e nunca mais esqueci da experi\u00eancia. \u00a0Anos depois naceram os filhos e o impacto \u00e9 tremendo. Brinco com quem programa usando YeAPF de que s\u00e3o meus filhos, carinhosamente. Por isso que os primeiros passos s\u00e3o importantissimos para\u2026","rel":"","context":"Em "Yet Another PHP Framework"","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":334,"url":"http:\/\/www.yeapf.com\/wp\/?p=334","url_meta":{"origin":225,"position":5},"title":"Usando a bancada de desenvolvimento para criar p\u00e1ginas com YeAPF","date":"fevereiro 8, 2017","format":false,"excerpt":"Um aplicativo que vem na distribui\u00e7\u00e3o 0.8.x do YeAPF \u00e9 o workbench ou bancada. Este artigo foi escrito na vers\u00e3o 0.8.54 do YeAPF, ent\u00e3o se est\u00e1 com uma difernte, podem haver mudan\u00e7as. Workbench ou\u00a0bancada permite ao programador construir seu aplicativo como se fossem telas separadas e depois junt\u00e1-las para formar\u2026","rel":"","context":"Em "Yet Another PHP Framework"","img":{"alt_text":"","src":"https:\/\/i0.wp.com\/yeapf.com\/wp\/wp-content\/uploads\/2017\/02\/workbench-01-300x283.png?resize=350%2C200","width":350,"height":200},"classes":[]}],"_links":{"self":[{"href":"http:\/\/www.yeapf.com\/wp\/index.php?rest_route=\/wp\/v2\/posts\/225"}],"collection":[{"href":"http:\/\/www.yeapf.com\/wp\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.yeapf.com\/wp\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.yeapf.com\/wp\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/www.yeapf.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=225"}],"version-history":[{"count":3,"href":"http:\/\/www.yeapf.com\/wp\/index.php?rest_route=\/wp\/v2\/posts\/225\/revisions"}],"predecessor-version":[{"id":229,"href":"http:\/\/www.yeapf.com\/wp\/index.php?rest_route=\/wp\/v2\/posts\/225\/revisions\/229"}],"wp:attachment":[{"href":"http:\/\/www.yeapf.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=225"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.yeapf.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=225"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.yeapf.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=225"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}internal=192.168.1.26, 192.168.1.57, 192.168.8.131, 192.168.8.132<\/pre>\n
external=208.67.220.123,200.185.136.182,200.185.136.181,mail-attachment.googleusercontent.com<\/pre>\n
ip1=3838:192.168.3.4:3389<\/pre>\n
ip1=192.168.16.32\r\nip2=192.168.0.0\/16<\/pre>\n
ip3=192.168.0\/24:0\/0:6071\r\nip4=192.168.11.23:200.152.40.98:5090<\/pre>\n
ip5=192.168.1.1:192.168.0.160\r\nip6=192.168.11.0\/24:192.168.5.0\/24<\/pre>\n
port1=eth1:8080<\/pre>\n
port2=#:22<\/pre>\n
Um exemplo completo<\/h5>\n
[allowed]\r\ninternal=192.168.1.26, 192.168.1.57, 192.168.8.131, 192.168.8.132\r\nexternal=208.67.220.123,200.185.136.182,200.185.136.181,mail-attachment.googleusercontent.com\r\n\r\n[redirections]\r\nip1=3838:192.168.3.4:3389\r\n\r\n[nat]\r\nip1=192.168.16.32\r\nip2=192.168.0.0\/16\r\nip3=192.168.0\/24:0\/0:6071\r\nip4=192.168.11.23:200.152.40.98:5090\r\nip5=192.168.1.1:192.168.0.160\r\nip6=192.168.11.0\/24:192.168.5.0\/24\r\n\r\n[input]\r\nport1=eth1:8080\r\nport2=#:22<\/pre>\n