You are on page 1of 40

Configurando o Iptables e Fazendo Regras Básicas

Já está mais do que comprovado: Hoje em dia uma máquina sem conexão com a internet não tem maior valia do que uma máquina de escrever. É certo que os micros precisam se conectar para trocar informações, ou mesmo somente para baixar um driver para que seu dispositivo de hardware funcione. A partir do momento em que a máquina tem uma conexão com a internet, está sujeita a ataques de crackers ou scriptie kids. Se um micro pessoal está sujeito a ataques, que dirá então uma rede de computadores. Existem vários sujeitos prontos para se aproveitarem de máquinas vulneráveis. Para evitar intempéries como estas o usuário ou administrador da rede precisa implantar políticas de segurança. Uma destas políticas é a implantação de um firewall. Firewall, como o nome diz, é uma porta de fogo. Uma muralha onde somente o que está devidamente autorizado pode entrar ou sair. Maiores detalhes sobre firewall podem ser vistos aqui.

Um sistema bem servido de firewall Existem firewalls para todos os sistemas operacionais mas creio que nenhum deles esteja tão bem servido quanto o Linux. Sem desmerecer outros mas a solução Iptables ao meu ver é uma das melhores, senão a melhor que eu já vi para segurança de sistemas. A grande vantagem do Iptables é a sua estabilidade, rapidez, eficiência reconhecida e relativa facilidade de administração devido a sua configuração poder ser feita através de scripts. Outras características do Iptables: Suporte aos protocolos TCP, UDP, ICMP Pode se especificar portas de endereço e de destino. Suporta módulos externos como FTP e IRC Suporta um número ilimitado de regras por CHAINS ( correntes ). Pode se criar regras de proteção contra ataques diversos

Suporte para roteamento de pacotes e redirecionamento de portas. Suporta vários tipos de NAT, como o SNAT e DNAT e mascaramento. Pode priorizar tráfego para determinados tipos de pacotes. Entre outras o Iptables já tem suporte a IPV6, através do programa p6tables. O Iptables acompanha o kernel 2.4.x. Antes dele existia o Ipchains ( kernel 2.2.x ) e anteriormente ainda existia o Ipfwadm. Na realidade no kernel 2.4.x ainda existem os filtros Ipchains e Ipfwadm por motivos de compatibilidade mas ambos não estão ativos. Caso estejam ativos ( isto pode acontecer com o Ipchains ) é necessário desativá-los para que o Iptables possa funcionar plenamente.

Funcionamento Através de regras poderemos fazer com que os pacotes possam ser ou não recebidos a rede toda, a determinada máquina, interface ou mesmo porta de conexão. O Iptables trabalha através de Tabelas, Chains e Regras: Tabelas: Existem 3 tabelas possíveis de serem utilizadas no Iptables, sendo que uma delas, a mangle raramente é usada, restando a filter, que é a padrão, utilizada nos tráfegos de dados comuns, sem ocorrência de NAT. Quando não especificamos qual tabela a ser utilizada é ela que será ativada. A outra geralmente utilizada é a nat, que como o próprio nome diz, usada quando há ocorrência de NAT. Chains: Através delas podemos especificar a situação do tratamento dos pacotes, seja qual tabela for. Quando utilizamos a tabela nat as Chains possíveis são: PREROUTING – Quando os pacotes entram para sofrerem NAT.

POSTROUTING – Quando os pacotes estão saindo após sofrerem NAT OUTPUT – Pacotes que são gerados na própria máquina e que sofrerão NAT Já com a tabela filter as Chains são: INPUT - Pacotes cujo destino final é a própria máquina firewall. OUTPUT – Pacotes que saem da máquina firewall FORWARD – Pacote que atravessa a máquina firewall, cujo destino é uma outra máquina. Este pacote não sai da máquina firewall e sim de outra máquina da rede ou fonte. Neste caso a máquina firewall está repassando o pacote. Regras: As regras de firewall geralmente são compostas de uma Tabela, Opção, Chain, Dados e Ação. Através destes elementos podemos especificar o que fazer com os pacotes. Opções: -P -A Define uma regra padrão Acrescenta uma nova regra as existentes. Este tem prioridade sobre a -P -D -L -F -I Apaga-se uma regra Lista as regras existentes Apaga todas as regras Insere uma regra nova

-P -h -R -C -Z -N -X

Define uma regra padrão Muito útil, pois mostra a ajuda Substitui uma regra Faz uma checagem das regras existentes Zera uma regra específica Cria uma nova regra com um nome Exclui uma regra específica pelo seu nome

