Continuando a série de posts sobre contribus vou apresentar hoje o auth_delay que é uma extensão utilizada para dificultar ataques de força-bruta contra o seu servidor Postgres.
Uma vez instalada o servidor passa a demorar um curto de período de tempo antes de informar que a autenticação falhou. Apesar desta característica esta extensão não previne ataques DoS, aliás ele pode até mesmo piorar.
Mas então “pra quê” eu vou querer saber disto? … bom primeiramente eu prometi falar sobre as contribs e segundo porque, talvez algum dia em sua vida, você vai precisar de algo semelhante e não vai querer re-inventar a roda, certo?
Bom então vamos aos testes, começamos instalando:
$ cd $HOME/programas/PostgreSQL/postgres/contrib/auth_delay
$ make install
gcc -O2 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -fpic -I. -I. -I../../src/include -D_GNU_SOURCE -c -o auth_delay.o auth_delay.c
gcc -O2 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -fpic -L../../src/port -Wl,--as-needed -Wl,-rpath,'/home/guedes/.local/postgres/lib',--enable-new-dtags -shared -o auth_delay.so auth_delay.o
/bin/mkdir -p '/home/guedes/.local/postgres/lib'
/bin/sh ../../config/install-sh -c -m 755 auth_delay.so '/home/guedes/.local/postgres/lib/'
rm auth_delay.o
Esta extensão necessita ser carregada no momento que o Postgres iniciar portanto é necessário adicioná-la na variável shared_preload_libraries:
/home/guedes/.local/postgres/data/postgresql.conf
shared_preload_libraries = 'auth_delay'
auth_delay.milliseconds = '500'
Com esta configuração acima, toda conexao terá um atraso de 500 milisegundos…