Rss

Corrigir IP de origem no Access Log de um Apache atrás de proxy

Buenas;

Ao colocar um Apache atrás de um Load-Balancer ou de um proxy cache, o IP de origem para o Apache acaba sendo o IP do proxy em questão.

Como a maioria destes proxys colocam o IP original de origem no cabeçalho “X-Forwarded-For”, podemos utilizar o CustomLog abaixo para utilizar o IP deste cabeçalho, caso ele exista.

LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" proxy
SetEnvIf  X-Forwarded-For "^.*\..*\..*\..*" forwarded
CustomLog ${APACHE_LOG_DIR}/mywebsite_access.log combined env=!forwarded
CustomLog ${APACHE_LOG_DIR}/mywebsite_access.log proxy env=forwarded

Referência:
http://www.techstacks.com/howto/log-client-ip-and-xforwardedfor-ip-in-apache.html

Aplicação Java acessando a web através de proxy autenticado

Dica rápida.

Adicionar o trecho abaixo no início da aplicação definindo o usuário e senha de autenticação do proxy:

Authenticator.setDefault(new Authenticator() {
    protected PasswordAuthentication getPasswordAuthentication() {

        return new PasswordAuthentication("domain\\user","password".toCharArray());
    }
});

Referência:
http://stackoverflow.com/questions/120797/how-do-i-set-the-proxy-to-be-used-by-the-jvm/12295125#12295125

Instalando OpenBSD com softraid

Buenas;

Segue dica para instalar o OpenBSD 5.4 com dois discos em RAID 1 via software (softraid).

(I)nstall, (U)pgrade or (S)hell? s
# cd /dev
# sh /dev/MAKEDEV sd1 sd2
# fdisk -iy sd0
Writing MBR at offset 0.
# fdisk -iy sd1
Writing MBR at offset 0.
# disklabel -E sd0
Label editor (enter ‘?’ for help at any prompt)
> a a
offset: [64] [ENTER]
size: [41929586] [ENTER]
FS type: [4.2BSD] RAID
> q
Write new label?: [y] y
# cd /tmp
# disklabel sd0 > protofile
# disklabel -R sd1 protofile
# bioctl -c 1 -l /dev/sd0a,/dev/sd1a softraid0
sd2 at scscibus2 targ 1 lun 0: <OPENBSD, SR RAID 1, 005> SCSI2 0/direct fixed
sd2: 20473MB, 512 bytes/sector, 41929058 sectors
softraid0: RAID 1 volume attached as sd2
# dd if=/dev/zero of=/dev/rsd2c bs=1m count=1
1+0 records in
1+0 records out
1048576 bytes transferred in 0.009 secs (111337439 bytes/sec)
# exit

O instalador voltará para a tela inicial. Escolha a opção (I)nstall e proceda normalmente com a instalação. Lembre-se de realizar a instalação no disco sd2 (volume RAID criado pelo softraid).

Referência:
http://spiritedblowfish.wordpress.com/2012/07/19/installing-openbsd-5-1-amd64-using-softraid/

Erro ao instalar o port security/openvpn-auth-ldap no FreeBSD 9

Buenas;

No FreeBSD 9 o port security/openvpn-auth-ldap está marcado como BROKEN devido ao seguinte erro na fase de configure do port.