Dados: -s : Especifica o origem do pacote. Este pode ser tanto uma rede ou host. Possíveis combinações podem ser: -s 192.168.0.0/255.255.255.0 ou -s 192.168.0.0/24 OBS: No segundo caso estamos especificando a máscara de rede conforme o número de bits 1, por exemplo: Máscara de rede 255.0.0.0 = 8

0 ou -s 0/0 .30.0.0.0 = 24 No exemplo acima estamos especificando toda uma rede de máscara C.com Podemos especificar qualquer origem também: -s 0.0 = 16 Máscara de rede 255.255.255.0/0.0.168.30.255. no exemplo abaixo especificamos um host: -s 192.0.51/255.168.255.255 ou -s 192.51/32 OBS: A máscara em números de bits 1 para host é 32.51 também pode ser assim: -s 192.255. Podemos especificar assim também: -s www tccamargo.0.30.Máscara de rede 255.168.

! : Exclui determinado argumento: -i ! eth0 . sendo que neste caso estará enviando o pacote a ser tratado. -i eth0 -i eth1 -i ppp0 -o : Interface de saída. modem ou interface de conexão que estará recebendo o pacote a ser tratado.45 . udp. icmp: -p tcp -p udp -p icmp -i : Interface de entrada.168. Pode ser tcp.0.168. A sintaxe é a mesma do -s -p : Protocolo usado na regra.-d : Especifica o destino do pacote. placa de rede. As sintaxes são as mesmas que -i. ou seja.0.45 – Refere-se a qualquer endereço de entrada exceto o 192.Refere-se a qualquer interface de entrada exceto a eth0 -s ! 192.

Este deve vir acompanhado das funções -p tcp e -p udp : -p tcp –sport 80 – Refere-se a porta de origem 80 sob protocolo tcp --dport : Refere-se a porta de destino. mas envia um aviso ( icmp unreachable ) LOG – Cria um Log referente a regra em /var/log/messages Com estes fatores podemos criar as nossas regras com a seguinte composição: # iptables -A FORWARD -s 192. REJECT – Assim como o DROP.0. A sintaxe é similar a –sport Através das funções –sport e –dport podemos especificar não só uma porta específica como também um range de portas: --sport 33435:33525 Ações: As ações sempre vem após o parâmetro -j e geralmente são: ACCEPT – Aceita e permite a passagem do pacote. ela trabalha somente com a -p tcp e -p udp.45 -p icmp ( Dados ) -j DROP ( Ação ) . Assim como a função –sport.--sport : Refere-se a porta de origem.0.168.168.45 -p icmp -j DROP Sendo: -A ( opção ) / FORWARD ( Chain ) / -s 192. não permite a passagem do pacote. DROP – Não permite a passagem do pacote e abandona-o não dando sinais de recebimento.

1.255.255.1.0 -j ACCEPT && .168.168.255.168.1.0/255.0. Salvando as regras Depois das regras prontas podemos salvá-las com este comando: # iptables-save > <dê um nome para o arquivo> Para recuperá-las use este comando: # iptables-restore > <nome do arquivo> Outra forma seria fazer um script com as regras: Corpo do Script #!/bin/bash #limpando tabelas iptables -F && iptables -X && iptables -t nat -F && iptables -t nat -X && #liberando acesso interno da rede iptables -A INPUT -p tcp --syn -s 192.0 -j ACCEPT && iptables -A OUTPUT -p tcp --syn -s 192.0/255.255.255.No caso do exemplo a cima a regra determina que todos os pacotes icmp originários do endereço 192.255.168.0/255.0 -j ACCEPT && iptables -A FORWARD -p tcp --syn -s 192.45 devem ser barrados.

como por exemplo “start-firewall”.255.RST RST -m limit -limit 1/s -j ACCEPT # Bloqueando tracertroute iptables -A INPUT -p udp -s 0/0 -i eth1 --dport 33435:33525 -j DROP #Protecoes contra ataques iptables -A INPUT -m state --state INVALID -j DROP #termina echo "Iptables Pronto" Salve-o com um nome sugestivo.FIN. Toda vez que quiser que ele seja habilitado é só executá-lo ( sempre como root ): # start-firewall .#compartilhando a web na rede interna iptables -t nat -A POSTROUTING -s 192.0/255.0 -o eth1 -j MASQUERADE && echo 1 > /proc/sys/net/ipv4/ip_forward && # Protecao contra port scanners ocultos iptables -A INPUT -p tcp --tcp-flags SYN.255.168.ACK.1. Dê permissão de execução: chmod +x start-firewall Pronto.

