================

== gmgall.net ==
================
É de compreender que sobretudo nos cansamos. Viver é não pensar.

Olá visitante! 👋

Meu nome é Guilherme, eu trabalho com TI e essa é minha ∞ª tentativa de manter uma página pessoal.

Os posts do blog são classificados em 2 taxonomias: categorias e tags. Também existe uma seção onde listo os livros que li.

Este site adapta seu esquema de cores de acordo com as preferências configuradas no seu navegador. Se desejar inverter o esquema de cores, marque a caixa inverter tema acima.

Escrito por um humano, não por uma inteligência artificial

As últimas atualizações estão listadas abaixo.


Criando Seus Próprios Filtros no fail2ban - Parte 2

tech linux sysadmin fail2ban debian
Se não existe um filtro pronto para o log que você deseja monitorar em filter.d, será necessário criar seu próprio filtro. Mostrarei como fazer isso através do exemplo que descrevo abaixo: Cenário do exemplo Mantenho um wiki moinmoin e desejo bloquear o acesso à ele pelos hosts que tentarem login por mais de 3 vezes sem sucesso. Vamos fazer um filtro para fazer esse bloqueio. O log do wiki é escrito em /var/log/moinmoin. Leia mais...

Introdução ao fail2ban - Parte 1

tech linux sysadmin fail2ban debian
O fail2ban é um software que monitora os logs do sistema e em caso de X (sendo X configurável) tentativas de autenticação sem sucesso em diversos serviços toma uma atitude, que pode ser colocar o host ofensor em /etc/hosts.deny, “dropar” seus pacotes via iptables ou qualquer outra ação definida pelo usuário. Instalação do fail2ban Em máquinas Debian, a melhor maneira de instalar o fail2ban é via apt-get: # apt-get update # apt-get install fail2ban As configurações default bloqueiam via iptables por 10 minutos os hosts que tentarem sem sucesso login via ssh 6 vezes. Leia mais...

Daemon em Python

tech python linux
Já usei mais de uma vez o código abaixo para criar pequenos daemons para Linux. Achei aqui e como ele foi liberado em domínio público, use como melhor convir. #!/usr/bin/env python # -*- coding: utf-8 -*- import sys, os, time, atexit from signal import SIGTERM class Daemon: """ A generic daemon class. Usage: subclass the Daemon class and override the run() method """ def __init__(self, pidfile, stdin='/dev/null', stdout='/dev/null', stderr='/dev/null'): self.stdin = stdin self. Leia mais...

Sequência Look and Say em Python

tech python functional challenges
Tenho brincado ultimamente com os desafios do Python Challenge. São bem interessantes para quem quer aprender Python na prática. Estou resolvendo o nível 11 e já precisei processar imagens, descompactar dados comprimidos com zip e bz2, serializar objetos, acessar recursos via URL, usar expressões regulares e algumas tarefas que não exigiam necessariamente um módulo. O último nível que resolvi tinha como resposta o comprimento de um elemento específico de uma sequência de inteiros conhecida como look and say (olhe e descreva). Leia mais...

Metaclasses em Python

tech python metaclasses oo
Introdução Li dois textos interessantes no Kodumaro recentemente: um sobre propriedades e acessores e outro sobre o design pattern singleton. Ambos citavam as metaclasses, um conceito novo para mim e, pelo que andei conversando, novo para muitos de meus colegas de faculdade e trabalho. O seguinte texto é resultado de minha tentativa de explicar o que são metaclasses de uma forma simples de ser assimilada por pessoas que começaram a estudar Python há pouco tempo como eu e portanto não pode ser considerado como um guia definitivo e sem erros sobre o assunto. Leia mais...

Here Strings, Redirecionamentos e o builtin time

tech bash shell script shell
Estou fazendo um comparativo entre gzip e bzip2 em seus diferentes modos de compressão (-1 a -9) e para automatizar o processo fiz um script bash que usa alguns recursos bastante interessantes, mas às vezes negligenciados, por isso vou falar sobre eles aqui. O script basicamente compacta um determinado arquivo com o bzip2 e o gzip, cada um deles usando todos os modos de compressão, mede o tempo que o compactador ficou na CPU e escreve os resultados em um arquivo de saída. Leia mais...
Anterior 10 de 10