Archive for the ‘Linux’ Category
Transferindo arquivos com o nc
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.
Tunel com ssh
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.
kernel grsec no debian lenny
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.