:-) Compartilhamento de conexão.conf e inserirmos ou modificarmos a linha do modo que fique assim: .0/255.Para não ter que ficar chamando o script toda vez que inicializar o sistema.d/rc.168.local e incluir o comando no final do arquivo.255. A linha que habilita o redirecionamento de pacotes é essa: echo 1 > /proc/sys/net/ipv4/ip_forward Mas vale observar que se inserirmos somente esta linha no script. mascaramento e redirecionamento de pacotes Verifique que nestas linhas do script exemplo: iptables -t nat -A POSTROUTING -s 192. Para que não percamos o roteamento é necessário editar o arquivo /etc/sysctl.255. podemos fazer com que ele seja ativado na inicialização. a cada vez que reiniciar o sistema será necessária a ativação do roteamento. Para isso é preciso editar o arquivo /etc/rc.1.0 -o eth1 -j MASQUERADE && echo 1 > /proc/sys/net/ipv4/ip_forward && Estou fazendo com que os micros de minha rede possam utilizar a internet através do roteamento dinâmico.

net.0.102 -o eth0 -p tcp – dport 21 -j ACCEPT iptables -t nat -A POSTROUTING -s 192. Para que uma máquina da rede interna possa executar serviços onde cuja execução necessita que o IP da máquina seja visível para redes externas.168.102 iptables -t nat -A POSTROUTING -s 192.102 -i eth0 -j DNAT –to 192.100.135.45 -o eth0 -j SNAT –to 200. será necessário fazer um redirecionamento de IPs ou portas.100. verificamos uma ação nova ( MASQUERADE ).168.0. Digamos que uma máquina de IP 192. servindo para que as máquinas da rede interna possam acessar a internet usando o IP externo do Gateway.135. OBS: Somente a Chain POSTROUTING pode ser usada na ação SNAT.102 receba estes pacotes e retransmita: iptables -t nat -A PREROUTING -s 200.45 iptables -t nat -A POSTROUTING -s 200.ip_forward= 1 Voltando a nossa regra do script exemplo.45 -o eth0 -p tcp –dport 21 -j ACCEPT Veja que nestas regras temos mais duas ações novas SNAT e DNAT: SNAT – Aplicada quando queremos alterar o endereço de origem do pacote.0. Deste modo as máquinas da rede interna ficarão invisíveis para a rede externa.ipv4.0. cujo IP externo seja 200.100.135. redirecionamento de servidor. Aqui nós utilizamos para fazer o mascaramento. Podemos fazer com que a máquina firewall. DNAT – Aplicada quando desejamos alterar o endereço de destino do pacote. Esta ação é utilizada para fazer redirecionamento de portas.168.168.100.45 precise executar um serviço de FTP.135. load . na qual é necessária a visibilidade da máquina.

168. veja que existe também um dado novo: --to : Este dado serve para definir o IP ou porta de destino numa ação SNAT ou DNAT: iptables -t nat -A PREROUTING -p tcp -d 200. As Chains que podem ser utilizadas para esta ação são PREROUTING e OUTPUT.168.100. a máquina de destino receberá o pacote na porta 80 Além do IP podemos definir a porta deste endereço na ação: .0. Além destas duas ações. é preciso inserir o parâmetro -t para especificar a tabela: -t nat Perceba que quando omitimos este parâmetro usamos a tabela filter por padrão.102 –dport 80 -j DNAT –to 192. Quando fazemos um redirecionamento de portas usamos o dado –to-port após a ação REDIRECT: iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT –to-port 3128 #Esta regra faz com que todos os pacotes direcionados a porta tcp 80 sejam redirecionados para a porta 3128.45 .45 # Esta regra faz com que os pacotes direcionados a porta tcp 80 sejam redirecionados para a máquina 192. Como não especificamos a porta. Além destas ações.0.135.balance e proxy transparente. Quando utilizamos a tabela nat. existe também a REDIRECT que pode ser utilizada para fazer redirecionamento de portas.

