Claudio Borges

Technical blog about Linux, BSD, Mac OS X, Games and etc.

Archive for the ‘Linux’ Category

Transferindo arquivos com o nc

without comments

O nc (netcat) é o canivete suiço do tcp/ip, com ele é possível fazer N coisas (o ncode vai gostar de ouvir isso =P). Uma delas é fazer transferência de arquivos, ou seja, você não necessita de ssh ou scp nem tão pouco ftp, basta apenas utilizar alguma porta que esteja liberada em seu fw (caso for fazer transferências via internet).

O processo é simples, vamos supor que quero fazer o backup do /etc e automaticamente transferir para outra maquina, para isto, utilizo o nc como server:

tar -cvzpf - /etc | nc -vvv -l -p 1234

Do lado do cliente, utilizo:

nc -vvv ip_do_servidor 1234 > etc.tar.gz

As opções utilizadas foram:

-v = verbose
-l = listen
-p = port

Simples assim.

Written by but3k4

July 21st, 2009 at 10:02 am

Posted in Linux,OpenBSD

Tagged with , ,

Tunel com ssh

without comments

Digamos que você tem um servidorzinho na sua casa rodando um proxy e no seu trabalho o acesso a internet é restrito, ou seja, você não tem acesso ao msn e gtalk, nem acessa determinados sites, qual seria a solução? criar um túnel.

Primeiramente vamos descrever as opções do ssh que iremos utilizar:

C - usa compactação de todos os dados que serão trafegados, muito útil para economizar banda.
N - Não executa comandos no servidor remoto, portanto o usuário não precisa ter shell.
f - Logo após conectar, coloca a conexão em background. 
L - Define qual porta, ip e porta do host remoto você vai listar.

Agora que sabemos quais opções serão utilizadas, vamos por isto em prática. Digamos o servidor remoto tem o ip 187.10.223.67 e neste servidor roda um proxy (squid) e eu quero conectar neste proxy só que não quero deixar a porta do proxy aberta e nem quero utilizar vpn, então utilizo o seguinte comando:

ssh -C -N -f -L 3128:127.0.0.1:3128 but3k4@187.10.223.67

Com o comando acima, a porta 3128 do ip 187.10.223.67 é listada automaticamente no nosso loopback (127.0.0.1). E para conectar, basta apontar seu msn ou gtalk para usar proxy e configurar o ip para o loopback.

Written by but3k4

June 22nd, 2009 at 2:34 pm

Posted in Linux

Tagged with , , , , ,

kernel grsec no debian lenny

without comments

Grsec é um patch para o kernel que foi desenvolvido com o intúito de aumentar a segurança. Seu desenvolvimento começou em fevereiro de 2001 e teve sua primeira versão para o kernel 2.4.1. Ele possui vários tipos de recursos como por exemplo: ACLs; Proteção contra buffer-overflow; Auditoria; Suporte a sysctl; Proteção no uso chroot; Negar escrita no /dev/kmem, /dev/mem; Restrições ao /proc e dmesg; Esconder processos do kernel.

Para utilizar o sistema de ACLs, utiliza-se o software gradm, o mesmo faz um total controle do que pode ou não ser utilizado, além de ter um sistema de aprendizagem, no qual ele fica apenas monitorando o que determinado serviço utiliza e com isso pode criar configurações baseadas no que foi monitorado. Este sistema é similar ao selinux.

As atuais versões do grsecurity contam com o PAX, que é um completo sistema de proteção a memória. Sua idéia principal é proteger o sistema contra técnicas usadas para ler e gravar em determinados segmentos de memória. Para tal tarefa é utilizada técnicas como a ASLR (Address Space Layout Randomization).

Para todos aqueles que não querem compilar um kernel, o pessoal do teamix.net disponibiliza todos os pacotes do kernel 2.6.26 com suporte a grsec. Para instalar, primeiramente, baixe os pacotes:

debian:~# wget -c http://people.teamix.net/~ms/debian/lenny/grsec/linux-doc-2.6.26-grsec_2_all.deb
debian:~# wget -c http://people.teamix.net/~ms/debian/lenny/grsec/linux-headers-2.6.26-grsec_2_i386.deb
debian:~# wget -c http://people.teamix.net/~ms/debian/lenny/grsec/linux-image-2.6.26-grsec_2_i386.deb

Agora instale os pacotes:

debian:~# dpkg -i linux-doc-2.6.26-grsec_2_all.deb linux-headers-2.6.26-grsec_2_i386.deb linux-image-2.6.26-grsec_2_i386.deb

Com os pacotes grsec instalados, dê um boot no seu debian (o que você instalou o kernel grsec) e na opção do grub selecione o kernel que instalamos, após o sistema inicializar, remova o kernel antigo:

debian:~# apt-get remove --purge linux-image-2.6-686 linux-image-2.6.26-2-686

Pode ser que ocorra algum problema na hora do dpkg rodar o update-grub, caso isto ocorra, edite o /boot/grub/menu.lst e remova os outros kernels, deixando somente as opções referentes ao kernel grsec.

Se o seu debian tem postfix instalado ou qualquer outro serviço que utilize chroot, adicione as seguinte linhas no seu /etc/sysctl.conf:

# Disabilita o log do grsec
kernel.grsecurity.resource_logging = 0

# Disabilita limites do grsec execve
kernel.grsecurity.execve_limiting = 0

# Disabilita log de mount
kernel.grsecurity.audit_mount = 0

# Disabilita log de mudança de horário
kernel.grsecurity.timechange_logging = 0

Como o grsec limita acessos ao /proc, crie o grupo grsec com gid 1001. Caso este gid já exista em algum outro grupo, sugiro você alterá-lo para outro gid e após isto, criar o grupo grsec. Você deve estar pensando o porque deste grupo correto? isto é necessário porque na configuração do kernel, quem o compilou, definiu que o grupo grsec necessita ter o gid 1001 e este grupo tem acesso ao /proc. Sem este acesso, usuários comuns ficam restritos a visualizem somente seus processos.

Para adicionar usuários a este grupo utilize o comando:

gpasswd -a usuario grsec

Substitua usuario pelo usuário que você quer que tenha acesso ao /proc, como por exemplo o usuário snmp, pois caso tenha snmp rodando e o usuário não tiver acesso ao /proc ele não conseguirá coletar informações das interfaces de rede.

Caso necessite do kernel source, baixe o pacote:

debian:~# wget -c http://people.teamix.net/~ms/debian/lenny/grsec/linux-source-2.6.26-grsec_2_all.deb

Caso queira utilizar também o gradm, baixe o pacote:

debian:~# wget -c http://people.teamix.net/~ms/debian/lenny/grsec/gradm2_2.1.12-1_i386.deb

Maiores informações sobre grsec, consulte o site do desenvolvedor.

Written by but3k4

June 20th, 2009 at 10:14 pm

Posted in Linux

Tagged with ,