configure: WARNING: Check library not found. Unit tests will not be built or run.
checking for openvpn-plugin.h... no
configure: error: Could not locate a working openvpn source tree.
See `config.log' for more details.
===> Script "configure" failed unexpectedly.
Please report the problem to snb@FreeBSD.org [maintainer] and attach the
"/usr/ports/security/openvpn-auth-ldap/work/auth-ldap-2.0.3/config.log"
including the output of the failure of your make command. Also, it might be
a good idea to provide an overview of all packages installed on your system
(e.g. a /usr/sbin/pkg_info -Ea).
*** Error code 1

Olhando no config.log temos:

configure:5511: checking for openvpn-plugin.h
configure:5544: cc -o conftest -O2 -pipe -DLDAP_DEPRECATED -fno-strict-aliasing -I/usr/ports/security/openvpn/work/openvpn-2.3.0 -export-dynamic conftest.c >&5
conftest.c:15:34: error: openvpn-plugin.h: No such file or directory

Outro erro que também pode acontecer é o seguinte:

checking how to run the Objective C preprocessor... /lib/cpp
configure: error: Objective C preprocessor "/lib/cpp" fails sanity check

Para resolver essa questão, basta aplicarmos um patch no port para que o mesmo funcione corretamente.

# cd /usr/ports/security/openvpn-auth-ldap
# wget http://conceicao.eti.br/pub/openvpn-auth-ldap.patch
# patch -p0 < openvpn-auth-ldap.patch
# make && make install

Erro “tar: Unrecognized archive format” no FreeBSD 8.2

Dica rápida.

Problema:

Ao tentar instalar um Port no FreeBSD 8.2, estou recebendo o seguinte erro:

tar: Unrecognized archive format

Investigando um pouco, descobri que a versão do bsdtar em questão não consegue reconhecer automaticamente a compressão “xz” entre -7 e -9.

Como medida de contorno, enquanto não é possível realizar o upgrade da versão do FreeBSD para a 8.3, pode-se realizar o seguinte procedimento:

Instalar o port archivers/libarchive e então adicionar a linha abaixo no arquivo /etc/make.conf:

TAR=/usr/local/bin/bsdtar

Com isso, a instalação do Port funcionou corretamente.

Mais informações.

UPDATE

Caso na compilação do pacote archivers/libarchive aconteça o erro abaixo:

error: spawn.h: No such file or directory

Você deverá executar os seguintes comandos:

make clean
make ac_cv_header_spawn_h=no
make install

PHPSC Conf 2012

Fala pessoal;

Dia 27 de outubro tem PHPSC Conf na UNIVALI em São José/SC!

Serviço:

T+;

Desabilitando checagem de Foreign Key no MySQL

Dica rápida e útil para restaurar um dump:

mysql> SET FOREIGN_KEY_CHECKS = 0;
mysql> SOURCE db_xyz.sql;
mysql> SET FOREIGN_KEY_CHECKS = 1;

Queimar imagem .img em um DVD

Buenas;

Dica rápida de como queimar uma imagem “.img” em um DVD.

Primeiramente instale o pacote “udftools”.

apt-get install udftools

Agora grave a imagem:

growisofs -Z /dev/dvdrw1=/home/matheus/imagem.img

Sendo que:
- “/dev/dvdrw” é o dispositivo do seu gravador de dvd;
- “/home/matheus/imagem.img” é o local da imagem a ser gravada.

Referência: CentraldoLinux

Forçando PATH para aplicações PHP

Fala pessoal, aqui vai uma dica rápida.

O pessoal aqui estava com um problema na utilização das funções do PHP do tipo “exec”, “cmd”.

Estavam executando comandos passando somente o comando em sí, sem utilizar seu caminho completo. Devido a isso, essa função funcionava em alguns ambientes, e em outros não (o $PATH desse ambiente era vazio, ou não cobria o diretório do binário em questão).

A maneira que encontrei para contornar isso, foi definir um PATH para o apache.

Basta setar essa variável de ambiente no arquivo de configuração do apache (/usr/local/etc/apache22/httpd.conf):

SetEnv PATH /bin:/usr/bin:/usr/local/bin

T+;

Proxy transparente em outra máquina no PF

Olá pessoal;
Para fazer com que o seu proxy transparente fique em outra máquina, além da regra de redirecionamento da porta 80 para a porta do seu proxy, você deve fazer uma regra de nat também.

 

No gateway/firewall da rede:

1. Defina a seguinte sysctl:

sysctl net.inet.ip.redirect=0

Obs.: Não esqueça de definir a sysctl no /etc/sysctl.conf

2. Adicione a seguinte linha no PF:

pass in quick on $int_if route-to ($int_if $IP_Proxy) proto tcp from ! $IP_Proxy to any port www

 

No servidor de proxy:

1. Defina a seguinte sysctl:

sysctl net.inet.ip.redirect=0

Obs.: Não esqueça de definir a sysctl no /etc/sysctl.conf

2. Faça a regra de redirecionamento de porta (80 para 3128) no PF:

rdr inet proto tcp from ! $IP_Proxy to any port www -> $IP_Proxy port 3128

T+;