0/24 -j ACCEPT Podemos ver todas as regras em andamento ao darmos o comando: iptables -L .1. ou seja.iptables -t nat -A PREROUTING -p tcp -d 200. assim como na regra anterior. Uma delas é que a a primeira regra tem prioridade sobre a segunda caso ambas estejam em conflito.168.100. porta 3128 Algumas opções e observações Vale fazer umas pequenas observações a respeito da ordem das regras e manejo.0/24 -j DROP A que terá valia será a primeira.168.168. os pacotes são redirecionados para a máquina 192.1.0.1.45 mas neste caso especificamos a porta.102 –dport 80 -j DNAT –to 192.168. veja: iptables -A FORWARD -p tcp --syn -s 192.0/24 -j ACCEPT iptables -A FORWARD -p tcp --syn -s 192.0.45:3128 # Aqui.135.168. ou seja: iptables -A FORWARD -p tcp --syn -s 192.

Com os comandos abaixo limpamos todas as tabelas e regras: iptables -F iptables -X iptables -t nat -F iptables -t nat -X Para que tudo possa funcionar a contento é necessário primeiramente que todos os módulos necessários estejam carregados: modprobe ip_conntrack modprobe ip_conntrack_ftp modprobe ip_nat_ftp modprobe ip_queue modprobe ip_tables modprobe ipt_LOG modprobe ipt_MARK modprobe ipt_MASQUERADE modprobe ipt_MIRROR modprobe ipt_REDIRECT modprobe ipt_REJECT modprobe ipt_TCPMSS modprobe ipt_TOS modprobe ipt_limit modprobe ipt_mac modprobe ipt_mark modprobe ipt_multiport modprobe ipt_owner modprobe ipt_state modprobe ipt_tcpmss modprobe ipt_tos modprobe ipt_unclean modprobe iptable_filter modprobe iptable_mangle modprobe iptable_nat .

: iptables -P FORWARD -j DROP iptables -A FORMARD -s 192.0.0/8 -j ACCEPT Para que a rede 10.0. Ao fazer as regras lembre-se de primeiro bloquear.0/24 -s 10.0.0. a regra posterior deve estar de acordo com a regra anterior para que tudo corra sem problemas.0. fazendo deste jeito com que as redes possam conversar sem problemas.0.0 mas esta não poderá retornar os pacotes. depois abrir o acesso. determinamos que todo o repasse de pacotes seja bloqueado.45 -p tcp –sport 80 -j ACCEPT Considerações finais Iptables tem infinitas possibilidades de regras.0/8 -j ACCEPT Através desta regra.168. depois permitimos que possa repassar pacotes da rede 192. Cabe ao bom administrador estudar com afinco para poder aplicar .É importante ressaltar que as regras devem seguir uma ordem definida.0.0/24 -d 10. Então o correto seria inserir mais uma regra aqui: iptables -A FORWARD -d 192.: iptables -P FORMARD -j DROP iptables -A FORWARD -s 192.0.0 para a rede 10.0.168. ou seja. pois daria uma verdadeira bíblia.0.168.0. É impossível citar todos os parâmetros e regras que podem ser utilizados.0.0 possa repassar os pacotes.168.

1 -j ACCEPT #Gerando Logs de Portas proibidas iptables -A INPUT -p tcp --dport 21 -j --log-prefix "Serviço de FTP" . Algumas destas podem ser úteis para fazer o seu firewall mas lembre-se de adaptá-las para sua rede/interface/máquina antes de aplicá-las: #Libera o apache pra web iptables -A INPUT -p tcp --destination-port 6080 -j ACCEPT iptables -A INPUT -p tcp --destination-port 443 -j ACCEPT #Libera o loopback iptables -A OUTPUT -p tcp --syn -s 127. Sem dúvida nenhuma é uma ferramenta poderosíssima.0. pode se aplicar regras conforme a conveniência da rede e usuários.1/255.0 -j ACCEPT #Bloqueando todos os endereços vindo de uma determinada rede para a minha máquina iptables -A INPUT -s 10.0.0.0. E o usuário final tem em mãos um excelente recurso para deixar sua máquina protegida de ataques externos. Exemplos de regras comumente utilizadas Nas linhas abaixo incluí algumas regras que são comumente utilizadas.0.0. Esta é a grande vantagem do Iptables.as regras mais convenientes para a sua rede.0/8 -j DROP #Liberando o endereço vindo de uma rede para a minha máquina iptables -A INPUT -s 10.0.0.

