thegoodfellas/blogset-br huggingface dataset:
192.168.0.20-192.168.0.80 -j SNAT --to 200.200.200.201Este exemplo funciona muito bem no caso de voce ter mais de um endereco ip publico e nao usar um proxy, como o Squid. Se voce estiver usando o squid, e necessario acrescentar umas linhas ao seu arquivo de configuracao. No meu caso eu fiz o seguinte:acl MinhaLAN src 10.10.10.0/255.255.255.0acl Cliente1 src 10.10.11.0/255.255.255.0acl Cliente2 src 10.10.12.0/255.255.255.248http_access allow MinhaLANhttp_access allow Cliente1http_access allow Cliente2tcp_outgoing_address seuIpPublico MinhaLANtcp_outgoing_address seuOutroIpPublico Cliente1 Cliente2O que faz o trabalho de usar diferentes enderecos ip para as requisicoes http sao as linhas tcp_outgoing_address. Este e um exemplo totalmente funcional e estou usando aqui em minha empresa! O funcionamento do MASQUERADE por outro lado e util para quando voce nao sabe seu endereco ip publico, como por exemplo, em uma rede onde a atribuicao seja automatica (DHCP)! Por exemplo:iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o ppp0 -j MASQUERADECom esta regra voce nao precisa se preocupar com o endereco ip externo do seu Linux. O iptables se encarregara de fazer o trabalho de NAT! Lendo no tutorial do IpSysctl eles fazem uma recomendacao para que o parametro ip_dynaddr esteja habilitado evitando problemas em uma possivel troca de ip de origem (por terminar o tempo de aluguel de um endereco)! Muito importante tambem nao esquecer de habilitar o encaminhamento de ips no seu linux em ambos os casos:echo "1" > /proc/sys/net/ipv4/ip_forwardE muito importante saber qual dessas opcoes melhor satisfaz seus requerimentos! Com essas instrucoes em mente podemos criar um script de iptables para compartilhar a internet:#!/bin/bash## Um firewall statefull com MASQUERADE##=========================# variaveis#-------------------------cmd=iptableslan=eth1wan=eth0#=========================# 1 - limpando iptables# 2 - politica padrao#-------------------------$cmd -t filter -F$cmd -t nat -F$cmd -t mangle -F$cmd -t filter -P INPUT DROP$cmd -t filter -P FORWARD DROP$cmd -t filter -P OUTPUT DROP#=========================# conexoes filter - input #-------------------------$cmd -t filter -A INPUT -i $wan -m state --state RELATED,ESTABLISHED -j ACCEPT$cmd -t filter -A INPUT -i lo -j ACCEPT$cmd -t filter -A INPUT -i $lan -j ACCEPT#==========================# conexoes filter - forward #--------------------------$cmd -t filter -A FORWARD -i $wan -m state --state RELATED,ESTABLISHED -j ACCEPT$cmd -t filter -A FORWARD -i $lan -o $wan -j ACCEPT#==========================# conexoes filter - output #--------------------------$cmd -t filter -A OUTPUT -i lo -j ACCEPT#===========================# conexoes nat - postrouting #---------------------------$cmd -t nat -A POSTROUTING -o $wan -j MASQUERADECaso voce tenha ficado em duvida sobre algum conceito do iptables aqui aprensentado nao deixe de visitar os outros artigos neste mesmo blog que estao nos seguintes links:Iptables - Descricao das chains e seu uso na praticaIptables - Um firewall statefullSe tiverem duvidas, criticas ou sugestoes nao hesitem em posta-las!
verificar o estado de um pacote que chega a interface do firewall e este:iptables -t tabela -A chain -m state --state ESTABLISHED,RELATED -j acaoCaso voce queira que o iptables nao tenha esse comportamento nao use o modulo state (-m state)! Com isso voce precisara escrever regras bem detalhadas para nao correr risco de aceitar alguma conexao maliciosa.Eu espero que este tipo de informacao seja util para esclarecer bem como funciona este poderoso firewall que o linux possui! O que estou explanando ate agora e somente teoria de como ele funciona, espero logo chegar na parte mais pratica com exemplos interessantes.
Pretendo que esse seja o primeiro artigo de uma serie que estarei tentando explicar o uso do iptables. Iniciarei explicando as chains padrao do iptables e seu uso na pratica. Mostrarei o fluxo que o pacote percorre dentro do iptables ate chegar ao sistema operacional ou ao meio de rede. Minha intencao ao criar esse tipo de postagem foi ver que muitas pessoas que me pedem ajuda as vezes nao conhecem bem o funcionamento desta ferramenta. Este primeiro post nao tem o intuito de mostrar comandos.A definicao que esta no manual do iptables e esta: Iptables e utilizado para criar, manter e inspecionar as tabelas de filtro de pacotes ip no kernel do linux.Para que se possa manipular isso de forma eficiente, o iptables criou uma serie de tabelas e cada uma contem chains (cadeias, rotinas) pre-definidas ou criadas pelo usuario que sao executadas a medida que os pacotes chegam ao sistema operacional. Abaixo elas estao definidas:raw - Essa eu nunca usei e por isso nao tenho muito conhecimento, porem lendo na documentacao disponivel on-line da iptables-tutorial eles descrevem que ela tem uma unica finalidade que e a de marcar pacotes que nao devem ser manipulados pelo sistema de rastreamento de conexoes (conntrack). Ela possui duas chains disponiveis que sao prerouting e output.mangle - Esta aqui e muito utilizada para a manipulacao de pacotes. Geralmente se usa para mudar (mangle) algum valor como ToS, as marcacoes FW, TTL entre outros. E aqui que eu por exemplo marco os pacotes para um tratamento diferenciado de QoS em meu proxy/gateway! E altamente recomendado NAO REALIZAR NENHUM FILTRO nesta tabela, ja que existe uma com essa finalidade! Ela possui cinco chains disponiveis que sao prerouting, input, forward, output e postrouting.nat - A funcao desta tabela e bem sugestiva e ela deve ser utilizada para as necessidades de traducao de enderecos de rede (Network Address Translation). E nesta tabela que iremos colocar as regras para compartilhar uma conexao de internet (Masquerade, SNAT) com uma LAN, aqui iremos criar a possibilidade de alguem localizado na internet acesse um recurso interno da DMZ (como um servidor web) e coisas desse genero. Ela possui tres chains disponiveis que sao prerouting, postrouting e output.filter - E finalmente temos a tabela filter! Essa e a que deve ser usada para filtrar pacotes, ou seja, permitir ou restringir o acesso! E aqui que voce ira verificar a direcao de um pacote, o que ele contem e tomar uma acao com ele, seja aceitar ou rejeitar. Ela possui tres chains dispoiveis que sao input, forward e output.Agora voce me pergunta "e isso tudo que voce esta falando ai de prerouting, postouring, forward, para que serve?". Bom essas chains sao utilizadas para propositos especificos dentro do ciclo de vida de um pacote dentro do iptables e das decisoes de roteamento do linux, e irei explica-lo agora:prerouting - Esta chain e a primeira a ser processada pelo iptables em qualquer tabela! Ela tem esse nome pois ela e utilizada antes mesmo do kernel do linux tomar alguma decisao de roteamento baseado em seu endereco de
origem/destino, marcas FW, etc. Entao se voce precisa fazer algo desse genero, aqui e o local!input - Esta e utilizada UNICA e SOMENTE para os pacotes que possuem o endereco de destino o computador/servidor local! Pacotes com outros destinos que nao seja esse nao serao afetados por essa chain!forward - Pacotes que passam por aqui possuem endereco de destino que nao seja o computador/servidor local! Sao pacotes destinados por exemplo para a sua LAN, para a internet ou para alguma outra rede que seu linux tenha conectado e que este seja responsavel por fazer roteamento. Aqui voce pode identificar esses pacotes.output - Esta chain possui a funcao de inspecionar os pacotes gerados pelo computador/servidor local! Se voce quer proibir que seu computador/servidor local faca ping aqui e o local (tabela filter)!postrouting - De forma analoga a chain prerouting, esta possui funcao exatamente oposta a ela. Os pacotes que passam por aqui ja tiveram sua decisao de roteamento tomada! Aqui e o local onde se pode aplicar o Masquerade, Snat, Dnat!Com o fluxograma abaixo eu imagino que esse monte de definicoes ficara um pouco mais claro: Bom, eu espero que com essa primeira introducao fique um pouco mais facil e claro ao momento de criar suas regras de iptables ou quando voce estiver procurando solucionar algum problema! Esse e so o primeiro de uma serie em que estarei explicando o funcionamento deste poderoso firewall que e o iptables!Esta imagem foi retirada do tutorial on-line de iptables hospedado no frozen-tux.
gerados para ele que sao:cliente1.crtcliente1.keyta.keyca.crtCom estes e o arquivo de configuracao e possivel estabelecer uma conexao VPN ate seu servidor voce estando em qualquer lugar onde possua um acesso a internet! Se voce precisar de mais clientes e so repetir o mesmo procedimento para o cliente, obviamente, e distribuir os arquivos ali citados! Os programas que eu utilizei para os computadores do pessoal aqui foram citados no inicio deste artigo. Usando estas configuracoes sera possivel criar uma topologia similar a que esta representada pela figura abaixo:Pretendo estar escrevendo outros artigos sobre OpenVPN com o intuito de ajudar as pessoas a criarem suas proprias VPNs. Quero descrever como conectar outros servidores OpenVPN que possuam rede interna e que esta possa usar os recursos compartilhados do servidor principal (caso matriz-filial), como possibilitar que varios clientes conectados a um servidor principal possam se comunicar diretamente. Creio que estes temas podem ser uteis e de interesse para varias pessoas.Uma ultima consideracao e que se o servidor onde voce instalou a VPN nao for o gateway de sua rede e necessario configurar rotas adicionais nos servidores para que eles saibam como retornar os pacotes!Caso exista alguma duvida, critica ou sugestao para este ou outros artigos por favor deixe um comentario ou me envie um e-mail!
um comportamento diferente e nao faz nenhum tipo de matematica com o valor recebido, ele simplesmente insere o valor como ele chega!COMPUTE - Este armazena um valor oriundo de uma formula que usa valores de outros dados definidos dentro de um arquivo rrd.As informacoes dentro de um arquivo rrd sao armazenadas efetivamente em arquivos RRA (Round Robing Archive). Sao estas estruturas que terao os espacos para armazenar dados. Antes de avancarmos um pouco mais e necessario entender duas definicoes utilizadas pelo RRDTools que sao os PDPs (Primary Data Point) e CDPs (Consolidated Data Point). Quando um novo valor e inserido ele recebe a classificacao de PDP, ou seja, enviamos um determinado valor para essa base de dados e se cria um PDP, porem um CDP e composto por um numero pre determinado de PDPs. Uma nova informacao so e inserida quando se torna um CDP!Com estas informacoes que temos ate agora podemos entender um pouco sobre essa poderosa ferramenta de armazenamento de dados, porem, existem alguns detalhes importantes que sao utilizados antes de inserir definitivamente uma nova informacao dentro de um arquivo rrd que sao as funcoes de consolidacao, o fator xff, steps e rows:step: aqui e definido quantos PDPs sao necessarios para formar um CDP.funcao de consolidacao: e uma funcao aplicada nos valores quando atingir o numero necessario de PDPs para criar um CDP. Ela pode ser AVERAGE, MIN, MAX, LAST.fator xff: e a razao entre a quantidade de informacao desconhecida (UNKN) e a de conhecida em um determinado intervalo (step), ou seja, quantos PDPs podem ser desconhecidos para formar um CDP.rows: aqui e informado quantos CDPs serao armazenados.Passando por tudo isso, uma informacao consegue ser armazenada em um RRA e posteriormente plotada em um grafico. Com isto entendido podemos passar dois novos conceitos usados nesta ferramenta que e o step (nao e o mesmo que o anterior) e o heart beat. Como explicamos acima, esta e uma base de dados que guarda informacao ao longo do tempo e ela recebe informacoes em intervalos de tempo pre determinados, o mais comum sao 300 segundos (5min). Este step e utilizado na hora da criacao da base de dados e e definido em segundos. O heart beat e utilizado no momento de se definir um DS (Data Source) e ele representa o tempo maximo que se esperara por um valor antes de inserir um valor desconhecido (UNKN) e geralmente esta configurado para 600 segundos (10min). Abaixo esta um exemplo para criar uma base de dados rrd que ira armazenar valores das variaveis SNMP ifInOctets e ifOutOctets:rrdtool create interface.rrd \ --step 300 \ DS:in:COUNTER:600:0:U \ DS:out:COUNTER:600:0:U \ RRA:AVERAGE:0.5:12:24 \ RRA:MAX:0.5:12:24Com este comando estamos dizendo algumas coisas:Crie (rrdtool create) um arquivo chamado interface.rrdRecebera informacoes a cada 300 segundos (--step 300)Com um Data Source chamado in, de tipo COUNTER, recebera informacoes com no maximo 600 segundos (se nao UNKN), com valor minimo em 0 e o valor maximo e desconhecido (U). O mesmo ocorrera com o Data Source chamado out.Crie um RRA com funcao de consolidacao AVERAGE, com um xff de 0.5%, forme um CDP quando
acumular 12 PDPs e armazene 24 vezes.Crie um RRA com funcao de consolidacao MAX com um xff de 0.5%, forme um CDP quando acumular 12 PDPs e armazene 24 vezes.Ok!!!! Vamos traduzir um pouco isso ai, criaremos um arquivo com aquele nome, ira receber novos valores a cada 5 minutos e esperara no maximo ate 10 minutos. Nao recebendo nenhum valor novo ira colocar um valor especial chamado UNKN. Estamos criando dois arquivos RRA com funcoes de consolidacao diferentes. Com o xff configurado para 0.5 e o step em 12, estamos dizendo que ate 6 valores (12*0.5) podem conter UNKN. Com estes 12 valores aplicaremos uma funcao de media (AVERAGE) e armazenarei o resultado e com outra aplicarei a funcao de maxima (MAX) e tambem armazenarei o resultado. Os dois armazenarao 24 valores. Fazendo as contas 300*12*24 chegamos ao valor 86400 segundos ou 1 dia. Sera necessario um dia completo para encher este arquivo rrd. Se voce criar uma base de dados com esta configuracao levara uma hora (300*12) para que seja possivel ter alguma informacao dentro da base de dados e que apareca em um grafico.Bom ja temos bastante informacao sobre as base de dados rrd ate agora, porem ainda nao vimos como inserir informacoes nela. E um procedimento bem simples e iremos usar a segunda funcao que apresentamos acima que e a update. Com esta funcao iremos inserir novos dados a cada 5 minutos (nossa base de dados espera isso, mas pode ser diferente). O comando para fazer isso e o seguinte:rrdtool update interface.rrd N:32378634:UO que isto fara e o seguinte, atualizara o arquivo interface.rrd com um valor conhecido e outro desconhecido (fiz assim so para dar um exemplo) e a hora de atualizacao sera a atual (N). Com isso teremos um novo PDP dentro desta base de dados. Cada RRA ira receber estes valores e acumulara ate alcancar o numero de steps configurado, aplicando entao sua funcao de consolidacao.Se voce quiser criar uma base de dados para armazenar um tempo especifico sao necessarios alguns passos e calculos. Vamos simular aqui que precisamos de uma base de dados que guarde informacao por um ano completo e que antes de criar uma entrada nova (CDP) dentro do nosso RRA serao necessarios 4 PDPs (steps) e a coleta sera a cada 300 segundos ou 5 minutos. Vamos primeiro descobrir quantos segundos possui um ano:1 ano -> 365 dias -> 8760 horas -> 525600 segundosUm ano e isso ai, 525600 segundos, entao podemos chegar na seguinte formula:((525600)/(4*300)) = 438O resultado desta formula nos permite criar uma base de dados para nossa necessidade:rrdtool create interface2.rrd \--step 300 \DS:in:COUNTER:600:0:U \DS:out:COUNTER:600:0:U \RRA:AVERAGE:0.5:4:438Este e um assunto bastante comprido e so estamos no comeco de sua abordagem porem acredito que o basico e o inicio teorico sao muito importantes para se avancar. Espero estar mostrando mais desta ferramenta pois e muito poderosa e util para o dia a dia de um administrador de sistemas.Como sempre, se existir qualquer sugestao, critica, duvida ou ainda uma correcao, podem entrar em contato comigo!
possivel executar um comando snmp verificando a saida do nosso script que sera mais ou menos assim:andre@linux:~$ snmpwalk -v2c -c public ipvpn -On .1.3.6.1.4.1.2021.50.1.3.6.1.4.1.2021.50.2.1.2.8.118.112.110.115.116.97.116.115 = STRING: "/bin/bash".1.3.6.1.4.1.2021.50.2.1.3.8.118.112.110.115.116.97.116.115 = STRING: "/etc/snmp/openvpn_statistics.sh".1.3.6.1.4.1.2021.50.3.1.1.8.118.112.110.115.116.97.116.115 = STRING: "1 180156 986279"Essa saida esta resumida porem a informacao importante esta em vermelho que e o OID que iremos utilizar e a resposta que iremos obter (numero de usuarios e bytes trafegados)! Bom, com isso feito, terminamos com a parte do lado do servidor OpenVPN, agora precisamos ir para o servidor onde esta instalado o Cacti. Naquele lado criei outro script que ira executar a consulta SNMP e retornara a resposta. Eu disponibilizei o script neste link. No meu servidor eu o coloquei neste diretorio /usr/share/cacti/site/scripts, verifique onde esta este diretorio em sua instalacao. Com tudo no lugar voce pode fazer um teste executando o script na mao:andre@linux:~#./vpn_stats.sh 10.10.10.1 public 1vpnUsers:1 vpnBytesIn:180156 vpnBytesOut:986279Essa sera a resposta que o Cacti recebera. Para adicionar o script siga este tutorial disponivel no site do Cacti onde e ensinado como partir de um Shell Script ate chegar no grafico. Algumas recomendacoes na hora de criar a base de dados rrd no Cacti e para o DS de usuarios utilizar Gauge e para os bytes utilizar Derive com valor minimo em zero. Com os procedimentos feitos, voce podera ter graficos de sua vpn como esses:Esses graficos foram retirados do meu servidor Cacti mostrando trafego de testes em minha VPN e eu conectado ali! O Shell Script que e utilizado pelo Cacti pode facilmente ser adaptado para alimentar uma base de dados rrd. Nao e necessario utilizar este front-end para o RRDTools. Caso voce tenha alguma dificuldade com essa ferramenta nao deixe de conferir este artigo RRDTool - Voce sabe trabalhar com ele? para aprender um pouco mais sobre ele!Caso voce tenha alguma sugestao, duvida, critica por favor nao deixe de entrar em contato! Sua opiniao e importante! Espero que com este artigo tenha conseguido contribuir com ideias uteis para a administracao de seu servidor!
A pessoa que joga lixo na rua, na calcada ou na praia se revela portadora de uma disfuncao mental e social que a inabilita para o sucesso no atual estagio da civilizacao. Sandra Brasil.Que tipo de gente joga lixo na rua, pela janela do carro ou deixa a praia emporcalhada quando sai? Uma das respostas corretas e: um tipo que esta se tornando mais raro. Sim. A atual geracao de adultos foi crianca em um tempo em que jogar papel de bala ou a caixa vazia de biscoitos pela janela do carro quase nunca provocava uma bronca paterna. Foi adolescente quando amassar o maco vazio de cigarros e chuta-lo para longe nao despertava na audiencia nenhuma reacao especial, alem de um "vai ser perna de pau assim na China". Chegou a idade adulta dando como certo que aquelas pessoas de macacao com a sigla do Servico de Limpeza Urbana estampada nas costas precisam trabalhar e, por isso, vamos contribuir sujando as ruas. Bem. isso mudou. O zeirgeist, o espirito do nosso tempo, pode nao impedir, mas, pelo menos. nao impele mais ninguem com algum grau de conexao com o atual estagio civilizatorio da humanidade a se livrar de detritos em lugares publicos sem que isso tenha um peso, uma consequencia. E feio. E um ato que contraria a ideia tao prevalente da sustentabilidade do planeta e da preciosidade que sao os mananciais de agua limpa, as porcoes de terra nao contaminadas e as golfadas de ar puro.E, no entanto, as pessoas ainda sujam, e muito, as cidades impunemente. Cartao-postal brasileiro. o vasto litoral do Rio de Janeiro, um patrimonio natural de 246 quilometros de areias pontilhado por montanhas, virou um caso emblematico de regressao a estagios civilizacionais mais primitivos.Para se ter uma ideia, so no mes de janeiro 3 000 toneladas de lixo foram recolhidas das praias cariocas guimbas de cigarro, palitos de picole, coco de cachorro e restos de alimento. Empilhadas, essas evidencias de vida pouco inteligente lotariam cinco piscinas olimpicas. Resume o historiador Marco Antonio Villa: "Ao contrario de cidadaos dos paises desenvolvidos, o brasileiro so ve como responsabilidade sua a propria casa e nao nutre nenhum senso de dever sobre os espacos que compartilha com os outros um claro sinal de atraso".O flagrante descaso com o bem publico tem suas raizes fincadas na historia, desde os tempos do Brasil colonia. No periodo escravocrata, a aristocracia safa a passear sempre com as maos livres, escoltada por servicais que nao so carregavam seus pertences como limpavam a sujeira que ia atirando as calcadas. Ha relatos de que o pintor frances Jean-Baptiste Debret (1768-1848) causava tanto espanto quando aparecia em publico trazendo consigo os proprios pinceis que decidiu, ele tambem, contratar um escravo para realizar o servico. Nao raro, o rei dom Joao VI fazia suas necessidades no meio da rua, habito tambem cultivado pelo filho, Pedro I, e ainda hoje presente. Foi com a instauracao da Republica que o estado assumiu, de forma sistematica, o protagonismo no recolhimento do lixo, mas isso nao significou, nem de longe, nenhuma mudanca de mentalidade
por parte dos brasileiros. Cuidar da sujeira continuou a ser algo visto como aquilo que cabe a terceiros jamais a si mesmo.Existe uma relacao direta entre o nivel de educacao de um povo e a maneira como ele lida com o seu lixo. Nao por acaso, o brasileiro esta em situacao pior que o cidadao do Primeiro Mundo quando se mede a montanha de lixo nas ruas deixada por cada um deles. Os cariocas figuram entre os mais mal-educados espantosos 40% do lixo acumulado na cidade sao retirados de pracas, calcadas e praias. E o dobro de Sao Paulo e mais que o triplo do indice de grandes metropoles de paises desenvolvidos. Os especialistas chamam atencao para uma peculiaridade que ajuda a compreender por que o quadro se agrava no Rio de Janeiro. Diz o economista Sergio Besserman: "O fato de a cidade ja ter sido a capital do pais contribui para que persista ali uma sociedade patrimonialista, que enxerga tudo, absolutamente tudo, como papel do governo". Desde a Antiguidade, as grandes cidades do mundo, que ja foram insalubres um dia, so conseguiram deixar essa condicao a custa de um intenso processo de urbanizacao, aliado a mobilizacao dos cidadaos e a severas punicoes em forma de multa. "A concepcao do bem publico como algo valoroso nunca e espontanea, mas, sim, fruto de um forte empenho por parte do estado e das familias", diz o filosofo Roberto Romano.Fonte: Materia publicada na Revista Veja, Edicao 2207 - 9 de marco de 2011Os cabecas sujas e seu mundinho