Claudio Borges

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

Archive for the ‘iptables’ tag

usando ssh para criar um tunel reverso

with 2 comments

Semana passada estavamos (eu e meus amigos de irc) tentando ajudar um colega que estava com um determinado problema. Como ele estava utilizando uma máquina atrás de um firewall e ele não tinha acesso para fazer qualquer redirecionamento para esta máquina, falamos para ele criar um tunel reverso com ssh para conectarmos na máquina que ele estava e poder ajudá-lo com o problema que ele enfrentava.

Baseado no relato acima, vamos supor que tenho um servidor remoto cujo ip é 187.10.223.67, que a porta do ssh é a 22 (padrão) e que meu usuário remoto é but3k4, iremos utilizar as seguintes opções do ssh:

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.
R - especifica qual porta irei ouvir no servidor remoto, em qual ip ela será listada e para qual porta do servidor local ela será redirecionada.

Agora, sabendo tudo que irei utilizar, peço para meu amigo digitar:

ssh -C -N -f -R 4444:localhost:22 but3k4@187.10.223.67

Com o comando acima, a porta 22 da máquina local, será listada automaticamente no loopback (127.0.0.1), na porta 4444 do ip 187.10.223.67.

Com isso, eu poderei conectar na máquina dele digitando:

ssh -p 4444 localhost -l root

Simples né? Túneis ssh são muito úteis e seu funcionamento como você mesmo viu é bem simples. Então, bom proveito.

Written by but3k4

November 3rd, 2009 at 8:00 pm

Posted in Linux

Tagged with , , , , ,

Port knocking utilizando iptables

without comments

Port Knocking é uma técnica que consiste em enviar uma sequência pré-determinada de pacotes em portas específicas para abrir conexão com algum host.

Não vou me aprofundar sobre o assunto, caso queira fazer isto, o google é seu amigo =). O que irei fazer é demonstrar como utilizar o iptables para realizar esta tarefa.

Supondo que a sua política padrão é DROP e que a porta do ssh é 22 (porta padrão), vamos criar uma regra para liberar o ssh por 20 segundos quando chegar uma conexão tcp na porta 65535:

iptables -A INPUT -i eth0 -p tcp -m state --state NEW --dport 22 -m recent --rcheck --seconds 20 --name SSH --rsource -j ACCEPT 
iptables -A INPUT -i eth0 -p tcp -m state --state NEW --dport 65535 -m recent --set --name SSH --rsource -j DROP 

Supondo que o ip do servidor onde você acabou de implementar as regras acima seja 187.10.223.67, digite:

telnet 187.10.223.67 65535

Logo em seguida, pressione CTRL + C e tente conectar no ssh, você terá somente 20 segundos após ter utilizado o telnet.

Simples né? com estas duas regras acima, você criou um port knocking em iptables :).

Written by but3k4

November 2nd, 2009 at 4:17 pm

Posted in Linux

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 , , , , ,