168.45 --dport 22 -j ACCEPT #Habilitando porta de SMTP iptables -A INPUT -p tcp -s 192.168.168.0.168.45 --dport 25 -j ACCEPT #Habilitando porta de DNS iptables -A INPUT -p tcp -s 192.#Gerando log de Backdoors iptables -A INPUT -p tcp --dport 5042 -j LOG -log-prefix "Wincrash" iptables -A INPUT -p tcp --dport 12345 -j LOG -log-prefix "backOrifice" iptables -A INPUT -p tcp --dport 12346 -j LOG -log-prefix "backOrifice" #Habilitando porta de FTP iptables -A INPUT -p tcp -s 192.45 --dport 53 -j ACCEPT #Habilitando porta de POP3 iptables -A INPUT -p tcp -s 192.45 --dport 110 -j ACCEPT #Habilitando porta de DNS (UDP) iptables -A INPUT -p udp -s 192. EXT_INT = Interface da Internet. IP_DESTINO = IP inválido da Internet ou melhor ip da rede que vai fazer .0.168.0.0.0.45 --source-port 53 -j ACCEPT #Redirecionar Porta iptables -t nat -A PREROUTING -s IP_NET -i EXT_INT -j DNAT --to IP_DESTINO iptables -t nat -A POSTROUTING -s IP_NET -o EXT_INT -p tcp --dport PORT -j ACCEPT iptables -t nat -A POSTROUTING -s IP_DESTINO -o EXT_INT -j SNAT --to IP_NET iptables -t nat -A POSTROUTING -s IP_DESTINO -o EXT_INT --p tcp -dport PORT -j ACCEPT IP_NET = IP válido da internet.168.45 --dport 21 -j ACCEPT #Habilitando porta de SSH iptables -A INPUT -p tcp -s 192.0.

0/24 -j ACCEPT #compartilhando a web na rede interna iptables -t nat -A POSTROUTING -s 192.com -j DROP #Liberando todos os pacotes originários da rede 10.0.0.0 -o eth1 -j MASQUERADE echo 1 > /proc/sys/net/ipv4/ip_forward && #Libera Bittorrent somente para esta maquina iptables -A INPUT -p tcp --destination-port 6881:6889 -j ACCEPT #Bloqueando tracertroute iptables -A INPUT -p udp -s 0/0 -i eth1 --dport 33435:33525 -j DROP .tccamargo.0.0.1.0 para o host www.0.1. PORT = porta #Fazendo redirecionamento de portas iptables -t nat -A PREROUTING -i FACE -p tcp --dport 80 -j REDIRECT --to-port 3128 FACE = interface de rede #Bloqueando todos os pacotes originários da rede 10.0 para o host www.168.com iptables -A FORWARD -s 10.0.255.168.1.com iptables -A FORWARD -s 10.com -j ACCEPT #Liberando todos os pacotes tcp destinados a porta 25 iptables -A FORWARD -p tcp --dport 25 -j ACCEPT #Liberando acesso interno da rede iptables -A INPUT -p tcp --syn -s 192.0/24 -j ACCEPT iptables -A OUTPUT -p tcp --syn -s 192.0.tccamargo.168.tccamargo.0/24 -j ACCEPT iptables -A FORWARD -p tcp --syn -s 192.tccamargo.0/8 -d www.0/8 -d www.168.0/255.redirecionamento.1.255.0.

0.168.16.168.0/24 -i ext_face -j DROP < ext_face = São as interfaces da internet como ppp e ethX > #Proteção contra Syn-floods iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT #Proteção contra port scanners ocultos iptables -A FORWARD -p tcp --tcp-flags SYN.1/24 -j DROP #Bloqueando pacotes fragmentados iptables -A INPUT -i INTEXT -m unclean -j log_unclean iptables -A INPUT -f -i INTEXT -j log_fragment < INTEXT = Interface da INTERNET > #Anulando as respostas a ICMP 8 (echo reply) echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all .RST RST -m limit --limit 1/s -j ACCEPT #Proteção contra ping da morte iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT #Bloqueando ping de um ip iptables -A INPUT -p icmp -s 192.0/24 -i ext_face -j DROP iptables -A INPUT -s 192.0/16 -i ext_face -j DROP iptables -A INPUT -s 192.#Protecoes contra ataques iptables -A INPUT -m state --state INVALID -j DROP #Bloqueando uma máquina pelo endereço MAC iptables -A INPUT -m mac --mac-source XX:XX:XX:XX:XX:XX -j DROP #Proteção contra IP Spoofing iptables -A INPUT -s 172.FIN.0.ACK.168.1.0.

.

por exemplo. particularmente durante uma viagem. Isso protege contra ataques diretos . para rodar um programa como Fluent. ou para pegar arquivos importantes. às vezes acesso remoto é útil ou até necessário. SSH/SFTP SSH/SFTP | | | | | | +-SSH-+ | | | | :p | :22 | | +-SSH-+ | :22 | | | | .diariamente nosso firewall bloqueia ~50. No entanto.Acesso Remoto Introdução Normalmente uma máquina remota (na internet pública) não pode iniciar comunicações com uma máquina interna (na intranet departamental).000 sondagens procurando buracos ou fraquezas para atacar.

A abertura de um túnel ssh seguro entre a máquina remota e acesso. Duas chaves são geradas na máquina remota: a chave secreta é protegida por uma passphrase local.fisica. Criptografia assimétrica. a chave pública é registrada em acesso.| +----+ +---internet---+ intranet-------+ <---remota---> <interna> +--- <acesso> <-------TÚNEL SSH----------> <-------------------------------------------------> <---------------CONEXÕES SSH/SFTP-----------------> <-------------------------------------------------> Acesso remoto envolve: 1. é usada para mais segurança durante a abertura.br. junto com .ufc. em vez de uma senha.br.ufc.fisica.

mouse etc.).o endereço da máquina externa e o nome da máquina interna que vai ser acessada. A criação de conexões através do túnel entre a máquina remota e a máquina interna. esta pode ser transferida para a máquina remota.. A máquina interna precisa ser um servidor de ssh: normalmente Linux é usado. FreeBSD. A máquina remota pode rodar Linux (ou outras sistemas da família Unix) ou Windows. 2. As conexões ssh abrem um shell na máquina interna para rodar programas: se um programa precisar de uma interface gráfica (janelas. Básicas 1. Instruções para Linux. Use o comando .. Solaris. As conexões sftp transferem arquivos entre as máquinas.

Mande um email para Ramos ou Tony com: o sua chave pública (id_rsa. que deve ser protegida por uma passphrase (uma frase que você não vai esquecer e que um hacker não vai adivinhar).pub) o uma secreta (no arquivo ~/.br o [devia pedir sua passphrase e mostrar um cabeçalho do departamento de física].ssh-keygen -t rsa para gerar um par de chaves: uma pública (no arquivo ~/. Feche o teste com Ctrl+C. 2.fisica.pub). 3.ufc. Depois de receber uma conta (a) na máquina acesso.ssh/id_rsa). o o nome da máquina interna que pretende acessar. teste a conectividade com o comando local: ssh a@acesso. . o o endereço IP da máquina remota local.ssh/id_rsa.

5.fisica.0. 4000) na máquina remota para a porta 22 (ssh/sftp) na máquina interna i. abra outras janelas (shells) e use os comandos: o ssh -C -p p b@127.1 # para transferir arquivos [obs: o sintaxe para "porta p" varia entre comandos] Interfaces Gráficas .ufc.0. Para criar conexões através do túnel para sua conta (b) na máquina interna. Para abrir um túnel levando conexões da porta p (por exemplo.4.br [o comando "netstat -na" mostra as portas usadas] A janela (shell) usada para este comando agora só serve para manter o túnel aberto.0.1 # para abrir um shell o sftp -C -oPort=p b@127. use o comando: ssh -L p:i:22 a@acesso.0.

as seguintes interfaces gráficas (em vez de textuais) podem ser interessantes. mouse. Configure o menu FTP|Options|SSH assim: o SSH Extra Params: -C o SSH2 sftp-server path: /usr/lib o Use SSH2 SFTP subsys 2. teclado) para a máquina remota. é necessário transferir sua interface gráfica (janelas.1 o Port: p (de item 4 acima) o User: b (conta na máquina interna) o SSH2 (em vez de FTP) X11 Forwarding Para rodar um programa gráfico na máquina interna. 1.Depois de abrir o túnel (item 4 acima). gftp Este programa oferece uma interface gráfica local que simplifica a transferência de arquivos por sftp. Connecte através do túnel assim: o Host: 127.0. X11 Forwarding é um modo embutido em ssh de .0.

0.transferir uma interface gráfica entre máquinas.0) xclock & # para rodar programas gráficos como xclock gtk-menu & # para mostrar um menu gráfico (debian menu) VNC VNC (Virtual Network Computing) é outro modo de transferir uma interface gráfica entre máquinas. use o comando local: ssh -XC -p p b@127. Para programas visualmente pesados. Dentro do shell.1 # para abrir um shell com X11 Forwarding 2. Desde que a máquina interna permita ("X11 Forwarding yes" no arquivo /etc/ssh/sshd_config). Transfere a tela inteira. VNC é mais . Transfere janelas separadas.0. use comandos como: o o o echo $DISPLAY # para testar (~ localhost:10. 1.

0.0.0.1:n 3.1 vncserver localhost -geometry 1024x768 depth 16 para ativar o servidor de VNC.lento do que X11 Forwarding. use os comandos locais: . a transferência da tela inteira e a preservação da sessão entre acessos podem ser úteis em certos casos. Para rodar o cliente de VNC na máquina remota (transferindo o protocolo VNC por um túnel). Para rodar o cliente de VNC na máquina interna (transferindo a interface gráfica por X11 Forwarding). Por outro lado. o servidor está usando a porta q=5900+n] 2. Desde que a máquina interna tenha vncserver instalado. use o comando local: ssh -XC -p p b@127.0. 1.0. use o comando local: ssh -p p b@127.1 xvncviewer 127. [Se o novo X desktop for i:n.0.

1.1 vncserver kill :n Exemplo O seguinte script é um exemplo de como automatizar acesso remoto ao departamento.0. Atualize os parâmetros A. 6.1:q -p p b@127.0.o o ssh -CTN -L q:127. Para rodar direto.0.0. Copie e cole o script no arquivo. Salve o arquivo. Para desativar o servidor de VNC na máquina interna.1 # para criar o túnel de ssh xvncviewer 127. 2. I. Use o comando "chmod 700 xxxx" para abilitar execução.0. use o comando local: ssh -p p b@127. Abra um novo arquivo xxxx (eg "acesso") em seu editor predileto.0.0. B e talvez P. K.1:n # para rodar o cliente 4./xxxx open # para criar o tunel (desaparece ao fechar a janela) . 3. 4.0. use os comandos: o . 5.

Para automatizar ainda mais.ufc./xxxx gftp # para transferir arquivos (gftp numa janela) ./xxxx gtk-menu # para mostra um menu (numa janela) 7.ufc./xxxx ssh # para abrir um shell (ssh num konsole kde) .fisica.br (eg arara) B= # Userid (account name) on $I (eg tony) P=4000 # Change this if 4000 is occupied (netstat -na to see ports in use) K= # Path to keyfile (only if different from default.o o o o . #!/bin/sh A= # Userid (account name) on acesso.ssh/id_rsa) if [[ "$A" == '' || "$I" == '' || "$B" == '' || "$P" == '' ]]. then .fisica. ~/.br (eg tony) I= # Internal host in intranet. coloque os comandos (eg "$HOME/xxxx open") no menu do seu window manager (kmenuedit para kde)./xxxx sftp # para transferir arquivos (sftp num konsole kde) .

0.echo "$0 has not been edited correctly" >&2 exit 1 fi case "$1" in open) if [ "$K" != '' ].0.1:$P & .ufc..br -geometry 63x1 -bg black -fg green -e \ ssh $x -L $P:$I:22 $A@acesso.1 .fisica.1 & . gtk-menu) ssh -XCf -p $P $B@127.ufc. then x="-i $K" fi xterm -T fisica.br & . sftp) konsole --caption $I -e \ sftp -C -oPort=$P $B@127.1 & .0..0. ssh) konsole --caption $I -e \ ssh -XC -p $P $B@127..0.0..0. gftp) gftp ssh2://$B@127.0.

. esac Instruções para Windows PuTTY implementa ssh para Windows. e descompacte no diretório \Program Files\Putty.gtk-menu .. Use o programa PuTTYgen para gerar um par de chaves tipo RSA: o uma pública o uma secreta. *) echo "Usage: $0 {open|ssh|sftp|gftp|gtk-menu}" >&2 exit 1 . que deve ser protegida por uma passphrase (uma frase que você não vai esquecer e que um hacker não vai adivinhar).zip que tem os programas PuTTYgen. Pegue putty. . Básicas 1. PSFTP e PuTTY mesmo.

 o nome da máquina interna que pretende acessar. 4." de puttygen:  clique (botão direito) "Selecionar Tudo". Coloque sua passphrase em "Key passphrase" e "Confirm passphrase". 10. No programa de email ou webmail: . Clique "Generate". colocando:  o endereço IP da máquina remota local.Detalhes: 3. Clique "SSH2 RSA". 6. 12. Abra um programa de email ou webmail. 8.  clique (botão direito) "Copiar" ou tecle Ctrl+C. Mexa com o mouse durante o cálculo (para gerar entropia). 11.. 5. Rode puttygen. 9. Começa uma mensagem para Ramos ou Tony.. Na caixa "Public key for pasting. Clique "Save Private key" e escolhe o nome "keyfile" no diretório \Program Files\Putty. 7.

4000) na máquina remota para porta 22 (ssh/scp/sftp) na máquina interna i. Feche o teste com Ctrl+C.clique (botão direito) "Colar" ou tecle Ctrl+V.fisica.PPK -l a acesso. .br  [devia pedir sua passphrase e mostrar um cabecalho do departamento de física]. 2.PPK -L p:i:22 -l a acesso.ufc.fisica. 3. use o comando: putty -ssh -i keyfile.br [o comando "netstat -na" mostra as portas usadas] A janela (shell) usada para este comando agora só serve para manter o túnel aberto. Depois de receber uma conta (a) na máquina acesso.ufc. Para abrir um túnel levando conexões de porta p (por exemplo. teste conectividade com o comando: putty -ssh -i keyfile.  mande o email.

Como "Private key file for authentication:" coloque "C:\Program Files\Putty\keyfile.4. 2. Clique "Category: Connection-SSH-Auth". 3. Para criar conexões através do túnel para sua conta (b) na máquina interna. 4. Rode putty.PPK". Clique "Category: Connection". 5. use os comandos: o putty -ssh -C -P p -l b o localhost # para abrir um shell psftp -C -P p -l b localhost # para transferir arquivos Interface Gráfica PuTTY PuTTY oferece uma interface gráfica. . Como "Auto-login username" coloque a conta (a) que você recebeu na máquina acesso. Para abrir um túnel (como o passo 3 acima) na interface gráfica: 1.

Como "Protocol" clique "SSH". Clique "Category: Connection-SSH-Tunnels". 9. feche a janela. Como "Host Name (or IP address)" coloque "acesso. Coloque sua passphrase quando for pedida. Clique "Add".ufc.br". Clique "Category: Session" 11. 5. 7. 17. Clique "Save" para guardar a sessão. Para criar uma conexão (abrindo um shell) através do túnel (como o passo 4 acima) na interface gráfica: 1. Clique "Enable compression" 6. 12. Como "Destination" coloque "i:22" onde i é a máquina interna que vai acessar.6. Clique "Open" para abrir o túnel. Clique "Category: Connection-SSH". 16. . Rode putty.fisica. 2. 13. Como "Auto-login username" coloque sua conta (b) na máquina interna i. 14. 8. Como "Source port" coloque "4000". 15. Clique "Category: Connection". 18. Depois de aparecer o cabeçalho do departamento. 10. Clique "Category: Session". pode minimizar a janela. Para fechar o túnel. 3. Como "Saved Sessions" coloque "acesso". 4.

7. Como "Saved Sessions" coloque "connection". Clique "2 only". 8. 4. Como "Port number" coloque "4000". Como "Host name" coloque "localhost". Para criar uma conexão (para transferir arquivos) através do túnel (como o passo 4 acima): 1.7. 5. 3. 6. Clique "Session" no painel à esquerda. WinSCP WinSCP oferece uma interface gráfica local que simplifica a transferência de arquivos por sftp. Clique "Protocol SFTP". 8. Como "Port" coloque "4000". 9. Como "User name" coloque sua conta (b) na máquina interna i. . Clique "Enable Compression". Clique "Save" para guardar a sessão. 11. Rode WinSCP. Clique "SSH" no painel à esquerda. 9. Clique "Open" para conectar. Clique "Save" para guardar a sessão. 10. 2. 10. Como "Host Name (or IP address)" coloque "localhost".

é necessário transferir sua interface gráfica (janelas. VNC (Virtual Network Computing) é um modo de transferir uma interface gráfica entre máquinas. VNC precisa de uma conexão de alta velocidade. teclado) para a máquina remota. VNC Para rodar um programa gráfico na máquina interna. Clique "Login" para conectar. [Se o novo X desktop for i:n. abra um shell nela para usar o comando: vncserver -localhost -geometry 1024x768 -depth 16 para ativar o servidor de VNC. use o comando local: o putty -ssh -C -L q:localhost:q -p p -l b .11. Na máquina remota. o servidor está usando a porta q=5900+n] 2. Para programas visualmente pesados. Desde que a máquina interna tenha vncserver instalado. mouse. 1.

4. rode o vnc viewer. abra um shell nela para usar o comando: vncserver -kill :n .localhost túnel ssh # para criar o 3. Como "VNC server" coloque "localhost:n" 5. Na máquina remota. Para desativar o servidor de VNC na máquina interna.

ufc.Referências IPTABLES Sr. João Eriberto http://www.html Acesso Remoto: http://www.eriberto.pro.br/iptables/1.br/rede/acesso/ Motta Filho: .fisica.